Transitioning from 915MHz to 868MHz firmware
- This topic has 2 replies, 3 voices, and was last updated 7 years, 4 months ago by Andrew Lindsay.
-
AuthorPosts
-
July 20, 2017 at 11:00 am #20257Eric TsaiParticipant
I’d like to identify and get clarification on some firmware differences between 915MHz US Dots and 868MHz EU Dots. Basically, if we take code written for 915MHz, I think these are the changes needed to make it work for 868MHz.
1) Set frequency to 868 instead of 915
AT+FREQ=868
Edit: This is read-only. Thanks Jason.2) Transmit Next ([AT] AT+TXN, [mbed] dot->getNextTxMs())
For 868 models, it seems we would need to call this prior to performing a send on an edge node and make sure the return value is 0 before we execute send command.Even on 915 models, if you try to join too frequently, the mDots return some error that means “you tried to join too frequently, back off”. So the error handling for any TX operation for either model should do this back off.
3) Frequency Band:
For US 915MHz, there are 8 sub-bands and each sub-band has 8 uplink channels, for a total of 8×8=64 channels. So these are the TX channels from the point of view of xDot/mDot. Each Conduit gateway has an 8-channel transceiver, so for private LoRa installations, we basically have to decide which 8-bucket channel of the 64 the Conduit and xDots will operate in. So you set [mbed]dot->setFrequencySubBand() or [AT]AT+FSB= from 1 to 8 to match your conduit. The Conduit has the smarts to optimize channel usage, and the actual TX channel that the Dot uses is controlled by the Conduit MAC response (unless you explicitly set TX channel on Dot firmware).For EU 868MHz, there’s 3 “always available” channels for join requests and TX/RX, and the join response from the Conduit to the xDot provides additional channels that the xDot can use. So, in the case of 868MHz models, we shouldn’t use the AT+FSB command. There’s no need to match the xDot channel to the Conduit channel, We set up the additional 5 channels on the Conduit configuration page, and the LoRa MAC messages automatically assigns xDots to use the correct channel.
4) Spreading Factor / Data Rate:
If not using ADR, we’d need to select DR & SF that available for the 915 or 868 band. The AT command PDF states valid North American DR={DR0-DR4}, and EU DR={DR0-DR7}. But it looks like you can also independently set the SF_7-SF_12 for each DR value? But not all combinations are valid, since high spreading factor constrains data rate? Can I get a better explanation? What are all the valid combinations of SF and DR for 915 and 868?The mbed <enum DataRates> definition seems to let you specify by DR or SF, but not both. This is confusing when compared to the AT command. If you dot->setTxDataRate(mDot::SF_9), what is your DR value?
Are there other things to look out for when making this transition?
July 20, 2017 at 11:12 am #20259Jason ReissKeymaster1) The frequency band of a device is set in the firmware and cannot be changed at run-time. It was set in factory and read by firmware in v2.0.16 and before. Or next release will have separate firmware images for each regional spec.
2) It is always a good idea to check AT+TXN before sending.
3) US915 must match the channels in a single gateway deployment. EU868 has fewer channels and dynamically sets them.
4) In either 915 or 868 the tx datarate should be set using the DR0-DR7 values, these map to specific datarates (SF + BW) in LoRaWAN.
The SF_7-SF_12 values were used in the early versions and are not advised to be used.
July 21, 2017 at 5:29 am #20282Andrew LindsayParticipantSlightly related, is it possible to change a 868MHz xDot to a 915MHz part by running a custom firmware image that updates some internal EEPROM values as I could do with the mDots after the flash had been corrupted?
Reason is that I cannot get hold of 915MHz parts for a US based project and apparently the factory don’t have enough available for another month.
Thanks
Andrew
-
AuthorPosts
- You must be logged in to reply to this topic.