- CMake ≥ 3.16
- C11 compiler (MSVC, Clang, or GCC)
- Python 3.10+ for the bridge
cd path\to\GrokLink-OS
cmake -B build -DGLK_PLATFORM_HOST=ON
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure$env:GLK_SD_ROOT = "$PWD\sd_card\groklink"
$env:GLK_RPC_PORT = "7341"
.\build\Release\groklink_os.exeEnvironment:
| Variable | Meaning |
|---|---|
GLK_SD_ROOT |
Path to groklink SD tree |
GLK_RPC_PORT |
TCP port (default 7341) |
GLK_RUN_MS |
Auto-stop after N ms (tests) |
arm-none-eabi-gcc12+ or 13+- OpenOCD / STM32CubeProgrammer / DFU tools
- Optional: ninja
cmake -B build-wb55 \
-DGLK_PLATFORM_HOST=OFF \
-DCMAKE_TOOLCHAIN_FILE=platform/stm32wb55/cmake/arm-none-eabi.cmake
cmake --build build-wb55Board support lives under platform/stm32wb55/:
board/- clocks, pins, CC1101 SPI, USB, SDMMCcmsis/- device headers (vendor pack)linker/- flash/RAM scatter
- Enter DFU (bootloader buttons per board).
- Flash
groklink_os.dfu/.binvia CubeProgrammer or dfu-util. - Copy
sd_card/groklink/to SD card root as/groklink/(or board mount path).
Image header slots are defined for hash + signature. Enable
GLK_FEATURE_SECURE_BOOT_HOOKS and wire keys for release builds. Development
images may run unsigned.
VERSION file -> CMake project version
CHANGELOG.md entry
ctest green on host
bridge package version aligned
SD seed packaged as release asset
| Symptom | Action |
|---|---|
| RPC bind fail | Change GLK_RPC_PORT; ensure nothing else on 7341 |
| Degraded / no missions | Check GLK_SD_ROOT points at sd_card/groklink |
| TX always denied | edu-ack + confirm-issue + valid file path |
| Radio breaker open | Power-cycle session / clear faults after settle |