Boogie Logo

Chapter 8

Firmware & hacking

Stock updates, and Music Tribe’s open-source repo: schematic, memory map, build and flash.

0/6
In this chapter · 6
  1. 8.1Stock firmware
  2. 8.2The open-source repo
  3. 8.3Hardware, from the schematic and README
  4. 8.4Memory map
  5. 8.5Building the demo
  6. 8.6Flashing and the bootloader
8.1Basics

Stock firmware

Update through ControlTribe (Update the firmware with ControlTribe). Check the running version in device Settings, key 11. As of 7 Nov 2026 Behringer hasn’t published a firmware changelog or separate firmware files. Source: Official

Owners have tracked versions themselves: pre-1.0 in late September and 1.0.3 by 29 October, with updates arriving almost weekly. The community editor bcr32-studio also lists 1.0.2. Behringer’s promo video points bug reports and feature requests to ideas.behringer.com. Source: Press / owners

8.2Advanced

The open-source repo

MusicTribeOpenSource/0715-AAW went public on 30 Oct 2026 as a single commit, licensed AGPL-3.0-or-later. Third-party code keeps its own licences: BSD-3-Clause (GigaDevice), Apache-2.0 (CMSIS) and MIT (the SSD1306 driver). Source: Official

What’s in it

  • docs/BE_0715-AAW_01-Top_Rev03.pdf: the full schematic (Rev03, dated 7 Oct 2024; PDF exported from Altium on 28 Oct 2026).
  • docs/BCR32_MCU_Interface.md: pinout tables for every peripheral.
  • docs/BCR32_Firmware_Update_Protocol.md: how to enter and query the bootloader.
  • demo/: a bare-metal demo firmware (App, Board, Drivers, UsbDriver, SSD1306 driver) with Keil and GCC projects, plus tools/update with prebuilt Windows and macOS update tools.
8.3Advanced

Hardware, from the schematic and README

From the repo’s schematic, README and demo firmware. Source: Official

PartDetail
MCUGigaDevice GD32F405RE, Cortex-M4F. The README lists 120 MHz, and the demo firmware sets 120 MHz from an 8 MHz crystal (AHB 120 / APB2 60 / APB1 30 MHz). GigaDevice rates the chip at 168 MHz.
Flash512 KB internal + 512 KB external SPI (W25X40CL)
DisplaySSD1306 128×32 OLED on SPI
LEDs5× HT16K33 drivers: one for the keys (16 RGB plus single-colour), and one per encoder row for the 15-LED rings
Inputs16× 74HC165 shift registers in a chain (128 inputs)
CVOne SPI DAC feeding a 4-way sample-and-hold demultiplexer
USB IDsVID 0x1397, PID 0x12CF (application) / 0x12CE (bootloader)
Known quirkPB3 and PB11 are shorted on the PCB, so SWO trace output is unusable.
8.4Advanced

Memory map

From the repo’s documentation. Source: Official

  • Bootloader: 64 KB at 0x08000000. Application from 0x08010000.
  • Presets and settings: internal flash sectors 6–7 (256 KB).
  • External flash: the first 320 KB is reserved, including the factory CV calibration. Custom firmware shouldn’t erase it.
8.5Advanced

Building the demo

The primary build is Keil MDK 5.x with Arm Compiler 5.06 update 7 and the GigaDevice GD32F4xx_DFP 3.0.3 pack. The alternative is CMake 3.20+, Ninja and the GNU Arm Embedded Toolchain on your PATH. Run these from the repository root: Source: Official

cmake -S demo/Project/gcc -B build -G Ninja
cmake --build build
8.6Advanced

Flashing and the bootloader

Run from the repository root, with only one BCR32 connected and no other app holding its MIDI ports: Source: Official

demo\tools\update\windows\update.exe demo\tools\update\BCR32_FW_V<version>_<date>_<time>.bin

No button press is needed. The tool sends a SysEx message, the unit drops into its bootloader, takes the image and restarts. If an update is interrupted the unit stays in the bootloader, and you just run the tool again. Source: Official

From the update-protocol document (Behringer’s SysEx ID is 00 20 32)

ActionMessage
Enter bootloaderF0 00 20 32 7F 64 77 F7, or hold 21T1 + 22T2 + 23T3 + 24T4
Query modeF0 00 20 32 7F 64 74 F7. The reply is 00 in the application, 01 in the bootloader.

Key combinations

Hold 21T1 + 22T2 + 23T3 + 24T4
Enters the bootloader (documented for the demo firmware).