EKF CCU — ekfsm documentation

# EKF CCU

## Chassis Inventory (Object: chassis_inventory)

The system inventory provides access to the chassis inventory, such as the vendor, model, serial number, and revision.

You can access the chassis inventory from the ccu object via the chassis_inventory attribute.

Alternatively, if your system configuration has the following snippet:

    system_config:
    name: "MySystem"
    aggregates:
        chassis_inventory: inventory

you can access the chassis inventory via the system object’s inventory attribute.

Method | Description | Example Value
`vendor()` | Get the chassis vendor | `EKF Elektronik`
`model()` | Get the chassis model | `SRS-C001`
`serial()` | Get the chassis serial number | `12345678`
`revision()` | Get the chassis revision | `2.0`
`unit()` | Get subsystem unit number | `1`

## Inventory of the CCU board (Object: inventory)

The inventory function provides access to the inventory, such as the vendor, model, serial number (taken from the board’s EEPROM), and revision (from the board’s GPIO device).

Method | Description | Example Value
`vendor()` | Get the board vendor | `EKF`
`model()` | Get the board model | `SUR-UART`
`serial()` | Get the board serial number | `12345678`
`revision()` | Get the board revision | `1`

## CCU EEPROM Customer area (Object: custom_eeprom)

The CCU EEPROM provides 64 bytes for custom data storage.

Method | Description | Example Value
`write()` | Write data to CCU EEPROM customer are | `b'\x01\x02\x03\x04\x05`
`read()` | Get the customer area of the CCU EEPROM. | `b'\x01\x02\x03\x04\x05`

## CCU Management (Object: management)

Method | Description | Example Value
`identify_firmware()` | Get the firmware title and version of the CCU | `fw-ccu-00-default` `1.0.0`
`load_firmware()` | Load firmware into the CCU | <binary data>
`get_parameterset()` | Get the CCU parameterset in JSON format | `{"version": "factory", "parameters": { ... } }`
`load_parameterset()` | Load a parameterset into the CCU | `{"version": "1.0.0", "parameters": { ... } }`
`restart()` | Restart the CCU | N/A

## System State Controller (Object: sysstate)

The system state controller provides method to influence the CCU’s system state controller.

Method | Description | Example Value
`wd_trigger()` | Trigger Watchdog | N/A
`sw_shutdown()` | Tell CCU that we are going to shutdown | `50`

## Fan Controller (Object: fan)

Method | Description | Example Value
`fan_status()` | Get the status of a fan | `5500`, `5380`, `3`
`push_temperature()` | Tell FAN controller the external temperature | `65`

## Inertial Measurement Unit (Object: imu)

Method | Description | Example Value
`sample()` | Read the next IMU sample | `accel: [-0.0047884033203125, -0.0143652099609375, 9.859322436523437], gyro: [-0.3662109375, -0.54931640625, 0.18310546875], lost: False`

## Thermal and Humidity Sensor (Object: th)

Method | Description | Example Value
`temperature()` | Get the temperature | `-10`
`humidity()` | Get the humidity | `50`

## System Input Voltage (Object: vin)

Method | Description | Example Value
`voltage()` | Get the system input voltage | `108`