User guide / Chapter 6

Configure every input type

Guide for app 1.0.0 · Updated 2 October 2026

Download the complete PDFBack to Learn

Controls shared by the mapping editors

The editors use cards for mappings. A card can be folded to keep the screen short.

  1. Tap a card or its down arrow to open it.
  2. Choose the source: the key, button, port, gesture, or axes you will use.
  3. Choose the action or output target.
  4. Use the live feedback to check the source.
  5. Tap Edit Intent to change timing, add more outputs, or create a sequence.
  6. Tap Save & Close in the Intent editor.
  7. Tap Done in the input editor when finished.

Use + Add Intent to add another mapping. The red bin deletes that mapping. It does not remove the whole input device.

If Reorder is offered inside an editor, it changes the order of that input's mappings. Use the arrows and finish with Done. Earlier mappings get priority when there is a conflict.

Some setup routes offer Use defaults, Create your own, or a saved-profile choice. Defaults are a starting point. Review the source and target before relying on them.

Controller input

Use Controller for a normal gamepad that Android recognises.

  1. Connect the controller by USB, or pair it in Android's Bluetooth settings.
  2. On the app home screen, tap + Input → Controller.
  3. Choose the controller in Select Controller.
  4. The app creates starter gamepad mappings. Return to the home screen and tap the controller card to edit them.
  5. On Controller Mapping, press a button and watch the detection or feedback area.
  6. Open the mapping card for the control you want to change.
  7. Change its input button and Map to Action, or its axis and stick target.
  8. Use Edit Intent for combinations and timing.
  9. Tap Done.
Controller Mapping screen with a South input mapping and Add Intent
Figure 11. A gamepad button mapping. Tap its card to open the settings.
Expanded controller mapping showing source and target settings and Edit Intent
Figure 12. Edit the input and action here; use Edit Intent for more than a simple mapping.

Switch is useful for buttons. Axis is useful for a trigger. Dual Axis joins X and Y movement to one target stick.

If the selector says no controller was found, connect it to Android first. Saving a controller identity for a board output does not add that controller as an input.

Keyboard input

Use Keyboard for an external USB or Bluetooth keyboard. The phone's typing keyboard is not the same input device.

  1. Connect or pair the keyboard with Android.
  2. Tap + Input → Keyboard.
  3. Choose it in Select Keyboard.
  4. On Keyboard Mapping, press a key and check the feedback.
  5. Open a mapping card.
  6. Choose the source key. If Detect is shown, tap it and press the key you want.
  7. Set Map to Action. For example, choose SPACE → South.
  8. Add other keys with + Add Intent.
  9. Tap Done.
Keyboard Mapping with SPACE mapped to South
Figure 13. This example uses SPACE for the South button.
Expanded keyboard mapping with key selector, Detect, action target, and Edit Intent
Figure 14. Choose the key and the controller action separately.

Some starter layouts use W, A, S, D for the D-pad. D-pad movement and stick movement are different controls. If your game needs the left stick, create a Dual Axis mapping and assign its directions to the keys you want.

Keyboard input becomes controller output. Mapping SPACE to South sends a controller button, not typed text to the console.

Mouse input

  1. Connect the mouse to Android by USB or Bluetooth.
  2. Tap + Input → Mouse.
  3. Choose it in Select Mouse.
  4. Click a button or move the mouse to check detection.
  5. Open a card, or tap + Add Intent.
  6. For a button mapping, choose Left Button, Right Button, Middle Button, Back Button, or Forward Button, as supported by your mouse.
  7. Choose the gamepad action. For example, Left Button → R2.
  8. For movement, choose the available X/Y movement axes and the output axis or target stick. Wheel inputs include Scroll Up and Scroll Down.
  9. Use Edit Intent if a click should send several actions.
  10. Tap Done.
Mouse Mapping with Left Button mapped to R2
Figure 15. A mouse click can become a controller trigger.
Expanded mouse mapping with Mouse Button source, Detect, action, and Edit Intent
Figure 16. Choose the mouse source before choosing its controller output.

Mouse movement mapped to a stick behaves as controller movement. It is not a promise of the same pointing behaviour as a desktop mouse. Check the game's stick sensitivity as well as your mapping. Start with small movements in a practice area.

Joystick input

Use Joystick for a device that Android reports as a joystick, such as a flight stick or some adapted controls. Use Controller for a normal gamepad unless you have a reason to use the joystick editor.

  1. Connect or pair the joystick with Android.
  2. Tap + Input → Joystick.
  3. Select the device.
  4. Move a control or press a button to check detection.
  5. Tap + Add Intent and choose the mapping shape.
  6. Use Switch for a button, Axis for a single control such as a throttle, or Dual Axis for X and Y stick movement.
  7. Choose the input button or axes. Use Detect where offered.
  8. Choose the output action or target stick.
  9. Check that pushing up produces the direction you expect. Correct the source choice or inversion if that control offers it.
  10. Tap Done.
