Project

General

Profile

Actions

Configuration Concepts

This page explains how configuration in IOcan works at a conceptual level. It describes how signals flow through the device, what each configuration section represents, and where user responsibility begins and ends.

This page does not describe how to click through the configuration tool. It explains how the system is designed to work so that configurations can be created safely and predictably.

What Configuration Means in IOcan

IOcan does not contain fixed logic for a specific vehicle or transmission. Instead, its behavior is entirely defined by configuration.

Configuration determines:
• where signals come from
• how they are processed
• how they are translated into transmission commands
• how transmission state is exposed to the rest of the vehicle

IOcan executes the configuration deterministically. It does not guess missing information and does not apply hidden defaults beyond explicitly defined optional behavior.

Signal Flow Overview

At a high level, signal flow inside IOcan follows this structure:

Inputs → Controller → CAN Presets → Transmission
Transmission → CAN Presets → Controller → Outputs

Each block has a clearly defined role.

Inputs

Inputs describe the engine and chassis state. These signals represent what the transmission needs to know in order to function correctly.

Typical required and optional input signals include:
• engine speed
• throttle position
• accelerator pedal position
• fueling-related information (fuel pressure, injection timing)
• brake pedal state
• wheel speed (optional)

Input Sources

Signals can originate from:
• CAN bus messages
• analog inputs
• frequency inputs

Analog inputs can be configured for signal processing functions, including:
• voltage-based analog signals
• digital button inputs
• resistor divider modes for multiple buttons on a single input

Frequency inputs are typically used for:
• engine speed
• wheel speed
• other pulse-based signals

Input Assignment Rules

IOcan can read any number of signals for logging purposes, but:
• only one signal can be assigned as the active source for a given logical input
• additional signals may be visible in the datalogger but are ignored by controllers

If a mandatory signal is missing:
• the controller reports a configuration fault
• IOcan halts operation
• logging remains available
• the transmission will not run

If an optional signal is missing:
• a default internal value is used
• IOcan remains operational
• if the signal later becomes available, it is used automatically

Controllers

The controller is the core decision-making component of IOcan.

Controllers are responsible for:
• processing input signals
• validating signal availability
• emulating missing non-critical signals
• managing transmission behavior
• enforcing configuration correctness

A controller does not directly send CAN messages or drive hardware outputs. Instead, it produces calculated signals that are consumed by CAN presets and outputs.

If a controller is misconfigured:
• a fault is reported
• IOcan stops operating
• no transmission control is performed

Controllers exist to allow:
• different transmission types
• different OEM protocols
• different signal emulation strategies

Multiple controllers can exist, but multi-controller setups are considered advanced usage.

CAN Presets

CAN presets are protocol-level building blocks.

They implement:
• reading CAN frames
• writing CAN frames
• decoding and encoding OEM or aftermarket protocols

The purpose of presets is to:
• hide protocol complexity
• eliminate manual frame configuration
• provide reusable protocol implementations

Examples include:
• OEM dashboards
• OEM shifters
• standalone aftermarket ECUs
• OEM transmission protocols

Presets translate controller signals into CAN messages and collect CAN messages back into signals.

Preset Categories

Presets fall into two general categories:

OEM Emulation Presets
For example, BMW 8HP emulation presets use internally routed signals and closely reproduce OEM communication behavior.

Signal-Exposing Presets
Most presets expose inputs and outputs to the controller. This allows:
• signal substitution
• signal scaling
• using alternative data sources

For example, if pedal position is not available on the CAN bus, torque demand may be used instead and mapped accordingly.

CAN Networks

CAN networks define transport configuration, not logic.

A CAN network specifies:
• bitrate
• termination
• direction (read/write)
• physical bus properties

CAN networks do not interpret messages and do not control behavior.

Presets use CAN networks to send and receive messages. Multiple presets and controllers can use the same CAN network.

Outputs

Outputs expose transmission and controller state to the outside world.

Outputs can be:
• CAN messages
• digital outputs

Examples include:
• reverse light control
• gear display
• transmission mode indication
• torque management signals sent to the ECU

Output Rules
• Outputs do nothing on their own
• Outputs must be driven by a controller
• Each output must be assigned to a single controller function
• Assigning the same output to multiple controllers results in undefined behavior

Outputs reflect the internal state of the controller and the transmission.

Auxiliary Controllers

In addition to the main transmission controller, auxiliary controllers can be configured for supporting functions, such as:
• vacuum pump control
• auxiliary power management

These are advanced features and are not required for basic transmission operation.

Configuration Responsibility and Safety

IOcan guarantees:
• deterministic execution of configuration
• fault reporting for missing mandatory signals
• consistent signal routing

IOcan does not guarantee:
• mechanical safety
• drivability correctness
• suitability for a specific vehicle

The user is responsible for:
• validating signal correctness
• verifying scaling and ranges
• testing behavior in controlled conditions
• ensuring safety during operation

Common Conceptual Errors

Common configuration mistakes include:
• assigning multiple sources to the same input
• configuring CAN networks without assigning presets
• expecting outputs to work without a controller
• assuming missing mandatory signals will be emulated
• mismatched CAN network configuration

Understanding the concepts described on this page prevents most configuration issues.

Summary

Configuration in IOcan defines how signals flow from the engine and driver, through controllers, into the transmission, and back into the vehicle.

Inputs describe state.
Controllers define behavior.
Presets implement protocols.
CAN networks transport data.
Outputs expose results.

Understanding this structure is essential before creating or modifying configurations.

Updated by Adam Klama 2 days ago · 1 revisions