Custom Node Services
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:

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:

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:

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 |

Response
The response is structured as follows:
Bytes | Datatype | Content |
|---|---|---|
0-1 | UINT16 | SFC: 0xC000 |
2-5 | UINT32 | 32-bit firmware build hash |

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 |

Response
The response is structured as follows:
Bytes | Datatype | Content |
|---|---|---|
0-1 | UINT16 | SFC: 0xC001 |
2 | INT8 | ACK: 0 NACK: -1 |

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 |

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 |

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 |

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. |

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 |

Response
The response is structured as follows:
Bytes | Datatype | Content |
|---|---|---|
0-1 | UINT16 | SFC: 0xC004 |
2-3 | UINT16 | Setting ID |
4 | UINT8 | Setting Type |

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: Settings that are typically kept the same between LRUs on a vehicle. |
0x02 | Protected Settings: 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 |

Response
The response is structured as follows:
Bytes | Datatype | Content |
|---|---|---|
0-1 | UINT16 | SFC: 0xC005 |
2 | UINT8 | Hash Type |
3-6 | UINT32 | Settings Hash |

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 |

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 |

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 |

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 |

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 |

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 |

0xC009: Reset Parameters Service
Request
The request is structured as follows:
Bytes | Datatype | Content |
|---|---|---|
0-1 | UINT16 | SFC: 0xC009 |

Response
The response is structured as follows:
Bytes | Datatype | Content |
|---|---|---|
0-1 | UINT16 | SFC: 0xC009 |
2 | INT8 | ACK: 0 RESET_FAILED: -1 RESET_REJECTED: -2 |
