They’re here! Time to give one a spin with Espruino.
Originally posted on my old blog.
I’ve got C-Bus lights at home and I wanted to tie them into openHAB so I decided to (surprise surprise) use a Raspberry Pi to bridge the gap. I already had a USB to RS-232 cable, and the C-Bus setup had a Serial PCI Module, so I could dive straight into it. Here’s what I did to get C-Gate running.
When I started building microcontroller projects, I wanted to be able to easily be able to replace modular parts and also avoid the mess-of-wires builds. I was initially looking at using arduino pro minis and designing boards that they plugged into, but they weren’t a super great fit for me. I wanted to easily plug NRF24L01 radios into my projects, and using the pro mini meant I’d have to break out the pins for it on every board. Also, I was after more generic and modular boards rather than having to design one for every use case. Maniacbug’s sensor node design inspired me and I started designing microcontroller boards with 2×5 connectors for connecting daughter boards with various sensors on them, as well as a built in socket for the NRF24L01 module.
While I got to a point of having some polished designs that I was quite happy with, I did come upon a couple of frustrations about the form factor I’d gone with. I found that it was awkward when the things I was connecting needed spi or uart as they weren’t on the connector, and that I was having to work out how to get 5v or battery power to some sensors instead of just the 3.3v. Having the mounting holes on either side of the connector wasn’t great for stability and it was awkward trying to work out enclosures given that the daughter boards all stuck out of the main board’s footprint. Around this time I noticed the Adafruit Feather boards and realised that I could redo my boards using the Feather footprint and get most of the capability of my design while fixing a couple of its failings. The best thing was that I would be able to buy other boards that would be compatible with my boards and not have to design them all, while also being able to share my boards for other people to easily be able to use with their own Adafruit Feather products.it didn’t take long to convince me, and I now have 10 of my own Feather-compatible boards designed and here/shipped. Here’s the new AtMega328 + NRF24L01, more to follow.
I’ve been working on a whole bunch of projects involving microcontrollers in the last couple of years, I’ll quickly go through what I’ve used and where I’m heading with them.
Of course I’m starting here! Basically, I kicked off with Arduino pro mini clones as a super cheap way of making my own devices, and of course used the Arduino IDE. Before the advent of the ESP8266 I was fiddling with NRF24L01 radios and an assortment of Bluetooth modules. The NRF24L01 was very useful for being low-power and there being a lot of projects for it and I started with Maniacbug’s Rf24Network library, progressed to TMRh20’s version and then finally MySensors. I really like how useful MySensors is for standardizing messages, so I’m actually using the protocol for some Wi-Fi sensors. I’ve moved over to using PlatformIO IDE and I’m currently building Atmega328 boards in the Adafruit Feather form factor with NRF24L01’s on them.
About a year ago I gave Espruino a go on my STM32F401 Nucleo board to see how it worked for me. I was amazed at how great it was to use, especially for prototyping. I bought an Espruino Pico to use for a bit, then moved to making my own boards with a form factor suiting me. STM32 + Espruino is my go-to for microcontroller projects.
This hit the scene and made waves around the world, and it has been useful for me. I’ve used it as both a radio with STM32 boards and as a microcontroller running Espruino.
This turned out to be the main BLE chip running around for a while and I’ve fiddled with using it with Espruino. Probably will end up being replaced by the ESP32 for me though.
I’ve had a play with a few other chips, Attiny84, Attiny85, some assorted dev boards, but those were the main chips I’ve been using.
Rules check panelized boards before sending them to the fab. I just got one back where I had accidentally moved a component slightly without realizing, so it ended up overlapping the copper pour…
All these are Adafruit Feather boards from their Github and my own Feather boards. Starting from the top left we have a modified version of the proto Featherwing, the Adafruit Huzzah Feather, my AtMega328 Feather with rs485, my AtMega328 Feather with nrf24l01, the Adafruit relay Featherwing the Adafruit Neopixel Featherwing and the Adafruit Double proto Featherwing. Another couple of orders are almost ready.