9. CAN custom packages
#Purpose
Custom packages are the simplest way to send or receive data in FuelTech fixed-format frames: each frame carries four 16-bit values, with no need to define anything bit by bit. They are meant for dashes and dataloggers that already read this format, and for exchanging data between two FuelTech VCUs.
They are in VCU settings > CAN custom packages, in the desktop software, with two tabs: Adjust (the 20 packages) and Settings (legacy broadcasts and sending intervals).
#The 20 packages
Each package has:

| Field | What it does |
|---|---|
| CAN port | Off, CAN A, CAN B or CAN C. Off disables the package. |
| Direction | TX (the VCU sends) or RX (the VCU receives). |
| CAN ID (HEX) | Identifier in hexadecimal. It is used exactly as typed. |
| Extended ID | On: 29-bit ID (default). Off: 11 bits. |
| Data 1 to Data 4 | The VCU channel for each position in the frame. |
The transmit interval is not per package: it is the port's CAN A/B/C sending interval, in the Settings tab (the same field appears in CAN ports), from 0.005 to 60 s.
#Format on the bus
The frame always has 8 bytes. Each value takes 2 bytes, as a signed 16-bit integer in Motorola order (most significant byte first):
| Bytes 0 and 1 | Bytes 2 and 3 | Bytes 4 and 5 | Bytes 6 and 7 |
|---|---|---|---|
| Data 1 | Data 2 | Data 3 | Data 4 |
The value goes in the VCU's internal unit multiplied by a fixed factor, which depends on the channel type. The most common ones:
| Channel type | Multiplier |
|---|---|
| Temperature (°C), TPS and percentages, speed (km/h) | 10 |
| Pressure and MAP (bar), O2 sensor | 1000 |
| Ignition advance, angles, acceleration | 100 |
| Engine speed, frequency, gear, buttons | 1 |
Example: an engine temperature of 90.0 °C is sent as 900 (bytes 03 84); a TPS of 45.5% is sent as 455 (01 C7). When receiving, the VCU does the inverse calculation. Always check a known value in real time.
A package with an invalid ID or invalid channel is turned off by the VCU. The error appears in the CAN custom packets: Frame error channel (one bit per package) and in the notification "CAN custom packets: Frame (de)composition error", about 15 s after the map is written. The channel and the notification write "packets", but they refer to this same feature.
#Legacy broadcasts
With Legacy broadcast CAN A/B/C on for a port (Settings tab, or the FTCAN 2.0 group of the CAN ports screen), the VCU transmits nine fixed-content frames, at the port's sending interval. They have the same IDs and the same content as the simplified packets of the FTCAN 2.0 protocol, used by the FuelTech PowerFT line ECUs. This is how to feed dashes and equipment that already read this format.

The ID depends on the Product identifier chosen in CAN ports:
| Message | As FT500 | As FT600 (default) | As FT700 |
|---|---|---|---|
| 1 | 0x14000600 | 0x14080600 | 0x14100600 |
| 2 | 0x14000601 | 0x14080601 | 0x14100601 |
| ... | ... | ... | ... |
| 9 | 0x14000608 | 0x14080608 | 0x14100608 |
The IDs in the table apply to Single identifier 0. Each additional unit adds 0x4000 to the ID: with Single identifier 1, message 1 as FT600 becomes 0x14084600. Content of each message (4 values per frame, in byte order):
| Msg. | Bytes 0-1 | Bytes 2-3 | Bytes 4-5 | Bytes 6-7 |
|---|---|---|---|---|
| 1 | TPS | MAP | Intake air temperature | Engine temperature |
| 2 | Oil pressure | Fuel pressure | Water pressure | Gear |
| 3 | Exhaust O2 | RPM | Oil temperature | Pit limit active |
| 4 | Wheel speed FR | Wheel speed FL | Wheel speed RR | Wheel speed RL |
| 5 | Traction control (slip) | (not filled by the VCU) | (not filled by the VCU) | Heading |
| 6 | Shock sensor FR | Shock sensor FL | Shock sensor RR | Shock sensor RL |
| 7 | Longitudinal acceleration | Lateral acceleration | Front tilt (pitch) | Side tilt (roll) |
| 8 | Lambda correction (closed loop) | Total fuel flow | Injection time bank A | Injection time bank B |
| 9 | Oil temperature (repeats msg. 3) | Transmission temperature | Fuel consumption | Brake pressure |
FR = front right, FL = front left, RR = rear right, RL = rear left. The format and the multipliers are those of the table above and of the FTCAN 2.0 Protocol document.
#When to use each feature
| Situation | Custom packages | Customizable CAN |
|---|---|---|
| Equipment that already reads the FuelTech format | Yes | Possible, but more work |
| Equipment with its own DBC | No | Yes |
| Bit rate other than 1 Mbit/s | No | Yes (port in RAW mode) |
| CAN FD | No | Yes |
| Free scale and offset | No | Yes |
| Reception timeout | No | Yes |
| Capacity | 20 frames of 4 values | 16 frames, 48 signals |