Use this guide when you want to install fbuild, compile a first sketch, and understand what happens on the first run.
Install the published Python package:
pip install fbuildOr install from a local checkout:
git clone https://github.com/fastled/fbuild.git
cd fbuild
pip install -e .Source installs require a globally installed soldr executable and use Rust's
fast dev profile by default (no Rust LTO), which keeps local rebuilds quick.
To explicitly build an optimized Rust wheel, set the build environment flag:
FBUILD_BUILD_RELEASE=1 pip install .pip install . --config-settings profile=release is no longer supported; the
setuptools backend does not interpret that setting. On Windows, set the same
environment variable before invoking pip.
Create a project with a PlatformIO-compatible layout:
mkdir my-project
cd my-project
mkdir srcCreate platformio.ini:
[env:uno]
platform = atmelavr
board = uno
framework = arduinoCreate src/main.ino:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}Build it:
fbuild buildThe first build downloads the AVR-GCC toolchain and Arduino AVR core, then
caches them. Later builds reuse the cache and write firmware under
.fbuild/build/<env>/.
Deploy to a connected board:
fbuild deploy -e unoDeploy and attach the serial monitor:
fbuild deploy -e uno --monitorRun the monitor by itself:
fbuild monitor -e uno --timeout 60Serial monitoring uses pyserial and follows the same general port-selection
model as PlatformIO. You can pass --port COM3 or --port /dev/ttyUSB0 when
auto-detection is not enough.
Run a build in the default emulator for the board:
fbuild test-emu . -e uno --timeout 10See the emulator testing guide for backend selection, QEMU notes, and CI-friendly halt conditions.
- CLI commands and options: reference/cli.md
platformio.inikeys: reference/platformio-ini.md- Supported boards: BOARD_STATUS.md
- Troubleshooting: development/README.md