Input Devices for a 3D World

Button Matrix For Serial Spacemice

From Spacemice


Spaceball Class Devices

Model 2003 2003C 3003C 4000 / 5000FLX-A 3
Button 1 4B 40 41 0D 4B 40 41 0D 4B 40 60 0D 4B 40 41 0D 2E 40 41 0D
Button 2 4B 40 42 0D 4B 40 42 0D 4B 50 50 0D 4B 40 42 0D 2E 40 42 0D
Button 3 4B 40 44 0D 4B 40 44 0D 4B 40 44 0D 2E 40 44 0D
Button 4 4B 40 48 0D 4B 40 48 0D 4B 40 48 0D 2E 40 48 0D
Button 5 4B 41 40 0D 4B 41 40 0D 4B 41 40 0D 2E 40 50 0D
Button 6 4B 42 40 0D 4B 42 40 0D 4B 42 40 0D 2E 40 60 0D
Button 7 4B 44 40 0D 4B 44 40 0D 4B 44 40 0D 2E 40 C0 0D
Button 8 4B 48 40 0D 1 4B 50 40 0D 2 4B 50 40 0D 2E 41 40 0D
Button 9 4B 40 40 0D 2E 42 40 0D
Button A 4B 40 40 0D 2E 44 40 0D
Button B 4B 40 40 0D 2E 48 40 0D
Button C 4B 40 40 0D 2E 50 40 0D
Leftie 4B 40 40 0D 2E 60 40 0D
Pick 4B 50 40 0D 1
Zeroize 4B 60 40 0D 2 4B 60 40 0D
Release 4B 40 40 0D 4B 40 40 0D 4B 40 40 0D 4B 40 40 0D 2E 40 40 0D
1Early 2003 models had a 'Pick' button on the front face of the ball, and Button #8 was used to zeroize the device.

2Later 2003C models have a dedicated Zeroize button, the 'Pick' button was removed, and its functionality assigned to Button #8

3The 4000/5000FLX-A models produce a two-part button packet, the first 4-bytes allow for legacy software written for the 2003 series.

Magellan Class Devices

Model classic plus/plus xt 5000FLX CadMan
Button 1 6B 41 30 30 0D 6B 41 30 30 0D 6B 41 30 30 0D 6B 41 30 30 0D
Button 2 6B 42 30 30 0D 6B 42 30 30 0D 6B 42 30 30 0D 6B 42 30 30 0D
Button 3 6B 44 30 30 0D 6B 44 30 30 0D 6B 44 30 30 0D 6B 44 30 30 0D
Button 4 6B 48 30 30 0D 6B 48 30 30 0D 6B 48 30 30 0D 6B 48 30 30 0D
Button 5 6B 30 41 30 0D 6B 30 41 30 0D 6B 30 41 30 0D
Button 6 6B 30 42 30 0D 6B 30 42 30 0D 6B 30 42 30 0D
Button 7 6B 30 44 30 0D 6B 30 44 30 0D 6B 30 44 30 0D
Button 8 6B 30 48 30 0D 6B 30 48 30 0D 6B 30 48 30 0D
Button 9 6B 30 30 41 0D 2
Button A 6B 30 30 42 0D 6B 30 30 42 0D
Button B 6B 30 30 44 0D 6B 30 30 44 0D
Button C 6B 30 30 48 0D
Leftie 6B 30 30 30 0D 3
Asterisk 6B 30 30 41 0D 1 6B 30 30 41 0D 1
Release 6B 30 30 30 0D 6B 30 30 30 0D 6B 30 30 30 0D 6B 30 30 30 0D
1 The '*' (Asterisk) button activates built-in firmware options. (see: IMAGE) As such, it and the following button packet are typically ignored and not processed.

2 The output of the '9' button on the 5000FLX matches the otherwise ignored '*' button of the Plus, Plus XT, and Classic.

3 The 'Leftie' switch, embedded inside the base of the 5000, and triggered by moving the hand-rest on the opposite side, generates a key-press packet, but no value change.
SpaceExplorer
Button 1 6B 41 30 30 30 0D
Button 2 6B 42 30 30 30 0D
Button T 6B 44 30 30 30 0D
Button L 6B 48 30 30 30 0D
Button R 6B 30 41 30 30 0D
Button F 6B 30 42 30 30 0D
Button ALT 6B 30 44 30 30 0D
Button ESC 6B 30 48 30 30 0D
Button SHIFT 6B 30 30 41 30 0D
Button CTRL 6B 30 30 42 30 0D
Button Fit 6B 30 30 44 30 0D
Button Panel 6B 30 30 48 30 0D
Button + 6B 30 30 30 41 0D
Button - 6B 30 30 30 42 0D
Button 2D 6B 30 30 30 44 0D
Release 6B 30 30 30 30 0D
The SpaceExplorer is a Magellan class device, but due to its number of buttons, it uses an extra byte for button packets.

Other Devices

SpaceOrb 360
Press Release
Nothing 4B E4 80 80 AF 0D 1
Button A 4B 97 81 80 DD 0D 4B 95 80 80 DE 0D
Button B 4B A1 82 80 E8 0D 4B 93 80 80 D8 0D
Button C 4B A4 84 80 EB 0D 4B 95 80 80 DE 0D
Button D 4B 95 88 80 D6 0D 4B 96 80 80 DD 0D
Button E 4B 9B 90 80 C0 0D 4B 95 80 80 DE 0D
Button F 4B 98 A0 80 F3 0D 4B 95 80 80 DE 0D
Zero 4B B9 C0 80 B2 0D 4B 9B 80 80 D0 0D
1 When no buttons are being pressed, the device continues to stream this packet.
Spaceball SpaceController #1
Press Release
Button 1 4B 82 FF 0D 4B 80 82 0D
Button 2 4B 81 FF 0D 4B 80 82 0D
Zero 4B C0 FF 0D 4B 80 82 0D
Spaceball SpaceController #2
Button 1 4B 82 FF B5 0D 4B 80 82 C9 0D
Button 2 4B 81 FF B6 0D 4B 80 82 C9 0D
Zero 4B C0 FF F4 0D 4B 80 FF B4 0D
Very little testing has been performed on the Spaceball SpaceController. Of two SpaceControllers tested, each gave different results. It is unknown if this difference is related to the age of the devices, or caused by an operating mode.