Configuration Concepts » History » Version 1
Adam Klama, 02/04/2026 01:35 PM
| 1 | 1 | Adam Klama | # Configuration Concepts |
|---|---|---|---|
| 2 | |||
| 3 | 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. |
||
| 4 | |||
| 5 | 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. |
||
| 6 | |||
| 7 | ⸻ |
||
| 8 | |||
| 9 | What Configuration Means in IOcan |
||
| 10 | |||
| 11 | IOcan does not contain fixed logic for a specific vehicle or transmission. Instead, its behavior is entirely defined by configuration. |
||
| 12 | |||
| 13 | Configuration determines: |
||
| 14 | • where signals come from |
||
| 15 | • how they are processed |
||
| 16 | • how they are translated into transmission commands |
||
| 17 | • how transmission state is exposed to the rest of the vehicle |
||
| 18 | |||
| 19 | IOcan executes the configuration deterministically. It does not guess missing information and does not apply hidden defaults beyond explicitly defined optional behavior. |
||
| 20 | |||
| 21 | ⸻ |
||
| 22 | |||
| 23 | Signal Flow Overview |
||
| 24 | |||
| 25 | At a high level, signal flow inside IOcan follows this structure: |
||
| 26 | |||
| 27 | Inputs → Controller → CAN Presets → Transmission |
||
| 28 | Transmission → CAN Presets → Controller → Outputs |
||
| 29 | |||
| 30 | Each block has a clearly defined role. |
||
| 31 | |||
| 32 | ⸻ |
||
| 33 | |||
| 34 | Inputs |
||
| 35 | |||
| 36 | Inputs describe the engine and chassis state. These signals represent what the transmission needs to know in order to function correctly. |
||
| 37 | |||
| 38 | Typical required and optional input signals include: |
||
| 39 | • engine speed |
||
| 40 | • throttle position |
||
| 41 | • accelerator pedal position |
||
| 42 | • fueling-related information (fuel pressure, injection timing) |
||
| 43 | • brake pedal state |
||
| 44 | • wheel speed (optional) |
||
| 45 | |||
| 46 | Input Sources |
||
| 47 | |||
| 48 | Signals can originate from: |
||
| 49 | • CAN bus messages |
||
| 50 | • analog inputs |
||
| 51 | • frequency inputs |
||
| 52 | |||
| 53 | Analog inputs can be configured for signal processing functions, including: |
||
| 54 | • voltage-based analog signals |
||
| 55 | • digital button inputs |
||
| 56 | • resistor divider modes for multiple buttons on a single input |
||
| 57 | |||
| 58 | Frequency inputs are typically used for: |
||
| 59 | • engine speed |
||
| 60 | • wheel speed |
||
| 61 | • other pulse-based signals |
||
| 62 | |||
| 63 | Input Assignment Rules |
||
| 64 | |||
| 65 | IOcan can read any number of signals for logging purposes, but: |
||
| 66 | • only one signal can be assigned as the active source for a given logical input |
||
| 67 | • additional signals may be visible in the datalogger but are ignored by controllers |
||
| 68 | |||
| 69 | If a mandatory signal is missing: |
||
| 70 | • the controller reports a configuration fault |
||
| 71 | • IOcan halts operation |
||
| 72 | • logging remains available |
||
| 73 | • the transmission will not run |
||
| 74 | |||
| 75 | If an optional signal is missing: |
||
| 76 | • a default internal value is used |
||
| 77 | • IOcan remains operational |
||
| 78 | • if the signal later becomes available, it is used automatically |
||
| 79 | |||
| 80 | ⸻ |
||
| 81 | |||
| 82 | Controllers |
||
| 83 | |||
| 84 | The controller is the core decision-making component of IOcan. |
||
| 85 | |||
| 86 | Controllers are responsible for: |
||
| 87 | • processing input signals |
||
| 88 | • validating signal availability |
||
| 89 | • emulating missing non-critical signals |
||
| 90 | • managing transmission behavior |
||
| 91 | • enforcing configuration correctness |
||
| 92 | |||
| 93 | 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. |
||
| 94 | |||
| 95 | If a controller is misconfigured: |
||
| 96 | • a fault is reported |
||
| 97 | • IOcan stops operating |
||
| 98 | • no transmission control is performed |
||
| 99 | |||
| 100 | Controllers exist to allow: |
||
| 101 | • different transmission types |
||
| 102 | • different OEM protocols |
||
| 103 | • different signal emulation strategies |
||
| 104 | |||
| 105 | Multiple controllers can exist, but multi-controller setups are considered advanced usage. |
||
| 106 | |||
| 107 | ⸻ |
||
| 108 | |||
| 109 | CAN Presets |
||
| 110 | |||
| 111 | CAN presets are protocol-level building blocks. |
||
| 112 | |||
| 113 | They implement: |
||
| 114 | • reading CAN frames |
||
| 115 | • writing CAN frames |
||
| 116 | • decoding and encoding OEM or aftermarket protocols |
||
| 117 | |||
| 118 | The purpose of presets is to: |
||
| 119 | • hide protocol complexity |
||
| 120 | • eliminate manual frame configuration |
||
| 121 | • provide reusable protocol implementations |
||
| 122 | |||
| 123 | Examples include: |
||
| 124 | • OEM dashboards |
||
| 125 | • OEM shifters |
||
| 126 | • standalone aftermarket ECUs |
||
| 127 | • OEM transmission protocols |
||
| 128 | |||
| 129 | Presets translate controller signals into CAN messages and collect CAN messages back into signals. |
||
| 130 | |||
| 131 | Preset Categories |
||
| 132 | |||
| 133 | Presets fall into two general categories: |
||
| 134 | |||
| 135 | OEM Emulation Presets |
||
| 136 | For example, BMW 8HP emulation presets use internally routed signals and closely reproduce OEM communication behavior. |
||
| 137 | |||
| 138 | Signal-Exposing Presets |
||
| 139 | Most presets expose inputs and outputs to the controller. This allows: |
||
| 140 | • signal substitution |
||
| 141 | • signal scaling |
||
| 142 | • using alternative data sources |
||
| 143 | |||
| 144 | For example, if pedal position is not available on the CAN bus, torque demand may be used instead and mapped accordingly. |
||
| 145 | |||
| 146 | ⸻ |
||
| 147 | |||
| 148 | CAN Networks |
||
| 149 | |||
| 150 | CAN networks define transport configuration, not logic. |
||
| 151 | |||
| 152 | A CAN network specifies: |
||
| 153 | • bitrate |
||
| 154 | • termination |
||
| 155 | • direction (read/write) |
||
| 156 | • physical bus properties |
||
| 157 | |||
| 158 | CAN networks do not interpret messages and do not control behavior. |
||
| 159 | |||
| 160 | Presets use CAN networks to send and receive messages. Multiple presets and controllers can use the same CAN network. |
||
| 161 | |||
| 162 | ⸻ |
||
| 163 | |||
| 164 | Outputs |
||
| 165 | |||
| 166 | Outputs expose transmission and controller state to the outside world. |
||
| 167 | |||
| 168 | Outputs can be: |
||
| 169 | • CAN messages |
||
| 170 | • digital outputs |
||
| 171 | |||
| 172 | Examples include: |
||
| 173 | • reverse light control |
||
| 174 | • gear display |
||
| 175 | • transmission mode indication |
||
| 176 | • torque management signals sent to the ECU |
||
| 177 | |||
| 178 | Output Rules |
||
| 179 | • Outputs do nothing on their own |
||
| 180 | • Outputs must be driven by a controller |
||
| 181 | • Each output must be assigned to a single controller function |
||
| 182 | • Assigning the same output to multiple controllers results in undefined behavior |
||
| 183 | |||
| 184 | Outputs reflect the internal state of the controller and the transmission. |
||
| 185 | |||
| 186 | ⸻ |
||
| 187 | |||
| 188 | Auxiliary Controllers |
||
| 189 | |||
| 190 | In addition to the main transmission controller, auxiliary controllers can be configured for supporting functions, such as: |
||
| 191 | • vacuum pump control |
||
| 192 | • auxiliary power management |
||
| 193 | |||
| 194 | These are advanced features and are not required for basic transmission operation. |
||
| 195 | |||
| 196 | ⸻ |
||
| 197 | |||
| 198 | Configuration Responsibility and Safety |
||
| 199 | |||
| 200 | IOcan guarantees: |
||
| 201 | • deterministic execution of configuration |
||
| 202 | • fault reporting for missing mandatory signals |
||
| 203 | • consistent signal routing |
||
| 204 | |||
| 205 | IOcan does not guarantee: |
||
| 206 | • mechanical safety |
||
| 207 | • drivability correctness |
||
| 208 | • suitability for a specific vehicle |
||
| 209 | |||
| 210 | The user is responsible for: |
||
| 211 | • validating signal correctness |
||
| 212 | • verifying scaling and ranges |
||
| 213 | • testing behavior in controlled conditions |
||
| 214 | • ensuring safety during operation |
||
| 215 | |||
| 216 | ⸻ |
||
| 217 | |||
| 218 | Common Conceptual Errors |
||
| 219 | |||
| 220 | Common configuration mistakes include: |
||
| 221 | • assigning multiple sources to the same input |
||
| 222 | • configuring CAN networks without assigning presets |
||
| 223 | • expecting outputs to work without a controller |
||
| 224 | • assuming missing mandatory signals will be emulated |
||
| 225 | • mismatched CAN network configuration |
||
| 226 | |||
| 227 | Understanding the concepts described on this page prevents most configuration issues. |
||
| 228 | |||
| 229 | ⸻ |
||
| 230 | |||
| 231 | Summary |
||
| 232 | |||
| 233 | Configuration in IOcan defines how signals flow from the engine and driver, through controllers, into the transmission, and back into the vehicle. |
||
| 234 | |||
| 235 | Inputs describe state. |
||
| 236 | Controllers define behavior. |
||
| 237 | Presets implement protocols. |
||
| 238 | CAN networks transport data. |
||
| 239 | Outputs expose results. |
||
| 240 | |||
| 241 | Understanding this structure is essential before creating or modifying configurations. |