A shortcut keyboard, also known as a macropad, is an input device with a set of programmable keys designed to execute specific functions or shortcuts. These keys can be configured to open programs, run macros, insert text, control volume, adjust brightness, and perform various other computer functions.
These devices are extremely useful for video, audio, and image editors, as well as gamers, as they allow frequent tasks to be executed quickly, without the need to access menus or use complex shortcuts. Additionally, they can be used to automate repetitive tasks and increase productivity.
Today, with access to maker boards such as Arduino and Franzininho WiFi, it is possible to create a functional and fully customizable macropad. It can also be adapted for individuals with motor limitations, using larger, spaced-out keys or alternative activation methods.
This project presents a programmable macropad using Franzininho WiFi LAB01 and CircuitPython. The macropad automates keyboard shortcuts and multimedia commands, making it an excellent tool for developers, video editors, designers, and gamers.
Additionally, the OLED display shows the active profile, temperature, and humidity, adding extra functionality to the project.
CircuitTo facilitate the development and daily use of the macropad, I used the Franzininho WiFi LAB01, which already includes all the necessary resources (and more) for the project.
For the code to work correctly on CircuitPython, some libraries need to be installed in the lib/
folder on Franzininho WiFi LAB01.
Download the CircuitPython Libraries Bundle:Download Libraries
Files required in the lib/ folderHID Libraries (Keyboard and Media Controls):
adafruit_hid/
(full folder)- HID Libraries (Keyboard and Media Controls):
adafruit_hid/
(full folder)
OLED Display Library (SSD1306 via I2C):
adafruit_ssd1306.mpy
fonts/font5x8.bin
(Required for text display on OLED)- OLED Display Library (SSD1306 via I2C):
adafruit_ssd1306.mpy
(Required for text display on OLED)
fonts/font5x8.bin
Temperature and Humidity Sensor Library (DHT11):
adafruit_dht.mpy
- Temperature and Humidity Sensor Library (DHT11):
adafruit_dht.mpy
PWM Control Library (RGB LED and Buzzer):
- Already included in CircuitPython by default.
- PWM Control Library (RGB LED and Buzzer):Already included in CircuitPython by default.
Analog Input Handling Library (LDR Sensor):
- Already included in CircuitPython by default.
- Analog Input Handling Library (LDR Sensor):Already included in CircuitPython by default.
Installation Steps:
- Download the compatible library bundle for your CircuitPython version.
- Extract the listed files.
- Copy them to the
lib/
folder on the Franzininho WiFi LAB01. - Restart the board and run the code.
This project is open-source and was developed using CircuitPython.
Download the complete code:GitHub Repository
The code is divided into:
code.py
– Main code, responsible for button logic, profiles, OLED display, and visual/audio feedback.keymap.py
– Key mapping and multimedia commands.profiles.json
– Configuration file for customized key profiles.
- Download and install CircuitPython on Franzininho WiFi LAB01.
- Copy the complete project to the board (including the libraries).
Edit the profiles.json
file to configure new shortcuts.
- Press and hold button 1 for 2 seconds to switch between configured profiles.
- The OLED display will show the active profile, temperature, and humidity.
- Press the buttons and see the shortcuts working on your computer.
- To test the commands, use an online keyboard tester, such as Keyboard Event Viewer.
This project turns the Franzininho WiFi LAB01 into a customizable macropad, allowing the creation of powerful shortcuts for productivity and automation.
With support for dynamic profiles, multimedia commands, an interactive OLED display, and visual/audio feedback, this macropad is an excellent solution for those seeking efficiency and customization in daily tasks.
The project will be improved in the future with the inclusion of more features and automations to assist in productivity.
What features would you like to see in this project?
Leave your feedback and suggestions in the comments.
Comments
Please log in or sign up to comment.