Ground Receiver Software

The ground receiver reads from an XBee (has space for two XBees, only one is in use at the moment) and then forwards it as a UDP packet to the ground station using the onboard Ethernet chip. The receiver also outputs any bytes received on the XBee over it's USB serial.

The code is attached below and written for use with the Arduino IDE. It relies on this external library and it's dependency here. Download these libraries and use the add a library as a .zip feature in the Arduino IDE.

The receiver expects packets sent over the XBee with a header formed like:

[preamble | size | payload ]

The preamble is 4 bytes with each byte having the value 0x3E (ASCII value for '>' character). The size is the number of bytes in the payload as a 32 bit unsigned number. The payload is the actual telemetry data of 'size' many bytes. Only the 'payload' section is sent to the ground station as a UDP/IPV4/Ethernet II packet.

Initial Thoughts:

Use modified Teensy 4 core for programming https://github.com/PaulStoffregen/cores

Use https://github.com/PaulStoffregen/cores for using ethernet.


Potentially run TFTP server to upload different config files and send commands.