Anyone tried Laird RM1XX modules?

(Mduncombe) #269

It's worth mentioning that you can load smartbasic programs over the air and issue certain file management commands over the air. But you can't update the Laird firmware (Nordic soft device+ smartbasic engine).

The RM1xx uses an Nordic nRF51, which has its memory split in two. The first block contains the Nordic soft device and the second block the application. Within that application space, Laird puts the smartbasic engine and creates a filesystem for storage of smartbasic programs, along with some NV storage.

Mark Duncombe
Laird European Field Application Engineer

(Rml) #270


I am trying to connect my RM186 to TTN, but when I try to do "XCompile + Load" on "", I get the error message below. Has anyone encountered the same error and found a fix?
I am wondering whether it could come from an "RM1xx-defs.h" not matching the firmware version (, but I don't know where I could find the correct one.

The error message:

Failed to compile -9; Application failed to compile
rc = LORAMACSetDebug(i[0],i[1],i[2])

Compile Error: (0x0433) TOK_UNEXPECTED_TOKEN_IN_EXPR

File :
Line : 512
Source : rc = LORAMACSetDebug(i[0],i[1],i[2])
: --------^



actually you didn't compile but

start updating everything

(Rml) #272

Good point about the
Do you mean I should upgrade my firmware?
I can't find the tool to do so - it doesn't show up on Laird's website.


no, not really a must - is fine
if you encounter an error during compilation, you can look up the error code.
error codes you can upgrade within the UwTerminal.

could you compile and run 'hello world' from the same page ?

(Rml) #274

Yes "" works fine.
I also tried "", which compiled correctly but did not execute correctly("Failed to open I2C, error code: 00005227") - could not find a match for that error code.


that is by design :sunglasses: I have the same error response, don't know @ this moment.
for i2c I normally use >

(Rml) #276

Thanks for your i2c scanner, it works here as well!
BTW what is the firmware version of your RM186?


(Rml) #278

Where did you get "RM1xxUartFwUpgrade.exe" to upgrade it?
I can't seem to find it on Laird's website - no "software download" on any of the products, and no login area either...


I described the update process here:
you will find that file in the zip file

(Rml) #280

Indeed your guide is very clear and helpful.
The only issue is that I can't find that zip file on Laird's website. If you have a link to the page where you downloaded it, I am very interested!


I cannot find the firmware to .. even after I logged into my user account.

(Rml) #282

Well at least you found the login page - I haven't even managed to go that far...


I happen to have the page with download section open, as you are required to login before you can download I do not mind sharing a few links:
RM191 Firmware (BLE Peripheral) -
RM186 Firmware (BLE Peripheral) -
RM191 Firmware (BLE Central) - v17.4.1.0RM186 Firmware (BLE Central) - v18.4.1.0
Release Notes - RM1xx Firmware v17.4.1.0 and
Release Notes - RM1xx Peripheral v18_17_1_0 and v17_17_1_0.pdf
DVK-RM1xx Schematic-V1.pdf
3D Models - RM1xx

You will be redirected to a page stating access is denied, that page provides the option to login ("CLICK HERE")

(Rml) #285


(Vseta) #286
  • What's the final verdict on RM1xx? Does it work reliably?

  • Is it possible to program it without PCB from Or does it require the $140 Dev Kit to program the module?

Can it collect BLE sensor data from nearby BLE beacons and have a small program running on this module to send sensor data to gateway without PCB and just wiring it for power?

(Jose Marcelino) #287

I've been using the RM186 for a while now (and baking another 10 modules at the moment) and consider them to be very stable.

There are some quirks of course - latest I found was that I couldn't turn pin SIO_3 into an analog input despite what the manual says - but Laird has been very responsive in addressing those in firmware updates. This is true for all modules, so don't assume anything and always test your solution well.

I guess you might not need a PCB for some quick testing, you can solder some wires to the pads, but that's not really something that'll be reliable or effective. You should really have some decoupling caps, a ground plane etc

The $99 development kit isn't necessary to program for the module but I find it helpful - you get things like a coulomb counter which is nice to optimize power usage, buttons, LEDS etc. The schematic is also a good reference for your own circuits.


Check Datasheet (HIG) - RM1xx Series.pdf chapter 5. You will need to wire at least all GNDs, VCCs and provide capacitors between VCC and GND. Also required are UART connections to program the module.

(Bobzega) #291

Error codes can be in either hexadecimal format or decimal format hence why there's two options in the UwTerminalX right-click menu. In this case the error code is 8 characters long which is a sign that it is in hex format (8 hex characters * 4 binary bits per character = 32 bits). If you double click the error click to select it, then right click and select the hex error code option then you should get the correct error code and description listed. Error code 0x5227 is DRIVER_I2C_STUCK_SLAVE: A slave device on the I2C bus is stuck.

In regards to options for flashing the module you can do this with the JLink devices (you also need the 9-pin Cortex-M adapter). If you are a hobbyist then you can get a JLink edu at a discounted price to program the modules but it is against the Segger license agreement to use a JLink edu (or JLink clone) to program modules for commercial use.