Closed ElectronicallyE closed 6 years ago
Looking at #222 this is an issue with the RN2903 itself. I've brought it up there and we'll have to see what happens.
You should only set the DR range to [0..5] by the way, DR 6 is for the 500 kHz channel (65 in this case).
Indeed, the drrange N 0 5
is failing, which is in fact specification; this 1.0.3 module supports LoRaWAN Regional Parameters 1.0.2 rev A, and for AU915 the data rate range is 0-4 (with 4 being 500 KHz). This has changed in 1.0.2 rev B and higher.
This "1.0.3" version does not refer to the LoRaWAN (or Regional Parameters) version, but the RN firmware itself.
So the error is that DR 5 is used for sending, while it doesn't exist. I'm submitting a PR.
Released in https://github.com/TheThingsNetwork/arduino-device-lib/releases/tag/v2.5.10. Arduino IDE will update automatically.
Thanks Johan. Will test tonight and report back. Appreciate the rapid response from the community and yourself with this matter. 👊
Can confirm that with 2.5.10 any reported invalid param errors with DR5 are now gone.
[strangely enough, the TTN Uno's have been working fine on 2.5.7 for weeks]
Hello,
I'm currently using a RN2903 in Australia with the SA1.0.3 firmware which supports the 915MHz frequency. After testing numerous factors which could be preventing me from transmitting, I discovered that my serial was giving me:
Sending: mac set ch drrange 8 0 3
Followed by this further down in the serial:
This from my understanding means that the data rate range is 0-3 for the AU915 frequency and it is trying to set dr 5 which won't work.
Looking in the library and in particular thethingsnetwork.cpp, I found this:
From my discussion in the Slack group, AU915 supports DR0 to DR5 (truely DR6). If the "0 3" is replaced to "0 5" in line 675, I thought it may resolve this issue, but am getting the following in my serial output:
From my understanding now, it's not just as simple as changing the DRRANGE. There must be other things that need to be adjusted, but I am not experienced with the library, so there's little method to my madness.
What I have noticed is in the EU868, instead of:
sendChSet(MAC_CHANNEL_DRRANGE, ch, "0 3")
It has:sendChSet(MAC_CHANNEL_DRRANGE, 1, "0 6");
It looks like the EU868 has the right DR, however the function is different so I can't simply copy and paste.