Joystick Mapping with a button mapping and Add Intent
Figure 17. Joystick mappings use the same card pattern as other physical inputs.
Expanded joystick mapping with input control and action fields
Figure 18. Check the source control and its destination before starting.

The controls offered depend on what Android reports for your device. The app cannot read an axis that the device does not provide.

  1. Tap + Input → ESP32 Link.
  2. Complete board connection setup.
  3. On the verification screen, tap Save and create mappings.
  4. The Input Hub opens for that board.
  5. Tap + Add Intent.
  6. Choose Switch, Axis, Centered Axis, or Dual Axis.
  7. Open the new card and select the board input port or ports.
  8. Choose the action or stick target.
  9. Calibrate an analog sensor if needed.
  10. Tap Edit Intent for button timing, combinations, and sequences.
  11. Tap Done in the Input Hub.
Input Hub for Desk switches showing a switch mapping, connection status, Done, and Add Intent
Figure 19. Check the board name and connection status at the top.
Expanded board switch mapping showing its input port, output action, and Edit Intent
Figure 20. The port is the source; the action is what the game receives.
  1. Tap + Input → Pico W Link.
  2. Select and verify the Pico W through the same connection journey.
  3. Give it its own name.
  4. Tap Save and create mappings.
  5. Use + Add Intent in its Input Hub.
  6. Choose the mapping shape, source channel, and output target.
  7. Check live readings and calibrate sensors as needed.
  8. Tap Done.

The board editor currently shares port labels between board families. Some labels come from ESP32 naming, such as GPIO 34. They are not a Pico W wiring diagram. Do not assume a label means the same physical pin on both boards. Use the channel-to-pin information for the firmware installed on your board, and verify the changing reading in the app.

The protocol shows four analog channels. The current Pico W implementation has three distinct external ADC inputs, so four displayed channels do not mean four independent Pico analog pins.

Choose the right board mapping shape

Add Intent choices: Switch, Axis, Centered Axis, and Dual Axis
Figure 21. Choose based on how the physical control moves.
Shape What it means Example
Switch Off or on Button, foot switch, or contact switch
Axis One amount, usually resting near zero Trigger, force sensor, flex sensor, or throttle
Centered Axis Resting point between two directions Sip/puff sensor, tilt control, or centred dial
Dual Axis Two centred channels used together X/Y joystick or two-axis movement sensor

For Switch, choose Input Port, then Map to Action. Press the switch and confirm its live feedback.

For Axis, choose the port and action. Release the sensor to its normal resting position. Tap Record to store that resting value. Check its full range with the calibration bar.

For Centered Axis, leave the control at rest and tap Record. Set the two actions, shown as Sip Action and Puff Action for this style of mapping. Check both directions. Neutral should sit between the active zones.

For Dual Axis, choose different X and Y ports and select Target Stick. Leave the stick centred and record its centre. Check each axis's minimum, neutral, and maximum values. Move left, right, up, and down to confirm the directions.

Calibration is how you tell the app what the sensor considers rest and full movement. If it moves the character while you are not touching it, check the resting value first. If a direction can never reach its full amount, check the range.

The board Input Hub allows up to eight mapping modules. Analog mappings also need free analog channels; a Dual Axis mapping needs two. This is separate from the eight input-device limit on the home screen.

Face Tracking input

Face Tracking uses the phone camera. Start with one gesture so you can learn how it feels.

  1. Place the phone where your face is easy to see.
  2. Tap + Input → Face Tracking.
  3. If asked, tap Grant Permission and allow camera access.
  4. Choose the camera using Switch Camera if needed.
  5. Tap Calibrate →.
  6. Follow the capture prompts before adding complex mappings.
Face Tracking editor showing camera permission, Calibrate, Aim responsiveness, Live Preview, and a Smile mapping
Figure 22. Camera permission is needed before live face readings can appear.

Calibrate your face

Sit in the position you will use while playing. Keep your face visible and use steady lighting.

For extra head movement calibration, turn on High Quality (head range) before you start. It adds comfortable turn, nod, and tilt captures after the expression captures.

  1. Relax your face and tap Start Relaxed Capture.
  2. When prompted, open your mouth and tap Capture Mouth Open.
  3. Raise your brows and tap Capture Brows Raised.
  4. Furrow your brows and tap Capture Brows Furrowed.
  5. Wait for each capture to finish. Keep the requested expression steady.
  6. If you use the longer calibration option, follow the extra prompts for right and left turns, looking down and up, and tilting left and right.
  7. Let the app finish and return to the face editor. Retry a capture if its quality is too low.

