# Device's Infuse ID

> How do I find out the Infuse ID of a device

## Prerequisites

- Python tools
- Device hardware that has already been provisioned in Infuse-IoT.
<tip>

This method can be used to determine if device hardware is not provisioned.

</tip>

## Read the Infuse ID when trying to provision the tag

Attempting the provision the device is the best way to do this.
Once completed it will confirm if the device is already provisioned in Infuse Cloud and if so print it to the terminal.

```text
> infuse provision --nrf
to-do
```

The output will be different if the device is not already provisioned

```text
to-do
```

<warning>

This method may not work for devices with readback protection enabled.

</warning>

## Check the serial logs.

When Infuse devices reboot, they print out device status and information.
This includes the device's Infuse ID.

Connect the device to your machine using USB or the programmer, depending which is configured as the serial backend.
The Python tools to view the device's logs using `infuse gateway -d --serial [port]` or `infuse gateway -d --rtt [mcu name]`
using the corresponding serial port or microcontroller name for the command.

Reboot the tag (by either using the device's reset button (if available), or power cycling the device) and then connect to the tag using the Python tools soon after

<tip>

Ensure to only connect after the reset, otherwise the tools may not remain connected after the boot sequence.

</tip>

<warning>

This depends on Zephyr's serial logging being enabled. Some firmware such as releases may disable this mechanism

</warning>

## Check for the tag over Bluetooth

If the device is powered and sends data over Bluetooth, utilise the Python tools to listen to nearby devices and
print out the Infuse ID.

1. Ensure that the device is powered on and actively sending Bluetooth advertising data.
2. Setup the Python tools and connect to a separate device running the `gateway_usb` firmware. For a serial gateway
on `/dev/ttyACM0` run:

```text
infuse gateway --serial /dev/ttyACM0
```

or run `infuse native_bt` to run without a gateway if your PC supports the Bluetooth requirements.
3. In a separate terminal run `infuse localhost` and open the web address printed in the console
4. Look for devices as they appear in the table (filtering out irrelevant devices).

<tip>

Sort devices by RSSI, and try to move the device in question closer and further away from the gateway.

</tip>
