Need help with Hub16?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

144 Stars 25 Forks Other 112 Commits 0 Opened issues


A macro pad with 16 keys, two rotary encoders, a four port USB hub, and plenty of LEDs!

Services available


Need anything else?

Contributors list


Hub16 assembled

Hub16 is a macropad with a bunch of features you never knew you needed. They include:

  • 16 Cherry MX compatible keys, along with switches in each encoder.
  • Two rotary encoders, enabling intuitive controls for a wide range of tools including CAD and photo / video editing.
  • Inbuilt USB 2.0 Hub with Type-C connectors, allowing connection to other keyboards, memory sticks, wireless receivers and more!
  • VIA and QMK compatibility, including a "macro" mode enabling the keys to be dynamically remapped on a host computer.
  • 11 addressable RGB LEDs to display state, or just light your desk up.

Project Status

Project is stable, with assembled boards available at Tindie.

Hub16 on desk

Getting Started Guide

Detailed Info

Repo Contents

  • Documents
    contains all documentation and images for the project.
  • Firmware
    contains both the source and precompiled binaries for Hub16.
  • Hardware
    contains the KiCad design files for the keyboard.
  • josh-kicad-lib
    is my personal KiCad parts library which contains many of the parts used.
  • Mechanicals
    contain the plate and case design for Hub16.
  • Production
    contains all the files required to produce the PCB. It also contains test scripts and jigs.
  • Software
    contains all the VIA config, along with template script to use Hub16 as a macropad with software on your computer.

Notes on the USB Hub

The hub is a four port USB 2.0 Hub with Type-C connectors, aimed at allowing connection of keyboards, mice, memory sticks, wireless receivers, and other small devices (including a second Hub16!) to your computer.

Due to cost and space constraints, the hub has some limitations. The hub is not:

  • USB 3.x, Power Delivery, Thunderbolt, DisplayPort, etc compatible.
  • Designed to charge your phone quickly. Only 100mA is guaranteed per port.
  • Designed to work with power hungry devices such as spinning hard drives.
  • Guaranteed to provide full USB 2.0 speeds and performance on all ports.

Might you be able to charge your phone whilst copying files at full speed of a spinning hard drive over a long cable? Maybe. However Hub16 is a macropad first, USB hub second, so if you are looking for a high performance device I'd suggest picking up a dedicated USB hub and just using Hub16 as a macropad.


  • Boards purchased between June 12 and June 22 2020 will not go into the bootloader upon resting from software. Workaround: reset board with physical reset button on bottom of PCB. Fix: reflash the bootloader following these instructions.
  • Firmware builds prior to 27th June do not continually send characters when the encoders are depressed. Update to the latest firmware to resolve.
  • Firmware builds prior to 9th June have issues with the bottom right key
    not functioning correctly. Update to the latest firmware to resolve.
  • Some rotary encoders output flipped signals (clockwise instead of counterclockwise), if after assembly your encoders appear to be sending the wrong signals, comment in line 84 in config.h, or alter the setting in your software.

If you have any questions or comments please get in touch. I can be found on Discord as

, Twitter, email, or leave an issue or pull request on this repo.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.