Networking and communications

Since we didn’t have any of the radio-chips nor double-sided boards, I ended up doing the hello.bus.45 asynchronous network with two nodes.

my picture

Milling and stuffing the board went quick and easy. Most of the time went into searching and unpacking the components.

After connecting the bridge to the programmer and running

sudo make -f hello.bus.45.make program-usbtiny

I got the following error:

avr-gcc -mmcu=attiny45 -Wall -Os -DF_CPU=8000000 -I./ -o hello.bus.45.out hello.bus.45.c
hello.bus.45.c: In function ‘main’:
hello.bus.45.c:220:22: error: variable ‘message’ must be const in order to be put into read-only section by means of  
‘__attribute__((progmem))’
make: *** [hello.bus.45.out] Error 1

I figured out that it has to do with the avr-gcc-version. For making it work I did the following:

change hello.bus.45.c line 220
from

static char message[] PROGMEM = "node ";
to
const char message[] PROGMEM = "node ";

Then I connected all the nodes to the bridge and the programmer to node 1,
changed hello.bus.45.c line 41
from

#define node_id '0'
to
#define node_id '1'

saved,
and ran

sudo make -f hello.bus.45.make program-usbtiny

and then the same for node 2:

hello.bus.45.c line 41
from

#define node_id '1'  
to  
#define node_id '2'  

save
and run

sudo make -f hello.bus.45.make program-usbtiny

my picture

For sending data over serial I used term.py from the input devices page.

It would have been fun to do something more interesting than blinking LEDs, like turning motors or sending messages, but unfortunately there wasn’t time for designing new boards.