Failed to publish to a topic in AWS

I'm using DA 16200mod evk  to publish to a topic in Aws. Downloaded the DA16200 firmware image '.ttl'  script from DA16200_DA16600_AWS_v3.2.8.0_ATCMD_img. Have sent the three certificates files over uart.I have done the configurations using AT commands sending from nRF52840 DK uart, as follows

"AT+AWS=SET APP_THINGNAME tap-pet-nrf-device\r\n");
   
("AT+AWS=SET AWS_BROKER a3kbzziaf9hg4n-ats.iot.us-east-1.amazonaws.com\r\n");
    ("AT+AWS=SET APP_LPORT 8443\r\n");
    ("AT+AWS=CFG 0 sample/pet 0 0\r\n");
    ("AT+AWS=CMD MCU_DATA 0 sample/pet 25\n\r");
All in station mode
As per the manual after this a factory reset is to be done which leads to soft ap mode and waiting for provisioning. But here it is entering soft AP mode but no wfscan happens or provisioning cannot be done. 
In teraterm I'm getting it with error as shown below (when nrf transmits AT COMMANDS to DA)
Parents Reply Children
  • A gentle remainder. Please let me know if any updates.

  • Hi Vani,

    Apologies for the delay. 
    Could you please share the whole UART0 (Debug Console Interface) logs with Timestamps?
    In order to add timestamp and keep the log file:
    On Tera Term--> FIle--> Log.. --> Make sure you select the Timestamp option.
    Please also make sure you define the DEBUG_ATCMD macro, so we can get all the debug info from the AT commands on the UART0.

    Best Regards,
    OV_Renesas

  • Hi,

    I will be following this from now on behalf of Vani. Regret any inconvenience caused. 

    As you mentioned, we enabled the timestamp option and have attached the file herein. But please note that firmware ‘DA16200_DA16600_AWS_v3.2.8.0_ATCMD_img’ from https://www.renesas.com/us/en/document/sws/aws-iot-atcmd-image-freertos-sdk?r=1600096 was used by us. 

    If we need to include the DEBUG_ATCMD macro, could you please help us with the corresponding sample software file which will support the AT commands and wherein we can possibly define the mentioned DEBUG_ATCMD macro? 

    Please let me know your feedback.

    Thanks and Regards,

    Raji

    0552.teraterm.log

  • Hi Raji,

    Thank you for the reply.
    You are using the pre-compiled images.
    For the generic FreeRTOS SDK v3.2.8.0 AWS:
    1) Download the FreeRTOS SDK v3.2..8.1
    2) Download the AWS IoT Reference for FreeRTOS SDK
    Inside the AWS IoT Reference for FreeRTOS there is a ReadMe file on how to integrate the AWS functionalities on the generic SDK.

    In order to enable the AT commands please refer on UM-WI-003, on section 4.1.1 How to Run AT-CMD on UART, on page: 26

    You can define the DEBUG_ATCMD macro there or in the atcmd.c/h files.
    Follow the steps of the UM-WI-056, on section 5.4 Importing DA16200 FreeRTOS SDK Project into e 2studio, on page: 36 so you can understand how to Import and Build your project on e2studio.

    We would also recommend you follow our available example first to understand how to configure the AWS Server and the DA16200 based on the following documents. 
    1) UM-WI-017 DA16200 AWS IoT Server Setup (renesas.com)
    2) UM-WI-016 DA16200 Door Lock Application Using AWS IoT (renesas.com)
    3)UM-WI-038 DA16200 DA16600 Getting Started with AT Command for AWS IoT (renesas.com)
    For our Demo, you will our Wi-Fi Provisioning App to test it:
    Renesas WiFiProvisioning - Apps on Google Play

    From the log file you shared it is not clear to me how you issue the AT commands and the responses, this is the reason we need the DEBUG_ATCMD macro defined.
    On the log file I can see:

                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                   
    =======================================================                                                                                                                                                                                                                                                        
    argc num = 2                                                                                                                                                                                                                                                                                                   
    argv[0]: AT+AWS                                                                                                                                                                                                                                                                                                
    argv[1]: SET APP_THINGNAME vani_aws_iot                                                                                                                                                                                                                                                                        
    =======================================================                                                                                                                                                                                                                                                        
    APP SET vani_aws_iot                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                   
    =======================================================                                                                                                                                                                                                                                                        
    argc num = 2                                                                                                                                                                                                                                                                                                   
    argv[0]: AT+AWS                                                                                                                                                                                                                                                                                                
    argv[1]: SET APP_PUBTOPIC vani_aws_iot/DeviceControl                                                                                                                                                                                                                                                           
    =======================================================                                                                                                                                                                                                                                                        
    APP SET vani_aws_iot/DeviceControl                                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                                                   
    =======================================================                                                                                                                                                                                                                                                        
    argc num = 2                                                                                                                                                                                                                                                                                                   
    argv[0]: AT+AWS                                                                                                                                                                                                                                                                                                
    argv[1]: SET AWS_BROKER a3kbzziaf9hg4n-ats.iot.us-east-1.amazonaws.com                                                                                                                                                                                                                                         
    =======================================================                                                                                                                                                                                                                                                        
    APP SET a3kbzziaf9hg4n-ats.iot.us-east-1.amazonaws.com                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                   
    =======================================================                                                                                                                                                                                                                                                        
    argc num = 2                                                                                                                                                                                                                                                                                                   
    argv[0]: AT+AWS                                                                                                                                                                                                                                                                                                
    argv[1]: CFG 1 mcu_door 1 0                                                                                                                                                                                                                                                                                    
    =======================================================                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                   
    =======================================================                                                                                                                                                                                                                                                        
    Att[1] number   : 1                                                                                                                                                                                                                                                                                            
    Att[1] name     : mcu_door                                                                                                                                                                                                                                                                                     
    Att[1] data type: 1                                                                                                                                                                                                                                                                                            
    Att[1] MQTT type: 0                                                                                                                                                                                                                                                                                            
    =======================================================    

    Which according to UM-WI-038:

    You have set 1 MQTT connection, on topic named mcu_door, which has value of string and you would like to publish on that.
    However later on the logs I can see:
    =======================================================                                                                                                                                                                                                                                                        
    argc num = 2                                                                                                                                                                                                                                                                                                   
    argv[0]: AT+AWS                                                                                                                                                                                                                                                                                                
    argv[1]: CMD MCU_DATA 1 mcu_door opened                                                                                                                                                                                                                                                                        
    =======================================================                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                   
    board feature :                                                                                                                                                                                                                                                                                                
    topicCount : 1                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                   
    Count : 0, cmdNum = 1                                                                                                                                                                                                                                                                                          
    mqtttype = 0                                                                                                                                                                                                                                                                                                   
    data type(publish)=1                                                                                                                                                                                                                                                                                           
    call publish: 1 mcu_door opened                                                                                                                                                                                                                                                                                
    [ERROR] [MQTT] [validatePublishParams:1756] Packet Id is 0 for PUBLISH with QoS=1.                                                                                                                                                                                                                             
    [ERROR] [MQTT] [MQTT_Publish:2193] MQTT PUBLISH failed with status MQTTBadParameter.                                                                                                                                                                                                                           
    [ERROR] [PkcsTlsTransport] [xPublishToTopic:1396] Failed to send PUBLISH packet to broker with error = MQTTBadParameter.                                                                                                                                                                                       
    publish (contents update) NG - topic : vani_aws_iot/DeviceControl payload: 1 mcu_door opened                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                   
    [/DA16200] #                                                                                                                                                                                                                                                                                                   
    =======================================================                                                                                                                                                                                                                                                        
    argc num = 2                                                                                                                                                                                                                                                                                                   
    argv[0]: AT+AWS                                                                                                                                                                                                                                                                                                
    argv[1]: CMD MCU_DATA 1 mcu_door opened                                                                                                                                                                                                                                                                        
    =======================================================                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                                                   
    board feature :                                                                                                                                                                                                                                                                                                
    topicCount : 1                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                   
    Count : 0, cmdNum = 1                                                                                                                                                                                                                                                                                          
    mqtttype = 0                                                                                                                                                                                                                                                                                                   
    data type(publish)=1                                                                                                                                                                                                                                                                                           
    call publish: 1 mcu_door opened                                                                                                                                                                                                                                                                                
    [ERROR] [MQTT] [MQTT_SerializePublishHeader:1995] Argument cannot be NULL: pFixedBuffer->pBuffer is NULL.                                                                                                                                                                                                      
    [ERROR] [MQTT] [MQTT_Publish:2193] MQTT PUBLISH failed with status MQTTBadParameter.                                                                                                                                                                                                                           
    [ERROR] [PkcsTlsTransport] [xPublishToTopic:1396] Failed to send PUBLISH packet to broker with error = MQTTBadParameter.                                                                                                                                                                                       
    publish (contents update) NG - topic : vani_aws_iot/DeviceControl payload: 1 mcu_door opened    

    The MQTTBadParameter return status corresponds to wrong parameters or configuration. 
    I believe that you should follow the AWS Server Setup to make sure that everything is configured correctly and follow the doorlock example based on the Mobile application we provide.

    Best Regards,
    OV_Renesas



  • Hi,

    Thank you for you detailed reply.  I followed your instructions, copied the AWS IoT package in the '~SDK\apps\' directory of the DA16200_DA16600 Generic SDK V3.2.8.1, defined the DEBUG_ATCMD macro and built it using e2 studio.  But after flashing the new images in the DA16200MOD-DeVKT through teraterm using the macro and .ttl script generated as shown below,

    it failed to take in the AWS AT commands to connect to my IOT thingname.  as shown here- 
    Earlier when we used the precompiled images taken from the site, the SDK version showed an AWS reference as shown below-
    On flashing the custom image, this is what I received-
    Also the earlier case had resulted in a status message soon after the wifi connection message was established as shown below-
    Please let me know if this SDK has AWS support and if yes, why was I getting an error for AT+AWS SET APP_THINGNAME
    Please note that we are trying to establish a connection to the AWS through PC via DA16200 module via teraterm using AT commands alone for the time being. 
    Thanks and Regards,
    Raji
  • Hi, 

    Request you to please help me debug the above connection issue on flashing the custom image.  Any modification need to be done in any of the sdk headers/files?

    Thanks in advance,

    Raji

  • Hi Raji,

    Thank you for the reply and apologies for the delay.

    Thank you for you detailed reply.  I followed your instructions, copied the AWS IoT package in the '~SDK\apps\' directory of the DA16200_DA16600 Generic SDK V3.2.8.1, defined the DEBUG_ATCMD macro and built it using e2 studio.  But after flashing the new images in the DA16200MOD-DeVKT through teraterm using the macro and .ttl script generated as shown below,

    I believe you used the wrong .ttl script to flash your board.
    Note: Please refer on UM-WI-056 on how to add the launchers on the e2studio.
    On section 5.5.2 Changing Flash Configuration, on page:44. 
    Follow the same steps but select the following:

    When the Build operation is finished, you should see the following 

    Now you can select the Run External Tools button   and select the uart_program_boot_rtos_win launcher.

    After that, specify the COM on the console and make sure that the device is not in DPM sleep (Reset it) after that the firmware should be downloaded automatically:

    Then please try to test the UART1 via AT commands.

    Best Regards,
    OV_Renesas

  • Hi,

    Thank you for your speedy response.  I included utility as instructed in the 'Import launch configurations', gave the build, did run via 'uart_program_boot_rtos_win' and selected the lower COM port and also reset.  But it gave me an error like this-  failed to download error-

    I also tried downloading the images through ttl macro.  But again, as you mentioned it is the wrong script and I got the same error as expected-

    Please help me rectify the download error.  I wonder if the read is not happening correctly.  

    Thanks and Regards,

    Raji

  • Hi Raji,

    Thank you for the reply.
    From the screenshot you shared, I have two points to highlight:
    1) I do not think you have imported the correct project to work on AWS. You should import the da16200_aws project. 
    2) In order to use the launchers, you will have to select the project you want to download.
    Please check below screenshot:

    If the launcher keeps on not working, you can do the same approach manually from Tera Term.
    Follow the steps below:
    1) Open Tera Term
    2) Connect to UART0, with Baudrate set at 230400 as shown below:

    3) Trigger the RST switch and then type 'reset'
    The MaskROM Bootloader should load:

    Type Enter one type to make sure that we are into the [MROM] menu
    4) Type 'loady 0'. so we can load first the FBOOT image.

    5) Go on File-->Transfer-->YMODEM-->Send...

    6) Navigate onto the path of your projects images, and select FBOOT image.
    7) In case the operation is not successful, please type again 'loady 0' and repeat the steps.
    8) If the operation is successful, then type 'loady 23000' and follow the same steps to load the FROTS image into the board.
    9) When both images have been downloaded successfully, you can type 'reboot' and the firmware should start running.

    Best Regards,
    OV_Renesas 

  • Hi,

    Thank you for your quick response.    

    When I tried changing the imported project to da16200_aws project, I am getting a series of include errors during build-

    In the readme file suggested by you, the order of import was shown as 

    After reading your comment, I understand that the step 2.5 didnt happen for me when I followed step 2.2 and gave the file `~\SDK\apps\AWS\get_started_da16200\projects\da16200\`

     Now as per your suggestion when I uploaded the file, da16200_aws project , it is giving build errors as mentioned above.  Kindly help me with this.  I did try copying the include files from the projects\da16200 folder, but errors are happening in a chain.  Can you suggest a way out?

    Thanks and Regards,

    Raji