cancel
Showing results for 
Search instead for 
Did you mean: 

JSON Payload Not Received in Downlink in LoRaWAN

anupam1511
Associate II

Hi everyone,

I am using the LoRaWAN_AT_Slave example code on an STM32WL-based device, and I am operating in OTAA mode with the ChirpStack server to monitor the data. I am successfully sending sensor data to the server at the specified intervals.

I have checked the ChirpStack server, and I can confirm that both uplink and downlink data are being successfully received and transmitted. Now, I want to send a downlink from the ChirpStack server. There are two options for sending the downlink: either in base64 format or in JSON format.

When I send the downlink in base64 format, I am successfully receiving the downlink. I am attaching a picture below for reference; please check it out.

Downlink.png

 

Below is the logs printed on the serial monitor.

Downlink_Processing.png

 

Now I am trying to send the downlink in JSON Object. Below is the picture of sending the JSON Object:

Downlink_JSON_Payload.png

This JSON Object is successfully transmitted from chirpstack server to my device. But, on my device I am not getting the data which i have sent from the server. Below is the log output in serial monitor.

 

Downlink_Received.png

 

In conclusion , i am getting data when i sent it in base64 format but not getting data when i sent it in json format.

My Questions:

1. Can I send JSON payloads with different parameters like the one above, or is this not supported by the         LoRaWAN system or the STM32WL firmware?

2. Do I need to modify the LoRaWAN_AT_Slave example code to properly handle such payloads?
I’d appreciate any insights or suggestions on how to resolve this issue.

I would appreciate further guidance on verifying whether the STM32WL-based device supports downlink payloads with nested JSON objects or if additional modifications are required in the firmware.

Thanks in advance!

Regards,

Anupam 

2 REPLIES 2

@anupam1511 wrote:

This JSON Object is successfully transmitted from chirpstack server to my device. But, on my device I am not getting the data which i have sent from the server. Below is the log output in serial monitor. 


How do you know that?

A lot happens between you entering that on your console, and the data actually reaching the device - how do you know that it isn't getting lost/removed somewhere before your device?