01. Operational Flow
This article provides an overview of the operation flow of the STM32 Discovery.
Hereinafter, "STM32 Discovery Kit" is called "device".
*The red frame in the figure indicates the starting point of the operation mode description.
The device has the following major modes.
Script Execution Mode
In this mode, the operation script is executed in the basic operation of the device.
Safe Mode
In this mode, if an exception such as a throw or a syntax error occurs while executing the script, wait for the script to be modified.
Firmware Update Mode
This mode updates the device firmware.
It also updates the firmware of the user device with the NEQTO Machine Driver.
The operation flow of each mode is described below.
Script Execution Mode
Normal Booting Operation
Script execution mode is the basic operation of the device.
The device will initialize after booting.
After initialization, connect to the network.
After connecting to the network, access NEQTO Console and authenticate.
When the authentication is completed, download and execute the script.
Booting Operation when unable to connect to a Network
If the device cannot connect to the network when the device starts, retry the network connection.
Note that the script will not be executed in this state.
Check the network settings and signal environment, and restart the device.
Booting Operation when device is not registered to a Node
If the device is started without registering to a node on NEQTO Console, authentication will fail.
Note that the script will not be executed in this state.
Check the node registration and restart the device.
Script Reload Operation
"Script Reload" is the operation to terminate the script once and download and execute the updated script.
Basically, when all the main routines have completed and all resources waiting for callbacks such as timers and nqMQTT objects have been released, the script reload will be performed.
On the other hand, there are two ways to perform a script reload without waiting for resources to be released.
Use trigger command (push notification) from NEQTO Console
Perform "Reload Script" using the trigger command from NEQTO Console.
When the device receives the "Reload Script" instruction from NEQTO Console, it forcibly terminates the script and downloads and executes the updated script.
It can be used to update the script or to intentionally restart the script remotely.Use a throw statement that contains a specific hashtag
By executing the throw statement below, you can start reloading spontaneously from within the script.
It can be used to check if the script is updated regularly or to intentionally restart the script.throw '#nqEXIT';
throw new Error('#nqEXIT');
Standby Mode Operation
From the script, the following methods can be used to transition the device to the standby mode.
Standby mode puts the device in standby at a state near that of power off.
When a resume condition occurs, the device will start again from Normal Booting Operation. ("Normal Resume")
sleep.setStandby() (Recommended)
1. Shuts down the network communication and then transitions to standby mode.
This can reduce standby power the most.
sleep.setStandbySync()
2.Immediately transitions to standby mode with network communication maintained.
Due to the maintained network communication, the power consumption during standby will increase compared to when the sleep.setStandby() method is used. Since there is no other functional difference, we recommend using the sleep.setStandby() method.
Offline Resume Operation for Standby Mode
The standby mode methods above have an "Offline Resume" option.
When a resume condition occurs, the device will start again, skip the network connection, and immediately execute the stored script.
In "Offline Resume", functions that require a network connection cannot be used.
In addition, only in the condition when user switch is pressed (*1), normal booting operation is forcibly performed.
Resume Conditions for Standby Mode
- When an edge change is detected on the port for which the wakeup trigger setting is enabled
- When the user switch is pressed (*1)
- When the RTC alarm occurs
Stop Mode Operation
From the script, the following methods can be used to transition the device to the stop mode.
Stop mode puts the device to sleep with the script execution paused.
When a resume condition occurs, the script will resume execution.
If necessary, network reconnection will be started automatically.
sleep.setStop()
1.Shuts down the network communication and then transitions to stop mode.
This can reduce standby power.
However, since network reconnection will be started during resume, it will take some time before communication functions are available.
sleep.setStopSync()
2.Immediately transitions to stop mode with network communication maintained.
Due to the maintained network communication, the power consumption during standby will increase, but communication functions are available immediately after resume.
Resume Conditions for Stop Mode
- When an edge change is detected on the port for which IO port input interrupt is set
- When an edge change is detected on the user switch port
- When the RTC alarm occurs
Safe Mode
Safe Mode Operation
If an exception such as a throw or a syntax error occurs while executing the script, wait for the script to be modified. This state is called safe mode.
Check and correct the script, and perform "Reload Script" using the trigger command from NEQTO Console.
When the device receives the "Reload Script" instruction from NEQTO Console, it will download and execute the updated script.
In addition, the device automatically checks if the script has been updated during safe mode. The check interval increases in the order of 1 minute, 2 minutes, 4 minutes, 8 minutes, 16 minutes, and 30 minutes. And finally it will be every 30 minutes.
Firmware Update Mode
User device firmware update operation using Machine Driver
When the device receives the Machine Driver update instruction from NEQTO Console, it downloads and executes the Machine Driver script.
The Machine Driver script downloads the firmware image file and updates the user device firmware.
When the Machine Driver script processing is completed, the operation script execution returns.
Device firmware update operation
When the device receives the firmware update instruction from NEQTO Console, it downloads the firmware and updates the firmware.
When the firmware update is complete, it will automatically reboot and return to normal operation.
If the device firmware has already been updated, the firmware update process will be skipped.
Caution
Please do not turn off the power while updating the firmware.
About system time synchronization
The device gets the time information from NEQTO Console and automatically synchronizes the time.
The timing of time synchronization is as follows.
Phase | Time update timing |
---|---|
When NEQTO Console authentication is done | When the authentication sequence is executed, such as at device startup |
During operation script execution | Regularly once a day |
When the time correction method of the nqService object is executed | Any timing |