{"id":24581340,"url":"https://github.com/shadow578/magellan-space-mouse","last_synced_at":"2026-05-04T16:36:36.687Z","repository":{"id":264334481,"uuid":"888927562","full_name":"shadow578/magellan-space-mouse","owner":"shadow578","description":"modify a logitech magellan space mouse to emulate a modern 3dconnexions space mouse","archived":false,"fork":false,"pushed_at":"2024-11-23T13:31:53.000Z","size":18710,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T16:18:54.208Z","etag":null,"topics":["3dconnexion","arduino","hid","magellan","modification","platformio","space-mouse"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shadow578.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-15T09:19:50.000Z","updated_at":"2024-11-23T13:31:56.000Z","dependencies_parsed_at":"2024-11-23T14:37:53.928Z","dependency_job_id":null,"html_url":"https://github.com/shadow578/magellan-space-mouse","commit_stats":null,"previous_names":["shadow578/magellan-space-mouse"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shadow578/magellan-space-mouse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmagellan-space-mouse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmagellan-space-mouse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmagellan-space-mouse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmagellan-space-mouse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shadow578","download_url":"https://codeload.github.com/shadow578/magellan-space-mouse/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shadow578%2Fmagellan-space-mouse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32616039,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3dconnexion","arduino","hid","magellan","modification","platformio","space-mouse"],"created_at":"2025-01-24T02:56:05.985Z","updated_at":"2026-05-04T16:36:36.669Z","avatar_url":"https://github.com/shadow578.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Logitech Magellan Space Mouse USB Mod\n\nthis repo contains the code and documentation to convert a [Logitech Magellan](http://spacemice.org/index.php?title=Spacemouse_Classic) (Space Mouse Classic) to USB.\n\n![Logitech Magellan](./doc/magellan-prev.png)\n\nbased on:\n- [plopp/SpaceMouseDecoder](https://github.com/plopp/SpaceMouseDecoder) for protocol decoding base\n- [AndunHH/spacemouse](https://github.com/AndunHH/spacemouse) for the HID code base\n- [TeachingTech's DIY SpaceMouse](https://www.printables.com/model/864950-open-source-spacemouse-space-mushroom-remix) for the idea (code didn't work for me)\n\n\n## How-To\n\nrequirements:\n- a logitech magellan\n- [arduino pro micro](https://www.amazon.de/EntwicklungBoards-Binghe-Mikrocontroller-Entwicklungsboard-Selbst-USB-Updater/dp/B0D69JLJ97) or other atmega32u4 based board\n- [usb breakout board](https://www.amazon.de/PENGLIN-Stecker-Buchse-SMT-Typ-Steckerplatine/dp/B09FPZDDD9) (optional)\n- soldering iron and some soldering skills\n- a bit of patience\n\n\n### 1. disassemble the space mouse\n\nfirst, disassembly the space mouse.\non the bottom, below the sticker, there are 3 screws (see [image](./doc/magellan_bottom_screws.png)).\nremove them carefully, then remove the bottom plate with a flat screwdriver.\n\nunplug the serial cable and key matrix cable from the \"puck\" (the main board).\nthen, pull the puck up from the case to remove it.\n\nremove the main board assembly from the pub by carefully levering out the pcb with a flat screwdriver.\ntake care to not damage the pcb or the case, and take special care not to damage the light slits attached to the top pcb.\n\n\n### 2. modify the main board and interface board to output TTL serial\n\nto attach the arduino, we need to modify the main board to output TTL serial.\nadditionally, two 1k resistors are added in series to the RX and TX lines to protect either side from damage.\nalso, on the interface board, RTS and CTS are bridged to disable hardware flow control.\n\n\nfor more details, refer to [schematic](./doc//Schematic_magellan-mod.pdf) and the images of the main board after the modification ([top](./doc/magellan_pcb_mod_top.png), [bottom](./doc/magellan_pcb_mod_bottom.png)).\n\n\n\n### 3. connect the arduino\n\nconnect the arduino to the main board as follows:\n\n- arduino GND to IF board GND\n- arduino VCC to IF board VCC\n- arduino RX to IF board TX\n- arduino TX to IF board RX\n\nfor more details, refer to the [schematic](./doc/Schematic_magellan-mod.pdf)\n\n\n### 4. upload the firmware\n\nupload the firmware to the arduino using platformio.\n\n\n### 5. calibration\n\nto calibrate the space mouse, set `#define CALIBRATION 1` in `src/main.cpp` and upload the firmware.\nthen, open the serial monitor and follow the instructions.\nonce done, copy the output calibration values to `src/main.cpp` and re-upload the firmware with calibration disabled.\n\n\n### 7. use the space mouse\n\nto use the space mouse, install the latest [3DConnexion driver](https://3dconnexion.com/de/drivers/).\nthe mouse should be recognized as a 3DConnexion device and work with most 3D applications.\n\n\n## Extras\n\nthe firmware supports control of a LED using the 3DConnexion software.\nhowever, i didn't end up adding a led to my space mouse, since imo there's not enough space in the case.\n\n\nif you wish to add a led, see the code in `src/main.cpp`, especially the `spaceMouse.get_led()` function.\nfrom there, you can add a led to the hardware and control it using the 3DConnexion software.\neven RGB leds should be possible, eg. when using a WS2812B.\n\n\n## Troubleshooting\n\nchange the debug mode by changing `#define DEBUG 1` in `src/main.cpp` to get more information about the serial and hid communication.\nfrom there on, good luck!\nsince there's so many different ways this modification could go wrong, it's hard to give a general troubleshooting guide.\nIf you have any questions, feel free to open an issue. I'll try to help you as best as I can.\n\nif you have any suggestions or improvements, feel free to open a pull request.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadow578%2Fmagellan-space-mouse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshadow578%2Fmagellan-space-mouse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshadow578%2Fmagellan-space-mouse/lists"}