Crisp Clean Shortcuts

People always tell us that their favorite part about using a computer is mashing out the exact same key sequences over and over, day in, day out. Then, there are people like [Benni] who would rather make a microcontroller do the repetitive work at the touch of a stylish USB peripheral. Those people who enjoy the extra typing also seem to love adding new proprietary software to their computer all the time, but they are out of luck again because this dial acts as a keyboard and mouse so they can’t even install that bloated software when they work at a friend’s computer. Sorry folks, some of you are out of luck.

Rotary encoders as computer inputs are not new and commercial versions have been around for years, but they are niche enough to be awfully expensive to an end-user. The short BOM and immense versatility will make some people reconsider adding one to their own workstations. In the video below, screen images are rotated to get the right angle before drawing a line just like someone would do with a piece of paper. Another demonstration reminds of us XKCD by cycling through the undo and redo functions which gives you a reversible timeline of your work.

If you like your off-hand macro enabler to have more twists and buttons, we have you covered, or maybe you only want them some of the time.

23 thoughts on “Crisp Clean Shortcuts

  1. Wonder how well it would work to mount the rotary encoder on a “joystick”. Then you could rotate the knob, press the knob, as well as select between 4 or 8 function shortcuts (depending on how many direction switches you include).
    Not suggesting a real joystick, of course, but using the knob as the handle of the joystick to trigger the various switches.

    1. bmw i-drive controller works this way, and also has force feedback, bought a spare one on ebay to see if I could get it to talk to an arduino, but as usuall it gathering dust right now lol

      1. I put these in boxes to prevent dust collection.

        Procrastination kills ideas. I wish I had a method to keep inspiration through shipping. Or at least one sleep. I should look up for some mindhacks, but I don’t feel like to do it. :-P

    1. It’s not USB host, just enumerating as a usb human interface device. An arduino leonardo based board will work (uses the atmega32u4 which has native hardware usb support) or an attiny85 with soft usb capabilities via vusb (this will be the cheapest option IMO). As far as the ESPs, I dont think the 8266 has hw usb support so it would need to bitbang it like the vusb for small attinys.

    2. Yes, but perhaps not yet at the price point you want.

      Teensy 3.6, the most expensive Teensy, has both normal 12 Mbit USB device and a 480 Mbit USB host port. Two libraries are support it: USBHost_t36 and UHS30.

      Arduino Due & Zero also have some USB host support on their native ports.

      Many boards can use the USB host shield, but the performance is low when using SPI to control USB.

  2. I would like one to use as a tuning knob for my software defined radio. Radio enthusiasts will tell you that a smooth tuning knob with lots of resolution and a certain amount of inertia is a wonderful interface.

  3. I have a 3dConnexxion Spacemouse I use with Altium, and it’s really handy in 3D mode. It has software for a bunch of other software, but as a day-to-day device, I don’t find it very useful. Part of the problem is remembering what the buttons are programmed for.

  4. Great job on your DIY device! Did you try Surface dial before doing this? There’s an excellent DIY Surface Dial (also known as windows wheel) emulation project by NicoHood. https://github.com/NicoHood/HID/tree/master/examples/SurfaceDial

    Unfortunately, the windows wheel interface feels less useful than just basic keyboard shortcuts like you made, especially if you’re only using for a single program. But if you start wanting different shortcuts for different programs, you may want to check out his library and use the program-informed features of the wheel interface.

  5. Given how small the rotary encoder is, i’d look at integrating into the side of a mouse instead. My thumb falls to a spot on the side that it would fit nicely. Then just a matter of squeezing the teensy into the mouse, which should be doable.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.