12 Networking and Communications

12 Networking and Communications

The Plan

This week I wanted to wirelessly network multiple microcontroller boards using the super cheap nRF24L01+ modules.

Breadboarding

The internet watned me that they can be quite flacky and tricky to use with the ATtiny44 so I decided to breadboard a few with an Arduiono UNO and Trinket(ATtiny85) as a starting point. I had to install a custom library for using the Trinket(ATtiny85). Also it's very important to follow all the warning about adding an extra 10uF capacitor between GND and VCC on the RF module. I had lots of problems until I decided to follow that advice.

ATtiny time

I then created and ATtiny board thinking that it would be east to port the code from the ATtiny85 to the ATtiny44. This was not the case. The ATtiny couldn't use the same library and lot of the documentation on it indicated the ATtiny44 wasn't fully tested with the library. Also the 4k of memory in the ATtiny wasn't nearly enough to do both the networking functions and anything else interesting.

ATmega time

Next it was time for an ATmega board. This was also tricky because I started with an ATmega88 which it turns out isn't supported by the Arduino IDE. I then killed a board attempting to switch it out for an ATmega328. However this board did finally work.

It works!

I programmed the boards so that one can be a remote control for the other. When you press the button on the remote board it sends a signal to toggle the LED on the other board.

Video of it working

Design Files

The Eagle CAD design files can be downloaded here.
Arduino code can be downloaded here.

The graveyard of dead boards for the week: