> For the complete documentation index, see [llms.txt](https://docs.mtoolstec.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mtoolstec.com/hardware/rfid-nfc-and-uhf-hardware/pn532killer/command-reference.md).

# Command and Integration Reference

PN532Killer accepts PN532-compatible host frames and additional commands for extended functions. Use the [PN532 CLI source](https://github.com/whywilson/pn532-python/tree/dev) to develop a host application and the [device protocol reference](https://github.com/NFC-funs/PN532Killer/blob/main/PN532Killer%20Command-V0.1.md) for byte layouts.

## Common Interactive Commands

| Command                            | Purpose                             |
| ---------------------------------- | ----------------------------------- |
| `hw connect -p PORT`               | Open a local serial connection      |
| `hw version`                       | Read the device version             |
| `hw mode r`                        | Enter Reader mode                   |
| `hw mode e -t TYPE -s SLOT`        | Select an emulator profile and slot |
| `hf 14a scan`                      | Discover an ISO14443A tag           |
| `hf 15 scan` / `hf 15 info`        | ISO15693 inventory and information  |
| `hf mf eLoad -s SLOT --bin FILE`   | Import a Classic emulator image     |
| `hf mf eRead -s SLOT --json --bin` | Export a Classic emulator image     |
| `hw fw --bin FILE`                 | Start the USB firmware updater      |

Commands and capitalization follow the development CLI. Use `hw`, `hf mf`, or the corresponding command with `-h` to inspect the installed version's arguments.

## Extended Protocol Identifiers

| Code   | Function                 |
| ------ | ------------------------ |
| `0x1C` | Read emulator data       |
| `0x1E` | Write emulator data      |
| `0x20` | Retrieve Sniffer records |
| `0x22` | Clear Sniffer records    |
| `0x24` | Read extended user data  |
| `0xAA` | Identify PN532Killer     |
| `0xAC` | Set operating mode       |

These are command identifiers, not complete serial frames. Apply the protocol's frame format, command parameters, and checksum; do not transmit the table values alone.

## libnfc

Configure a PN532 UART device using your actual port:

```ini
device.name = "PN532Killer"
device.connstring = "pn532_uart:/dev/ttyUSB0"
```

Select Reader mode, close PN532 CLI, and run `nfc-list`. Standard libnfc does not expose the entire extended command set.

## Version Compatibility

Keep host software and device firmware versions recorded together. The stable CLI and development CLI have different command trees. A registered command name may wrap another workflow; consult its implementation before treating it as a distinct algorithm. Host code and firmware are separate deliverables.
