The intended setup for the spider board is to have one or two fully populated boards that act mainly as WiFi-NRF bridges for MQTT messages. Other instances of the board have less communications hardware and are typically intended as single sensor/actuator boards.
Many of my AVR-based projects have required some form of wireless communication at some point. Adding communication options is made fairly easy by readily available components such as the ESP8266 or NRF24L01+ modules. However, breadboarding or experimenting with such devices typically offer a few hurdles; they're 3.3v and often have pinouts that are incompatible with breadboards.
This is why I decided it would be convenient to have a single PCB that combines all the communications modules that I've got some experience with:
- esp8266 WiFi module
- NRF24L01+ 2.4 Ghz transceivers
- 433 Mhz transmitter module
- IR-LED and receiver
The board has a row of headers to break out some of the AVR GPIO pins. Power is supplied via a micro-usb connector and regulated down to 3.3V with an AMS1117, but can also be provided through the header pins for battery-operated projects.
This was a first exercise in creating a double sided PCB and therefore I also didn't etch the board myself, but had the PCB produced through OSHpark. Because the cost is directly related to the size of the PCB, I've also tried to make this board as compact as possible.
Most of the network related stuff is already taken care of by the excellent esp-link firmware. Stubborn as I am, I decided that my "raw" (non-arduino) AVR firmware could not use the arduino client library for the esp-link and therefore I needed (or somehow wanted) to write my own "raw AVR" esp-link client.
The AVR runs an optiboot ("arduino") boot loader, so that new AVR firmware can be flashed over WiFi, again thanks to the esp-link firmware. It would be nice if it were also possible to update the AVR firmware over NRF, so that the "dumb" sensor boards can also receive firmware updates remotely, but this requires some serious re-writing of the boot loader.
All dedicated firmware for this project is licensed under the Boost Software License version 1.0, while the dedicated hardware is available under a Creative Commons Attribution-ShareAlike license.