Anyone tried Laird RM1XX modules ? part 2

It looks like that by changing the 1 to 0 on the channel mask ALL the 8 500kHz channels - which appear on 1.6Mhz boundaries - became enabled. Effectively the same as changing the 1 to FF.

(500 kHz channels 64 - 71 are at:
903, 904.6, 906.2, 907.8, 909.4, 911.0, 912.6, 914.2
which matches what you’re seeing)

So I’m really not sure how to disable these higher channels. But I’m surprised if your gateway isn’t listening on one of those 500 kHz channels too, is there some configuration? I’m not sure how Microchip gateways work.

Also are you running the latest Laird firmware? You can check your version with

at i 3

latest for the RM191 should be 17.4.1.0

Yes, I have the latest firmware, 17.4.1.0

To my knowledge, there is no way to change the channel configuration of the Microchip gateway. If there is, it is not documented anywhere that I could find. The gateway is factory configured for channels 0 to 7. Here is an excerpt from the evaluation user guide:

The RN2903 915 MHz module has its full range of channels (0-63) enabled by default. The Microchip Gateway Radio board is only capable of eight channels of operation. By default it will use the lower eight channels; as a result, the RN2903 end-device channels must be configured for use (Figure 6-1). This can quickly and easily be done through the Utility by selecting the Module from the Device List, then selecting the MAC Channels tab; seen in Figure 6-2.

This seems to suggest the Microchip gateway might not enable the 500 kHz channel.

Well it’s a bit bizarre to me that you can’t configure the frequencies on the gateway or enable the 500 kHz channels as required by the LoRaWAN standard, but it does appear to be the case for that Microchip one.

I’ve asked some people more experienced with US setups if they have any ideas on how to disable those particular channels, will get back to you if I find anything.

Thank you for your help. I am attempting to get an account set up on the Microchip forum so I can ask the question about why they do not follow the standard and if there is a way to enable to 500 kHz channel. It’s an odd registration process … you fill out the form and they tell you they will get back to you in “a while”. It has been several hours now …

@sslupsky

I have newer engineering firmware from Laird which should join both on 125khz and 500kHz channels and should solve your problem. The current firmware does require 500kHz channels for joins.

Let me know if you’re interested in this firmware. If you direct message me your e-mail address - click on my username here and choose Message - I can send it to you.

If you prefer you can also contact Laird support and request engineering firmware 101.5.0.7 for the RM191

The relevant release notes are:

"'Also, the module only transmitted the JoinRequest on one of the 500 kHz channels. Because these channels have less range than some of the possible 125 kHz channel configurations, transmitting on 500 kHz channels could affect performance; the module could have been out of range of the nearest gateway.
This is fixed in the new version of the stack. The stack now switches between random 125 kHz and 500 kHz channels as defined in the LoRaWAN spec.

Or you can just get it from here:-

http://www.summitdata.com/blog/new-updates-enhance-laird-rm1xx-and-smartbasic-radios/

Well no, version 101.5.0.7 is not available on the web yet, it’s engineering firmware. So it must be requested.

Hooray!!! The new firmware addresses the issue with the Microchip gateway. Today I was able to get the module to join.

I was also able to send a message using:

lora send “hello” 100 1

Thank you!!! :slight_smile:

2 Likes

Glad you got it sorted!:smiley:

1 Like

I have a bug I would like confirmed if anyone has the time. With the following:

rc = gpiosetfunc(28,1,0x00)
rc = gpioassignevent(0,28,0)

If pin7 (SIO 28) is high, the Lora tx does not work. Happens on any of my RM1xx modules and seems to not be specific to that GPIO pin either. Did I mess something up?

Thanks in advance

sio28 is kind of “special” in older firmwares, have you tried the Peripheral firmware?
But I’m confused when you say “not specific to that GPIO”.

Also does it work if you use GpioBindEvent instead?

Haven’t tried the peripheral firmware yet because of the flashing method (don’t have a jtag programmer) . What I meant is that any pin that can be turned into a dig in yields the same problem… I have tried GpioBindEvent with the same result.

