Switch Interface Configurator config.py

Use the configurator below to build a custom set of keyboard shortcuts for your BASI device and generate a config.py file.


Start by selecting your target OS — this ensures the correct modifier keys (Cmd vs Ctrl) are used and swapped automatically if you change your selection later.


Use the reference table to add common shortcuts, or build your own custom combos with the builder. You can reorder active shortcuts with the ▲ ▼ buttons


Generate a file preview which can then be downloaded and flashed to your device.

Target OS
Cmd ↔ Ctrl swaps automatically when you switch OS
Single-Switch Timing
Duration in seconds the switch must be held before auto-scanning begins
Two-Switch Timing

Mode 0 — Direct Switch Actions D0 / double-click

Mode 0 maps each external switch to a single, immediate action — no scanning required. Enter this mode by pressing D0 on the board, or by double-clicking either external switch at the mode-select screen. Configure the action for each switch below; supports keyboard keys, mouse controls, and media keys.

Switch 1 A1
Switch 2 A2

Two-step setup: pick an action type first, then a second dropdown appears with the specific controls for that type. The Label and TFT symbol auto-fill to match your choice — edit either one to override it (your edit then sticks). Keyboard: optional modifier + key. Mouse click: left / right / middle. Mouse scroll: ticks up or down. Mouse move: X/Y pixels per press. Media: play/pause, volume, track skip, mute, brightness — requires adafruit_hid ≥ 6.0. Keep the TFT symbol to 1–3 plain characters (the onboard display does not render emoji — see note below).

Max gap in seconds between two clicks to register as a double-click and enter Mode 0
How long to hold an external switch in Mode 0 to return to the mode-select screen. To leave single- or two-switch mode, press the board's RESET button.

Blockly Shortcut Reference — click + to add to your list
Function Mac Key Add action
Active Shortcuts — use ▲ ▼ to reorder

Each shortcut has Move Up and Move Down buttons. Activating a move button keeps focus on that button so you can continue pressing to reorder with minimal switches.


config.py — preview