RFA128A Wireless

by msebek.

Dev Boards

The dev boards for the RFA128A1's were donated by Anthony Rowe (15-213 Prof, WirelessSensorNetworks prof)
Our contact with him is his PHD student, Max Buevich (finger him on andrew).

Specification

Device Name (used in makefiles): firefly3

Nano-RK

The dev boards were designed to be used with Nano-RK, a real-time operating system design for use with sensor networks.

Their site can be found here: http://nano-rk.org/projects/nanork/wiki
Repository: http://nano-rk.org/projects/nanork/repository
Getting Started: http://nano-rk.org/projects/nanork/wiki/Quick-Start (at the bottom of the wiki main page)

We will not be using the OS, but they have wrapped the wireless library, and we don't have to run their OS while using it.
We have to include...some stuff, not really sure what specifically yet.

Arduino Bootloader

As of 3/18/13, all 3 of the boards are using an Arduino-style bootloader, so we can load code via FTDI.

The Good Examples

Once you clone the svn repo, (see the Getting Start Guide) look at examples/networking (or something like that)
Look at hot_potato, rt_rx, and rt_tx.
They do not start the OS, and will be what we are basing the wireless stack off of.

Syn-Ack

I (msebek) am assuming that we are interested in sending a relatively small number of "important" packets. According to this use case, Max has suggested we use basic RF, keep RX always turned on, and just TX until we get the right acks.

The chip has a Hardware Ack feature. According to Max, given our use case, it doesn't really make a huge amount of sense, and that is the sort of thing we should implement in software (be it low-level or high-level).

Broadcast

If you set the Address to be the address of one individual, only that client will see it.
If you set the Address to FFF, all clients will receive it.
Note that if you are not the recipient, then the packet is silently dropped in harware.