Project Intro: Sensornode (now Feather compatible!)

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.

Pictured here are boards for the AtMega328, ESP8266, NRF51822 and STM32F401. I went through a number of design iterations figuring out what worked for me, these are the latest of their types. 

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.

Project Intro: Microcontrollers for Home Automation

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.

Atmega328

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.
STM32F4

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.

ESP8266

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.

NRF51822

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.

Other

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. 

Had a power outage the other day…

Unfortunately knocked out the SD card on my garage raspberry pi, meaning no more controlling the lights from my phone (I’ve set up a bridge between the Cbus and MQTT on it).it would normally be okay, but I made some changes lately and hadn’t backed them up… On the plus side, it was a good opportunity to make myself rebuild the pi using ansible instead of manually.

Latest pcb order!

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.

Project Intro: PCB Design


I’ve really gotten into designing my own circuit boards for everything and lately I’m going crazy with it. I moved from prototyping Raspberry Pi and Arduino projects on veroboard/stripboard to having a go at etching my own board to ordering from small-run pcb sites.

My current fan of choice is dirtypcbs. I’m usually ordering a lot of small (not tiny) boards and so I usually panelize groups of them into 100mm x 100mm boards. Dirtypcbs accept these without complaint and have good prices, so I’ve been very happy with them. I used to use dfrobot and got good value and results from them, but one time I was asked to remove the mousebites from a panelized boards, so I switched to Dirtypcbs to stick with the value I was getting by combining boards. I also use Oshpark for any tiny boards that I don’t need many of, they are great quality and better value for those types of orders.

Seemingly impossible task – finding exact parts without part numbers

The other day I was trying to find where I could buy the exact micro usb connector that’s on Adafruit’s Feather boards. I figured that it would be a pretty common one given that it’s Adafruit. An hour of searching later and I eventually find an Aliexpress listing that looks exactly like it, not so common after all. Even then, the listing only had it as one of an assortment of 50… with no information about what exactly those 50 were. So it took another half hour of digging through Aliexpress listings to eventually find out that the part is apparently called “Micro USB Jack Big Horn”. Seems that internet detective work is a big part of amateur electronics. For anyone else after it, here’s a listing of the part. No guarantees that it is the same though, I’m still waiting for mine to arrive. (Edit: confirmed as correct part, just stuck it on one of my feather pcbs, perfect fit)

Today I’ve had a similar chase, this time for the eagle or diptrace part for a pack of microsd sockets I bought ages ago. I’m sure I got them off ebay or something and there wasn’t much hope of finding a part number. A heap of googling eventually found me an image and a part number (120801 apparently) but turns out that I wasn’t any closer to a CAD part.

http://www.dx.com/p/120801-6-pin-micro-sd-tf-card-module-deep-blue-281763
Micro SD holder – (I don’t have the board, just the socket)

Eventually I got lucky and a google image search landed me on a Dangerous Prototypes article about a board that had the right part on it! There were even eagle files that I could export the part from!!! Looks like it was an old Seeed part (and was part of an old Seeed eagle library that I can’t find anywhere…).

For anyone interested, here’s the eagle and diptrace files for the microsd socket: download