I am trying to connect my MKR-WAN-1300 to a private LoRa network that I have at my location.
According to the documentation, if I have my network set up with a EUI and password I should be able to just call modem.joinOTAA("network_EUI_goes_here", "network_password_goes_here"). However, I am getting failures back from that call.
I spent some time and dug into the MKRWAN.h file and think I have pin pointed the problem. When the function set(APP_EUI, appEui) gets called on line 279 of the MKRWAN.h file the AT command that goes out is AT+APPEUI=MY_NETWORK_NAME, but the response back from the Murata CMWX1ZZABZ is just "+ERR"
Anybody have any ideas why that's giving an error back?
I used MKR 1300 WAN with the The Things Network in Europe (868 MHz) with the MKRWAN library.
One has to get the device EUI from the MKR 1300 in order to register the device on a TTN application.
The join, with the gateway not far away, is made at spread factor 7 / 125 KHz, but messages (uplinks) are instead made at SF12 (unfortunately).
I have also to find a way to store the session parameters (join data, frame counter, ...) so to use after sleep.
It is bad practice to make a new join every time one has to send a message.
An addendum to my previous post.
I updated to firmware of the Murata chip to version 1.1.5 before testing with TTN.
One of the MKRWAN library examples allow to update the firmware with a pre-compiled version.
I updated my private network gateway to have a hex EUI and hex password. I am seeing the AT commands working for setting the mode to OTAA and setting the EUI and password. Then the AT+JOIN goes out and OK comes back.
Is there any more debugging we can get from the Murata chip?
Marco_Benini:
An addendum to my previous post.
I updated to firmware of the Murata chip to version 1.1.5 before testing with TTN.
One of the MKRWAN library examples allow to update the firmware with a pre-compiled version.
I was able to update the Murata firmware to version 1.1.5, but I was still not able to get it to connect to my network.
My gateway has one dedicated rx channel (right now set to "7"). It sounds like the standard is for 64 channels, but the gateway just does a modulo/7 operation to trim the 64 channels down to 8 (0-8)
Do you know if there is a way to configure the Murata chip to connect only one on channel?
My LoRa gateway is using set to use sub-band 7. My understanding is that the gateway receives packets on all 64 channels, and then it takes the modulo 8 of all 64. Therefore, if the MKRWAN1300 is using channels 7, 14, 21..., or 63 it should connect. Is there a way to force the MKRWAN1300 to use a specific sub-band, or at least to report which sub-band it's using to connect?
I'm not 100% sure if the join process is being received correctly. But I am able to get other 3rd party devices to work, just not the Arduino. I am able to specify the sub band with the Arduino.
I'm not sure that your question means about making sure that the parameters are written in their registers. Do you think I need to modify the Arduino library to send an AT command to write the parameters from previous AT commands?
cparrish60:
My 1300 would join with the Multitech Conduit gateway, but then it would fail. I switched to "public' lorawan and it worked.
I was able to get it to work when I did this. However, sometimes when I try and join the network it times out. I've changed my setup() code to continuously retry until it eventually does join the network. Sometimes this can take a very long time.
My assumption is that the Murata module is attempting to join on one of the uplink channels that my gateway is not set up to listen on. Is there any way to configure the Murata module to only use one sub band?
Does anyone have good documentation of what the AT commands actually are for the Murata module?