PrasinoPad
Hardware- 6 Devlogs
- 10 Total hours
A green keyboard featuring 4 keys, a rotary encoder, and an OLED screen
A green keyboard featuring 4 keys, a rotary encoder, and an OLED screen
Today I implemented an OLED Screen, finished the Model, PCB, and Project Files for my Hackpad.
Here is specifically what I did:
keymap.c
keymap.c
config.h, halconf.h, and mcuconf.h
keyboard.json
firmware.uf2
gerbers.zip
README.md with the BOM and Screenshot References#hackpad-ships on SlackNotes on today’s session:
It was frustrating. My goal for today was to make an OLED screen that says “Prasinopad, “ finish the model, the PCB and all the other files files, complete the hackpad itself and prepare to ship it. In Fusion 360, when I went to make the hole for the screen, I noticed that the switches and knob from last time weren’t centered properly, so I had to align everything to the center and deal with lots of over-constrained sketch errors. Additionally, the initial place where I put the OLED screen cutout was in the way of the place where the USB port is, so I had to move the screen cutout to the top. While doing so, the sketch would not expand where I wanted it to and the cutout for the screen was divided into a part which cut through the case and another one which did not. In KiCad, my schematic had extra diodes that weren’t needed, and the pins were wired incorrectly. I rewired everything, added power flags, updated the footprint placements, and routed new tracks with a ground fill until DRC had zero errors. In QMK, compiling failed at first because of typos in keymap.c and missing hardware I2C definitions for the RP2040, but after creating config.h, halconf.h, and mcuconf.h, the firmware was successfully compiled. Lastly, organizing all the CAD, PCB, Firmware, and production folders to match the Hackpad guide and dealing with WSL and Git paths took lots of time. To sum up, there were lots of errors and they all were eventually solved, and the whole project is now organized and complete. I pushed everything on GitHub, made my ship post in #hackpad-ships on Slack, and will soon fill out the Hackpad submission form.
Today I implemented a Rotary Encoder for my Hackpad.
Here is specifically what I did today:
Notes on today’s session:
Today was kind of tough. My goal for today was to make a rotary encoder, which I did make, but with lots of time put into the process. The process of making the PCB was mostly okay, but the case was harder to make (which sounds strange). In short, I compared the PCB and the case, and realized the case did not match the PCB. The case was one big model so I couldn’t place the PCB in it, but also that the holes for the keys and the knob weren’t accurate. So, I decided to redo the model from scratch. After the process, I was quite amazed of how the case was now neat, accurate, and tidy. The holes matched the keys and the knob, and the case now has two separate parts, meaning I could place the PCB in and close it with the top part. Lastly, I compiled the whole project to see if it works. And, in short, there were lots of errors. But, they all were eventually solved and the project was successfully compiled.
Notes on the next session:
Next time, I will build the RGB lights or the OLED screen.
Today I added an extra key to my Hackpad.
Here is specifically what I did:
Notes on today’s session:
This session took more time than I expected. I usually have my devlogs after an hour of working, but today is the double of that. I thought adding another key to my Hackpad would be easy, but it was definitely not when placed in such a position. However, I did not just work on the part of adding a new key today. I also drew a plan for the whole Hackpad to guide myself and know how the final result should look.
Notes on the next session:
Next time, I think I will work on the part of adding a know. Since I know better how everything is done from today’s experience, I might even start doing the next part of the Hackpad, the OLED screen.
Today I finally completed the Hackpad guide.
Here is specifically what I’ve done today:
Notes on the usage of AI:
I have used AI to explain steps I could not do when trying, and breaking down steps in the guide that were not making sense. Additionally, I used AI when building the firmware because I don’t know much about building firmware. I did not fully rely on it, and I tried to analyze and understand everything it said so I can do whatever I asked by myself next time. There is actually a funny moment that happened today. When I was editing the code (files ‘keyboard.json’ and ‘keymap.c’), I copied some lines of code the AI had told be to write. Then, at the top I wrote code starting with the word ‘cat’, and I got an error when I tried to run the code. I read what it sent again and realized that line of code was meant to be written into the terminal to write the code through it, not straight into the code. Overall, I tried my best not to rely on Artificial Intelligence and understand what it replies with.
Notes on today’s session:
This was a pretty long one I must say. I estimated I would finish this in 30-45 minutes, but it took me 90 minutes, with 150 minutes total (with all the setting up/fixing WSL’s errors). A lot of today was downloading all the compiler tools and fixing bugs/errors. When I was downloading the compiler tools, there was one tool that took alone more than 25 minutes to download! I mean, it didn’t finish after 25 minutes, but I just couldn’t wait any longer and found a command which downloaded it in roughly 15 minutes. Also, there were a lot of WSL errors. I use windows and don’t have Linux, so I used WSL, which I thankfully had already installed. The most common errors were about missing and outdated tools for compiling and libraries of my WSL. It took me about 5 commands to fix these errors, and combine that with how long they download, that’s a lot of time! Although generally, I am happy with today’s session as I am finished with the guide and ready to add my custom features.
Notes on the next session:
Next time, I will start adding some basic custom features and stuff to my hackpad. I am thinking of LEDs.
I completed most of the ‘making the case’ part of the Hackpad guide.
Here is what I specifically implemented today:
Notes:
Today was quite a frustrating day. The part of making the case is done through a program called fusion 360, but I never heard of it. The interface and buttons really confused me, and I was clueless how to make the holes properly, the outer rectangle, nor how to extrude both rectangles of the sketch (since when I tried to extrude one of the rectangles, the other one disappeared, and they would merge in one shape if I extruded them both). So I asked and AI to explain me how to do each step in the guide, step by step. The AI’s guidance really helped me, as I spent only 30 minutes not knowing what I was doing, not 3 hours.
Notes on the next devlog:
Next time, I will try to finish the guide and maybe start making my first adjustments to the keyboard.
Today I took my first steps toward building my own Hackpad.
Here is specifically what I did:
Notes:
I enjoyed today’s lesson. It was short, but exciting. I look forward into fully completing this guide and making a function Hackpad.
Comments for the next session:
Next time, I will continue going through the guide, just like today. A little longer I think.