Networking & Communications


This week, we focused on networking and communications. Our assignment was to design and build a wired or wireless network connecting at least two processors. This week I solved some of the communication problems I was having last week with my Fabduino (a fabable Arduino-compatible board), and played with the nrF24L01 RF modules. For this assignment, I worked with Bianca Datta and Juliana Nazaré.
Materials and tools:
Milling and assembling the Fabduino was fairly straightforward, though I had to take extra care soldering the ATmega168P as the legs on the chip were very small. I used the multimeter to identify and fix shorts as I went along. Next week, I'd love to experiment with solder paste to stuff the board.
Milled board and components for Fabduino.

Finished Fabduino.
After burning the Arduino bootloader on the board, myself and some others were having trouble reliably uploading code to the board. As a solution, we found the following advice: switch to verbose output during upload (setting in the arduino IDE preferences panel), and press the reset button right before the packets are sent to the board. Enabling verbose output actually seems like a good idea, whether or not there is a problem. It was cool to see how Arduino is actually communicating with the AVR, especially now that I have some context for understanding what's going on from prior weeks. I now have an appreciation for the abstraction layer that Arduino provides.
Arduino IDE with verbose output enabled.
To set up the nrF24L01 modules, we cross-referenced several tutorials, from ArduinoInfo.Info, Fritizing, and bashmodulo.com. We also read that the RF modules ran on 3.3V, so we introduced a voltage regulator into our circuit.
Two RF modules & Fabduinos attempting to communicate
We successfully loaded some sample code on both Fabduinos (from the RF24 example library) and monitored the serial output (with a baud rate of 57600). After trying several different example sketches, we still couldn't get the boards to communicate with one another, so we tried putting a capacitor in the circuit, as some people mentioned that the voltage regulator may not be stable enough for the nRF24L01 modules. In the end, we were not successful in getting them to communicate. Next steps will be to try the modules using an Arduino (to make sure we understand how they work and to control one possible source of error), try different modules (perhaps the ones we used were broken), and consult with other classmates who successfuly got them working.
Serial output for Getting Started sketch from RF24 library
:'(