Networking and Communications

For this week's assignment, networking and communications, I made three boards talk to each other in an asynchronous bus with one bridge and two nodes.

I used the boards provided on the class website here (bridge) and here (node). I thought milling and stuffing the boards would be fairly straightforward, now that I've become a board-making pro, but I ran into some unexpected challenges with the Modela. The machine simply would not behave! Some problems I experienced included: the endmill not cutting deep enough (despite setting the z pretty deep--I had to mill at twice the depth I normally do for the traces to be cut); the machine not milling the entire board, but stopping randomly in the middle (this happened multiple times); the endmill not moving to the designated x-y position; the endmill spinning in place; and the view light blinking slowly (I had no idea what this meant). I had to restart both the computer and the Modela repeatedly.

Finally, after almost five hours of messing around with the Modela, my three boards were ready. Luckily, soldering was much faster. I soldered all 3 boards in under an hour! My last one took only 10 minutes. I'm definitely getting better at this. :)

I programmed the board using the code provided on the class website here in Arduino. I assigned node number 0 to the bridge and changed the node ID number to 1 and 2 for the two nodes. I had no problems uploading the programs, and I used Arduino's built-in terminal interface to control the boards. I entered a node number (0, 1, or 2) and the associated LED would blink twice, while the other two would blink once.

For my final project, I am thinking about making an input (possibly my soil moisture sensor) talk to an output (possibly a motor to run a water pump) through a wireless connection. It would be even better if I could talk to my input and/or output through the computer or my phone via the Internet. Though I did not have time to make a wireless networking device this week, I have been reading up on it. I'm looking into the XBee and Internet0, but I'm still a bit confused about how they work or which would be better (or if there are other options that would be better). Let me know if you have any suggestions.


bridge traces png
bridge interior png
node traces png
node interior png
C code