BERGSONNE
Get started

Install & flash

Everything you need to build a firmware image for a Core tile and flash it over USB. If you only want to build in the browser, you can skip all of this and use Studio instead.

Prerequisites

The C SDK builds with the standard ARM embedded toolchain. You’ll need:

  • ARM GCC (arm-none-eabi-gcc) — the cross-compiler.
  • make — the build runner.
  • dfu-util — flashes firmware over USB.

On macOS with Homebrew:

brew install arm-none-eabi-gcc dfu-util make

On Debian/Ubuntu, the equivalents are gcc-arm-none-eabi, dfu-util, and make via apt.

Build a firmware image

From a project directory, build for your specific Core variant by passing TILE. The build emits a .bin image:

make TILE=Core.ST.L4.1     # the Core's catalog id
# every Core has one — find yours in the catalog
The TILE value is the Core’s catalog id (the MCU and pin map differ across the Core family, so each variant builds differently). It’s printed on your tile and shown on the catalog page.

Flash over USB

USB-programmable Cores — currently Core.ST.L4 or Core.ST.H5 — support runtime USB DFU: no buttons, no jumpers, no probe. Connect the Core over USB and run:

make flash-dfu

The Makefile handles the whole sequence for you:

  • detects the USB serial port (/dev/tty.usbmodem*),
  • sends a 1200-baud touch to trigger DFU mode (the same convention Arduino uses),
  • downloads the new firmware with dfu-util, and reboots.

Edit code, make flash-dfu, repeat. That’s the inner loop.

First flash & manual DFU

For the very first flash on a board using the ROM bootloader, hold BOOT0 while plugging in USB, then flash normally — after that, make flash-dfu works on its own. To drive dfu-util by hand:

dfu-util -l    # verify the device appears: Found DFU: [0483:df11]
dfu-util -a 0 -s 0x08000000:leave -D build/my-firmware.bin

SWD debugging

For live debugging, flash via SWD with OpenOCD instead. SWD and USB DFU coexist — use SWD to step through code and make flash-dfu for quick iteration:

make flash     # flash via SWD (OpenOCD)
Going deeper
Bootloader modes (custom vs ROM), flash layout, the 1200-baud touch internals, and keeping a board recoverable are covered in Bootloading & flashing.