# Hardware prerequisites

Know what to plug in before you run anything. A profile needs a board hpx
knows, a J-Link path to it, and a host with the tools from
[Install](https://ambiqai.github.io/helia-profiler/getting-started/install/). Power measurement needs one more instrument and comes
later; you do not need it for your first profile.

## Host setup

Complete [Install](https://ambiqai.github.io/helia-profiler/getting-started/install/) on your Linux, macOS or Windows host. You need Python 3.11 or newer, an Arm toolchain, CMake 3.24 or newer, Ninja and the SEGGER J-Link software. Python dependency wheels must be available for your host and Python version.

**neuralSPOT-X and the Python RTT transport are installed with hpx.** You do not need a separate SDK checkout for a standard profile. Run `hpx doctor` to check that the host tools can be found.

## Board and debug connection

| Your setup | What to connect |
|---|---|
| Supported EVB with on-board J-Link | The EVB and a data-capable USB cable connected to its debug USB port. |
| Board using an external probe | A SEGGER J-Link connected to the board's SWD header, plus the board's power connection. The board must have an hpx board definition. |
| Serial capture instead of RTT | The connection required by your selected transport: target USB for `usb_cdc`, or the virtual COM port / serial adapter for `uart`. |

The default RTT transport uses the same J-Link connection for flashing and capture. Start there unless your setup calls for serial capture. See [Capture transports](https://ambiqai.github.io/helia-profiler/guide/transports/) for the wiring and configuration choices.

Board names and support channels are listed in [Boards and targets](https://ambiqai.github.io/helia-profiler/guide/boards/). Run `hpx boards` for the registry in your installed version. A custom board needs integration before it can be profiled; connecting a probe alone does not add board support.

### Select your board

Connect the board's on-board J-Link, or an external J-Link attached to its
SWD header. hpx uses that connection for flashing and the default `rtt` capture. Boards with more than one USB connector label the debug port on the
silkscreen or the quick-start card; if `hpx probes list` prints nothing after
you plug in, check the connector, cable, SEGGER installation and host USB permissions.

The default board is `apollo510_evb`. Pass `--board <name>` for any other,
using the exact name from `hpx boards`. A board on the `preview` channel
works with the same commands; the channel records how much hardware
validation backs it, not whether hpx will drive it.

### Select your probe

hpx uses SEGGER J-Link, either the on-board probe or an external J-Link
plugged into the EVB's SWD header. With one probe attached nothing needs
configuring. With several, `hpx probes match --board <name>` shows which
serial hpx will pick, and `--jlink-serial` pins it.

## Optional power measurement

Cycle counts need no instrument. Power needs one of:

- A Joulescope in the supply path to the board, with its GPIO inputs wired
  to the board pins hpx toggles to mark the measurement window. The per-board
  pin tables and the sense wiring are on [Power measurement](https://ambiqai.github.io/helia-profiler/guide/power/).
- An INA228 current monitor on the board's I2C, read by the firmware itself,
  which needs no host instrument during capture.

Start with timing measurements, then follow [Power measurement](https://ambiqai.github.io/helia-profiler/guide/power/) when you are ready to add energy capture.

## What next

[Validate your setup](https://ambiqai.github.io/helia-profiler/getting-started/validate-your-setup/) runs the five commands that
prove the host, the probe and the board agree before you spend a build on
them.
