Firmware Limitation: Lack of State Awareness and Error Recovery in AT Commands

Hi  ,

Module: DA14531MOD
Application: Ultrasonic Flow Meter (Battery powered)
IDE & Tools: Keil Uvision, SEGGER J-Link (JTAG connector)
SDK version: DA145xx_CodeLess_6.380.18.63

In general, the AT command firmware operates by maintaining two states: query and execute. However, there are a few limitations we've observed:

  1. There are no available commands to check whether the device is currently in broadcaster or peripheral role.

  2. It's not possible to retrieve the current status of commands like ADVSTART, ADVSTOP, AT+BROADCASTER, AT+PERIPHERALAT+GAPDISCONNECT. If these commands are issued again while already active or in an incompatible state, an error is returned.

Ideally, the firmware should internally maintain the state of these commands and provide a valid response when the same command is issued again, rather than throwing an error. This behavior adds complexity to our application. If the command sequence is disrupted or missed, it results in an error, leaving us with no option but to perform a soft reset and start over.

This is a significant concern for us, especially since our product is battery-powered, and unnecessary resets can impact power efficiency and reliability.