RFBee firmware updating

Rich,

I left the RSSI and LQI intentionally as a byte and not the decimal version because else its hard for software to determine where the RSSI ends and the LQI begins :wink:
This could of course be solved by proper formatting, but that would make the serial protocol more complex.

The problem you get with the:
if (*len != (size - 3)){

is probably because size = 0 where size should be (payload length + 3).
The 3 bytes are the first byte (length) + the last 2 bytes being RSSI and LQI.
Payload = source address, destination address + data.

Now the question is why CCx.Read(CCx_RXBYTES,&size); returns zero for size in your setup ?

According to section 20 (page 54) of the CCX datasheet we should only be using the CCx.Read(CCx_RXBYTES,&size); for packets longer than 64 bytes,
but as we limited the size to 61 the received packet will always fit in the fifo, so if we are fast enough to read it out before the next packet arrives we should have no problems.

So we should be fine to ignore the CCX_RXBYTES and just read the packet from the queue. Simplifies the code (less bytes :wink:), and avoids false positives for errors which don’t seem to be errors. What do you think ?

Cheers,

Hans