CAN Object Input

Applies to: IOcan · Standalone controller. What this means

Overview

A CAN Object Input is a single named value decoded by a CAN preset for a supported device — an ECU, dash, shifter, keypad or paddle module.

You do not create one. Adding a preset creates an object input for every value that preset exposes, already decoded and scaled. Your job is to reference the ones you need, by name, from maps, drivers and other IO.

If you need a signal from a device that has no preset, decode it yourself with a CAN Bus Input.

Which objects you get depends entirely on the preset, so the per-device pages are the reference: the ECU integrations say what each supported ECU preset provides and, more usefully, what it does not.

There is nothing to configure

A CAN Object Input has no settings. The preset owns the frame, the bit layout, the scaling, the units and the timeout behaviour, and none of it is editable here. That is the point of a preset: those are the things that are tedious to get right by hand and expensive to get wrong.

What is yours is the name. Rename freely — everything references the input by name, and a name that matches your car reads better than the preset's generic one.

If you need the value conditioned — a threshold, a curve, one event per press rather than a level — do it downstream with a Compare, Map or other computed input and reference that. See the signal path.

Prerequisites

  • A CAN bus defined on the channel the device is wired to — see Working with the CAN bus.
  • The device's CAN preset added on that bus. Adding it creates the object inputs.

How it appears

  1. Add the device's CAN preset on the relevant CAN bus.
  2. The preset creates one object input per value it exposes.
  3. Reference the ones you need by name.

When the frame stops arriving

Preset objects are protected differently from a CAN Bus Input, and better. The timeout belongs to the frame, not to each signal inside it, and the preset sets it:

  • A fault is raised0x2001, missing frame, with the preset's own frame index as the component. That is the most common CAN fault in service, and it names the frame rather than leaving you to infer a dropout from a frozen value.
  • A substitute payload may be applied. Where the preset defines one, it is copied over the frame's data, so every object decoded from that frame moves to a defined state together rather than one at a time.
  • It clears itself when the frame starts arriving again.

You do not set any of this and cannot change it. What it means in practice is that a preset-sourced signal announces its own loss, where a hand-decoded CAN Bus Input only does so if you configured a timeout mode that substitutes a recognisable value.

Full code detail: 0x2001 on the fault codes page.

Example — engine speed from an ECU preset

  1. Add your ECU's CAN preset on the bus it is wired to.
  2. The preset creates RPM among its object inputs, already scaled.
  3. Point the transmission driver's engine speed element at it.
  4. Confirm it in the datalogger against the ECU's own display before anything depends on it — the preset guarantees the decoding, not that you selected the right preset variant.

Troubleshooting

  • The object input does not exist: the preset that provides it is not added, or is on the wrong CAN bus.
  • Reads nothing: check the bus bitrate, that the device is powered, and that it is actually transmitting — a lone node with nothing to acknowledge it cannot complete a transmission. See CAN bus diagnostics.
  • Fault 0x2001: that frame is not arriving. The component number is the preset's frame index, not a CAN identifier.
  • Value looks wrong but updates: the decoding belongs to the preset — check you selected the right preset and variant for the device.
  • The value is right but you need it conditioned: that is a job for a downstream computed input, not for this one.