Umm, then that’s nothing I know about and I’ve used GpioBindEvent extensively. What sort of circuit is this on? Power supplies, etc.

You’re not using the development kit right?

What do you mean exactly by “Lora tx does not work”.

I hope I’m not going crazy because for the past couple of weeks I have been experiencing this issue + trying workarounds. Its got more to do with setting up a gpio pin as a digital in. Ignore the gpiobindevent for now, its part of a follow up problem. What I mean by the LoRa tx thing is that all messages fail to send, whether it’s a join request or sending actual data. I have some code ill attach when I get home that you can replicate the issue with. Using a custom board, not very complicated, I know the LoRa module disallowes tx when the voltage is above threshold, which is not the case either. Laird confirmed the bug, but I don’t trust they checked thoroughly because you have to convince them your problem is going to lose them cash so that they can prioritise accordingly.

Excuse the code, a lot hacked out to get the key points across. The input circuit is a switch with external pull up resistor. On the new circuit board revision, I used the internal pull up with no change…

In this output below generated by running the code, its clear that every time MOV is a logic high, LoRa transmit fails.

Messgage failed…[BATTERY] 0 _____ 0
[ANGLE] 1023 _____ 1200
[TEMP] 584 _____ 185
[LUX] 666 _____ 781
[MOV INS] 1 _____ 1
[MOV] 1 _____ 220
[BATTERY] 0 _____ 0
[ANGLE] 1023 _____ 1200
[TEMP] 585 _____ 186
[LUX] 666 _____ 781
[MOV INS] 1 _____ 1
[MOV] 1 _____ 220

Messgage failed…[BATTERY] 0 _____ 0
[ANGLE] 1023 _____ 1200
[TEMP] 583 _____ 183
[LUX] 666 _____ 781
[MOV INS] 1 _____ 1
[MOV] 1 _____ 278
[BATTERY] 0 _____ 0
[ANGLE] 1023 _____ 1200
[TEMP] 589 _____ 190
[LUX] 666 _____ 781
[MOV INS] 1 _____ 1
[MOV] 1 _____ 278

Messgage failed…[BATTERY] 0 _____ 0
[ANGLE] 1023 _____ 1200
[TEMP] 579 _____ 179
[LUX] 668 _____ 783
[MOV INS] 0 _____ 0
[MOV] 0 _____ 477

[LORA] Messgage sent: 01200179783477
[LORA] All messages sent

Thanks I’ll try your code when I get some time.

It’s surprising because my applications use digital ins for many things, both as regular input pins and for stuff like buttons with pull-ups and I never noticed any interference with LoRa.

I could perhaps imagine a fluctuating pin triggering several events during the lora send or join causing problems. I’ve seen some weird things happening if you change values during transmission (until you get a TXDONE)

Had a quick glance. Are you perhaps not trying to queue too many messages with LORAMACTxData?

The safe approach is to prevent any any more calls LORAMACTxData() until the previous queued packet was sent (when you get a EVLORAMACTXDONE), if you try to queue more they fail.

Thanks for taking a look. Luckily I haven’t had the issue of too many messages queued up, but thanks for the heads up. In the actual program, everything is very carefully timed. In fact, I halt all interrupts and turn the GPS off just to ensure the radio gets priority in terms of power. Once the tx is done, everything is reactivated.

The input to that pin is a chattering movement sensor. When the device was stationary everything worked, provided the sensor was closed circuit. When mobile I started noticing some gaps in scheduled transmissions, and then it hit me - if the sensor happened to be closed at the time of tx, it successfully transmitted. To confirm, I replaced it with a switch that I could control and came to the conclusion…

Yeah, it is weird. But, I have been working with the RM186 for about 9 months and I have seen some strange things indeed.

I spent the last year with developing for Laird’s BL652 but with the more “native” nRF SDK toolchain.
As this module is based on one of these, I wonder why it is not possible to run a custom firmware… I mean, there have to be mappings for the LoRa stack