Skip to content
ebuild — Developer Workflow

One Tool for the
Entire EoS Lifecycle

ebuild is the EmbeddedOS build tool. It handles everything from project creation to CAD analysis, simulation, static analysis, flashing, and OTA updates — with a single CLI and zero configuration files to maintain manually.

Terminal
$ pip install embeddedos-ebuild
$ ebuild --version
ebuild v2.1.0 (EmbeddedOS Build Tool)
$ ebuild platforms list | wc -l
63
150 platforms
supported targets
Zero config
toolchain bundled
One command
build → flash → monitor

The Complete Developer Workflow

From KiCad schematic to OTA-updated production firmware — every step handled by ebuild.

1

Design your schematic in KiCad

Place your MCU, sensors, power regulators, and connectors. Assign net names that match EoS HAL conventions (UART_TX, SPI_CLK, etc.).

2

Run CAD analysis

ebuild cad analyze my-board.kicad_sch — ebuild identifies the MCU, maps all peripheral pins, and checks EoS compatibility.

ebuild cad analyze my-board.kicad_sch
# [CAD] MCU: STM32H743ZIT6
# [CAD] 14 peripherals mapped
# [CAD] EoS compatibility: FULL
3

Generate the BSP

ebuild cad generate produces pins.h, clocks.c, peripherals.c, and linker.ld — all derived from your schematic.

ebuild cad generate my-board.kicad_sch --output bsp/ --name my-board

Command Reference

Every ebuild command with flags, descriptions, and examples.

ebuild init <name>
--template rtos|bare|app --target <board> --bsp <path>

Create a new EoS project. Generates CMakeLists.txt, linker scripts, startup code, and ebuild.toml for the specified target board.

$ ebuild init my-sensor --template rtos --target esp32
ebuild clean
--all

Remove all build artifacts. --all also removes the CMake cache.

$ ebuild clean --all
ebuild info

Print project metadata: target board, EoS version, enabled features, memory layout.

$ ebuild info

ebuild.toml Reference

The project configuration file. Every field is optional — ebuild uses sensible defaults for everything not specified.

ebuild.toml
[project]
name = "my-sensor-node"
version = "1.0.0"
eos_version = "2.5.0"

[target]
board = "stm32h743"
cpu = "cortex-m7"
fpu = "fpv5-d16"
clock_hz = 480_000_000

[memory]
flash_size = "2MB"
ram_size   = "1MB"
flash_origin = "0x08000000"
ram_origin   = "0x20000000"

[features]
rtos     = true
wifi     = false
bluetooth = false
eai      = false
eboot    = true

[dependencies]
bme280 = "1.2.0"
w25q   = "0.9.1"

[build]
optimization = "Os"   # Os = size, O2 = speed, Og = debug
lto = true
stack_size = 4096

[analysis]
misra = "advisory"    # required | advisory | off
stack_check = true
coverage = false

CAD → Firmware Pipeline

The complete flow from KiCad schematic to simulated, validated, and deployed firmware — without touching a soldering iron until the very end.

KiCad Schematic
.kicad_sch
ebuild cad analyze
MCU + pin map
ebuild cad generate
BSP files
ebuild init
project scaffold
ebuild build
firmware.elf
ebuild sim
virtual board
ebuild analyze
static analysis
ebuild flash
real hardware
Key insight: Because you simulate with the same BSP that was generated from your schematic, the firmware that passes simulation will work on real hardware on the first flash — no "it works in sim but not on hardware" surprises. The virtual BME280 on I²C1 address 0x76 behaves identically to the real chip.

Start Building

Install ebuild and create your first EoS project in under 5 minutes.