Do you use the keyboard's mouse controls?

that is something that could definitely use tuning. I spent a fair amount of time tuning it using floating point math before realizing that that would add to heavy a code size burden. @ToyKeeper Has improved it since my initial integer math PVT version, but I suspect we could do a lot better, especially if we borrowed from the original IBM trackpoint documentation. if I recall correctly, we want to use a tweaked cosine or arctangent wave to get a nice slow initial ramp, chunk of acceleration and then a reasonable top speed.

3 Likes

Maybe in the future, this could be added to the gui program. I think it would be good to allow users to shape this to their individual needs as well.

For inspiration: the Kensington Expert Mouse comes with a gui programm for Mac and Windows that allows users to manipulate the acceleration curve for the trackball according to their preference:

Haven’t used it in years, ever since I switched to Linux, where the defaults were fine for me.

1 Like

@squence That screenshot reminds me so much of Windows 95®

After one day I love the mouse keys, huge potential, but the learning curve with acceleration is demanding. I want to tweak!

This may be a n00b question, but how does one modify the settings? I’m very new to C. I was looking at the documentation but I’m not sure where to set the values. I tried MouseKeys.speed(5); in the firmware near where Numpad and StalkerEffect get their settings set, but no joy. I need a shove in the right direction!

The documentation could use some clarity (sorry about that!) and a better example. You set these properties in the setup() function of your sketch, usually somewhere after the Kaleidoscope.use(...) line. The MouseKey settings are properties, not functions (the docs aren’t clear on this at the moment), so the way to set them is like this:

void setup() {
  // ...
  MouseKeys.speed = 5;
  MouseKeys.speedDelay = 10;
}

Hope this helps!

5 Likes

2 posts were split to a new topic: Why use properties instead of setters/getters?

In the past when I’ve tried devices like that, I find the mouse acceleration seems to “kick in” at the worse moment… just as I’m approaching my target… and then I zoom past it.

To me, it’s more a case of the desired mouse speed where that intuitive break down happens. The speed should not be based on how long the pointer has been moving, but on how close I am to my target, the precision I need, or other intuitive factors.

When I get my Model 01, I’ll try the built in mouse stuff. (The quadrant “binary search” thing seem interesting.) But I’m also thinking of trying “manual” acceleration only. Basically 2 (or 3) speed modifier keys such that:

  • No Mods ➜ slow
  • Mod 1 ➜ medium
  • Mod 2 ➜ fast
  • Mod 3 (or maybe Mod 1 & 2 together) ➜ Turbo

I’m mot sure if that would work, or would be hard to get use to. But I figure it’s worth trying it out. At least for basic GUI stuff. I don’t think I could ever use a keyboard based mouse when working in a graphics app or such.

3 Likes

It’s doable, I had such a setup on my sketch for a while, and it worked reasonably well. I just couldn’t get used to using the speed modifiers, so I’m back to using a single speed + acceleration profile. I tend to use the mouse keys when I know I’ll be mousing only for a very short time, and reaching for my trackball would take more effort than using the keyboard. The warp/binary-search keys, now I use those a lot, often together with my trackball, to quickly move towards the destination, then refine with the trackball.

1 Like

I can’t really see an instance where I’ll be moving the cursor around with my keyboard, but I can see instances where I need to switch back and forth between keyboard and mouse in order to click a static target. In such a case, “clicking” from the keyboard would be a time saver.

I suspect this is the paper we want to read to find out about what we should be doing:

https://dl.acm.org/citation.cfm?id=725310

3 Likes

http://ted.selker.com/documents/resumefiles/Papers%20in%20Refereed%20Conference%20Proceedings/Force_to_Motion%20Funct%20for%20Pointing.pdf
http://www.ted.selker.com/documents/resumefiles/other%20publications/Negative%20Inertia.pdf
http://ted.selker.com/documents/resumefiles/other%20publications/computer-pointing.PDF

are all related.

3 Likes

I didn’t realise the warp keys were cumulative. D’oh! That makes them much more useful…

Yes, I think the main issue I have with the mouse key acceleration is that you can’t easily decelerate like you can with e.g. a nipple mouse. You have to stop completely and then start again. This is annoying enough to put me off even trying to acclimatise to it…

What if you could decelerate by pressing a second key (the one for moving the cursor in the opposite direction) without releasing the first one? Or if there were separate “throttle” keys (perhaps on the other hand) so that speed and direction could be controlled independently?

A throttle key might be an idea. The disadvantage comes when you’re already ctrl-dragging with the mouse, which uses up three fingers…

My father once designed a security camera control that just used four keys for pan and tilt. The clue was that the places where the keys were soldered on the pcb each were surrounded by an u-shaped slot. So the key would, when pressed to the bottom, bend the pcb a little. Close to the key on the pcb was a strain sensor. Its information was used to determine the speed of the servo motors.

The same setup would also allow for pressure sensitive mouse acceleration. Maybe on Model02, @jesse?

9 Likes

That’s incredibly clever. Because we use a metal plate above the PCB to keep everything from moving around, we may need a different solution (though I have some ideas).

4 Likes

I’m pretty sure changing keyswitches is off the table, but I’m curious: I know that pressure-sensitive keyboard switches exist, but are they available for anyone to buy, or are they totally proprietary? (I wouldn’t personally want them, because that would mean moving to Cherry-style switches, which I dislike.)

1 Like

As a challenge to myself I went an entire morning using nothing but mouse keys, and I’m actually getting pretty decent at this! Not having to switch devices is pretty special.

1 Like

This conversation reminds me of
Ben Heck’s Analog WASD Gaming Keyboard