How to Parse LoRa-E5-HF module CMSGHEX response

I am operating a Grove board with a LoRa-E5-HF module. I have connected this board/module to TTN and am able to Join and send CMSGHEX commands among others via the module RxD, TxD. After I send a command the module emits response(s). See the example CMSGHEX below.

Module responses, especially the JOIN response, seem to vary somewhat in both content and timing. This makes creating software to parse module response somewhat of a problem.

Is there a document that lists all the possible responses and the time it may take for the module to respond? If not, is there an example C-language program that I can pick apart? A robust example of sending CMSGHEX, determining errors, and capturing the RX (if any) will be very appreciated.

Thanks in advance for any help!

Mike

16:25:14 Command: CMSGHEX=“016884a7b1c385”
+CMSGHEX: Start
+CMSGHEX: Wait ACK
+CMSGHEX: FPENDING
+CMSGHEX: ACK Received
+CMSGHEX: PORT: 15; RX: “48656C6C6F”
+CMSGHEX: RXWIN1, RSSI -43, SNR 10.0
+CMSGHEX: Done

Unfortunately, there isn’t a comprehensive official document listing all possible responses and their timings, but you can rely on the information provided in the LoRa-E5-HF AT Command Manual and user community resources.

Thanks! I guess I’ll just ask specific questions here as they occur.

Have you observed any specific patterns or conditions under which the JOIN response varies in content and timing?

Yes. I emphasize I am using LoRa-E5-HF module. I believe the responses below are specific to this module and not generally a part of the LoRaWAN specification. My “10 second delay” is how long my software blindly waits before processing its input buffer. The actual time for the module to emit a response is not shown, although it is less than 10 seconds.

  • JOIN attempt with no gateway just after power on, 10 second delay
  • Command: JOIN
  • +JOIN: Start
    
  • +JOIN: NORMAL
    
  • +JOIN: Join failed
    
  • +JOIN: Done
    
  • JOIN attempt with gateway present just after power on, 10 seconds delay
  • Command: JOIN
  • +JOIN: Start
    
  • +JOIN: NORMAL
    
  • +JOIN: Network joined
    
  • +JOIN: NetID 000013 DevAddr 26:0C:6E:00
    
  • +JOIN: Done
    
  • JOIN attempt with gateway present, already joined, 10 seconds delay
  • (Note: no transaction appears at gateway.)
  • Command: JOIN
  • +JOIN: Joined already

I can send CMSGHEX commands and receive responses via the module’s RxD and TxD pins, I’m encountering some challenges. The responses, particularly the JOIN response, vary in both content and timing, which complicates my efforts to create reliable software for parsing these responses. I’m wondering if there is any documentation available that outlines all possible responses along with their expected response times.

Sorry, I have not found much to describe the various Seeed LoRa-E5-HF module responses.

You can try Seeed document LoRa-e5 AT Command Specification V1.0

I simply tried the module in various states with results below. My sofware sent the JOIN command, then accumulated all responses that occurred in the following 10 or 30 seconds. Later I modified my software JOIN function to return immediately after receiving “Done” or return after 30 second time out, and return a pointer to buffer containing the module result, which I parse through. I also show responses to CMSHEX. Commands are shown without showing the terminator \n which is added at the time the command is sent via serial connection.

Mike

  • JOIN attempt with no gateway just after power on, 10 second delay
  • Command: JOIN
  • +JOIN: Start
    
  • +JOIN: NORMAL
    
  • +JOIN: Join failed
    
  • +JOIN: Done
    
  • JOIN attempt with gateway present just after power on, 10 seconds delay
  • Command: JOIN
  • +JOIN: Start
    
  • +JOIN: NORMAL
    
  • +JOIN: Network joined
    
  • +JOIN: NetID 000013 DevAddr 26:0C:6E:00
    
  • +JOIN: Done
    
  • JOIN attempt with gateway present, already joined, 10 seconds delay
  • (Note: no transaction appears at gateway.)
  • Command: JOIN
  • +JOIN: Joined already
    
    • 3407 GPS Board Tests - CMSGHEX
  • =================================
  • CMSGHEX without join, 30 second delay
  • Command: CMSGHEX=“016b8ea743f77d”
  • +CMSGHEX: Please join network first
    
  • CMSGHEX after join, gateway present, no downlink pending, 30 seconds delay
  • Command: CMSGHEX=“016f5aa3e8d781”
  • +CMSGHEX: Start
    
  • +CMSGHEX: Wait ACK
    
  • +CMSGHEX: FPENDING
    
  • +CMSGHEX: ACK Received
    
  • +CMSGHEX: RXWIN1, RSSI -48, SNR 8.0
    
  • +CMSGHEX: Done
    
  • CMSGHEX after join, gateway present, downlink pending, 30 seconds delay
  • Command: CMSGHEX=“0163eaa7d8bd82”
  • +CMSGHEX: Start
    
  • +CMSGHEX: Wait ACK
    
  • +CMSGHEX: ACK Received
    
  • +CMSGHEX: PORT: 15; RX: "48656C6C6F"
    
  • +CMSGHEX: RXWIN1, RSSI -47, SNR 10.0
    
  • +CMSGHEX: Done
    
  • CMSGHEX after join, gateway NOT present, 30 seconds delay
  • Command: CMSGHEX=“0167f9a44dd379”
  • +CMSGHEX: Start
    
  • +CMSGHEX: Wait ACK
    
  • +CMSGHEX: Done