> Complete documentation index: [llms.txt](/llms.txt). Markdown versions of all pages are available by appending `.md` to page URLs.

# Receiving Responses

> The three response formats every ASCII command returns: ACK, NAK, and Data.

:::note
**Applies to:** Binho Nova natively, and to Binho Supernova and Binho Pulsar when
they are running **Nova Compatibility Mode** (a USB CDC operating mode that
emulates this protocol). Behavior on Supernova and Pulsar is close but not
identical: differences are marked throughout this reference, and summarized on
[Nova Compatible Mode](/guides/usb-interfaces/usb-cdc-operating-modes/nova-compatible-mode/).

:::

:::note
These three response formats are identical in Nova Compatibility Mode on Supernova
and Pulsar: the host library depends on them matching exactly.

:::

As mentioned previously, every command sent to the host adapter will receive a response.

:::note
The response to **every** command from the host adapter will begin with`-`.

:::

The Response Packets fall into one of three categories:

### ACK Response

An **ACK** response from the host adapter indicates that the received command has been executed successfully. An **ACK** response is represented by `-OK`

For example, the PING command always elicits an **ACK** response from the device:

```text
+PING
-OK
```

### NAK Response

A **NAK** response from the host adapter indicates that the received command failed to execute. This could be indicative of a spelling error/typo, invalid command name or parameter values, or the failure to successfully execute the called function. A **NAK** response is represented by `-NG`

For example, a keyboard error caused `+PING` to be misspelled as `+PONG`, which is a non-existent command:

```text
+PONG
-NG
```

### Data Response

Many of the commands sent to the host adapter result in the host adapter responding with data. In these cases, the format of the response is specific to the executed command. Typically the response contains the name of the command followed by the response data.

For example, sending the +FWVER command causes the device to respond as such:

```text
+FWVER
-FWVER 0.1.5
```

The command pages in this section provide detailed example responses for each host
adapter command.

### But wait... What About Interrupts?

Interrupts aren't actually a response to a command: they are unsolicited
transmissions, and so they aren't covered by the three formats above.