Dial keyboard - Arduino+Krita project

Hey Everybody,

I’m looking for ideas and colaborators to work on a dial keyboard using Arduino.
I already have a working prototype that needs a lot of attention and improvements, mostly because it’s not yet usefull for non-programmers.

Goal:
Create a DIY customizable dial keyboard with 3d-printable parts, cheap electronics and ready to install software (all open source of course)

Current State Prototype:
The dial keyboard shown in the picture uses regular 20 steps rotary encoders (5), an Arduino and a slider potentiometer.

Rotary Encoder:
For those not familiar with electronics, rotary encoders allows 3 actions: endless rotate left and right, and press it like a button.

Slider potentiometer:
The prototype includes one but it end up not being usefull, for the final version I would only include rotary encoders.

Arduino:
The arduino works with Firmata.

How it helps me to be a better artist?
I have my prototype next to my wacom and use it as an extention avoiding using the keyboard that much.

Each Rotary Encoder has different krita shortcuts assigned, which I can program to do. Some of the actions I have being using mostly are:

  • Clockwise - Anti Clockwise - Press
  • Undo - Redo - Save
  • Rotate Canvas Clockwise - Rotate Canvas Anti - Back to Normal
  • Zoom In - Zoom Out - Restore Zoom
  • Saturate - Desaturate
  • Brush Size Increase - Decrease

Those are some examples, but anything that can be a shortcut, can be assigned to one of the encoders actions.

Also the protype supports different modes by pressing one of the rotare encoders. So I have a mode for painting, another one for color manipulation and another one for browsing (yes, it can be used on any program because it works as a keyboard).

Next steps
I don’t have all the time this requires to go from a prototype to a final public ready version, and I need help to:

  • Choose a name that the community will be proud of.
  • Create a 3d-printable case
  • Program an UI to configure the different modes and shortcuts with defaults for different Krita versions compatible with Linux - Windows - MacOS
  • Replace firmata with a proper firmware (also compatible with popular OSs)
  • Review components used and overall design

Nice to haves:

  • Share presets accross users (export - import)
  • Bluetooth: no more cables please
  • Instead of using keyboard shortcuts it would be great if Krita recongnizes the keyboard and allows more powerfull integration.

I hope my bad english is not confusing, I will be glad to answer questions.

Cheers and happy painting,
NCB

6 Likes

Wow this looks so cool! If final has multiple rotor wheels I would make them textured so can tell apart by feel. And/or different sizes.

It looks like top 2 are also sliders? That’s interesting. I can imagine a single such control being zoom for the slide and rotate drawing for the wheel. Or slide for brush size and spin for brush selection. I think I would slide left-right in preference to up-down.

For me I think as much as possible I would try use as few wheels as possible, maybe even just one, and change their function by buttons on screen. This is just my imagination though as I’ve never used anything like this before. For true utility this would probably require an onscreen notification of what mode it was in.

1 Like

Thanks for your comments, I really appreciate it.

I like the idea of different knob textures. Now that you mention it I do find myself looking for the right knob, a tactile cue would be very handfull.

The 2 top ones are not sliders. They have those tracks under them because on a prior version I used to have 3 sliders on top en 3 dials on the bottom. As I said, dials are much more usefull then sliders and I left one there just because I use it to change my computer sound volume while listening to music :wink:

Sliders are not usefull because they have a fixed value from 0 to 1024, and it’s only practical if you need to control stuff that moves from 0 to some number, like the sound volumen that goes from 0 to 100%. If you are editing videos or other stuff it might be practical, but on krita it’s not.

Regarding the amount of dials I think the magic number is 6, having just one will add a lot of mode switching effort while 6 gives you enoght for your preferences and switching modes will only be needed when changing the whole set of features to a different working context (browsing, painting, color manipulation).

I also considered trying to add small buttons on top, about 6 buttons, and each button is a different mode, but I ran out of steam to keep changing the prototype.

Again, thanks for your interest, I’m really looking for people that want to push this forward with me to give the community an non comercial open source option piece of hardware they can build and share.

1 Like

I will add here a commercial option that are around for a few years now: