---
title: Custom Node Services
slug: hargrave-arinc-protocol-1-1/custom-node-services
docTags: 
createdAt: 2025-09-24T05:43:03.096Z
---

The Hargrave ARINC 825 message set includes a series of custom node services for device configuration and configuration validation. Consult the basic or advanced ARINC guide for guidance on CAN ID structures for node services.

# Node Services

The CAN frames for the below node services are structured as follows:

![image.png](https://api.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/eoGJX8LjFQ5jBccKGaN1p_image.png)

The payload size is a maximum of 8 bytes. The first 2 bytes are the Service Function Code (SFC) which indicates which node service the message is for. The remaining up to 6 bytes can be used for node service data.

# Custom Node Services

The following standard node services are implemented:

| **SFC** | **Node Service**              | **Has Response** | **SCS Controlled**    | **Description**                                                                                                |
| ------- | ----------------------------- | ---------------- | --------------------- | -------------------------------------------------------------------------------------------------------------- |
| 0xC000  | Firmware Hash Service         | Yes              | No                    | Requests the 32-bit build hash of the firmware. Used to determine the build of firmware running on the device. |
| 0xC001  | Restart Service               | Yes              | No                    | Requests a device restart.                                                                                     |
| 0xC002  | Get Parameter Value Service   | Yes              | Yes (Parameter Group) | Requests the value of a given parameter.                                                                       |
| 0xC003  | Set Parameter Value Service   | Yes              | Yes (Parameter Group) | Sets the value of a given parameter.                                                                           |
| 0xC004  | Get Parameter Type Service    | Yes              | Yes (Parameter Group) | Requests the type of a given parameter.                                                                        |
| 0xC005  | Settings Hash Service         | Yes              | Yes (Parameter Group) | Requests a 32-bit hash of a given subset of the device settings. Used to verify device configuration.          |
| 0xC006  | Get Parameter Minimum Service | Yes              | Yes (Parameter Group) | Requests the minimum value of a given parameter.                                                               |
| 0xC007  | Get Parameter Maximum Service | Yes              | Yes (Parameter Group) | Requests the maximum value of a given parameter.                                                               |
| 0xC008  | Get Parameter Default Service | Yes              | Yes (Parameter Group) | Requests the default value of a given parameter.                                                               |
| 0xC009  | Reset Parameter Service       | Yes              | Yes (Parameter Group) | Requests the reset of all device settings.                                                                     |

## Custom Node Service Offset

In the case that the implemented custom node service SFCs collide with pre-existing node services on the network, an offset can be applied. This can be controlled through the device settings and will apply the configured positive offset to the custom node services only.

**Example**

With a configured custom node service offset of 100, the effective SFC of the Firmware Hash Service becomes:

::Image[]{src="https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/cthWNHP3CYhHWZ5BkCuZf_image.png" size="60" width="432" height="72" position="center" darkWidth="432" darkHeight="72" showCaption="false"}

## Service Control Service Mapping

For convenience, all parameter handling node services are mapped to the same Service Control Service lock. Enabling any of the parameter node services will enable all of them, using any of the parameter node services will reset the timeout, disabling any of the parameter node services will disable all of them.

## Setting Types and Values

The following types are supported over custom node services:

| **Code** | **Type** |
| -------- | -------- |
| 0x01     | BOOL     |
| 0x02     | UINT8    |
| 0x03     | UINT16   |
| 0x04     | UINT32   |
| 0x09     | FLOAT32  |

Setting values in parameter handling node services are a maximum of 4 bytes and have the following memory representation for the above types:

::Image[]{src="https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/7sONqKBDCOb_Rjg5K03IM_image-1.png" size="60" width="478" height="724" darkWidth="478" darkHeight="724" position="center" caption="SETTING VALUE datatype structure" alt="SETTING VALUE datatype structure" showCaption="true"}

This type will be indicated with the term SETTING VALUE.

## Messages

### 0xC000: Firmware Hash Service

The Firmware Hash Service is used to confirm which firmware build is running on a given device. The returned 32-bit firmware build hash can be accessed in the firmware change logs.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC000 |

![Firmware Hash Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/czl3M505L8m84dDNYkALo_image-2.png "Firmware Hash Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype** | **Content**                |
| --------- | ------------ | -------------------------- |
| 0-1       | UINT16       | SFC: 0xC000                |
| 2-5       | UINT32       | 32-bit firmware build hash |

![Firmware Hash Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/0qRqi4TZi3eKdzJcSzE0c_image-3.png "Firmware Hash Response Payload Structure")

### 0xC001: Restart Service

The Restart Service is used to request a device to reboot. Depending on the state the device is in (e.g. motor drive) it may reject a restart request.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC001 |

![Restart Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/Q1byvtUZnw2WJSDH4hoX9_image-4.png "Restart Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype** | **Content**          |
| --------- | ------------ | -------------------- |
| 0-1       | UINT16       | SFC: 0xC001          |
| 2         | INT8         | ACK: 0<br />NACK: -1 |

![Restart Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/F-7SjKywoZ033lqygiPEC_image-5.png "Restart Response Payload Structure")

### 0xC002: Get Parameter Value Service

The Get Parameter Value Service requests the value of a setting of a given setting ID. Setting IDs can be found in the product documentation.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC002 |
| 2-3       | UINT16       | Setting ID  |

![Parameter Get Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/347C3rzLIGEWinM6gC6BB_image-6.png "Parameter Get Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype**  | **Content**   |
| --------- | ------------- | ------------- |
| 0-1       | UINT16        | SFC: 0xC002   |
| 2-3       | UINT16        | Setting ID    |
| 4-7       | SETTING VALUE | Setting Value |

![Parameter Get Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/CgombK_FOhmYovhnWOYHo_image-7.png "Parameter Get Response Payload Structure")

### 0xC003: Set Parameter Value Service

The Set Parameter Value Service is used to set the new value of a setting of a given setting ID. Setting IDs can be found in the product documentation. The parameter set response contains the setting value after the request has been processed, equivalent to a parameter get response, if the value does not match that of the parameter set request then the request failed and the setting was not changed.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype**  | **Content**                 |
| --------- | ------------- | --------------------------- |
| 0-1       | UINT16        | SFC: 0xC003                 |
| 2-3       | UINT16        | Setting ID                  |
| 4-7       | SETTING VALUE | Value to set the setting to |

![Parameter Set Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/SvH6M8uVgacHt4D1Z7MSn_image-8.png "Parameter Set Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype**  | **Content**                                                    |
| --------- | ------------- | -------------------------------------------------------------- |
| 0-1       | UINT16        | SFC: 0xC003                                                    |
| 2-3       | UINT16        | Setting ID                                                     |
| 4-7       | SETTING VALUE | Value of the setting after the set request has been processed. |

![Parameter Set Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/H5Y4X1MyH-_WEmzQUfXAh_image-9.png "Parameter Set Response Payload Structure")

### 0xC004: Get Parameter Type Service

The Get Parameter Type Service requests the type of a setting of a given setting ID. Setting IDs can be found in the product documentation. The setting types are listed in the above ‘Setting Types and Values’ section, the type of a setting is used to infer the structure of the data returned in fields of type SETTING VALUE.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC004 |
| 2-3       | UINT16       | Setting ID  |

![Get Parameter Type Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/dZKFjjBjpvsclz2hDei9G_image-10.png "Get Parameter Type Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype** | **Content**  |
| --------- | ------------ | ------------ |
| 0-1       | UINT16       | SFC: 0xC004  |
| 2-3       | UINT16       | Setting ID   |
| 4         | UINT8        | Setting Type |

![Get Parameter Type Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/i8Oe756JeGAhoiVr4O7jO_image-11.png "Get Parameter Type Response Payload Structure")

### 0xC005: Settings Hash Service

The Settings Hash Service requests a calculated hash of the current settings values of a given subset of the settings as defined by the ‘Hash Type’ field. The following hash types are supported:

| **Hash Type** | **Settings Subset**                                                                                                                                    |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 0x00          | All Settings                                                                                                                                           |
| 0x01          | Group Settings:<br />Settings that are typically kept the same between LRUs on a vehicle.                                                              |
| 0x02          | Protected Settings:<br />Settings that are not individually configurable. If configured incorrectly, these settings could cause damage to your device. |

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC005 |
| 2         | UINT8        | Hash Type   |

![Settings Hash Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/6ON0RETw_AuTWv7KKyg0u_image-12.png "Settings Hash Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype** | **Content**   |
| --------- | ------------ | ------------- |
| 0-1       | UINT16       | SFC: 0xC005   |
| 2         | UINT8        | Hash Type     |
| 3-6       | UINT32       | Settings Hash |

![Settings Hash Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/V0EhPEdzDIxxElQvBnai0_image-13.png "Settings Hash Response Payload Structure")

### 0xC006: Get Parameter Minimum Service

The Get Parameter Minimum Service will return the minimum valid value for a setting of a given setting ID. Setting IDs can be found in the product documentation. Attempting to set a setting value below this minimum bound will cause the set operation to fail.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC006 |
| 2-3       | UINT16       | Setting ID  |

![Get Parameter Minimum Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/ZpjgN2We7L2BvqM2Jde2f_image-14.png "Get Parameter Minimum Payload Request Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype**  | **Content**           |
| --------- | ------------- | --------------------- |
| 0-1       | UINT16        | SFC: 0xC006           |
| 2-3       | UINT16        | Setting ID            |
| 4-7       | SETTING VALUE | Minimum Setting Value |

![Get Parameter Minimum Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/K5UcpVvwfZ4CCAV6yjx4z_image-15.png "Get Parameter Minimum Response Payload Structure")

### 0xC007: Get Parameter Maximum Service

The Get Parameter Maximum Service will return the maximum valid value for a setting of a given setting ID. Setting IDs can be found in the product documentation. Attempting to set a setting value above this maximum bound will cause the set operation to fail.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC007 |
| 2-3       | UINT16       | Setting ID  |

![Get Parameter Maximum Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/Y93OzgFXfpdHUO279eXX-_image-16.png "Get Parameter Maximum Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype**  | **Content**           |
| --------- | ------------- | --------------------- |
| 0-1       | UINT16        | SFC: 0xC007           |
| 2-3       | UINT16        | Setting ID            |
| 4-7       | SETTING VALUE | Maximum Setting Value |

![Get Parameter Maximum Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/5w5WTSbkqP7fJZhnBbkyL_image-17.png "Get Parameter Maximum Response Payload Structure")

### 0xC008: Get Parameter Default Service

The Get Parameter Default Service will return the default value for a setting of a given setting ID. Setting IDs can be found in the product documentation. This is the value that the setting will have after a settings reset.

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC008 |
| 2-3       | UINT16       | Setting ID  |

![Get Parameter Default Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/GhNlu1rlfcgEzKpoyW4v-_image-18.png "Get Parameter Default Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype**  | **Content**           |
| --------- | ------------- | --------------------- |
| 0-1       | UINT16        | SFC: 0xC008           |
| 2-3       | UINT16        | Setting ID            |
| 4-7       | SETTING VALUE | Default Setting Value |

![Get Parameter Default Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/BNV6ps3F2Y0FDy-bXUwvE_image-19.png "Get Parameter Default Response Payload Structure")

### 0xC009: Reset Parameters Service

**Request**

The request is structured as follows:

| **Bytes** | **Datatype** | **Content** |
| --------- | ------------ | ----------- |
| 0-1       | UINT16       | SFC: 0xC009 |

![Reset Parameters Request Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/PxgQwxAjuCzJci-ahHHKO_image-20.png "Reset Parameters Request Payload Structure")

**Response**

The response is structured as follows:

| **Bytes** | **Datatype** | **Content**                                            |
| --------- | ------------ | ------------------------------------------------------ |
| 0-1       | UINT16       | SFC: 0xC009                                            |
| 2         | INT8         | ACK: 0<br />RESET\_FAILED: -1<br />RESET\_REJECTED: -2 |

![Reset Parameters Response Payload Structure](https://app.archbee.com/api/optimize/MIXUvgEo5LjmssoyMwenk/uUUDnvLnne9TrtuzZchqL_image-21.png "Reset Parameters Response Payload Structure")

