SpaceMouse Enterprise will 0 an axis if it's held steady for too long
Moderator: Moderators
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
SpaceMouse Enterprise will 0 an axis if it's held steady for too long
I'm just trying to use the SpaceMouse as a joystick, in an application that uses SDL to handle joystick input. Apparently there's a feature within the SpaceMouse to start sending out 0 values for the axis if it's pushed and held relatively steady for "too long". When the deflection on the axis is released then the SpaceMouse sends out values that are opposite...for a while...and then once again goes back to zero.
The application controls a pan-tilt and it's useless to stop moving when you're trying to follow something that moves at a constant rate.
I get it that the SpaceMouse wasn't designed to be used as a joystick, but is there any way to turn off this feature?
Does it require the driver be installed, or the SDK used, or some custom setting changed in an XML file?
The application controls a pan-tilt and it's useless to stop moving when you're trying to follow something that moves at a constant rate.
I get it that the SpaceMouse wasn't designed to be used as a joystick, but is there any way to turn off this feature?
Does it require the driver be installed, or the SDK used, or some custom setting changed in an XML file?
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
Sign up as a developer and send us an email.
I can send you some code to turn this firmware feature off.
I can send you some code to turn this firmware feature off.
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
It'd be helpful if you could point to an instruction on how to "sign up as a developer" vs. "register"....which is what I've done 3 times already (2 of them seem successful).
And who do I send an email to? Do I need a special developer email address to send the email?
Can you just post the code?
Thanks.
And who do I send an email to? Do I need a special developer email address to send the email?
Can you just post the code?
Thanks.
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
testing if I can reply.
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
We got your email. We sent a tool that will do this for you.
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
So, the utility program I received works for some axis but not all, apparently.
I was trying to implement the knob twist as a video playback ****** control (so twist the knob CCW and the video plays backwards, twist CW and it plays forwards, and the speed of each is dependent upon how much you twist) but I've found that the SME will stop sending the axis value after a few seconds, and then when released send the reverse for a few seconds. So I replied to Uta about a utility to turn off the auto-center firmware feature for all axis.
I really don't understand the purpose of that feature.
But...it raises a question: If there's a way to turn off the firmware auto-zero function, does that mean I need to figure in some "dead zone" so that I can tell when the SME has been released and should have returned to center (and zero...but that's been disabled so maybe in some circumstances it never can).
Thanks.
I was trying to implement the knob twist as a video playback ****** control (so twist the knob CCW and the video plays backwards, twist CW and it plays forwards, and the speed of each is dependent upon how much you twist) but I've found that the SME will stop sending the axis value after a few seconds, and then when released send the reverse for a few seconds. So I replied to Uta about a utility to turn off the auto-center firmware feature for all axis.
I really don't understand the purpose of that feature.
But...it raises a question: If there's a way to turn off the firmware auto-zero function, does that mean I need to figure in some "dead zone" so that I can tell when the SME has been released and should have returned to center (and zero...but that's been disabled so maybe in some circumstances it never can).
Thanks.
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
The word ****** has been blocked out?
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
OK...why is
s
h
u
t
t
l
e
...as in "space ******" a blocked out word?
s
h
u
t
t
l
e
...as in "space ******" a blocked out word?
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
Uta replied, I see. Not sure yet what the issue is, however. I think he just sent the same utility that we already have.
Thanks.
Thanks.
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
I've discovered my problem...I'd neglected to add the parameters to the system call to HIDSetAutoCalibrate, so apparently it wasn't doing anything. I've been able to make the change and now the auto calibrate function seems to be correctly disabled for the twist axis.
Apologies for my error, and for raising this issue again. Thanks.
Apologies for my error, and for raising this issue again. Thanks.
-
- Posts: 24
- Joined: Thu Jun 20, 2019 8:33 am
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
Still not sure about how necessary the calibrate function is, however. If the SME knob tends to become biased over time with use, so that it doesn't return to zero anymore unless it's "calibrated", then I'm going to speculate that we'll need a way to force the calibration. Or else plan on some "dead zone" in the center which can be ignored by our application.
If an engineer thought that just a few seconds of holding the knob steady with your hand (which isn't steady by any means) was enough of a threshold to determine via firmware that the knob has been released and is back at the center, then I'm worried with some use during the day, the knob will lose the ability to "center" until the whole system is rebooted.
So...is it possible to force the calibration via some executable? Or some USB commands?
Thanks.
If an engineer thought that just a few seconds of holding the knob steady with your hand (which isn't steady by any means) was enough of a threshold to determine via firmware that the knob has been released and is back at the center, then I'm worried with some use during the day, the knob will lose the ability to "center" until the whole system is rebooted.
So...is it possible to force the calibration via some executable? Or some USB commands?
Thanks.
Re: SpaceMouse Enterprise will 0 an axis if it's held steady for too long
The auto-calibrate function is mainly for a startup problem.
If the user has something resting on the device cap when it boots it will save that as its center position. When the user removes the object the cap will return to its mechanical center, and it will calculate that the user is pushing it in the opposite direction.
This is particularly an issue for wireless devices when the user picks up the device to turn on the power switch while holding it sideways. The weight of the hanging sprung mechanism is enough to define a new center position. When the user rights the device, it calculates the mechanical center as a new position.
Other than those scenarios, generally the device doesn't start drifting over time. If it is drifting, there is probably something broken inside and it needs to be replaced.
The API has a function to calibrate the device. I haven't seen anyone use it in years. The driver also has a Calibrate function under the 3Dx systray icon.
You can increase the null / dead region of the device with the driver. Users have done that for "bumpy" environments.
It will always send an all zero event when slipping into the null region, no matter how it is defined. This is crucial.
If the user has something resting on the device cap when it boots it will save that as its center position. When the user removes the object the cap will return to its mechanical center, and it will calculate that the user is pushing it in the opposite direction.
This is particularly an issue for wireless devices when the user picks up the device to turn on the power switch while holding it sideways. The weight of the hanging sprung mechanism is enough to define a new center position. When the user rights the device, it calculates the mechanical center as a new position.
Other than those scenarios, generally the device doesn't start drifting over time. If it is drifting, there is probably something broken inside and it needs to be replaced.
The API has a function to calibrate the device. I haven't seen anyone use it in years. The driver also has a Calibrate function under the 3Dx systray icon.
You can increase the null / dead region of the device with the driver. Users have done that for "bumpy" environments.
It will always send an all zero event when slipping into the null region, no matter how it is defined. This is crucial.