The firmware runs on the STM32 L5 microcontroller (ARM Cortex-M33). It reads raw audio from the four microphones, runs the GCC-PHAT localization algorithm, and streams azimuth angle estimates to the phone over USB.
The firmware source is provided as an STM32CubeIDE project. Loading it onto the MCU requires an ST-LINK programmer.
-
Install STM32Cube IDE and the ST-LINK toolchain.
-
Download the zipped project and unzip it.
-
Import into STM32Cube IDE: File → Import → Existing Projects into Workspace and select the project folder.
-
Build the project. The console should show no errors.
Flashing requires a programmer and a tag-connect cable:
- ST-LINK V3 Mini programmer
- Tag-Connect TC2030-CTX-STDC14 cable (compact footprint)
- Connect a USB cable for board power (the programmer does not supply power).
- Hold the tag-connect cable against the board's programming header.
- In STM32Cube IDE, click the debug/flash button. On first use, configure the programmer if prompted.
- To verify: open a serial terminal (e.g., Arduino IDE serial monitor) on the USB port. You should see angle values printing continuously. Baud rate does not matter.
Note: Flashing can also be done without the IDE by using ST-LINK command-line tools to flash a pre-compiled
.hexor.binbinary directly.