I've set myself the goal to simulate a serial stream over XBee API mode (i.e. use XBee addressing/meshing and support a reliable datagram with crcs and acks).
It's been an interesting exercise. Timing the packets and optimising packet size has been important.
But as for the actual protocol, am wondering if there has been any work done on this? A crude select repeat ARQ is giving me ~224 bits per second at 9600baud with 100byte packet sizes.
Am convinced we can do better. i.e. the protocol might be able to be tweaked to only send a single ack/nack per window rather than per frame.
Am curious to know if anyone has been down this road before me and what their conclusions were.