Project

General

Profile

Common IO settings » History » Version 2

Adam Klama, 06/21/2026 02:40 PM

1 1 Adam Klama
# Common IO Settings
2
3
Every input and output shares a small set of user-facing settings, regardless of
4
its type. Type-specific options are documented on each IO's own page.
5
6
> Schema: the `Input` and `Output` messages in `config/Config.proto`. Several
7
> fields on those messages are managed internally and are **not** shown to the
8
> user (datalogger channel, type, min/max, unit, preset).
9
10
## Shared settings
11
12
| Setting | Applies to | Meaning |
13
|---|---|---|
14
| **Name** | All IO | Human-readable name shown throughout the app (e.g. `Oil Temp`, `Line Pressure Solenoid`). Everything else — maps, drivers, other IO — references this IO by its alias. |
15
| **Pin** | Hardware IO only | The physical pin the IO is bound to. Logical/computed IO (maths, compare, map, etc.) reference other IO instead and have no pin; CAN IO uses the CAN bus. |
16
17
## Value scale
18
Many values follow a common full-scale convention of **1024**:
19
- **Booleans:** true = `1024`, false = `0` (e.g. a
20 2 Adam Klama
  [Compare Input](Compare_Input) or a
21
  [Digital Input](Digital_Input) that is on).
22 1 Adam Klama
- **Percentages / proportions:** full scale = `1024` (e.g. TPS 100 % = `1024`).
23
24
This is why threshold-based features use `512` as the mid-point (half of `1024`).
25
26
## Good practice
27
- Give every IO a clear, unique **alias** — everything else references it by name.
28
- For hardware IO, choose the **pin** to match how the device is physically wired.