# Build AI applications. Compose your firmware.

Build AI applications. Compose your firmware.

neuralSPOT-X (NSX) is Ambiq’s modular AI SDK. Compose inference, audio, connectivity and system modules into your application. Build for Ambiq silicon with GCC, ATfE or ACFE, using bare metal or FreeRTOS, through one workflow from setup to firmware.

[Get started](https://ambiqai.github.io/neuralspotx/getting-started/)
[Explore modules](https://ambiqai.github.io/neuralspotx/modules/catalog/)
v

THE SDK FOUNDATION

Your AI application

NSX modules

AmbiqSuiteHALBSPDevice

Your application, assembled.
Compose modules on a shared hardware foundation.

PLUG-AND-PLAY MODULES

AI &amp; DSPInference · filtering
Audio &amp; sensorsMicrophones · capture
ConnectivityBLE · USB · serial
System &amp; RTOSFreeRTOS · power

Add the capabilities you need.
NSX resolves dependencies and connects the build.

ACROSS AMBIQ SILICON

Silicon families
Apollo3Apollo4Apollo5

Toolchains
GCCATfEACFE

One workflow across families.
Choose your board; check its module and toolchain support.

GCC · ATfE · ACFE ↗
Bare metal · FreeRTOS ↗
Module catalog ↗
Lock and sync ↗
Boards and targets ↗

NSX resolves the modules you select and their required dependencies, then integrates
them into your CMake project. HAL, BSP and device support provide the hardware foundation.
Start with a bare-metal application, or add the FreeRTOS module when you need tasks.

- [Compose with modules](https://ambiqai.github.io/neuralspotx/guides/modules/using-modules/): Find reusable capabilities, add them to your app and lock the resolved dependency set.
- [Choose your toolchain](https://ambiqai.github.io/neuralspotx/guides/system/toolchains/): Use GCC, Arm Toolchain for Embedded (ATfE) or Arm Compiler for Embedded (ACFE). Check the target declarations and validation status in the toolchain guide.
- [Bare metal or FreeRTOS](https://ambiqai.github.io/neuralspotx/guides/examples/freertos_blinky/): Keep a simple application loop or build on FreeRTOS tasks. The example shows the module and initialization steps.

Abbreviated examples: install with `uv tool install neuralspotx`, check with `nsx doctor`,
create with `nsx create-app`, then `nsx build`, `nsx flash` and `nsx view`.
Hardware output is illustrative. Follow [Getting started](https://ambiqai.github.io/neuralspotx/getting-started/) for the complete instructions.

Once your first app builds, add capabilities through NSX modules. Like pip, Cargo or npm,
NSX uses named dependencies, manifests and a lockfile, with compatibility checks for your target.

- [1. Find a capability](https://ambiqai.github.io/neuralspotx/modules/catalog/): Search by function, then filter by board or toolchain. Inspect dependencies and declared compatibility.
- [2. Add it to your app](https://ambiqai.github.io/neuralspotx/guides/modules/using-modules/): Add a module by name. NSX updates nsx.yml, resolves required dependencies and syncs their sources.
- [3. Build and keep the lock](https://ambiqai.github.io/neuralspotx/guides/modules/lock-and-sync/): Build your application and commit nsx.lock to record the resolved source set.

- [Create an app](https://ambiqai.github.io/neuralspotx/getting-started/first-app/): Start with a board and template. NSX writes your manifest, CMake project and source files, then brings in the board baseline.
- [Lock the dependency set](https://ambiqai.github.io/neuralspotx/guides/modules/lock-and-sync/): Record resolved sources and hashes in nsx.lock. Sync the same set on another checkout and export it with nsx sbom.
- [Build with CMake](https://ambiqai.github.io/neuralspotx/guides/system/toolchains/): Use CMake and Ninja with the toolchain declared for your target. Your application remains an editable firmware project.

After [checking your environment](https://ambiqai.github.io/neuralspotx/getting-started/doctor/), follow
[build, flash and view](https://ambiqai.github.io/neuralspotx/guides/apps/build-flash-view/) to run the app.
[App layout](https://ambiqai.github.io/neuralspotx/guides/apps/app-layout/) explains which files you own and which
NSX regenerates.

- [heliaRT](https://ambiqai.github.io/helia-rt/): LiteRT for Micro / TFLM-compatible runtime with Reference, CMSIS-NN, and heliaCORE backends.
- [heliaCORE](https://ambiqai.github.io/ns-cmsis-nn/): Optimized neural-network kernel library for Ambiq SoCs.
- [heliaAOT](https://ambiqai.github.io/helia-aot/): Ahead-of-time compiler producing standalone C inference modules.

heliaRT and heliaCORE reach your app as the `nsx-helia-rt` and `nsx-cmsis-nn` modules; both
also ship CMake and Zephyr integration in their public repositories, so choosing NSX here
is not the only way to consume them.

Read more: the [KWS Inference example](https://ambiqai.github.io/neuralspotx/guides/examples/kws_infer/) declares the
`nsx-helia-rt` module and builds like any other app here.

The packaged registry lists 50 modules. NSX ships 17 board descriptors across 11 SoC
families, declaring 3 toolchains between them, and this repository carries 10 example
apps.

Use the [module catalog](https://ambiqai.github.io/neuralspotx/modules/catalog/) and
[board matrix](https://ambiqai.github.io/neuralspotx/modules/boards/) to inspect the declarations, then read
[Boards and targets](https://ambiqai.github.io/neuralspotx/guides/apps/boards-and-targets/) to configure your app.
Check the module and example documentation for validation on your target.

- [Hello World](https://ambiqai.github.io/neuralspotx/guides/examples/hello_world/): Build, flash and view your first board application.
- [Audio Capture](https://ambiqai.github.io/neuralspotx/guides/examples/audio_capture/): Capture microphone audio with the NSX audio module.
- [KWS Inference](https://ambiqai.github.io/neuralspotx/guides/examples/kws_infer/): Run keyword-spotting inference with TFLite Micro and CMSIS-NN kernels.[More examples](https://ambiqai.github.io/neuralspotx/guides/examples/)

- [Getting started](https://ambiqai.github.io/neuralspotx/getting-started/): Install NSX on macOS, Linux or Windows, check your environment and build your first board app.
- [User guide](https://ambiqai.github.io/neuralspotx/guides/): Apps, modules, memory placement, startup and linker behavior, toolchains, and the concepts behind app generation.
- [Modules](https://ambiqai.github.io/neuralspotx/modules/): The module registry: what each module provides, which SoCs and boards it declares compatibility with, and how to add it.
- [API reference](https://ambiqai.github.io/neuralspotx/reference/): Every CLI command and option, the public Python API, and the schema of each manifest NSX reads.

Extend the SDK with [custom modules](https://ambiqai.github.io/neuralspotx/guides/modules/custom-modules/)
or [contribute a module](https://ambiqai.github.io/neuralspotx/guides/contribute/adding-a-module/).
For automation, use the [agent guidance](https://ambiqai.github.io/neuralspotx/guides/contribute/agent-guidance/),
[Markdown documentation](https://ambiqai.github.io/neuralspotx/llms.txt) and
[module catalog JSON](https://ambiqai.github.io/neuralspotx/modules/catalog.json).

NSX is Beta and is supported for evaluation: use it for bring-up, profiling,
validation and demos. Production support is not committed before 1.0. Every name
exported from the `neuralspotx` Python package carries the **Provisional** stability
tier: the name is public and supported, and it may still change before 1.0. Pin an
exact version of `neuralspotx` anywhere it is a dependency of something you ship, and
record that version alongside the artifacts it produced. See
[Releases and versioning](https://ambiqai.github.io/neuralspotx/reference/releases/) for how versions are
numbered and what pins separately from the CLI.

<!-- nsx:home-workflow -->
## Workflow terminal examples

Abbreviated examples; hardware output is illustrative.

### Install the CLI

Install the NSX CLI after setting up the host tools and compiler.

```text
$ uv tool install neuralspotx
Installed 1 executable: nsx
```

### Check the environment

nsx doctor names every host tool it needs and what a missing one would cost you.

```text
$ nsx doctor
[OK] cmake
[OK] ninja
[OK] arm-none-eabi-gcc
[OK] SEGGER J-Link
```

### Create an app for a board

A complete app directory for a real board: nsx.yml, CMakeLists.txt, sources and the starter modules.

```text
$ nsx create-app hello_ap510 --board apollo510_evb
Created app 'hello_ap510' at: /home/you/hello_ap510
Next steps:
  1) cd /home/you/hello_ap510
  2) Run `nsx configure --app-dir .`
```

### Configure and build

Modules resolve and lock, CMake generates, Ninja builds. The result is an ordinary project you own.

```text
$ cd hello_ap510 && nsx configure
Configured app at: /home/you/hello_ap510
$ nsx build
[..] (24 compile, archive and link steps)
   text    data     bss     dec     hex filename
  19080     592  507312  526984   80a88 hello_ap510
```

### Flash it over J-Link

nsx flash builds if needed, then programs the board over SWD through the SEGGER tools nsx doctor checked.

```text
$ nsx flash
[Connect to J-Link; program and verify firmware]
[Reset target and start application]
```

### Watch it run

nsx view opens the SWO viewer and streams the firmware's output back to your terminal.

```text
$ nsx view
nsx hello from generated app
nsx hello from generated app
```

### Add a module inside your app

```bash
nsx module search audio
nsx module add nsx-audio
nsx build
```
<!-- /nsx:home-workflow -->
