Anyone tried Laird RM1XX modules ? part 2

(Ricardo Sousa) #106

Hi, Im trying to change my RM186 BLE from central to peripherical. After reading all the posts you guys share from your successful experiences and contacting Laird for additional information, I’m not being able to connect my j-link base from Segger to the module.

I dont have the DVK(only the module) and I’m doing it with the 19 pin connector. Also I saw that Laird did an new release on the firmware, which got to new upgrades without new information. The main problem should be the pinout connection to the module, since I only got the 19 pin connector and the j-link does all correctly except he cant connect to the module.


I’ve been programming these via SWD recently (flashing from central to peripheral). I’ve used a NRF dev kit with jlink firmware, but a segger should also work. Working with a bare RM186, you need to wire pin22 (nreset) to SWDIO, pin23 (nc) to SWCLK, pin 24 (gnd) to gnd, and pin 12 (vcc) to VTref. Segger is programming via SWD. This assumes that you are powering the RM186 via a 3.3V supply as the Segger does not provide it. I then verify connection to the device using NRF Studio, you’ll be able to see the firmware layout on the RM186 if you connected fine, after that, I flashed using the firmware tool supplied by laird rather than using NRF studio.

(Ricardo Sousa) #108

Thank you for the information. I was trying JTAG pinout on j-link. Now I changed the pinout and connected all fine, but still not able to connect/identify the RM186. Could you explain me how you are doing it with the software?



I use nRFgo Studio to verify the connection - as you see I’m using the a nordic NRF52 dev kit as my programmer and this is connected to the RM186 via SWD (P20 header connector). The NRF52 is setup with a jlink segger firmware. The photo shows the nRF51822 (the mcu on the RM186) listed and the layout of its firmware (bootloader, application and softdevice). I use this to make sure I’ve wired up my programmer correctly and that windows is able to see the device.

Next I followed the instructions included with the RM186 PE firmware - basically fire up an admin command prompt, navigate to the directory where the firmware is, and then “__LoadCombinedRM1xx_PE.bat 186_EU”.

(Ricardo Sousa) #110

Thank you so much for the help you providing. Unfortunatly I’m not being able to detect the RM186 yet, but I’m still trying to figure out why and meking sure the pinout is well connected.

(Aigo84) #116

For all the people struggling with flashing the firmware, you can flash it with OpenOCD and a cheap STLink (around 13€) via SWD, but the procedure is somehow dangerous so until I write a complete tutorial with some extra safety operations tested (i.e until I flash another module), I prefer to give it by PM to people that I know they know what they’re doing.

Also, if you are tired to flash with UWTerminalX for compiling, I wrote a command line tool in python, well it’s not that elegant (a lot of hardcoded values) , but if it can help somebody it’s here:

(Derchris) #117

I hope this thread is still alive :slight_smile:

Two questions:

  • did someone find out how the Semtech is wired to the nRF51 inside the RM1xx? Asking because knowing that would make it possible to use c++
  • Class C can be set via cmd, but it seems to me that it doesn‘t make any difference: RX is only triggered after TX

Edit: Uh, I’ve noticed that TTN still doesn’t support Class C. So 2nd question is answered.

Any news on Class C implementation?
(Tarrinr) #118


Thought I’d show off my RM191 GPS board I made.

I just finished the firmware, and I’ve been driving all around testing it’s range. I can’t believe how far thing thing can go. I really enjoy smartBASIC, and was able to pick it up pretty fast. I love this little Laird module.


nice ! and wiith gps too …

(Jade7272) #120

Here is my Laird RM191 Solar monitor 3xI2C power monitors 1xAltimeter 1XAcceleromiterimage

(Cobis) #121

Hi all, this forum has been super helpful in my own development so thank you all.

I’ve got a problem running my smartBASIC applications whereby the device connects to the network and sends packets without issue while within range of the gateway but when I leave the range of the gateway and return it does not get back on the network.

I am using OTAA keys because I may have devices change networks, and my application contemplates the device leaving the network through the use of a global ‘joined’ variable that is manipulated in handlers. If the global is set low by handlers, it attempts to connect using OTAA on a timer and if the global is set hi it will transmit status on the same timer. I have a LED that flashes twice if connected and once if disconnected every 15 seconds based on the ‘joined’ variable state that does what is expected so I know the device is recognizing leaving the network it just doesn’t seem to want to talk to the gateway when it returns.

Have any of you run into this before??

(Tony Smith) #123

Is anyone successfully running a RM191 on Australian AU915. Starting with an example application from Laird, my RM191 transmits out of band (can see with SDR) but once it joins it reliably continues to send packets on the correct AU915 channels. Using the configuration at+cfgex 1009 “0002000000000000ff00” for AU915 and running version (result of at i 3) I’m confused as once it joins the frequencies are correct. I have assumed if the channel configuration is wrong, after joining it would continue to use a combination of correct and incorrect channels.

(Jac Kersing) #124

On OTAA join the network provides the channel information to the node. The original channel information is overwritten with the information received.

(Tony Smith) #125

Ahhh, that’s very interesting. The node must therefore be set for US915 not AU915, even though I’ve installed what I think is the AU version. Thanks @kersing

(Tony Smith) #126

Solved, Thanks @kersing, found there is a configuration bit that determines if the RM191 follows the channel plan OR broadcasts on all 64 channels. Thanks again for a wonderful piece of information.