Arduino platform for the Synergy Logic SL-EDU board (STM32H503CBT6,
Arm Cortex-M33, 128 KB flash, 32 KB RAM, native USB). It is the core the
OpenPLC Editor installs for the SL-EDU package
(com.synergy-logic.sl-edu).
Board FQBN: SynergyLogic:stm32:sl_edu
The platform is STM32duino 2.11.0 reduced to the STM32H503, plus the SL-EDU board definition. See NOTICE.md for provenance and every change from upstream.
Board manager URL:
https://raw.githubusercontent.com/Autonomy-Logic/SL-EDU/main/package_synergylogic_stm32_index.json
arduino-cli core install SynergyLogic:stm32 --additional-urls <index-url>
arduino-cli compile --fqbn SynergyLogic:stm32:sl_edu <sketch>
arduino-cli upload --fqbn SynergyLogic:stm32:sl_edu -p <serial-port> <sketch>
The index lists every tool the platform needs (the xPack Arm GCC toolchain, CMSIS, STM32Tools and SVD files from STMicroelectronics, and dfu-util from Arduino), so the URL above is the only one required.
| Region | Address | Size |
|---|---|---|
| DFU bootloader | 0x08000000 |
16 KB |
| Application | 0x08004000 |
112 KB |
Upload opens the board's USB serial port at 1200 baud. The running sketch then
sets a backup-register flag and resets into the bootloader, and dfu-util
writes the sketch at 0x08004000 and starts it. The bootloader also stays in
DFU mode when the application flash is empty, or when S1 and S2 are both held
during reset.
USB IDs are STMicroelectronics' development IDs: 0483:5740 for the serial
port and 0483:DF11 for DFU.
| Name | Function | MCU pin |
|---|---|---|
TOG1, TOG2 |
S3, S4 slide switches | PB4, PB5 |
SW1, SW2 |
S1, S2 push buttons, active low (use INPUT_PULLUP) |
PA1, PA2 |
LED1 - LED4 |
D1 - D4, active high (LED_BUILTIN is LED1) |
PA4 - PA7 |
POT |
Potentiometer, 12-bit ADC | PA0 |
A blank chip, or one with the J3 BOOT0 jumper fitted, starts the STM32 ROM DFU bootloader instead. Write the SL-EDU bootloader with the dfu-util the board manager installed:
dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D bootloaders/sl_edu/sl-edu-bootloader.bin
Then remove J3 and power-cycle the board. SWD on J2 is the other way to write it.
Bump version= in platform.txt, merge to main, then push a tag v<version>.
The Release workflow builds the archive and the index with
tools/ci/build-release.py, installs the core from them and compiles
tools/ci/sketches/SmokeTest, publishes the GitHub release, and only then
commits the regenerated index to main. The Verify workflow downloads every
artefact the published index names and checks its size and SHA-256.
| Path | What it is |
|---|---|
boards.txt, platform.txt, programmers.txt |
Board definition and build and upload recipes |
cores/, libraries/, system/, variants/, debugger/ |
STM32duino 2.11.0, STM32H503 subset |
bootloaders/sl_edu/ |
SL-EDU DFU bootloader image |
package_synergylogic_stm32_index.json |
Board manager index (written by the Release workflow) |
tools/ci/ |
Release, index and smoke-test tooling |