Skip to content

Controller Setup

Jessica Janiuk edited this page Jul 2, 2026 · 2 revisions

Controller Setup & Button Mapping

This page covers how to configure your controllers and map buttons to actions.


Controller Buttons

The drive and dome XBee Pocket Controllers each have four face buttons and a joystick click (L3). Amidala numbers them:

Number Drive Controller Dome Controller
1 Triangle
2 Circle
3 Cross
4 Square
5 L3 (stick click)
6 Triangle
7 Circle
8 Cross
9 Square

Button Layers

Each button supports four independent action layers:

Layer Trigger
Short press Button released after a brief tap
Double press Button tapped twice within the double-press timeout window
Long press Button held for 3 seconds; the short-press action is suppressed
Alt press Button released while the alt modifier button is held

Note: The alt modifier button does not support a double-press action.

When a double-press action is assigned to a button, the short-press action is delayed by the Double Press Timeout (default 300 ms) to allow detection of the second tap. If no second tap arrives within the window, the short-press action fires. If no double-press action is configured, the short-press fires immediately with no delay.

Set the timeout in the web UI (Controllers → Controller Settings → Double Press Timeout), or via config key dbtimeout=<ms>. Set to 0 to disable double-press detection entirely.


Alt Modifier Button

One button can be designated as an alt modifier (altbtn). While it is held:

  • All other buttons fire their alt-press action instead of short-press
  • Long-press actions are suppressed
  • The alt button itself does not fire its own action

On the dome controller, enabling Alt Dome Stick (altdomestick) puts the dome joystick into absolute-stick mode while the alt button is held — stick direction maps directly to a dome heading.


Mute Button

One button can be designated as a mute button. Double-pressing it (two quick taps) toggles audio mute. This avoids needing a dedicated button layer just for mute.


Available Actions

Action Description
None No action
Sound Bank Play a random track from the configured sound bank
Serial String Send one of your configured serial string templates
HCR Emote Trigger an HCR emote
HCR Muse Toggle Toggle Muse (ambient random playback) on/off
Dome Command Execute a dome command (random, front, home, calibrate, absolute angle, relative move)
Servo Move a servo to a configured position
Digital Output Toggle a digital output pin
I2C Send a byte or string to an I2C device

Gestures

Up to 10 gestures can be defined. A gesture is a sequence of dome-stick movements (up, down, left, right) that triggers an action when matched.

Gestures use the same action system as buttons — any button action can be assigned to a gesture.

Clone this wiki locally