Skip to content

The Knob - Micro USB Media Controller (Digispark Arduino)

3D model description

1 knob, 6 functions.

This tiny, super cheap media controller works with all devices that supports USB Media Controls - computers, tablets, phones etc. Tested so far with Windows 10 & Android 6.

A single knob performs the following:

  • Play - press knob
  • Pause - press knob again
  • Volume up - turn knob right
  • Volume down - turn knob left
  • Previous track - press AND turn knob left
  • Next track - press AND turn knob right

You can also replace the actions of the knob with pretty much any key press, (or combinations of key presses) that you want. See Changing functions further down this page.

There are several one-knob media controllers out there, but I've found no version that allows you to change tracks without dedicated buttons (like my larger Arduino Pro Micro-based Media Controller has). And none so cheap and easy to build.

The only components needed are a Digispark (Micro USB version) Arduino microcontroller and a KY-040 rotary encoder, which can be had for about 1€ each on eBay/Ali. A few wires to solder and that's it - hardware is done!

I'm also including the Arduino source I wrote which includes (or links to) pinouts, libraries , instructions and pretty much everything you need in order to program the controller.

I made several different knobs that you can choose from. The encoder has a standard D-shaped 6mm shaft so there are a multitude to choose from if you want to get one from elsewhere.

Designed to snap together, but I included holes and support for adding small screws for those of you who are inclined to.. ahem.. screw around.

When assembling, make sure that the Digispark and the KY-040 are fully seated in the base before putting the top on - if the boards don't fit, remove any imperfections on their edges with a small file.

If you want to sand the parts (I did) or paint them (I didn't), do so before mounting the boards. It's possible to close the case without the boards, and later prying them apart without breaking the parts. This makes it easier to sand and not worry about the edges.

After assembling, add either self-adhesive rubber feet or glue a rubber sheet on the bottom to stop it from sliding around. If the media controller will be stationary, you can also fixate it with double-sided tape.

CHANGING FUNCTIONS
Do you want the knob to do something else than control multimedia? No problem!
If you open the Arduino source (.ino), at the end of the file the actions performed are stated like this:
TrinketHidCombo.pressMultimediaKey(MMKEY_SCAN_PREV_TRACK)

Just change the key in the parenthesis to any in the list below. If two lines like this are in the same statement, they will execute right after each other, even making it possible to write advanced macros.

System control keys
+ SYSCTRLKEY_POWER
+ SYSCTRLKEY_SLEEP
+ SYSCTRLKEY_WAKE

Multimedia keys
+ MMKEY_VOL_UP
+ MMKEY_VOL_DOWN
+ MMKEY_SCAN_NEXT_TRACK
+ MMKEY_SCAN_PREV_TRACK
+ MMKEY_STOP
+ MMKEY_PLAYPAUSE
+ MMKEY_MUTE
+ MMKEY_BASSBOOST
+ MMKEY_LOUDNESS
+ MMKEY_KB_EXECUTE
+ MMKEY_KB_HELP
+ MMKEY_KB_MENU
+ MMKEY_KB_SELECT
+ MMKEY_KB_STOP
+ MMKEY_KB_AGAIN
+ MMKEY_KB_UNDO
+ MMKEY_KB_CUT
+ MMKEY_KB_COPY
+ MMKEY_KB_PASTE
+ MMKEY_KB_FIND

Control keys
+ KEYCODE_LEFT_CONTROL
+ KEYCODE_LEFT_SHIFT
+ KEYCODE_LEFT_ALT
+ KEYCODE_LEFT_GUI
+ KEYCODE_RIGHT_CONTROL
+ KEYCODE_RIGHT_SHIFT
+ KEYCODE_RIGHT_ALT
+ KEYCODE_RIGHT_GUI

Regular keys
+ KEYCODE_1
+ KEYCODE_2
+ KEYCODE_3
+ KEYCODE_4
+ KEYCODE_5
+ KEYCODE_6
+ KEYCODE_7
+ KEYCODE_8
+ KEYCODE_9
+ KEYCODE_0
+ KEYCODE_A
+ KEYCODE_B
+ KEYCODE_C
+ KEYCODE_D
+ KEYCODE_E
+ KEYCODE_F
+ KEYCODE_G
+ KEYCODE_H
+ KEYCODE_I
+ KEYCODE_J
+ KEYCODE_K
+ KEYCODE_L
+ KEYCODE_M
+ KEYCODE_N
+ KEYCODE_O
+ KEYCODE_P
+ KEYCODE_Q
+ KEYCODE_R
+ KEYCODE_S
+ KEYCODE_T
+ KEYCODE_U
+ KEYCODE_V
+ KEYCODE_W
+ KEYCODE_X
+ KEYCODE_Y
+ KEYCODE_Z
+ KEYCODE_COMMA
+ KEYCODE_PERIOD
+ KEYCODE_MINUS
+ KEYCODE_EQUAL
+ KEYCODE_BACKSLASH
+ KEYCODE_SQBRAK_LEFT
+ KEYCODE_SQBRAK_RIGHT
+ KEYCODE_SLASH
+ KEYCODE_F1
+ KEYCODE_F2
+ KEYCODE_F3
+ KEYCODE_F4
+ KEYCODE_F5
+ KEYCODE_F6
+ KEYCODE_F7
+ KEYCODE_F8
+ KEYCODE_F9
+ KEYCODE_F10
+ KEYCODE_F11
+ KEYCODE_F12
+ KEYCODE_APP
+ KEYCODE_ENTER
+ KEYCODE_BACKSPACE
+ KEYCODE_ESC
+ KEYCODE_TAB
+ KEYCODE_SPACE
+ KEYCODE_INSERT
+ KEYCODE_HOME
+ KEYCODE_PAGE_UP
+ KEYCODE_DELETE
+ KEYCODE_END
+ KEYCODE_PAGE_DOWN
+ KEYCODE_PRINTSCREEN
+ KEYCODE_ARROW_RIGHT
+ KEYCODE_ARROW_LEFT
+ KEYCODE_ARROW_DOWN
+ KEYCODE_ARROW_UP

3D printing settings

Infill:

At least 20%. More mass = more better!

There are 3 parts, all oriented in the way they should be printed.

Base
Print without supports.
This part will not be visible when assembled, so layer height and finish are not that important. I printed mine at 0.15 mm.

Top
This part has to be printed with supports - these go on the inside of the part and will not be visible when assembled.
The smaller the layer height, the better it will look. I printed mine at 0.10 mm

Knob
Print without supports. The bevels will look better with smaller layer height. I printed mine at 0.10 mm.

  • 3D model format: STL and ZIP

Tags

Creator

Designs 37
Downloads 4731
Sales $35
Followers

Hi! I'm a tinkerer, designer and maker from Sweden. If you like my designs, feel free to leave a comment. :)

Copyright

©

Similar 3D files

Best sellers of the category Gadget

Related contents


Add a comment


Would you like to support Cults?

You like Cults and you want to help us continue the adventure independently? Please note that we are a small team of 3 people, therefore it is very simple to support us to maintain the activity and create future developments. Here are 4 solutions accessible to all:

  • ADVERTISING: Disable your AdBlock banner blocker and click on our banner ads.

  • AFFILIATION: Make your purchases online by clicking on our affiliate links here Amazon, Gearbest, Banggood, Aliexpress or Ebay.

  • DONATE: If you want, you can make a donation via PayPal here.

  • WORD OF MOUTH: Invite your friends to come, discover the platform and the magnificent 3D files shared by the community!