Anyone tried Laird RM1XX modules ? part 2

Yes, had some help from a friend who owns a Segger (edu)

So it is possible to upgrade it simply with jlink edu? Do I need some extra device?

besides a computer… no, I had only 2 rm186 to flash So I didn’t buy one myself … yet
here you’ll find more info but it was written for the dev kit.

where did you pick the u.fl pcb antenna? For some reason they are quite difficult to find

eBay

Hi everybody,
Well, the week was long, but I finally got openOCD working for my RM186.
For information, nrfjprog neither worked on linux for me, I got a pretty

*** J-Link V6.14a J-Link V6.14a Info ***
The connected J-Link (S/N XXXXXXXXX) has been designed to work with devices made by ST only.
Debugging the selected device nRF51822_xxAA is not supported by this J-Link.

To program and debug the target device, please consider purchasing a full J-Link.
More information: <a>https://www.segger.com/jlink-debug-probes.html</a>
*** J-Link V6.14a J-Link V6.14a Info ***

in the wormOld.tmp…It seems that Segger firmware is not as much open bar anymore ;-)…
So, lazy as I was to grab a $60 JLink EDU (I’d rather spend this money on belgian beer), I tried to switch to openOCD.
With the help of this tutorial I got to connect to the laird and to read the flash using

flash read_bank 0 bank0.bin 0 262144
flash read_bank 1 bank1.bin 0 262144

So now, I think the equivalent of this worm reading:

set wrmstart=0x3FC00
set wrmlen=1024
echo grab worm data and convert to hex file
nrfjprog --memrd %wrmstart% --n %wrmlen% --w 8 >wormOld.tmp

if for openOCD:

flash read_bank 0 wormOld.tmp 261120 1024

The content of the wormOld.tmp I got is the following (when opening with an hex editor):

00 FF FC FC FF FF FF FF FF FF FF FF 16 00 00 50 FF FF FF FF 00 00 5F FF F8 F8 00 00 00 50 30 00 00 50 FF FF FF FF FF FF FF FF 02 00 00 00 A5 A5 5F FF F8 F8 16 00 00 50 54 00 00 50 FF FF FF FF FF FF FF FF 07 00 02 00 FF FF XX XX XX XX AC XX XX XX XX XX 5F FF F8 F8 30 00 00 50 72 00 00 50 FF FF FF FF FF FF FF FF 04 00 07 00 FF FF XX 00 00 00 5F FF F8 F8 54 00 00 50 90 00 00 50 FF FF FF FF FF FF FF FF 04 00 08 00 FF FF XX XX FF FF 5F FF F8 F8 72 00 00 50 B2 00 00 50 FF FF FF FF FF FF FF FF 06 00 04 00 FF FF C0 EE 40 00 01 01 XX XX 5F FF F8 F8 90 00 00 50 D4 00 00 50 FF FF FF FF FF FF FF FF 06 00 05 00 FF FF 31 XX 30 35 32 30 31 36 5F FF FC FC B2 00 00 50 FF FF FF FF FF FF FF FF FF FF FF FF 06 00 06 00 FF FF 50 XX XX 30 XX XX XX XX FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .....Only FF

The XX are the values that differ from my first to my second module, so I guess they’re “private”.
Could somebody friendly, that have access to a JLink, compare those values to the ones (s)he got from nrfjprog and confirm (or infirm) that the values I got are the right ones ? Just because I’d prefer to avoid bricking my Laird.
BTW, as far as I could grab informations, this wormy is only for keeping MAC address, but who knows…
Thanks a lot for you help,

Guillaume

It’s the second day I’m working on Laird’s development kit.

I’ve managed to upgrade the firmware, run the ioexpander example, while tempsense does not compile, and cmdloramac returns error 0000001 when I try to join lora.

Has anybody had my same luck?

Did you set the join parameters (appEUI, appkey, etc) correctly for example via at+cfgex followed by atz before trying to join ?

No, I was not able to find any documentation on any of the programs available on github.

The documentation is at https://www.lairdtech.com/products/rm1xx-lora-modules, I suggest reading at least “Interfacing with LoRaWAN” to understand how the join works but really all of them will eventually be useful.

One of the couple of documents I did not read…

AppEui = DevEui = 1001
ati 25 gives me C0EE40000101098B
Should I copy this to the local copy of DevEui?

What should I write in the AppKey?

