Skip to content

modify a logitech magellan space mouse to emulate a modern 3dconnexions space mouse

License

Notifications You must be signed in to change notification settings

shadow578/magellan-space-mouse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logitech Magellan Space Mouse USB Mod

this repo contains the code and documentation to convert a Logitech Magellan (Space Mouse Classic) to USB.

Logitech Magellan

based on:

How-To

requirements:

1. disassemble the space mouse

first, disassembly the space mouse. on the bottom, below the sticker, there are 3 screws (see image). remove them carefully, then remove the bottom plate with a flat screwdriver.

unplug the serial cable and key matrix cable from the "puck" (the main board). then, pull the puck up from the case to remove it.

remove the main board assembly from the pub by carefully levering out the pcb with a flat screwdriver. take care to not damage the pcb or the case, and take special care not to damage the light slits attached to the top pcb.

2. modify the main board and interface board to output TTL serial

to attach the arduino, we need to modify the main board to output TTL serial. additionally, two 1k resistors are added in series to the RX and TX lines to protect either side from damage. also, on the interface board, RTS and CTS are bridged to disable hardware flow control.

for more details, refer to schematic and the images of the main board after the modification (top, bottom).

3. connect the arduino

connect the arduino to the main board as follows:

  • arduino GND to IF board GND
  • arduino VCC to IF board VCC
  • arduino RX to IF board TX
  • arduino TX to IF board RX

for more details, refer to the schematic

4. upload the firmware

upload the firmware to the arduino using platformio.

5. calibration

to calibrate the space mouse, set #define CALIBRATION 1 in src/main.cpp and upload the firmware. then, open the serial monitor and follow the instructions. once done, copy the output calibration values to src/main.cpp and re-upload the firmware with calibration disabled.

7. use the space mouse

to use the space mouse, install the latest 3DConnexion driver. the mouse should be recognized as a 3DConnexion device and work with most 3D applications.

Extras

the firmware supports control of a LED using the 3DConnexion software. however, i didn't end up adding a led to my space mouse, since imo there's not enough space in the case.

if you wish to add a led, see the code in src/main.cpp, especially the spaceMouse.get_led() function. from there, you can add a led to the hardware and control it using the 3DConnexion software. even RGB leds should be possible, eg. when using a WS2812B.

Troubleshooting

change the debug mode by changing #define DEBUG 1 in src/main.cpp to get more information about the serial and hid communication. from there on, good luck! since there's so many different ways this modification could go wrong, it's hard to give a general troubleshooting guide. If you have any questions, feel free to open an issue. I'll try to help you as best as I can.

if you have any suggestions or improvements, feel free to open a pull request.