Skip to content
Autonomy-LogicPublic

About

Arduino core SynergyLogic:stm32 for the Synergy Logic SL-EDU board (STM32duino 2.11.0, STM32H503)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Synergy Logic STM32 Boards (SynergyLogic:stm32)

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.

Install

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.

Memory layout and upload

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.

Onboard I/O

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

Writing the bootloader the first time

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.

Releasing

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.

Layout

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

About

Arduino core SynergyLogic:stm32 for the Synergy Logic SL-EDU board (STM32duino 2.11.0, STM32H503)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages