Map Input » History » Revision 3
Revision 2 (Adam Klama, 06/21/2026 02:52 PM) → Revision 3/4 (Adam Klama, 06/21/2026 02:53 PM)
# Map Input ## Overview A **Map Input** applies a **1D lookup table** to another input and reports the result as a new, independent channel. You give it a list of X breakpoints and the Y value at each one; the controller looks up the source value on the X axis and **interpolates** between points. Use it to reshape a signal — for example to turn a pedal-position input into a torque-request curve. This is the standalone 1D map described on the [Scaling & Maps](Scaling_and_Maps) Maps](../Scaling-and-Maps.md) page — it produces a **separate** channel that other IO can reference by alias. ## Prerequisites & hardware You need: - A **source input** to use as the X axis — any existing input, by alias. - The map data: matching lists of **X breakpoints** and **Y values**. ## Add it in the app 1. Add a new input and choose **Map Input** as the type. 2. Choose the **source input** (the X axis). 3. Give it a clear **alias** (e.g. `Torque Request`). 4. Enter the **input values** (X) and **output values** (Y) of the map. ## Settings reference | Setting | Meaning | Unit | Range / values | Notes | |---|---|---|---|---| | **Source input** | The input read on the X axis | — | an existing input (by alias) | The value looked up in the map. | | **Input values (X)** | The X-axis breakpoints | source's unit | list of sint32 | Must be **strictly increasing**. The points where the curve bends. | | **Output values (Y)** | The result at each X breakpoint | result's unit | list of sint32 | One Y per X. Values between breakpoints are interpolated. | **How it maps:** the source value is located between two X breakpoints and the output is linearly interpolated between their Y values. Keep one Y for every X. For more on editing maps, see [Scaling & Maps](../Scaling-and-Maps.md). ## Common settings Map Input also uses the shared setting — alias. See [Common IO Settings](../Common-IO-Settings.md). ## Example — pedal position to torque request 1. Type **Map Input**, alias `Torque Request`. 2. **Source input** = your `Pedal Position` input (0–100 %). 3. **Input values (X)** `0, 20, 50, 80, 100`. 4. **Output values (Y)** `0, 50, 200, 450, 600` — a progressive curve that is gentle off-idle and steeper near full pedal. ## Troubleshooting - **Output flat or stuck at one end:** the source is sitting below the first or above the last X breakpoint — values outside the table are clamped to the end Y. - **Map rejected / behaves oddly:** make sure **Input values** are strictly increasing and that there is one **Output value** for each. ## Related - [Scaling & Maps](../Scaling-and-Maps.md) — concept page for 1D maps. - [Map Output](../outputs/Map-Output.md) — the same lookup applied to an output. - [Mux Input](Mux-Input.md) — select between inputs rather than interpolate.