Close

Log 1

A project log for Adafruit Macropad Modding

I am using this project to document the changes and additions I make to my Adafruit Macropad firmware. Currently written in CircuitPython

neatloaf7neatloaf7 03/03/2025 at 19:360 Comments

First log will be copy and paste from my other hackaday project and github. 

I started out using the Macropad with QMK. Once learning how to configure QMK it was very simple to use. One issue for me was that I had to compile and load the new firmware with each change I made. Another issue I had was with displaying animations; I believe QMK only supports importing images as byte arrays, so I had to use an online image converting utility to do this. 

I recently ported all my settings to CircuitPython. CircuitPython takes care of the first issue, and the displayio library helps alot with importing .bmp images directly and animations. Adafruit supplies their own helper library for the Macropad which is a good place to start, but I found that more complex display features were inaccessible when using the library's Macropad class. Creating my firmware from scratch was very time consuming but allows for finer control over the Macropad features. Some things I have setup:

My way of configuring keycode and rgb profiles is not as user friendly as QMK's. Another thing I should setup eventually is scheduling tasks with asyncio. My whole firmware loop runs synchronously which isn't a big problem, but some lag can be introduced when an effect animation plays while the rgb profile is updating.

My Macropad switches between sitting on my desk and attached to my sim rig. I recently bought this mini gamepad module from adafruit to be used for mouse controls. It can plug into the qwiic port on the Macropad, and I believe there is a CircuitPython library available. I am imagining something like those left-hand gaming keyboards with the analog stick on the thumb. Making the gamepad work will be my next task, and then I will need to print either a new housing, or an attachment that clamps onto my current housing.


Gamepad

I have been looking into KMK but I am not sure if I will make the switch. The only advantage would be simplifying configuring keycode and rgb profiles, and taking care of asynchronous tasks for watching button state changes. I think I would still have to port all my animation and neopixel code into coroutine functions with asyncio. As I probably won't be adding another profile anytime soon, KMK might be something to look at again when I'm bored.

Discussions