Spaceagon
The EMF 2026 badge uses a new frontboard with a different physical layout from the 2024 badge. It has:
- 6 buttons labeled A-F arranged in a row
- a 5-way joystick (
JOYUP,JOYDOWN,JOYLEFT,JOYRIGHT,JOYFIRE) - a 12-sensor touch strip in clock format (
TOUCH1-TOUCH12) - 2 proximity sensors at the left and right hand sides (
LEFTPROX,RIGHTPROX) - a compass (see IMU section)
API
The inputs of the Spaceagon all generate the following events:
ButtonDownEventButtonUpEvent
each with a type for each button available with BUTTON_TYPES:
Buttons
| Button | Event Type | Name |
|---|---|---|
"A" | BUTTON_TYPES["UP"] and FRONTBOARD_BUTTON_TYPES["A"] | "A" |
"B" | BUTTON_TYPES["RIGHT"] and FRONTBOARD_BUTTON_TYPES["B"] | "B" |
"C" | BUTTON_TYPES["CONFIRM"] and FRONTBOARD_BUTTON_TYPES["C"] | "C" |
"D" | BUTTON_TYPES["DOWN"] and FRONTBOARD_BUTTON_TYPES["D"] | "D" |
"E" | BUTTON_TYPES["LEFT"] and FRONTBOARD_BUTTON_TYPES["E"] | "E" |
"F" | BUTTON_TYPES["CANCEL"] and FRONTBOARD_BUTTON_TYPES["F"] | "F" |
Joystick
Using the BUTTON_TYPES types makes your code compatible with both buttons and joystick, whereas the FRONTBOARD_BUTTON_TYPES and JOYSTICK_BUTTON_TYPES will only respond to usage from the buttons or joystick respectively.
| Direction | Event Type | Name |
|---|---|---|
"Up" | BUTTON_TYPES["UP"] and JOYSTICK_BUTTON_TYPES["UP"] | "JOYUP" |
"Down" | BUTTON_TYPES["DOWN"] and JOYSTICK_BUTTON_TYPES["DOWN"] | "JOYDOWN" |
"Left" | BUTTON_TYPES["LEFT"] and JOYSTICK_BUTTON_TYPES["LEFT"] | "JOYLEFT" |
"Right | BUTTON_TYPES["RIGHT"] and JOYSTICK_BUTTON_TYPES["RIGHT"] | "JOYRIGHT" |
"Fire" | BUTTON_TYPES["CONFIRM"] and JOYSTICK_BUTTON_TYPES["SELECT"] | "JOYFIRE" |
Touch
| Touchpad | Event Type |
|---|---|
"Touch1" | "TOUCH1" |
"Touch2" | "TOUCH2" |
"Touch3" | "TOUCH3" |
"Touch4" | "TOUCH4" |
"Touch5" | "TOUCH5" |
"Touch6" | "TOUCH6" |
"Touch7" | "TOUCH7" |
"Touch8" | "TOUCH8" |
"Touch9" | "TOUCH9" |
"Touch10" | "TOUCH10" |
"Touch11" | "TOUCH11" |
"Touch12" | "TOUCH12" |
Proximity
| Sensor | Event Type |
|---|---|
"Left" | "LEFTPROX" |
"Right" | "RIGHTPROX" |
Usage
As for the 2024 front board, there are three ways to get the button that triggered the event. This is through either the event types listed above using the system buttons as follows:
if BUTTON_TYPES["CONFIRM"] in event.button:
print("Confirm pressed!")
or using the source group:
if JOYSTICK_BUTTON_TYPES["SELECT"] in event.button:
print("Select pressed!")
or using the individual button names:
if "FIRE" in event.button.name:
print("Fire pressed!")
Using just "FIRE" and not "JOYFIRE" means if there's another input with FIRE in the name it will work with your app.
Frontboard Identification
| Method | Description | Returns |
|---|---|---|
detect_frontboard() | Identifies which frontbboard is attached and provisions a blank frontboard based on the devices present. | id: 0x2600 for the Spaceagon, 0x2400 for the 2024 frontboard. Defaults to 0x2400. |
Usage
from frontboard.utils import detect_frontboard
frontboard = detect_frontboard()