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
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.