Alp SDK · v0.17.0 · released 2026-10-13
One declarative file. Heterogeneous build.
Same C/C++ API across Alif, Renesas, DeepX. Set the module SKU; the SDK produces a dual-image build for every heterogeneous SoM — Yocto on the A-cluster, Zephyr on the M-class companion, IPC stitched in. It runs on every E1M edge AI module and implements the open E1M standard.
§ One file, every module
The same board.yaml drives every E1M build.
One declarative config. Swap the module SKU and the build target re-routes — same C/C++ API on the other side. No per-module forks, no parallel BSP trees.
- → Single schema across Alif, Renesas, DeepX
- → Per-core cores.<id> scoping — apps + peripherals inline
- → Silicon facts live in the SoM preset, not your project
- → Pin routing in SoM + carrier preset YAML — apps use E1M_<NAME> aliases
- → Build, flash, debug — three commands
Click the card to pause.
$ tan build # som.sku: E1M-V2N101
→ resolving E1M-X V2N preset · ok
→ building a55_cluster (yocto) · 4m 12 s
→ building m33_sm (zephyr) · 8 s
$ tan flash
→ device: E1M-X V2N (s/n a3-12)
→ rootfs + m33 image · 100% (38 s)
$ tan monitor --port /dev/ttyUSB0
→ a55_cluster boot banner · console live# One declarative file. Heterogeneous build.
som:
sku: E1M-V2N101
hw_rev: r2
preset: e1m-x-evk
cores:
a55_cluster:
app: ./linux
image: alp-image-edge
peripherals: [ethernet, usb, emmc]
libraries: [mbedtls, nlohmann_json]
iot: { wifi: true, mqtt: true }
m33_sm:
app: ./m33
peripherals: [adc, pwm, i2c, gpio]
libraries: [cmsis_dsp]
ipc:
- kind: rpmsg
endpoints: [a55_cluster, m33_sm]
carve_out_kb: 512
diagnostics:
log_level: info
# run via the tan CLI front door:
build: tan build # som.sku: E1M-V2N101
flash: tan flash
reflash: tan flash # core: a55_cluster§ The Alp SDK stack
Write once, run on any E1M module.
Alp SDK is the unification software layer for Alp Lab edge AI modules. A single C/C++ API works across every E1M SoM — present and future — wrapping each vendor's SDK on top of the chosen OS (Zephyr / Yocto / bare-metal). Single-OS or heterogeneous, the application surface stays identical.
AI Framework
On-device inference
On-device runtimes
Model families
Offline training only
Dev Tooling
Build, orchestrate, flash
v0.17.0Alp SDK
One unified <alp/*.h> API
Peripherals
Audio
Camera
Inference
IoT / BLE
Security
Display / GUI
HW Info
DSP / Power
Heterogeneous IPC (v0.6 NEW)
80 Tier-1 chip drivers + Tier-2 community
User libraries (board.yaml libraries:)
Operating System
Per-core slice (cores: in board.yaml) · heterogeneous = peers on same SoM
Zephyr · M-class cores

Yocto · A-class cores

Bare-metal · no-RTOS
Vendor SDK
We wrap each one
Hardware + HAL
E1M open-standard form factor
Standalone firmware against <alp/...> headers, or alp-studio codegen — same API surface either way.
§ Release notes
What just shipped.
Alp SDK ships regular tagged releases. Each release is signed, tagged on GitHub, and documented with a migration note if anything moves.
- v1.0after first pilotPlanned
Silicon-verified release · ABI freeze
- HiL bring-up sweep across AEN + V2N101 + V2M101
- ABI snapshot frozen — backwards-compat guarantee
- Concurrent multi-NPU (DRP-AI3 + DEEPX) proven on V2M101
- Mender OTA E2E on V2N101 fleet of N ≥ 3 boards
- 4 vertical reference apps end-to-end verified
- v0.17.02026-10-13 · releasedShipped
DEEPX DX-M1 and DRP-AI3 inference on E1M-X V2N-M1 · 12.1" LVDS display · tan-cli 0.7.0
- DEEPX DX-M1, DRP-AI3 and ONNX Runtime CPU inference running on E1M-X V2N-M1 silicon
- Riverdi 12.1" LVDS display on the E1M EVK (SN65DSI83 bridge driver)
- Camera drivers: OV5647, IMX296, IMX335, OV9281; V4L2 camera backend on V2N
- Alif STOP / STANDBY low-power modes with RTC and timer wake on E1M-AEN
- tan-cli 0.7.0, 33 new examples; ABI changes in the CHANGELOG
- v0.16.02026-08-23 · releasedShipped
CC3501E Wi-Fi firmware v0.3.0 · ONNX Runtime on Cortex-A55 · tan-cli 0.6.0
- Signed CC3501E companion firmware v0.3.0 with OTA promote
- ONNX Runtime CPU inference backend for the Cortex-A55 (opt-in)
- Inference latency accessor: alp_inference_last_invoke_latency_us()
- E1M-AEN flash-path fixes and supply-chain hardening of CI
- Simulator removed: build for hardware or run under native_sim
- v0.15.02026-08-07 · releasedShipped
E1M-AEN801 dual-core flash fix · DRP-AI3 from <alp/inference.h> · Yocto backends
- E1M-AEN801: M55-HP and M55-HE images no longer overwrite each other
- RZ/V2N DRP-AI3 NPU available through <alp/inference.h>
- Linux backends for display, I3C, storage and USB
- Security and memory-safety fixes across tan and the AEN drivers
Earlier releases (13)
- v0.14.02026-07-29 · releasedPortable I3C controller class · bootstrap facts as data · the hw_rev / SDK-version gate finally exists
- v0.13.02026-07-24 · releasedCC3501E BLE GATT on real AEN silicon · Yocto power backend · Kconfig LSP feed
- v0.12.02026-07-22 · releasedADR-0020 — the SDK is plans-only, tan is the sole build executor
- v0.11.02026-07-16 · releasedCorrectness release — the Yocto image bakes end to end
- v0.10.12026-07-14 · releasedBootstrap fix — west alp-build resolves after setup
- v0.10.02026-07-14 · releasedPortable display path · GD32 OTA hardening · reproducible releases
- v0.9.02026-07-06 · releasedPortable-surface consistency · the alp CLI single front door
- v0.8.12026-06-24 · releasedSilicon-accuracy doc sweep — two SoM families now carry evidence
- v0.8.02026-06-24 · releasedE1M-AEN801 (Alif Ensemble E8) silicon bring-up · second verified SoM family
- v0.7.02026-06-12 · releasedProduction Yocto image · per-core OS topology contract
- v0.6.02026-06-06 · releasedHeterogeneous-OS orchestration · first silicon evidence on V2N
- v0.5.02026-04Wave-2 DSP / power / 2D-accelerator surfaces
- v0.4.02026-03 · prep mergedYocto first-class · secure boot + OTA prep
Full notes for these cuts live in the repo's CHANGELOG.md — see “Full changelog on GitHub” above.
§ Two ways to consume
Hand-written firmware, or generated from a GUI.
Both first-class.
The standalone path isn't a studio escape hatch — anything alp-studio can emit, you can write by hand against the same <alp/...> headers.
Standalone firmware
Hand-written C against <alp/...>
Write a Zephyr, Yocto, or bare-metal app directly. Pick instance IDs by hand from <alp/e1m_pinout.h> — ALP_E1M_I2C0, ALP_E1M_PWM3, and so on. Your app stays portable across every E1M-conformant SoM. Capability validation runs at runtime in *_open; alp_last_error() tells you why an open failed.
alp-studio codegen
GUI configurator that emits the same C
Studio reads block manifests, runs the pin allocator over the active SoM's manifest, and emits C that calls the same <alp/...> API the hand-written path uses. Pin-allocation correctness for free, with drop-in dropdowns for every MPN and board.
§ Get started
git clone https://github.com/alplabai/alp-sdk
cd alp-sdk
curl -fsSL https://raw.githubusercontent.com/alplabai/tan-cli/main/install.sh | sh
# Windows: irm https://raw.githubusercontent.com/alplabai/tan-cli/main/install.ps1 | iex
tan bootstrap --sdk-root "$PWD" # west + Zephyr workspace + Python deps
tan doctor # host sanity check
tan init --name my-app --destination .. --sdk-root "$PWD"
cd ../my-app
tan build # default target E1M-AEN801Full docs at docs.alplab.ai ↗
§ Develop in VS Code
Alp IDE brings a real language server for board.yaml, the full tan build surface, flash + debug, an SDK manager, and a project wizard into your editor — no terminal jumping.
- · Inline diagnostics, completion, hover, and quick-fixes on
board.yaml— an in-process language server, evaluated per keystroke rather than by shelling out - · New Project wizard — pick the SoM and SDK release, scaffold against the active SDK or a pinned release
- · SDK Manager: link and activate SDK checkouts per project — active version in the status bar
- · Build, image, flash, clean, and run under native_sim all delegate to the external
tanCLI (ADR-0020); the extension resolves and manages its own pinned copy of the binary. Plainwest flashandwest updatestay as direct west calls — they have no tan equivalent yet - · Zephyr
alp.conf, device tree overlays, CMake args, and Yocto config generated from the project’sboard.yaml - · Debug orchestration: project-state inspection, doctor + preflight checks, debug profiles, and exportable support bundles
Current build: v0.7.1, published to the stable VS Code Marketplace channel — no pre-release opt-in needed. It pins tan 0.7.0 and requires an alp-sdk checkout at v0.10.0 or newer.
§ Examples
Real applications. Clone, build, run. Our exhibition showcase, Trace Runner, is an SDK example too — a body-controlled game on one E1M-AEN803.
AI / Edge ML
Robotics
IoT
Display / HMI (LVGL)
Audio
Production & multi-processor
Peripherals (cross-family)
Low-level peripheral examples — build on both EVKs via the <alp/board.h> BOARD_* aliases.
DEEPX DX-M1