Configuration Concepts » History » Version 2
Adam Klama, 06/21/2026 03:38 PM
| 1 | 1 | Adam Klama | # Configuration Concepts |
|---|---|---|---|
| 2 | |||
| 3 | 2 | Adam Klama | This page explains how configuration works at a conceptual level. It describes how |
| 4 | signals flow through the device, what each configuration section represents, and |
||
| 5 | where user responsibility begins and ends. |
||
| 6 | 1 | Adam Klama | |
| 7 | 2 | Adam Klama | It is **not** a click-through guide to the configuration tool. It explains how the |
| 8 | system is designed to work, so configurations can be created safely and |
||
| 9 | predictably. |
||
| 10 | 1 | Adam Klama | |
| 11 | 2 | Adam Klama | > **A note on terms:** *IOcan* (or simply *the device*) is the hardware running the |
| 12 | > configuration. A *controller* is a transmission control strategy that runs on it |
||
| 13 | > (in the schema this is a *driver*). The two are different things. |
||
| 14 | 1 | Adam Klama | |
| 15 | 2 | Adam Klama | ## What configuration means |
| 16 | 1 | Adam Klama | |
| 17 | 2 | Adam Klama | The device contains no fixed logic for a specific vehicle or transmission. Its |
| 18 | behaviour is defined **entirely** by configuration, which determines: |
||
| 19 | 1 | Adam Klama | |
| 20 | 2 | Adam Klama | - where signals come from, |
| 21 | - how they are processed, |
||
| 22 | - how they are translated into transmission commands, |
||
| 23 | - how transmission state is exposed to the rest of the vehicle. |
||
| 24 | 1 | Adam Klama | |
| 25 | 2 | Adam Klama | The configuration is executed **deterministically**. The device does not guess |
| 26 | missing information and applies no hidden defaults beyond explicitly defined |
||
| 27 | optional behaviour. |
||
| 28 | 1 | Adam Klama | |
| 29 | 2 | Adam Klama | ## Signal flow overview |
| 30 | 1 | Adam Klama | |
| 31 | 2 | Adam Klama | At a high level, signals flow in a loop: |
| 32 | 1 | Adam Klama | |
| 33 | 2 | Adam Klama | ``` |
| 34 | Inputs → Controller → CAN Presets → Transmission |
||
| 35 | Outputs ← Controller ← CAN Presets ← Transmission |
||
| 36 | ``` |
||
| 37 | 1 | Adam Klama | |
| 38 | 2 | Adam Klama | Each block has a clearly defined role, described below. |
| 39 | 1 | Adam Klama | |
| 40 | 2 | Adam Klama | ## Inputs |
| 41 | 1 | Adam Klama | |
| 42 | 2 | Adam Klama | Inputs describe engine and chassis state — what a controller needs to know to |
| 43 | function. Typical required and optional signals include: |
||
| 44 | 1 | Adam Klama | |
| 45 | 2 | Adam Klama | - engine speed |
| 46 | - throttle position |
||
| 47 | - accelerator pedal position |
||
| 48 | - fuelling information (fuel pressure, injection timing) |
||
| 49 | - brake pedal state |
||
| 50 | - wheel speed (optional) |
||
| 51 | 1 | Adam Klama | |
| 52 | 2 | Adam Klama | See [Configuring Inputs](Configuring_Inputs) for the full list of input types. |
| 53 | 1 | Adam Klama | |
| 54 | 2 | Adam Klama | ### Input sources |
| 55 | A signal can originate from: |
||
| 56 | 1 | Adam Klama | |
| 57 | 2 | Adam Klama | - **CAN bus messages** — via a preset ([CAN Object Input](CAN_Object_Input)) or a |
| 58 | raw frame ([CAN Bus Input](CAN_Bus_Input)); |
||
| 59 | - **analog inputs** — voltage sensors ([Analog Input](Analog_Input)), digital |
||
| 60 | buttons ([Digital Input](Digital_Input)), or resistor-divider switches for |
||
| 61 | several buttons on one pin ([Analog Switch Input](Analog_Switch_Input)); |
||
| 62 | - **frequency inputs** ([Frequency Input](Frequency_Input)) — engine speed, wheel |
||
| 63 | speed and other pulse-based signals. |
||
| 64 | 1 | Adam Klama | |
| 65 | 2 | Adam Klama | Raw values are scaled to engineering units as described in |
| 66 | [Scaling & Maps](Scaling_and_Maps). |
||
| 67 | 1 | Adam Klama | |
| 68 | 2 | Adam Klama | ### Input assignment rules |
| 69 | The device can read any number of signals for **logging**, but: |
||
| 70 | 1 | Adam Klama | |
| 71 | 2 | Adam Klama | - only **one** signal can be the active source for a given logical input; |
| 72 | - additional signals may appear in the datalogger but are ignored by controllers. |
||
| 73 | 1 | Adam Klama | |
| 74 | 2 | Adam Klama | **If a mandatory signal is missing:** |
| 75 | 1 | Adam Klama | |
| 76 | 2 | Adam Klama | - the controller reports a configuration fault; |
| 77 | - the device halts transmission operation; |
||
| 78 | - logging remains available; |
||
| 79 | - the transmission will not run. |
||
| 80 | 1 | Adam Klama | |
| 81 | 2 | Adam Klama | **If an optional signal is missing:** |
| 82 | 1 | Adam Klama | |
| 83 | 2 | Adam Klama | - a default internal value is used; |
| 84 | - the device stays operational; |
||
| 85 | - if the signal later becomes available, it is used automatically. |
||
| 86 | 1 | Adam Klama | |
| 87 | 2 | Adam Klama | ## Controllers |
| 88 | 1 | Adam Klama | |
| 89 | 2 | Adam Klama | A controller is the core decision-making component. It is responsible for: |
| 90 | 1 | Adam Klama | |
| 91 | 2 | Adam Klama | - processing input signals, |
| 92 | - validating signal availability, |
||
| 93 | - emulating missing non-critical signals, |
||
| 94 | - managing transmission behaviour, |
||
| 95 | - enforcing configuration correctness. |
||
| 96 | 1 | Adam Klama | |
| 97 | 2 | Adam Klama | A controller does **not** send CAN messages or drive hardware outputs directly. |
| 98 | Instead it produces calculated signals that CAN presets and outputs consume. |
||
| 99 | 1 | Adam Klama | |
| 100 | 2 | Adam Klama | If a controller is misconfigured, a fault is reported, the device stops operating, |
| 101 | and no transmission control is performed. |
||
| 102 | 1 | Adam Klama | |
| 103 | 2 | Adam Klama | Controllers exist so the same device can support different transmission types, OEM |
| 104 | protocols and signal-emulation strategies. Multiple controllers can coexist, but |
||
| 105 | multi-controller setups are **advanced usage**. |
||
| 106 | 1 | Adam Klama | |
| 107 | 2 | Adam Klama | ## CAN Presets |
| 108 | 1 | Adam Klama | |
| 109 | 2 | Adam Klama | CAN presets are protocol-level building blocks. They implement reading and writing |
| 110 | CAN frames and the decoding/encoding of OEM or aftermarket protocols, so you don't |
||
| 111 | configure frames by hand. See |
||
| 112 | [Working with the CAN Bus](Working_with_the_CAN_Bus#can-presets). |
||
| 113 | 1 | Adam Klama | |
| 114 | 2 | Adam Klama | Presets translate controller signals into CAN messages and collect CAN messages |
| 115 | back into signals. Examples: OEM dashboards, OEM shifters, standalone aftermarket |
||
| 116 | ECUs, OEM transmission protocols. |
||
| 117 | 1 | Adam Klama | |
| 118 | Presets fall into two general categories: |
||
| 119 | |||
| 120 | 2 | Adam Klama | - **OEM emulation presets** — e.g. BMW 8HP emulation; they use internally routed |
| 121 | signals and closely reproduce OEM communication behaviour. |
||
| 122 | - **Signal-exposing presets** — most presets; they expose inputs and outputs to the |
||
| 123 | controller, allowing signal substitution, scaling, or alternative data sources. |
||
| 124 | For example, if pedal position is not on the CAN bus, torque demand can be used |
||
| 125 | instead and mapped accordingly. |
||
| 126 | 1 | Adam Klama | |
| 127 | 2 | Adam Klama | ## CAN networks |
| 128 | 1 | Adam Klama | |
| 129 | 2 | Adam Klama | A CAN network defines **transport**, not logic: |
| 130 | 1 | Adam Klama | |
| 131 | 2 | Adam Klama | - bitrate, |
| 132 | - termination, |
||
| 133 | - direction (read/write), |
||
| 134 | - physical bus properties. |
||
| 135 | 1 | Adam Klama | |
| 136 | 2 | Adam Klama | CAN networks do not interpret messages or control behaviour. Presets use them to |
| 137 | send and receive; multiple presets and controllers can share one network. See |
||
| 138 | [Working with the CAN Bus](Working_with_the_CAN_Bus). |
||
| 139 | 1 | Adam Klama | |
| 140 | 2 | Adam Klama | ## Outputs |
| 141 | 1 | Adam Klama | |
| 142 | 2 | Adam Klama | Outputs expose transmission and controller state to the outside world. They can be |
| 143 | CAN messages or hardware outputs — for example reverse-light control, gear display, |
||
| 144 | transmission-mode indication, or torque-management signals to the ECU. See |
||
| 145 | [Configuring Outputs](Configuring_Outputs). |
||
| 146 | 1 | Adam Klama | |
| 147 | 2 | Adam Klama | **Output rules:** |
| 148 | 1 | Adam Klama | |
| 149 | 2 | Adam Klama | - outputs do nothing on their own — they must be **driven by a controller**; |
| 150 | - each output must be assigned to a **single** controller function; |
||
| 151 | - assigning the same output to multiple controllers gives **undefined behaviour**. |
||
| 152 | 1 | Adam Klama | |
| 153 | Outputs reflect the internal state of the controller and the transmission. |
||
| 154 | |||
| 155 | 2 | Adam Klama | ## Auxiliary controllers |
| 156 | 1 | Adam Klama | |
| 157 | 2 | Adam Klama | Besides the main transmission controller, **auxiliary controllers** can handle |
| 158 | supporting functions such as vacuum-pump control or auxiliary power management. |
||
| 159 | 1 | Adam Klama | These are advanced features and are not required for basic transmission operation. |
| 160 | |||
| 161 | 2 | Adam Klama | ## Configuration responsibility and safety |
| 162 | 1 | Adam Klama | |
| 163 | 2 | Adam Klama | The device **guarantees**: |
| 164 | 1 | Adam Klama | |
| 165 | 2 | Adam Klama | - deterministic execution of the configuration, |
| 166 | - fault reporting for missing mandatory signals, |
||
| 167 | - consistent signal routing. |
||
| 168 | 1 | Adam Klama | |
| 169 | 2 | Adam Klama | The device does **not** guarantee: |
| 170 | 1 | Adam Klama | |
| 171 | 2 | Adam Klama | - mechanical safety, |
| 172 | - drivability correctness, |
||
| 173 | - suitability for a specific vehicle. |
||
| 174 | 1 | Adam Klama | |
| 175 | 2 | Adam Klama | **You are responsible for** validating signal correctness, verifying scaling and |
| 176 | ranges, testing behaviour in controlled conditions, and ensuring safety during |
||
| 177 | operation. |
||
| 178 | 1 | Adam Klama | |
| 179 | 2 | Adam Klama | ## Common conceptual errors |
| 180 | 1 | Adam Klama | |
| 181 | 2 | Adam Klama | - assigning multiple sources to the same input; |
| 182 | - configuring a CAN network without assigning any preset; |
||
| 183 | - expecting outputs to work without a controller; |
||
| 184 | - assuming missing **mandatory** signals will be emulated; |
||
| 185 | - mismatched CAN network configuration. |
||
| 186 | 1 | Adam Klama | |
| 187 | 2 | Adam Klama | Understanding the concepts on this page prevents most configuration issues. |
| 188 | 1 | Adam Klama | |
| 189 | 2 | Adam Klama | ## Summary |
| 190 | 1 | Adam Klama | |
| 191 | 2 | Adam Klama | Configuration defines how signals flow from the engine and driver, through |
| 192 | controllers, into the transmission, and back into the vehicle: |
||
| 193 | 1 | Adam Klama | |
| 194 | 2 | Adam Klama | - **Inputs** describe state. |
| 195 | - **Controllers** define behaviour. |
||
| 196 | - **CAN Presets** implement protocols. |
||
| 197 | - **CAN networks** transport data. |
||
| 198 | - **Outputs** expose results. |
||
| 199 | 1 | Adam Klama | |
| 200 | 2 | Adam Klama | Understanding this structure is essential before creating or modifying a |
| 201 | configuration. |