Component List

Hardware, firmware, configurator, and host-side components for the Trackball to Spacemouse Emulator.

This page lists the main hardware, firmware, configuration, and host-side components used by the Trackball to Spacemouse Emulator project.

Hardware Components

  • Raspberry Pi Pico 2 W: embedded controller running the firmware.
  • USB trackball receiver: standard mouse-style HID input device used as the physical controller.
  • USB host wiring: four-wire USB connection between the Pico host side and the trackball receiver.
  • USB connection to computer: device-side USB connection exposing the emulated controller to Windows or macOS.

Firmware Components

  • Pico SDK firmware: initializes the board, loads configuration, and coordinates the runtime loop.
  • TinyUSB device mode: presents the board to the computer as a multi-axis HID controller.
  • TinyUSB host support: reads HID reports from the trackball receiver.
  • PIO USB: provides the additional USB host path needed for the receiver side.
  • Axis mapping layer: converts trackball movement, wheel movement, and button states into six-degree-of-freedom navigation axes.
  • Persistent flash configuration: stores mappings and sensitivity values on the device.
  • USB CDC command interface: allows the browser configurator to read and write settings.

Configurator Components

  • Browser setup page: local HTML, CSS, and JavaScript interface for configuration.
  • Web Serial API: connects the browser to the Pico over USB serial.
  • Mapping controls: assign movement, wheel, and button-modified behavior to 3D navigation axes.
  • Sensitivity controls: tune per-axis response without rebuilding firmware.

Host Software

  • 3Dconnexion SpaceMouse driver path: lets CAD software interpret the device as a familiar 3D navigation controller.
  • Fusion 360: tested CAD application.
  • FreeCAD: tested CAD application.
  • Windows and macOS: tested host operating systems.

Signal Flow

USB trackball receiver
-> Pico PIO USB host
-> TinyUSB host HID parser
-> axis mapping and sensitivity logic
-> TinyUSB HID device reports
-> 3Dconnexion SpaceMouse driver path
-> CAD application on the computer

Browser configurator
-> Web Serial
-> USB CDC command interface
-> flash-backed device configuration