#LoRa max data rate
1 messages · Page 1 of 1 (latest)
Just wondering what the gains would be if I get this running into some sort of Arduino/C form factor.
Which library did you use with CP -- adafruit_rfm9x or adafruit_rfm? Did you use the default configuration (SF,BW...)? Can you post the code you used? There are many factors taht will impact the transmission rate. Also curious of you tried measign theother way -- RPi to RP2040?
Have you tried the Arduino RadioHead library or the Radiolib library for a benchmark there?
Adafruit_rfm with tx power at 23. I can paste the code but I also just wanted a gut check from someone here. The latest issues I've run into our how to handle sending and receiving data "simultaneously". It seems like switching between the send/receive contexts is not easy for CircuitPython / LoRa.
Not sure what you mean here, regarding "Arduino/C form factor" The RadioHead and RadioLib libraries both run with Arduino. I expect you will get much better performance from them. You are correct, transitioning between transmit/receive is a real issue for the CircuitPython RFM library.
Yeah, I think I need to give up on CircuitPython for this. Thanks.
FYI, slightly (like barely) better performance with Arduino. ~27 packets/second at 4 bytes. ~3 for big 248 byte messages.
Thanks for the update. Have you experimented with adjusting the Spreading factor and /or bandwidth settings? If you want to post your test code for both Arduino and CircuitPython, I’ll be happy to run some tests for comparison.
Have you looked at the datasheet for the SX1276 module? See section 4 for information on the bitrate and how it varies with BW and SF settings.https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/2R0000001Rbr/6EfVZUorrpoKFfvaF_Fkpgp5kzjiNyiAbqcpqh9qSjE At the default setting of BW 125000 and SF 7 - the expected bitrate is only about 5.5 Kbps using this calculator https://unsigned.io/understanding-lora-parameters/ Your big packets are > 2Kbits so getting 3/second is actually doing pretty well unless I am misunderstading something. For the small packet, there is a lot of extra overhead so even a 4 byte packet is more something like 16 bytes by the time it gets sent. It is not clear to me that the code is the problem. You may be able to increase the datarate by raising the Bandwidth or lowering the SF but that may have other consequences regarding range.