The Scylla-capable STM32H7xx driver is from:
cd ~/git/grblHAL
git clone https://github.com/dresco/STM32H7xx.git
Initialize submodules from inside the driver repo:
git submodule update --init --recursive
The required submodules are checked out from their active branches instead of the commits pinned by the parent repository:
git -C grbl switch master
git -C motors switch master
git -C trinamic switch master
git -C sdcard switch master
git -C plugins switch main
git -C spindle switch master
Update those branches before building:
git -C grbl pull --ff-only
git -C motors pull --ff-only
git -C trinamic pull --ff-only
git -C sdcard pull --ff-only
git -C plugins pull --ff-only
git -C spindle pull --ff-only
Install PlatformIO CLI. The working installation used pipx:
pipx install platformio
Check it is available:
pio --version
The custom PlatformIO environments are in:
~/git/grblHAL/STM32H7xx/platformio.ini
The currently relevant environment is:
btt_scylla_h723_tmc5160_dualy_pwm_bl128
It is linked for the Scylla 128K bootloader offset and includes:
-D BOARD_BTT_SCYLLA
-D HSE_VALUE=25000000
-D TRINAMIC_ENABLE=5160
-D Y_AUTO_SQUARE=1
-D SPINDLE0_ENABLE=SPINDLE_PWM0
-D ESTOP_ENABLE=1
-D CONTROL_ENABLE=CONTROL_ESTOP
-D PROBE_ENABLE=1
-D TOOLSETTER_ENABLE=1
The E-stop flags are required so the Scylla X-MAX input is handled as a blocking grblHAL E-stop, not only reported in Pn:E status output. Confirm after flashing:
$pins
Expected E-stop pin assignment:
[PIN:PC6,Emergency stop]
The toolsetter flag is required for the Scylla Tool-IN input to be exposed as the dedicated grblHAL toolsetter input. The Scylla board map uses PE7 for Tool-IN. Confirm after flashing with:
$pins
Expected toolsetter pin assignment:
[PIN:PE7,Toolsetter]
The E-stop and claimed aux-input interrupt fixes are included in the current STM32H7xx driver and grblHAL sources. No local source patches are required.
From inside ~/git/grblHAL/STM32H7xx:
pio run -e btt_scylla_h723_tmc5160_dualy_pwm_bl128
The SD-card/bootloader firmware output is:
.pio/build/btt_scylla_h723_tmc5160_dualy_pwm_bl128/firmware.bin
Use the *_bl128 build for SD-card flashing:
.pio/build/btt_scylla_h723_tmc5160_dualy_pwm_bl128/firmware.bin
General process:
firmware.bin to the root of a FAT32-formatted SD card.After flashing, confirm the board reports correctly:
$I
Expected key lines:
[FIRMWARE:grblHAL]
[DRIVER:STM32H723@480MHz]
[BOARD:BTT Scylla]
[PLUGIN:Trinamic v0.33]
[PLUGIN:SDCARD v1.27]