I started by milling and soldering three boards.

One board to operate as the bridge

final project

final project

final project

Two boards to operate as nodes.

final project

final project

final project

final project

I used Arduino UNO as ISP to program. First step was to check and identify the pins for communication and LED and the second step was to perfect the code and get a response from the serial port.

I programmed the nodes to blink for a second when called upon by ID numbers 1 or 2.

Serial communication needs a special library for the AtTiny44 micro-controller. I used the SoftwareSerial.h after downloading the .zip file I opened the Sketch menu->Include Library->Add .ZIP Library and browsed to the downloaded zip file.

The codes for the two nodes are similar with one difference of ID. This is the code for Node 1.

//Or Shoval //fablabil #include <SoftwareSerial.h> SoftwareSerial mySerial(0, 2); // RX, TX for comunication with the bridge int incomingByte = 0; // for incoming serial data void setup() { mySerial.begin(9600); // opens serial port, sets data rate to 9600 bps pinMode(4, OUTPUT); // set pin 4 as output for LED } void loop() { if (mySerial.available() > 0) { incomingByte = mySerial.read(); // read the incoming byte: if (incomingByte == 1) //check if the character is 1 { digitalWrite(4, HIGH); // turnes LED on delay(1000); // wait a second digitalWrite(4, LOW); // turnes LED off } } }


In the first/left video is the board just after I programmed its LED to blink. In the second/right video is me controlling the LED with the Arduino Tx Rx pins.


For the bridge I used the SoftwareSerial function twice. Once for the communication between the computer and the bridge and again for the communication between the bridge and the nodes.

It took a while to get the pin numbers correct but eventually it worked. This is the code for the Brigde.

//Or Shoval //fablabil #include <SoftwareSerial.h> SoftwareSerial mySerial(2, 0); // RX, TX for comunication with Nodes SoftwareSerial mySerial2(3, 4); // RX, TX for comunucation with serial monitor int incomingByte = 0; // for incoming serial data void setup() { mySerial.begin(9600); // opens serial port, sets data rate to 9600 bps mySerial2.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { if (mySerial2.available() > 0) { incomingByte = mySerial2.read(); // read the incoming byte from FTDI: mySerial.write(incomingByte); // send Byte to nodes } }

I made a 3 connector bus cable for power and communication, connected the two nodes and bridge and used an FTDI cable for serial monitor communication. In the next video you can see me turning on the LED of each node by calling on its ID on the serial monitor.