Assignment #14
networking and communications

The 14th assignment of the Fab Academy consists of designing, building, and connecting wired or wireless node(s) with network or bus addresses.

1 – schematics

Because I cannot access the lab during the pandemic, I used two Arduino Nano boards and two NRF24L01 modules to create a network. One node has an input device, a button, while the other has an output device, a yellow LED. I assembled the circuit on two breadboards, soldered wires to the modules, and connected the components. An interesting part of the setup was using a 10 µF capacitor to stabilise the radio module’s power supply.

Assignment 14 documentation image: ass15 2 Assignment 14 documentation image: ass15

2 – Code

The code is quite straightforward. I used the commands of the RF24 library to define a radio channel, establish communication between the two devices, and send the button’s state to the receiver, which uses it to switch the LED on or off. Each controller needs its own program:

transmitter code

receiver code

The network is simple, but it works, and I can see plenty of possibilities to explore. To learn more about this technology, take a look at this tutorial that I consulted to make my assignment

3 – Receiver Board Design

Although pandemic restrictions prevent me from milling the PCBs, I can still design them to complete the assignment. The first PCB will be the receiver. I’ll use an ATmega328P and check its pinout to connect the components, although I’m now quite familiar with this controller! Assignment 14 documentation image: ass10 8 2 Then I used KiCad to design the schematics: Assignment 14 documentation image: ass14 3 Then I switched to the PCB design features, and routed everything.
To explore the software’s capabilities, I made a circular PCB and added text. Since the circuit was fairly complex, I used a two-sided layout. Assignment 14 documentation image: ass14 4 Assignment 14 documentation image: ass14 5 Here is the result in KiCad’s 3D viewer: Assignment 14 documentation image: ass14 6

4 – Transmitter Board Design

The same principles were applied to the design of the transmitter board
I used KiCad to design the schematics: Assignment 14 documentation image: ass14 7 Then I switched to the PCB design features, and routed everything.
This time, I chose a polygonal board rather than a circular one and added text again. Assignment 14 documentation image: ass14 8 Assignment 14 documentation image: ass14 9 Here is the result in KiCad’s 3D viewer: Assignment 14 documentation image: ass14 10 Assignment 14 documentation image: ass14 11

Source files

Here are all the source files for the Network and communication week:
1 - transmitter code
2 - receiver code
2 - receiver PCB
2 - transmitter PCB