6-Key Macropad
Hardware- 10 Devlogs
- 14 Total hours
A macropad with 6 keys, two selector keys, a screen, a rotary encoder, and 20 LEDs.
A macropad with 6 keys, two selector keys, a screen, a rotary encoder, and 20 LEDs.
SUBMITTED FOR PARTS! I have spent the final 2 hours writing the hackpadLink software to transmit the CPU/GPU/Volume/Brightness data straight from PC to hackpad and have written a readme. Now all that remains is to wait for the parts to arrive, assemble it, and hope that the firmware works first try!!
LED AND DISPLAY CODE COMLPETED!
I am nearing completion of the software-side of the hackpad! The KiCad PCB is complete, the case is looking good, and i’ve been finishing up QMK firmware . The OLED display code is done, the RGB LEDS are finished, and the code is compiling (finally) after about 2 hours of debugging. All that remains now is to create the script to communicate the cpu/gpu usage data to the display and then to actually get some hardware and build this thing!
It’s definitely at that stage now where everything is starting to come together properly, which makes the project feel a lot more real than it did a few weeks ago.
I can finally move on to the part I’ve been looking forward to most: actually ordering the components, assembling the hackpad, and seeing whether everything works together in physical form as well as i hope it will!
After a brief moment of enlightenment, I realized that maybe 20 LEDs dedicated solely to a progress bar was a bit overkill, so I’ve changed the design a bit. Instead of using all 20 for the bar itself, I’ve now cut that down to 8 LEDs for the actual progress display, which should still be more than enough to show CPU/GPU usage clearly without being excessive. The remaining 10 LEDs are now just there for general RGB lighting, which I think makes a lot more sense and gives the project a bit more flexibility visually.
At this point, the main things left to do are updating the Fusion design to fit the new LED arrangement, programming both the progress bar behavior and the RGB lighting effects, and then finishing up the screen side of the project. I also still need to finish the Python script that’ll send the CPU/GPU utilization data over so it can actually be displayed on the screen in real time. So overall, most of the big design decisions are sorted now, so it’s mainly just a matter of refining the hardware layout, getting the software side working properly, and tying everything together into something that actually looks good and functions the way I want it to.
I also am planning to make a simple script to transmit the CPU/GPU utilisation data from a computer to the keyboard so that can be displayed.
Finished 3D design in fusion; set up visual studio code and used my (very limited) C knowledge to program the dual-purpose encoder, profile switching, and 6 main keys. The screen and LED remain the two next challenges to code; I believe I will also have to make a simple python script to run on the computer that is connected to transmit cpu and gpu usage data for the screen and bars.
Fixing MANY issues with the fusion design so far - the design process would be a lot easier in hindsight if I had taken the time to properly assign 3D footprints to the PCB to avoid having to dive into schematics for 0.91” displays, yet it’s looking pretty good. Just have to finish up with screw holes and figure out this LED shinethrough panel! This has been my favourite part of the process so far as Fusion is something I am quite experienced with.
Beginning fusion design - Hackatime is still a bit of an issue but the hours are occasionally logging.
I plan to have the 20 LEDs as shine-through LEDs in the case, with a thin plastic layer to hide them but still allow light to diffuse through.
Finishing up PCB, trying and failing to set up Wakatime for fusion.
Finished up the PCB - finally fixed the largest ERC and DRC errors. School’s been tight so I haven’t had as much time to keep teaching myself KiCad but I’m close to finishing the PCB, then it’s on to case design (something I’m a lot more familiar with!)
After running DRC, I realized there might be a few problems with my design. Of course, this is inevitable when teaching myself something but there were QUITE a few issues to fix (~100). Currently in the process of fixing them,
Changed design from 10-key to 6-key with multiple menus and a screen. Previous hours not logged as I did not know how to connect KiCad to hakatime, finally fixed that.
This project serves as my first time creating a custom PCB! I primarily do 3D design work so this has been a bit of a learning curve, but i’m super excited to eventually have something which I designed from the ground up!