Prerequisites
Windows (MSYS2)
- Download and install MSYS2 following the official instructions
- Install required packages (use mingw64.exe terminal):
- Download RISC-V toolchain for Pinecil devices:
xpack-riscv-none-elf-gcc-...-win32-x64.zip from the xpack releases
- Extract the toolchain and add to PATH:
- (Optional) Install flashing tools:
- Clone the repository:
macOS
- Install the ARM toolchain by following steps 1-3 here
- Install Python:
- (Optional) Update pip:
- Change to the source directory:
- Create and activate a Python virtual environment:
- Install Python dependencies:
Linux
Install required packages using your distribution’s package manager:Building Firmware
All build commands should be run from thesource/ directory.
Single Language Builds
To build firmware for a specific device and language:TS100,TS80,TS80P,TS101- Miniware devicesPinecil- Pine64 Pinecil V1Pinecilv2- Pine64 Pinecil V2MHP30- Miniware MHP30 hot plateS60,S60P,T55- Sequre devices
EN(English),DE(German),ES(Spanish),FR(French)ZH_CN(Simplified Chinese),ZH_TW(Traditional Chinese)JA_JP(Japanese),RU(Russian),PL(Polish)- And many more - see
Translations/directory for full list
Examples
Build English firmware for TS80P with 8 parallel jobs:Multi-Language Builds
Multi-language firmware includes multiple translations in a single binary. This is supported on devices with sufficient flash space.Pre-defined Language Groups
Build European languages for Pinecil:Custom Language Groups
Build custom multi-language firmware with specific languages:Build Outputs
Compiled firmware is placed inHexfile/ directory:
.hex- Intel HEX format.bin- Raw binary format.dfu- DFU (Device Firmware Update) format
Building All Firmware
To build all language variants for all supported models:sysctl instead of nproc:
Docker Build Environment
Docker provides a consistent build environment across all platforms.Build All Firmware with Docker
BUILDS/ directory.
Interactive Docker Shell
Start a shell with all build tools configured:Pinecil V2 Specific (Docker Recommended)
For Pinecil V2, Docker is highly recommended due to the BL702 SDK requirements:source/Hexfile/.
Cleaning Build Artifacts
Troubleshooting
”Command not found” Errors
Ensure the appropriate toolchain is in your PATH:- ARM devices need
arm-none-eabi-gcc - RISC-V devices need
riscv-none-elf-gcc
Python Module Errors
Install required Python packages:Out of Memory During Compilation
Reduce parallel jobs:Flash Size Errors
If firmware doesn’t fit in flash:- Use compressed multi-language builds
- Build single-language firmware
- Disable optional features in BSP configuration
Next Steps
Flashing Firmware
Learn how to flash compiled firmware
Translation Guide
Contribute translations
Development Overview
Back to development overview
Architecture
Understand firmware architecture