Along time ago I read an article which said “There is no easy way to program in parallel it’s like writing poetry in Klingon”. Little did I know that you can buy bound books of Klingon poetry.
I had noticed odd characters getting displayed every so often, especially when I had many devices working. Initially, I though it was two (or more) of the devices interfering with each other but after looking at the logging the payload CRC was OK
RegIrqFlags 01010000 = RxDone + Validheader (The PayloadCrcError bit is not set)
Received 23 byte message Hello Arduino LoRa! 142 RegIrqFlags 01010000 RX-Done Received 23 byte message Hello Arduino LoRa! 216 The thread 0xea4 has exited with code 0 (0x0). The thread 0x1034 has exited with code 0 (0x0). RegIrqFlags 01010000 RX-Done Received 23 byte message Ngllo Arduino /R�� �44 RegIrqFlags 01010000 RX-Done Received 23 byte message Hello Arduino LoRa! 218 RegIrqFlags 01010000 RX-Done
I think the problem is that under load the receive and transmit code are accessing the SX127X FIFO and messing things up or the CRC isn’t getting attached.
I’ll put a lock around where bytes are inserted into and read from the FIFO, check the sequencing of register reads and do some more stress testing.
I turned off sending of messages and still got the corruption.
Then I went back to by Receive Basic example and it still had the problem. Looks like it might be something to do with the way I access the FIFO.
egIrqFlags 01010000 Receive-Message Received 23 byte message Hello Arduino LoRa! 112 Receive-Done Receive-Wait ........................ RegIrqFlags 01010000 Receive-Message Received 23 byte message Hello Arduino LoRa! 110 Receive-Done Receive-Wait ..... RegIrqFlags 01110000 Receive-Message Received 19 byte message Hello NetMFh���u�P Receive-Done Receive-Wait .