Recalibrate if another person uses the profile, the camera position changes a lot, or neutral expressions keep causing actions.

Face calibration screen with preview, Start Relaxed Capture, and calibration instructions
Face calibration. Follow the pose shown above the camera before pressing each capture button.

Create face mappings

  1. Tap + Add Intent.
  2. Choose the mapping shape. Switch suits a simple expression; Axis suits an amount; Centered Axis suits two sides of a resting point; Dual Axis suits head movement to a stick.
  3. Open the card.
  4. Choose its Gesture or the directional gestures for a stick mapping.
  5. Choose Map to Action, the two centred actions, or Target Stick.
  6. Watch Live Preview while you make that movement.
  7. Open ADVANCED SETTINGS if you need to tune detection.
  8. Tap Edit Intent for combinations, repetition, or timing.
  9. Tap Done.

Available gesture choices depend on the mapping shape. The app includes winks, blink, smile, head nod and shake, look directions, tilt directions, mouth, and brows. A head-stick mapping uses directional gestures for up, down, left, and right.

Face setting What it changes When to adjust it
Aim responsiveness How quickly head-based aiming reacts versus how much it is smoothed Increase for quicker motion; reduce if movement feels shaky
Sensitivity How strongly a movement affects the mapping Change if a comfortable movement gives too little or too much output
Deadzone The small area near rest that is ignored Increase a little if tiny movements cause drift
Invert The direction of an analog control Change if movement goes the wrong way
Threshold How far an expression must go before it counts Raise to reduce accidental triggers; lower if it is hard to trigger
Hold Frames How many camera frames must agree before a gesture counts Increase for steadier detection; expect more delay
Separate open/closed or raised/furrowed thresholds The two active zones of a centred expression mapping Adjust each side without moving the other side's target

Not every setting appears for every gesture. Change one setting at a time and test it. Avoid using a movement you often make by accident for a critical game action.

Expanded Smile face mapping with gesture and action fields and tuning settings
Face mapping. The gesture is your source; the action is the controller output.

Virtual Input

Virtual Input is a controller drawn on the phone. Only one Virtual Input is allowed in a profile.

  1. Tap + Input → Virtual Input.
  2. The app adds starter virtual-controller mappings.
  3. Tap its card or edit control to open the layout editor.
  4. Turn the phone sideways if needed. The editor is in landscape.
Landscape virtual controller layout editor with buttons, D-pad, sticks, right-edge tools arrow, and Done
Figure 23. Dashed outlines show that the layout is being edited.

Change positions and sizes

  1. Drag a control to move it.
  2. Tap a control to select it.
  3. Pinch with two fingers to resize the selected control.
  4. Use the × badge to hide a selected element.
  5. Tap the chevron on the right edge to open Edit tools.
  6. Tap 👁 Elements to show or hide controls using the list.
  7. Use ↩ Undo to undo recent layout edits.
  8. Tap ✓ Done to leave edit mode when finished.

Make the buttons you use often large enough to press comfortably. Move less-used buttons away from your thumb's usual path.

Virtual controller with the right-edge Edit tools panel expanded
Virtual edit tools. Open the right-edge chevron to reach Intent, Elements, Profiles, Reset, and Help.

Change what a virtual button does

  1. In edit mode, select a button.
  2. Open the right-edge tools panel.
  3. Tap Intent.
  4. Edit its outputs and behaviours.
  5. Tap Save & Close.

For a D-pad, choose the direction to edit when asked. The button Intent option is for buttons and directions. A stick's continuous movement is not edited as a single button Intent.

Save a layout

  1. Open Edit tools → ⊞ Profiles.
  2. Tap + Save current as new profile….
  3. Enter a layout name.
  4. Tap Save.
  5. To load it later, open ⊞ Profiles and tap the layout name.

Default Layout restores the default positions. Manage… offers actions for saved layouts. ✕ Reset resets the current layout after confirmation. ? Help shows the layout editing hint.

Layout profiles save button positions, sizes, and visibility. The main home-menu profiles save your input mappings and output choice. These are different things.

Use the virtual controller

Return to the home screen and tap Start Mapping. The virtual controller play screen opens. Use its Stop control to end the mapping session.

If your phone has a gyroscope, Gyro and Calibrate can be used for motion controls. Hold the phone still during the calibration countdown, check the result, and use Looks good or Redo as offered. Motion output is currently supported by PS Remote Play. Selecting Gyro does not add motion support to every other output.