Tonight I made some progress. By using code similar to the above, but with disabled CRC, and by spamming thousands of "abcdefgh" messages on the Micro:bit side, I managed to receive the following data:
Code: Select all
As you can see, this is complete garbage. However, it is regular in a way -- it always starts with the same characters, and then they become more and more different. Also, from thousands of messages, only those few got through.
From this I *suspect*, that my NRF24L01 modules (Chinese clones, of course) don't use exactly the same data rate as the NRF51822 chip on the Micro:bit, and as a result of the differences in their clocks the data gets corrupted. Occasionally they will align enough to get the address bytes correct, and then I will see a message, but of course the bits will lose alignment quickly afterwards, so the actual data is corrupted. This would also explain why the modules see each other without any problems -- they are both from the same source and probably have the same fault. I will try experimenting with different modules when i get them.