AppEUI and AppKey come from the TTN console after you register your application and device

You don’t need to make a copy of the DevEUI, the RM186 will use what’s reported by ati 25

Done. Error 0000001. What does it means?

Can you explain what you’re trying to run?

If you could list your commands including setting the appEUI etc it would help

at i 3
10	3	18.4.1.0
atz
at&f 1
FFS Erased, Rebooting...�
at+dir
00
(no files Xcompile+load ioexpander.rm1xx.sb)
10	0	RM186
00
10	13	A780 BF25 
00
10	0	RM186
00
10	13	A780 BF25 
00
10	0	RM186
00
10	13	A780 BF25 
-- XCompile complete (1.02KB) --

-- Finished downloading file --
at+dir

06	ioexpander
00
ioexpander
Press SW1/Button1 on the DVK to flash the LEDs
exit
01	E007
(ioexpander works ok. tempsens.rm1xx.sb does not compile)
(Xcompile+load cmd.loramac.rm1xx.sb)
10	0	RM186
00
10	13	A780 BF25 
00
-- XCompile complete (19.4KB) --

-- Finished downloading file --

at+dir

06	ioexpander
06	cmd
00
at+cfgex 1010?
27	70B3D57EF00043E6
at+cfgex 1011?
27	07DD000000000001
at+cfgex 1012?
01	0208
at+cfgex 1012 "BFEC856DB6014AC9686B54503ABE2507"
00

(run cmd.loramac.rm1xx.sb)
cmd

OK
join

ERROR 00000001
join lora

ERROR 00000001
volts
Input voltage = 3336mV

OK
check loop

ERROR 00000001
ble_scan

ERROR 00000005
cancel

ERROR 00000001

Ok so you’re trying to use the ‘cmd’ sample application.

I think the join command there is lora join ( and lora send YourString to send data )

But why don’t you try your own smartbasic script? The cmd app is really an example, not how you usually interface with the module.

Oh f#@k! I did it so many times…

Attempting to join the LoRa network
Tx Done
Successfully joined the LoRa network

THANKS!!!

lora send "jmarcelino"

OK

Tx Done
No Sync pulse
LoRa TX Complete Event
No Sync pulse

On the Raspberry + iC880 gateway:

Apr 14 20:16:54 ttn-it-ge1 ttn-gateway[749]: INFO: [up] PUSH_ACK for server router.eu.thethings.network received in 45 ms
Apr 14 20:16:57 ttn-it-ge1 ttn-gateway[749]: INFO: [down] for server router.eu.thethings.network PULL_ACK received in 49 ms
Apr 14 20:17:01 ttn-it-ge1 CRON[837]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Apr 14 20:17:02 ttn-it-ge1 ttn-gateway[749]: INFO: [#260121DB] uUP CRC:OK Freq:867.90MHz ch:7 RFch:0 LORA[SF12 125Khz 4/5] RSSI:-31dB SNR:+7.5dB Size:25b Data:'QNshASaAAQAApWc5rgPFe3SnRpBDKDtAFw=='
Apr 14 20:17:02 ttn-it-ge1 ttn-gateway[749]: INFO: [up] PUSH_ACK for server router.eu.thethings.network received in 45 ms
Apr 14 20:17:07 ttn-it-ge1 ttn-gateway[749]: INFO: [down] for server router.eu.thethings.network PULL_ACK received in 48 ms
Apr 14 20:17:17 ttn-it-ge1 ttn-gateway[749]: INFO: [down] for server router.eu.thethings.network PULL_ACK received in 48 ms
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: ### [UPSTREAM] ###
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # RF packets received by concentrator: 0
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # CRC_OK: 0.00%, CRC_FAIL: 0.00%, NO_CRC: 0.00%
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # RF packets forwarded: 0 (0 bytes)
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # PUSH_DATA datagrams sent: 1 (230 bytes)
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # PUSH_DATA acknowledged: 100.00%
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: ### [DOWNSTREAM] ###
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # PULL_DATA sent: 3 (100.00% acknowledged)
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # PULL_RESP(onse) datagrams received: 0 (0 bytes)
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # RF packets sent to concentrator: 0 (0 bytes)
Apr 14 20:17:54 ttn-it-ge1 ttn-gateway[749]: # TX errors: 0

The TTN console never sees my gateway, but that's another story.

Thanks again

Great! By the way the “No Sync pulse” is perfectly normal, nothing to be worried.