SimplePublish for NUCLEO-L053R8
The QSL includes a SimplePublish example for the STMicroelectronics NUCLEO-L053R8 development board. This is given as a project for the Eclipse/GCC based System Workbench for STM32, where the STM32CubeMX has been used to auto-generate the necessary Hardware Abstraction Layer (HAL). The application behaves just like SimplePublish for the other platforms, and like the example for SAM C21; debug prints are re-targeted through a second serial port. A green LED on the Nucleo board is also toggled to indicate whether the mote has connected to a network or not.
The example was developed on System Workbench for STM32 v1.8 with STM32CubeMX version 4.16.0
Download System Workbench
Go to the OpenSTM32 community webpage and download the System Workbench for STM32. The IDE is free and available for all platforms that support Eclipse, but you will have to register and validate a user to get access to the download and accompanying instructions.
Make sure to check your spam filter if you don't receive a validation email after registering.
Prepare the NUCLEO-L053R8
Connect to Mote
Figure 7: Mote connected to the NUCLEO-L053R8.
The extension connectors of the NUCLEO-L053R8 is pictured in Figure 8, with the relevant pins marked. Table 10 shows the mapping between the Nucleo board and the mote. Note that you can of course just connect the RX RTSn and TX CTSn to GND on the mote itself, as can be seen in the example in Figure 7.
Figure 8: NUCLEO-L053R8 extension connectors.
NUCLEO-L053R8 | Mote |
---|---|
+3V3 | VBAT |
GND | GND |
PA9 / D6 | RX |
PA10 / D2 | TX |
GND | RX RTSn |
GND | TX CTSn |
Table 10: NUCLEO-L053R8 to mote pin mapping.
Connect ST-LINK to Computer
Connect a USB cable from your computer to the USB-mini B port labeled CN1: This is the port at the top of the NUCLEO-L053R8 (visible on the right side of Figure 7), which connects the integrated ST-LINK/V2-1 debugger to your computer, and is used to power, program and debug the board.
ST-LINK also spawns a serial port that we will open a terminal on to see debug prints, so you need to find its identity:
- Windows: Look for a virtual COM port named STMicroelectronics STLink in the Device Manager (e.g. COM6 in the example below).
- Mac OS X: Use the command ls /dev/tty.usbmodem*
- Linux: Use the command ls /dev/ttyACM*
Open Debug Terminal
The SimplePublish example code will send all standard output (e.g. debug prints) through the serial port you identified in the previous section. Open your favourite serial terminal (e.g. Putty or Minicom) and connect to said serial port with the following configuration:
- Baudrate: 115200
- Data Bits: 8
- Parity: None
- Stop Bits: 1
You can (de)activate debug and log messages with the NDEBUG and NLOG defines in dn_debug.h (located in sm_qsl/).
Console Output Issue
The output from the debug terminal has been shown to periodically stop working on Windows (although this does not affect execution of the application itself). Disconnecting and reconnecting the ST-LINK USB seem to make it work again (although this will of course reset both the Nucleo board and connected mote). If you still don't see any output when you should you can try the following:
- Manually update the driver for ST-LINK/V2-1
- Update the ST-LINK/V2-1 firmware
Compile and Run
Open Workspace
Start up the System Workbench for STM32 and browse to examples/nucleo-l053r8/ when promted to select a workspace.
Import Project
- File > Import... > General > Existing Projects into Workspace and press Next >.
- Select root directory: Click Browse... and navigate to the SimplePublish example: examples/nucleo-l053r8/SimplePublish/
- Press OK
- Select SimplePublish that appears in the Projects list.
- Make sure to leave the option Copy projects into workspaceunchecked and press Finish.
The System Workbench project expects to find the sm_clib and sm_qsl as they appear in the Directory Structure. If you chose the zip download or subversion checkout, the sm_clib/ directory from the separate unzipped folder/svn checkout need to be copied into the QSL repository to achieve the same structure.
Build
Project > Build Project (or press the icon) to build the project.
By default Eclipse will index unused headers, causing some errors that don't affect compilation. You can remove these by disabling the option in project properties:
Project > Properties > C/C++ General > Indexer > Indexer Options > Index unused headers
Debug/Run
The first time you run the project, you have to select the correct debug configuration:
- Run > Debug (F11)
- Select Ac6 STM32 C/C++ Application and press OK.
- Eclipse should now prompt you to change to a Debug perspective, before starting a debug session.
After this you should be able to debug/run the project with Run > Debug (F11) and Run > Run (Ctrl+F11) (or press the icons: ) without any configuration.