
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.