Development Environment Setup
Quick Startβ
1. Check Your Environmentβ
./check_env.sh # Print which tools are missing
2. Automated Setup (Recommended)β
Linux / macOS / Git Bash
./setup.sh
Windows
setup.bat
Manual Setupβ
1. ARM GCC Toolchainβ
Windowsβ
Option 1: STM32CubeCLT (recommended)
- Download: https://www.st.com/stm32cubeclt
- Run the installer
- Default path:
C:\ST\STM32CubeCLT\GNU-tools-for-STM32\bin
Option 2: Official Arm GNU Toolchain
- Download: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
- Pick
arm-gnu-toolchain-*-mingw-w64-i686-arm-none-eabi.exe - Install and note the path
Linux (Ubuntu/Debian)β
# Option 1: Packages (easy)
sudo apt update
sudo apt install gcc-arm-none-eabi make
# Option 2: Latest release
wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
tar xf arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz
sudo mv arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi /opt/
sudo ln -s /opt/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi/bin/* /usr/local/bin/
macOSβ
# Using Homebrew
brew install --cask gcc-arm-embedded
2. Additional Dependenciesβ
Makeβ
Windows
- Install Git for Windows (includes
make): https://git-scm.com/
Linux
sudo apt install build-essential
macOS
xcode-select --install
Python 3 (model packaging)β
- Install from https://www.python.org/ or your OS package manager
Node.js & pnpm (web UI build)β
# Install Node.js (LTS) from https://nodejs.org/
# Install pnpm
npm install -g pnpm
STM32_Programmer_CLI (flashing)β
- Download STM32CubeProgrammer β https://www.st.com/stm32cubeprog (v2.19.0+)
- Default locations:
- Windows:
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin - Linux:
/usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin - macOS:
/Applications/STMicroelectronics/STM32Cube/STM32CubeProgrammer/STM32CubeProgrammer.app/Contents/MacOs/bin
- Windows:
- Add to
PATHand verify:
STM32_Programmer_CLI --version
Windows PowerShell example:
$env:PATH += ";C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin"
[System.Environment]::SetEnvironmentVariable(
"Path",
$env:Path + ";C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin",
[System.EnvironmentVariableTarget]::User)
Linux/macOS shell example:
export PATH="/usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin:$PATH"
STM32_SigningTool_CLI (firmware signing)β
Usually installed with STM32CubeCLT or CubeProgrammer.
- Windows:
C:\ST\STM32CubeCLT\STM32_SigningTool_CLI\bin - Linux:
/opt/st/stm32cubeclt_*/STM32_SigningTool_CLI/bin
Verify:
STM32_SigningTool_CLI --version
stedgeai (AI model generation)β
- Download ST Edge AI Core β https://www.st.com/en/development-tools/stedgeai-core.html or via STM32Cube.AI (https://www.st.com/stm32cubeai)
- Default paths:
- Windows:
C:\Users\<username>\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBE-AI\<version>\Utilities\windows - Linux:
~/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/<version>/Utilities/linux - macOS:
~/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/<version>/Utilities/mac
- Windows:
- Add to
PATHand setSTEDGEAI_CORE_DIR:
# Windows PowerShell
$env:STEDGEAI_CORE_DIR = "C:\Users\<username>\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBE-AI\<version>"
# Linux/macOS
export PATH="$HOME/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/<version>/Utilities/linux:$PATH"
export STEDGEAI_CORE_DIR="$HOME/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/<version>"
- Validate:
stedgeai --version
echo $STEDGEAI_CORE_DIR
stedgeaiis optionalβrequired only when regenerating AI models. Prebuilt binaries already live underbin/.
3. Validate the Toolchainβ
Use the helper script:
./check_env.sh
Manual spot check:
arm-none-eabi-gcc --version
arm-none-eabi-objcopy --version
make --version
python --version
node --version
pnpm --version
STM32_Programmer_CLI --version # optional
STM32_SigningTool_CLI --version # optional
stedgeai --version # optional
echo $STEDGEAI_CORE_DIR # optional
make info
Expected output sample:
arm-none-eabi-gcc (GNU Tools for STM32) 13.3.1
GNU Make 4.x
Python 3.x.x
v20.x (Node.js)
9.x (pnpm)
STM32_Programmer_CLI v2.19.0
STM32_SigningTool_CLI v2.19.0
stedgeai v2.2.0-20266 2adc00962
Configuration Optionsβ
Method 1: Environment Variablesβ
# Windows
your-shell> $env:PATH += ";C:/ST/STM32CubeCLT/GNU-tools-for-STM32/bin"
# Linux/macOS
export PATH="/opt/arm-gnu-toolchain/bin:$PATH"
Method 2: .make.env (recommended)β
Create .make.env at the repo root:
# NE301 Makefile settings
GCC_PATH = C:/ST/STM32CubeCLT/GNU-tools-for-STM32/bin
MAKEFLAGS += -j20
OPT = -Os -g3
FLASH_ADDR_FSBL = 0x34000000
FLASH_ADDR_APP = 0x70100000
FLASH_ADDR_WEB = 0x90400000
FLASH_ADDR_MODEL = 0x90700000
export STEDGEAI_CORE_DIR=/path/to/STEdgeAI
The setup script auto-generates this file.
Method 3: Command-line Overridesβ
make GCC_PATH=/path/to/toolchain/bin
make -j20
Troubleshootingβ
arm-none-eabi-gcc Not Foundβ
which arm-none-eabi-gcc
# Install STM32CubeCLT or Arm GNU Toolchain, then add to PATH or set GCC_PATH
make Missing on Windowsβ
Install Git for Windows or use a package manager:
choco install make # Chocolatey
scoop install make # Scoop
STM32_Programmer_CLI Missingβ
Download from https://www.st.com/stm32cubeprog and add the /bin path:
- Windows:
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin - Linux:
/usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin
STM32_SigningTool_CLI Missingβ
Usually bundled with STM32CubeCLT:
- Windows:
C:\ST\STM32CubeCLT\STM32_SigningTool_CLI\bin - Linux:
/opt/st/stm32cubeclt*/STM32_SigningTool_CLI/bin
Windows USB Driver Issuesβ
- Install ST-Link driver: https://www.st.com/stsw-link009.html
- Or let STM32CubeProgrammer install it automatically
stedgeai Missingβ
# Download ST Edge AI Core, set STEDGEAI_CORE_DIR, add Utilities/* to PATH
stedgeai --version
STEDGEAI_CORE_DIR Not Setβ
[System.Environment]::SetEnvironmentVariable(
"STEDGEAI_CORE_DIR",
"C:\\Users\\<username>\\STM32Cube\\Repository\\Packs\\STMicroelectronics\\X-CUBE-AI\\<version>",
[System.EnvironmentVariableTarget]::User)
export STEDGEAI_CORE_DIR="$HOME/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/<version>"
Recommended Dev Setupβ
- IDE: VS Code, STM32CubeIDE, or your preferred editor
- Terminal: PowerShell / Git Bash / Windows Terminal on Windows; default terminal on Linux/macOS
- Debugger: STM32CubeIDE + ST-Link
Quick Smoke Testβ
./check_env.sh # Verify dependencies
make info # Print current config
make -n # Dry run
make # Full build
make app # Individual targets
make web
make model
If every tool reports [OK], you're ready to build for NE301 π