Orcapad
Hardware- 5 Devlogs
- 47 Total hours
A macropad with 9 keys, a rotary encoder, an OLED screen, and a few LEDs! Made to streamline Onshape CAD development.
A macropad with 9 keys, a rotary encoder, an OLED screen, and a few LEDs! Made to streamline Onshape CAD development.
The GUI is pretty much all done! The changes are:
The rgb screen will switch between showing the current mode & animation speed, and color & hue. This allows me to use the space more effectively to show useful information.
It took me a little bit of time to get the animation source images compiled properly, and I used Inkscape to make sure the original image downscaled and rotated while staying recognizable (and made a few adjustments in paint).
QMK integration! I also want to properly set up my coding workspace to have autocomplete and all that for QMK.
It took me at least 2 days to get the lvgl simulator working TT. I settled on Visual Studio (also tried Codeblocks and VSCode) because it worked for demos, but it took me forever to get my own code running.
TLDR I turned of a setting and it broke it… I just needed to add:
lv_delay_ms(lv_timer_handler());
lv_refr_now(NULL);
It worked immediately :) Lets just say it was a very bittersweet moment
I have the home screen pretty much done, and I’m starting to feel very comfortable coding in LVGL!
So far I have:
FYI: The buttons in the GIF are just to test out & showcase how I plan to integrate the layer indicator in QMK
I have quite a few QMK firmware developments!
First off, I am quite amateur at programming, and I’ve never touched C before. So, there have been a lot of new things to learn, which is really good because I’ve been meaning to get more familiar with programming and different languages. Also, I finally decided that I was going to create the Orcapad to streamline my Onshape workflow by populating it with shortcuts.
Ok, so currently I have:
Hopefully all that is set and I don’t have to fix anything :) :) :) :)
To be added
I still need to add support for the OLED screen, and on that note, I decided to dive into LVGL so I could create a more sophisticated user experience (over standard quantum painter and the basic functionality), and (again) to really help me get more familiar with C.
Finishing thoughts :)
So far my experience has surprisingly not been too painful, just very time consuming, but for all I know none of what I’ve written so far works TT. Very excited about how its turning out so far though!
Since my last devlog, I realized that I connected part of the keyboard matrix to the 3.3v output pin, so I had to update the PCB once again (and remove one of the keys since I didn’t have enough pins…again). The PCB is finally completely finished!! I also have a good chunk of the CAD for the case done :).
For the case I have 3 printed layers, the bottom that holds the PCB, a middle diffusion layer for the LEDs (just a very thin layer of white PLA that I hope will look nice), and the top layer to make sure everything can be assembled easily.
Up next: add finishing touches to the case, add mounting hardware/interface, introduce myself to QMK for the firmware.
Long overdue devlog, but tldr: I finished the schematic for the PCB and just about finished the layout and tracing of the board! I essentially worked on the PCB over two days, so the first day I was getting oriented with general PCB design (this is my first PCB), KiCad, keyboard matrixes, etc… For some reason it took me some time to get used to footprints/symbols/and libraries and how to assign them properly, but I got around to it! I also realized I had to get rid of one of my planned rotary encoders because I didn’t have enough pins for it. Then on the second day, I organized the PCB and completed the tracing. Halfway through I decided to add LEDs to the top of every key switch for aesthetics, and to add some more complexity for me. Overall I enjoyed designing it a lot more than I expected to, which was a pleasant surprise. Next up: touch up the PCB (ground fill, rounded corners, silkscreen decor…), and start on the CAD for the case.