STM32 Wakeup Issue with MM6108-MF08551 Standby Mode

Hello,

I’ve been working on testing the standby mode wakeup for MM6108-MF08551 for several months. Currently, the HaLow chip can be woken up by UDP packets from the router. When the device receives a UDP packet, it shows an increase in current of about 30mA. However, there are no noticeable level changes on any pins of the chip, including the Busy and GPIO-9 pins. Could you please advise on what steps I should take to remotely wake up the STM32 from sleep mode?

Here is the link to my project code:
https://github.com/eritpchy/mm-standby-test-stm32

This is the development board I’m using:

SDK version used in the project:


BCF API version: 12.1.0
BCF build version: a49f6ff 17ee8d5
BCF board description: mf08551
Morselib version: 2.8.2
Morse firmware version: 1.15.3
Morse chip ID: 0x0306

Any help would be greatly appreciated!

Hi @eritpchy

The docs do claim that the BUSY pin should be toggled. This has been raised with the team to investigate why it is no longer happening.

There is a software workaround for this. But it will require a small amount of work to add the appropriate support.

On our Linux systems, we can use morse_cli to set the wake action GPIO - morse_cli -i wlan0 set wake_action_gpio <n> and morse_cli -i wlan0 set wake_action_gpio_pulse <t>.
For the MM-IoT-SDK equivalent, you will need to make use of the mmwlan_ate_execute_command after booting the chip.

For the command argument to this function, you will want to pass in the morse_cmd_req_get_set_generic_param with the param_id set to MORSE_CMD_PARAM_ID_WAKE_ACTION_GPIO, the actiion set to MORSE_CMD_PARAM_ACTION_SET , and the value set to MM6108 GPIO you want to use for the MCU wake action.

You will want to pull in parts of that header file from morse_cli into your project.

Hope that helps!

1 Like

Confirmed working! You just saved my day. Thank you @ajudge :beer_mug:

2 Likes