> For the complete documentation index, see [llms.txt](https://support.binho.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.binho.io/user-guide/protocols-and-interfaces/bridge-1.1-api/bridge-1.1-api-i3c-common-command-codes.md).

# Bridge 1.1 API - I3C Common Command Codes

### CCC (Common Command Codes)

The CCC (Common Command Codes) provides a set of universal commands supported across multiple devices. The Bridge for Supernova has a few CCCs which can be used to interact with the downstream devices. This section details these CCCs. For more information on this topic see [I3C Common Command Codes](https://support.binho.io/user-guide/protocols-and-interfaces/i3c-common-command-codes#what-are-common-command-codes) section.

#### GETPID

* **Command Request:**

  ```json
  {
    "transaction_id": 9,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "GETPID",
      "address": "08",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": {}
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "9",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_getpid"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "9",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_getpid",
      "status": "success",
      "result": {
        "payload": ["0", "0", "0", "0", "64", "65"],
        "payload_size": 6
      }
    }
  }
  ```

#### DIRECTSETMRL

* **Command Request:**

  ```json
  {
    "transaction_id": 10,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "DIRECTSETMRL",
      "address": "08",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": { 
        "cccDataBuffer": "10"
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "10",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_direct_setmrl"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "10",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_direct_setmrl",
      "status": "success",
      "result": {
        "payload": ["00", "00"],
        "payload_size": 2
      }
    }
  }
  ```

#### DIRECTENEC

* **Command Request:**

  ```json
  {
    "transaction_id": 11,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "DIRECTENEC",
      "address": "08",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": { 
        "events": ["ENINT", "ENCR", "ENHJ"]
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "10",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_direct_enec"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "10",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_direct_enec",
      "status": "success"
    }
  }
  ```

**Note:** For `DIRECTDISEC` the response's format is very similar, except that the accepted events are \["DISINT", "DISCR", "DISHJ"]. For `BROADCASTENEC` and `BROADCASTDISEC` is also similar but address parameter is not required.&#x20;

#### SETAASA

* **Command Request:**

  ```json
  {
    "transaction_id": 12,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "SETAASA",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": {
        "staticAddresses": ["08", "09", "0A"]
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "12",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_setaasa"
    }
  }

  ```

  2. Command result:

  ```json
  {
    "transaction_id": "12",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_setaasa",
      "status": "success"
    }
  }

  ```

#### ENTDAA

* **Command Request:**

  ```json
  {
    "transaction_id": 13,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "ENTDAA",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": {
        "targetDeviceTable": {
          "BMM350": {
            "staticAddress": "0x14",
            "dynamicAddress": "0x0C",
            "i3cFeatures": "0x0B",
            "maxIbiPayloadLength": "0xE9",
            "bcr": "0x26",
            "dcr": "0x43",
            "pid": ["0x07", "0x70", "0x10", "0x33", "0x00", "0x00"]
          }
        }
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "13",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_entdaa"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "13",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_entdaa",
      "status": "success"
    }
  }
  ```

**Note:** When using this command is necessary to previously run `i3c_init_bus` followed by`i3c_reset_bus`.

#### BROADCASTRSTACT

* **Command Request:**

  ```json
  {
    "transaction_id": 14,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "BROADCASTRSTACT",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": {
        "definingByte": "02"
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "14",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_broadcast_rstact"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "14",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_broadcast_rstact",
      "status": "success"
    }
  }
  ```

**Note:** Similar to `DIRECTRSTACT` but does not require an address parameter.

#### DIRECTENDXFER

* **Command Request:**

  ```json
  {
    "transaction_id": 15,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "DIRECTENDXFER",
      "address": "08",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": {
        "definingByte": "AA",
        "data": "20"
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "15",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_direct_endxfer"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "15",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_direct_endxfer",
      "status": "success",
      "result": {
        "payload": [0],
        "payload_size": 1
      }
    }
  }
  ```

**Note:** Similar to `BROADCASTENDXFER`, but requires an address parameter.

#### BROADCASTSETXTIME

* **Command Request:**

  ```json
  {
    "transaction_id": 16,
    "command": "i3c_ccc_send",
    "params": {
      "cccName": "BROADCASTSETXTIME",
      "pushPullClockFrequencyInMHz": "5",
      "openDrainClockFrequencyInKHz": "2500",
      "cccParams": {
        "definingByte": "3F",
        "data": ["DE", "AD", "BE", "EF"]
      }
    }
  }
  ```
* **Responses:**

  1. Immediate promise:

  ```json
  {
    "transaction_id": "16",
    "status": "success",
    "type": "command_response",
    "is_promise": true,
    "data": {
      "command": "i3c_ccc_broadcast_setxtime"
    }
  }
  ```

  2. Command result:

  ```json
  {
    "transaction_id": "16",
    "status": "success",
    "type": "command_response",
    "is_promise": false,
    "data": {
      "is_response_to": "i3c_ccc_broadcast_setxtime",
      "status": "success",
      "result": {
        "payload": [0, 0, 0, 0, 0],
        "payload_size": 5
      }
    }
  }
  ```

**Note:** Similar to `DIRECTSETXTIME`, but does not require an address parameter.

#### Currently Supported CCCs:

Refer to [this table](https://support.binho.io/user-guide/protocols-and-interfaces/i3c-common-command-codes#supported-cccs) for current support status (see Bridge column).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://support.binho.io/user-guide/protocols-and-interfaces/bridge-1.1-api/bridge-1.1-api-i3c-common-command-codes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
