Skip to main content

What is OpenEmber?

OpenEmber is a runtime framework for robotics and intelligent devices on Linux. It provides a unified communication backbone, a hardware abstraction layer (HAL), and a node execution model for building distributed embedded systems.

Highlights:

  • Distributed architecture: similar in spirit to ROS2, nodes can communicate via pub/sub and run across heterogeneous hardware.
  • Layered design: Applications → modules → components → core → platform (OS abstraction + HAL).
  • Build system: Kconfig + CMake + FetchContent, with FETCH / VENDOR / SYSTEM strategies for third-party code.
  • Language strategy: modern C++ for the core, with a stable C ABI boundary where needed.

EmberLite

EmberLite is a pure C, lightweight companion framework for resource-constrained embedded Linux. It shares the pub/sub style with OpenEmber but keeps the runtime smaller—ideal for industrial, safety-oriented, or MISRA-style projects.

Tooling: openember-cli (ember)

The openember-cli repo ships the standalone ember CLI used by OpenEmber, EmberLite, and similar trees. It orchestrates Kconfig and CMake entry scripts (menuconfig, genconfig, build, etc.); feature flags live in each project’s Kconfig and CMakeLists.txt.

Typical usage from the project root:

./scripts/ember build

See Build OpenEmber, Build EmberLite, and ember CLI.

Repositories

RepoRole
openemberMain framework (C++ core, modules, examples)
emberlitePure C lightweight framework + HAL samples
openember-cliember CLI and Bash completion
openember-docsThis documentation site

Next steps