sb-ocr / diy-spacemouse Goto Github PK
View Code? Open in Web Editor NEWA DIY navigation device for Fusion360
License: Other
A DIY navigation device for Fusion360
License: Other
I have found through testing that when you orbit that the middle mouse button is triggered along with the left shift key. I have changed the code some but can't find were it constantly wants to press the middle mouse when orbiting. Panning works as it should, middle mouse button only.
This is the code changes I made but it still pressed the middle mouse when orbiting only now it toggles on and off.
if (abs(zCurrent) < zThreshold && !isOrbit) {
Keyboard.press(KEY_LEFT_SHIFT);
Mouse.release(MOUSE_MIDDLE);
isOrbit = true;
Mouse.move(yMove, xMove, 0);
} else {
Keyboard.release(KEY_LEFT_SHIFT);
isOrbit = false;
Mouse.press(MOUSE_MIDDLE);
Mouse.move(yMove, xMove, 0);
}
Please include a Bill of Materials when you add your Build Instructions. That way we can purchase the same springs and boards you did, Thanks.
How are you guys getting around the ADC hangup issue for the magnetometer?
I'm constantly getting lockups making it unusable.
Hi, great project but I get this error:
C:\Users\titan\Downloads\diy-spacemouse-main\diy-spacemouse-main\Code\Fusion360 Add-in\Send Home>SendHome.py
Traceback (most recent call last):
File "C:\Users\titan\Downloads\diy-spacemouse-main\diy-spacemouse-main\Code\Fusion360 Add-in\Send Home\SendHome.py", line 1, in
import adsk.core, adsk.fusion, adsk.cam, traceback
ModuleNotFoundError: No module named 'adsk'
How can I solve this problem?
Thanks!
Hi would it be possible to upload step files of the components, rather than just stls?
Thanks
Any chance you'd be willing to license this as CC-BY-SA? I'd like to use it as a starting point to see if we can get to 6 DOF, and your design is far better than anything else out there.
https://creativecommons.org/licenses/by-sa/4.0/
Hi,
thanks for sharing this cool design!
I did not test the product yet, still waiting for components to arrive.
This is more of a question.. while I was going through the document of the buttons' wiring I notices you assigned button2 to pin 24, which happens to be the SDA line. Isn't it going to conflict with the TLV493D operation?
// Setup buttons
OneButton button1(27, true);
OneButton button2(24, true);
Where did you find TinyUSB_Mouse_and_Keyboard.h? I was able to install all the other libraries directly from the Arduino IDE except for this one. I found and installed this (https://github.com/cyborg5/TinyUSB_Mouse_and_Keyboard), but now I'm getting a fatal error that there is no HID.h. I thought I'd ask for help before going down a Depp deep rabbit hole.
Thanks,
B
Hi Salim, some time ago I built Orbion for exactly the same reasons you mention, but I never use it and always stick to my real SpaceMouse. The reason, which you maybe already realized if you used your DIY spacemouse for a bit, is you can't use keyboard/mouse emulation for a real work because your cursor, focus and everything is constantly taken away. I immediately noticed that by the end of your video, seeing mouse cursor slowly sliding away when you were rotating view. My point is that these devices are not much of use unless someone really dive into API you mentioned and program a full driver which doesn't emulate keystrokes and mouse movements. Any chance you would be interested in that after all?
Hi, thanks for the project. You have inspired me to work. As in my country it is difficult to get the TLV493D, I will rework the inner triangle for the GY-521 sensor (MPU-6050). It will allow better position tracking.
When I come back from vacation, I will try to implement my ideas. And be sure to come here and show you the result.
someone already made software for getting a pi pico to report and function as a full spacemouse (with software support)
this should be easy to convert for your hardware and function without locking out the mouse.
https://github.com/jfedor2/magellan-spacemouse
Instructables says that it's a M2.5x3.4 heatset insert. I'm going to assume that 3.4 refers to the insert's outer diameter and not length.
When trying to order the part, it doesn't appear that 3.4 mm is a standard size, I can only find listings for 3.5 mm. Also I have no idea what length to order (3mm? 3.6mm? 4.0mm? 4.5mm? 5mm?)
The linked Amazon product only comes with M2.5x5, which doesn't even match the Instructables page.
Can I get a little bit of guidance here?
Hi, the way the code is made it is difficult to adjust to other CAD software, since Fusion360 is unique for using a additional button to toggle between orbit and pan-mode. Other programs use e.g. rigth-button+mouse-movment for orbiting and middle-mouse-button+mouse-movment for paning.
I tried to implement it, but it's not elegant at all
See my code here
I switched what is triggered by pressing the knob and added different sensitivities for every mode. Also turned everything bei 90° to have the cable in the back.
There are many versions of the pi tiny sized rp2040 board but most don't have the i2c socket on them. For future revisions, could you keep the i2c pins clear (4 and 5) and put the buttons on different inputs? That would make it easier to connect to more versions. Of course, I can just edit the pin file, and I'll have to for my seeed xiao rp2040 anyway to move the i2c.
A 3rd button could also be easily added (and I did). Let me know if you're interested in the file, though I'm sure you can just as easily copy the existing button setup and rotate it 90 degrees to drop in a 3rd button.
for printability, having the shaft of the knob tapered all the way to the mounting plate means no supports needed.
Same for the bottom of the case, a chamfer first and then fillet on the top half means no overhang over 45 degrees.
Looking forward to the next version! Thanks for sharing. :)
Salim,
This is awesome, and I'd love to make my own, however; I have a SLA resin printer, and thus I cannot heat sink the threaded inserts, but have to press fit them in place. I was wondering if you could release STL files with the threaded insert positions increased to 4.5 mm in diameter. I tried to press fit some of the threaded inserts in and the holes are two small and the part ends up breaking apart. I opened the STEP file in FreeCAD, but I can't navigate down to the individual subelements of the larger parts, i.e. I can only get as far as "Spring Mech Top," "Sprint Mech Bottom," "Stem," and "Knob Shell" from the "Knob" part.
Thanks,
Bruno
Hello,
Thank you for making this and sharing it. I've started assembling one and am looking forward to giving it a try.
I've run into a small snag. The threaded inserts I have are a little smaller in diameter than the ones you used. I thought hey, no problem there's a step file I can just tweak it. And that's true to an extent but editing a step file is not nearly as straightforward as editing the equivalent Fusion 360 file.
Would you be willing to include the Fusion file to the GitHub repository?
Thanks again for all your work in documenting and sharing this.
Hi Salim and community. Any possibility on a code update for MMC5603 magnetometer?
Like many people I bought the MMC5603 magnetometer and I´ve been playing around with new library and updating the code to no avail.
I can´t seem to make it work.
On Instructables you mentioned that some users used the MMC5603 but I cannot find the code anywhere.
Can you provide some help?
Hi Salim,
Thanks for the Video, it's helpful.
I have a few questions related to it.
If possible please suggest the Alternatives for all.
Hi,
How hard do you think it would be to modify the design for 6 axis? In the spirit of using parts laying around I realised a drone flight controller which are somewhat cheap and very available have at least 5 axis gyro + altitude. Just trying to work out how to pull the data from betaflight now.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.