fab Academy logo

Week 13 - Networking and Communication


Brief


The brief for this weeks assignment was to make a network which gets one processor to talk to another.


PCB Making

As I am a complete beginner when it comes to networking/programming and electronics I decided to make the example serial network communication between a bridge and 2 nodes.

First step was to mill the boards. I used the PNG's available on this weeks academy page and milled out 2 node boards and 2 bridge boards. I chose to mill the extra bridge board as it would fit nicely on the small pcb stock and if I had an error with a board I'd have a spare ready to use. I milled the boards using fab modules as usual, and they all milled successfully first time.

I then soldered the components to the boards.


Hopefully I won't need to use my spare board but I'll find that out at the next stage - programming.


Programming

To program the boards I followed this great tutorial.

Firstly I downloaded the make and c file from the academy page. Next I opened the c file in text editor and when needed changed the node label to "0" then "1" and finally "2" to program the bridge and then each node separately.



I programmed using my newly made FabISP. My old FabISP's tracks lifted and I was left having to re-make the board.



Happily my new ISP worked well  and I programmed each board in turn successfully.

I then connected up the 3 boards using a 4 wire cable I made as shown in the tutorial.


Next I tried to run the python script in Ubuntu to use serial the command returned an error of "no device in this location" At this stage I chose to use the Arduino IDE serial monitor instead.

I initially found my serial monitor to be greyed out and it seemed like my serial connection was not being seen. After considering a permissions error I looked around and realised that as I am running Ubuntu in a virtual box I had made the rookie mistake of not enabling the usb device in the virtual window. After enabling the serial monitor was selectable in the Arduino IDE. I tested the program by inputting 0-2 in serial and the boards acted correctly flashing once in unison and then individually to identify each node entered in serial.



I went back to try the python script with the properly enabled FTDI lead and found  that although the window did load I could not input values into the window. Next I want to look carefully at Neil's code and try to understand what is happening within the program.

I will look further into the possibility of using this transmit and receive serial networking system in my final project.