Thumb Keyboard

Experimental thumb keyboard, suitable for a hand held device


Keyboards! They're deceptively simple things but not as easy as they first appear, at least for the hobbyist builder. My aim here is to produce a thumb keyboard that can be used with a micro controller. The design should be flexible so that it can be tailored to individual needs and layouts.

Links project page


All source code is licenced under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

All other non-sourcecode files are licenced under CC BY-SA 4.0.

More details and the full licences can be found in the downloads (see below).


Arduino library (GPIO). This is the base version for keyboards connected via GPIO pins.

Arduino library (23017). This version is for keyboards connected via an MCP23017 I/O expander.

Version 0.5 Events now return the raw key number.

Version 0.4 Further improvements to the key label spreadsheet, added back cover, converted software to Arduino libraries.

Version 0.3 Added improved version of the key label spreadsheet

Version 0.2 (added ESP8266 version) contains source code, 3D design files and keyboard label spreadsheet

Version 0.1 (initial prototype) contains source code, 3D design files and keyboard label spreadsheet


You can contact me through the project page or just send an email to "keyboard" at this domain.

Thunb Keyboard

Copyright 2019 David Boucher