Platforms
heliaAOT ships with a platform registry that captures per-SoC details used during conversion and codegen: available memories (and their sizes), a preferred placement order for the memory planner, supported features (capabilities), and typical clock profiles. Selecting the right platform ensures kernels, buffers, and arenas are sized and placed realistically for your target board.
You can select a platform on the CLI or in YAML:
The config tag below is the value to pass via --platform.name. Capabilities describe optional subsystems (e.g., BLE, USB, DSP/MVE) that example apps or kernels may rely on. Memory sizes are shown in KB/MB; the preferred order influences where tensors/arenas are placed during planning.
Discovering targets without the repository
If you installed heliaAOT from PyPI and do not have the repository source checked out, the supported targets are still fully discoverable from the CLI:
# List every supported target name, CPU, and capabilities
helia-aot list-targets
# Show one target's clock speeds, memories, capabilities, and alignment
helia-aot target-info --name apollo330mp_evb
The same data is available from the Python API:
from helia_aot.platforms import get_platform, list_platform_names, list_platforms
list_platform_names() # ['apollo330mp_evb', 'apollo3_blue_evb', ...]
get_platform("apollo510b_evb") # SocPlatform(...) with memories/capabilities
list_platforms() # every registered SocPlatform, ordered by name
Supplying an unknown platform.name raises an error that lists every valid target name,
so typos are self-correcting:
Error: Unknown platform 'apollo330'. Valid targets: apollo330mp_evb, apollo3_blue_evb, ...
hint: Run `helia-aot list-targets` to list targets, or `helia-aot target-info --name <target>`
for a target's capabilities.
Target names are case-insensitive
platform.name is matched regardless of case, so apollo330mp_evb, Apollo330MP_EVB,
and APOLLO330MP_EVB all select the same target. The canonical spelling shown by
list-targets is what appears in generated artifacts.
Custom boards
Any target not listed here can still be used by supplying the full platform definition in YAML
(platform.cpu, platform.speeds, platform.memories, platform.preferred_memory_order, platform.min_alignment)
or via CLI flags (--platform.cpu, --platform.speeds, --platform.memories, --platform.preferred-memory-order, --platform.min-alignment).
That builds a custom platform for that conversion only. To make a custom platform available
process-wide (e.g., across repeated Python API conversions), register it explicitly with
helia_aot.platforms.register_platform.
Supported targets
-
Apollo3 Plus EVB
Config tag:
apollo3_evbCapabilities:
MCU,DSPMemory:
- MRAM: 1.0 MB (1024 KB)
- SRAM: 320 KB (main SRAM)
- DTCM: 64 KB
-
Apollo3 Blue EVB
Config tag:
apollo3_blue_evbCapabilities:
MCU,BLE,DSPMemory:
- MRAM: 1.0 MB (1024 KB)
- SRAM: 320 KB (main SRAM)
- DTCM: 64 KB
-
Apollo3 Blue Thin EVB
Config tag:
apollo3_blue_thin_evbCapabilities:
MCU,BLE,DSPMemory:
- MRAM: 1.0 MB (1024 KB)
- SRAM: 320 KB (main SRAM)
- DTCM: 64 KB
-
Apollo3 Blue Plus EVB
Config tag:
apollo3_blue_plus_evbCapabilities:
MCU,BLE,DSPMemory:
- MRAM: 2.0 MB (2048 KB)
- SRAM: 704 KB (main SRAM)
- DTCM: 64 KB
-
Apollo3P EVB (compat alias)
Config tag:
apollo3p_evbCapabilities:
MCU,BLE,DSPMemory:
- MRAM: 2.0 MB (2048 KB)
- SRAM: 704 KB (main SRAM)
- DTCM: 64 KB
-
Apollo330M Plus EVB
Config tag:
apollo330mp_evbThe EVB for the Apollo330 Plus series (part
AP330MPEVB) carries the multi-protocol Apollo330M Plus variant (Bluetooth Low Energy plus 802.15.4 / Thread / Matter).Capabilities:
MCU,DSP,MVE,FP16,BLE,USBCPU: Cortex-M55 (Helium) — 96 / 192 / 250 MHz
Memory:
- MRAM: 2.0 MB (2048 KB)
- SRAM: 1.75 MB (1792 KB)
- DTCM: 256 KB
-
Apollo4 Plus EVB
Config tag:
apollo4p_evbCapabilities:
MCU,USB,DSPMemory:
- MRAM: ~2.0 MB (2000 KB)
- SRAM: 1.0 MB (1024 KB)
- DTCM: 384 KB
-
Apollo4 Plus Blue KBR EVB
Config tag:
apollo4p_blue_kbr_evbCapabilities:
MCU,USB,BLE,DSPMemory:
- MRAM: ~2.0 MB (2000 KB)
- SRAM: 1.0 MB (1024 KB)
- DTCM: 384 KB
-
Apollo4 Blue Plus KXR EVB
Config tag:
apollo4p_blue_kxr_evbCapabilities:
MCU,USB,BLE,DSPMemory:
- MRAM: ~2.0 MB (2000 KB)
- SRAM: 1.0 MB (1024 KB)
- DTCM: 384 KB
-
Apollo4 Lite EVB
Config tag:
apollo4l_evbCapabilities:
MCU,DSPMemory:
- MRAM: ~2.0 MB (2000 KB)
- SRAM: 1.0 MB (1024 KB)
- DTCM: 384 KB
-
Apollo4 Blue Lite EVB
Config tag:
apollo4l_blue_evbCapabilities:
MCU,BLE,DSPMemory:
- MRAM: ~2.0 MB (2000 KB)
- SRAM: 1.0 MB (1024 KB)
- DTCM: 384 KB
-
Apollo510 EVB
Config tag:
apollo510_evbCapabilities:
MCU,USB,PSRAM,DSP,MVE,FP16Memory:
- MRAM: 4.0 MB (4096 KB)
- SRAM: 3.0 MB (3072 KB)
- DTCM: 512 KB
- ITCM: 256 KB
- PSRAM: ~31.4 MB (32168 KB)
-
Apollo510 Lite EVB
Config tag:
apollo510l_evbCapabilities:
MCU,DSP,MVE,FP16,USBCPU: Cortex-M55 (Helium) — 96 / 192 / 250 MHz
Memory:
- MRAM: 2.0 MB (2048 KB)
- SRAM: 1.75 MB (1792 KB)
- DTCM: 256 KB
-
Apollo510 Blue EVB
Config tag:
apollo510b_evbCapabilities:
MCU,DSP,MVE,FP16,BLE,USBCPU: Cortex-M55 (Helium) — 96 / 250 MHz
Memory:
- MRAM: 4.0 MB (4096 KB)
- SRAM: 3.0 MB (3072 KB)
- DTCM: 512 KB
- ITCM: 256 KB
-
Atomiq110
Config tag:
atomiq110Capabilities:
MCU,DSP,MVE,FP16,NPUCPU: Cortex-M55 + Ethos-U85 NPU — 100 / 250 / 500 MHz
Memory:
- MRAM: 4.0 MB (4096 KB)
- SRAM: 3.0 MB (3072 KB, on-chip SSRAM)
- DTCM: 496 KB
- ITCM: 256 KB
Units & rounding
Registry values for Apollo4/Apollo510 were provided as multiples of 1024 and are shown here in KB/MB (MiB-style rounding).