Anyone tried Laird RM1XX modules?

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

2 Likes

Hello,

I am trying to connect my RM186 to TTN, but when I try to do “XCompile + Load” on “cmd.loramac.rm1xx.sb”, 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 (18.4.0.26), but I don’t know where I could find the correct one.
Thanks!

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   : test.sb
Line   : 512
Source : 			rc = LORAMACSetDebug(i[0],i[1],i[2])
       : --------^

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 Likes

actually you didn’t compile cmd.loramac.rm1xx.sb but test.sb

start updating everything

Good point about the test.sb.
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 - 18.4.0.26 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 ?

Yes “HelloWorldLoop.sb” works fine.
I also tried “i2cscan.sb”, 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 > https://github.com/borroz/smartBASIC---I2C-scanner/blob/gh-pages/I2Cscan11.sb

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

18.4.1.0

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: Anyone tried Laird RM1XX modules?
you will find that file in the zip file

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!
Cheers

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

  • they moved the software downloads to the support desk :confounded:

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) - v17.17.1.0.zip
RM186 Firmware (BLE Peripheral) - v18.17.1.0.zip
RM191 Firmware (BLE Central) - v17.4.1.0RM186 Firmware (BLE Central) - v18.4.1.0
Release Notes - RM1xx Firmware v17.4.1.0 and 18.4.1.0.pdf
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”)

1 Like

Thanks!

  • What’s the final verdict on RM1xx? Does it work reliably?

  • Is it possible to program it without PCB from PCBs.io? 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?

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.

3 Likes

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.

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.

1 Like