@@ -357,6 +357,39 @@ def config_remove(self):
357
357
# the IDs for the supported devices
358
358
# Each ID maps a device name to a DeviceSpec object
359
359
device_specs = {
360
+ "SpaceExplorer" : DeviceSpec (
361
+ name = "SpaceExplorer" ,
362
+ # vendor ID and product ID
363
+ hid_id = [0x46D , 0xc627 ],
364
+ # LED HID usage code pair
365
+ led_id = [0x8 , 0x4B ],
366
+ mappings = {
367
+ "x" : AxisSpec (channel = 1 , byte1 = 1 , byte2 = 2 , scale = 1 ),
368
+ "y" : AxisSpec (channel = 1 , byte1 = 3 , byte2 = 4 , scale = - 1 ),
369
+ "z" : AxisSpec (channel = 1 , byte1 = 5 , byte2 = 6 , scale = - 1 ),
370
+ "pitch" : AxisSpec (channel = 2 , byte1 = 1 , byte2 = 2 , scale = - 1 ),
371
+ "roll" : AxisSpec (channel = 2 , byte1 = 3 , byte2 = 4 , scale = - 1 ),
372
+ "yaw" : AxisSpec (channel = 2 , byte1 = 5 , byte2 = 6 , scale = 1 ),
373
+ },
374
+ button_mapping = [
375
+ ButtonSpec (channel = 3 , byte = 2 , bit = 0 ), # SHIFT
376
+ ButtonSpec (channel = 3 , byte = 1 , bit = 6 ), # ESC
377
+ ButtonSpec (channel = 3 , byte = 2 , bit = 1 ), # CTRL
378
+ ButtonSpec (channel = 3 , byte = 1 , bit = 7 ), # ALT
379
+ ButtonSpec (channel = 3 , byte = 1 , bit = 0 ), # 1
380
+ ButtonSpec (channel = 3 , byte = 1 , bit = 1 ), # 2
381
+ ButtonSpec (channel = 3 , byte = 2 , bit = 3 ), # PANEL
382
+ ButtonSpec (channel = 3 , byte = 2 , bit = 2 ), # FIT
383
+ ButtonSpec (channel = 3 , byte = 2 , bit = 5 ), # -
384
+ ButtonSpec (channel = 3 , byte = 2 , bit = 4 ), # +
385
+ ButtonSpec (channel = 3 , byte = 1 , bit = 2 ), # T
386
+ ButtonSpec (channel = 3 , byte = 1 , bit = 3 ), # L
387
+ ButtonSpec (channel = 3 , byte = 1 , bit = 5 ), # F
388
+ ButtonSpec (channel = 3 , byte = 2 , bit = 6 ), # 2D
389
+ ButtonSpec (channel = 3 , byte = 1 , bit = 4 ), # R
390
+ ],
391
+ axis_scale = 350.0 ,
392
+ ),
360
393
"SpaceNavigator" : DeviceSpec (
361
394
name = "SpaceNavigator" ,
362
395
# vendor ID and product ID
0 commit comments