Macropad!! (handwired)
A custom wireless macro pad HAND WIRED on a perfboard using a Raspberry Pi Pico W, 6 mechanical switches, an 1.3 OLED display, and a rotary encoder, the device connects wirelessly to a computer and sends button events to a Python server running on the PC DEMO - https://youtu.be/4JAaVo-tPpQ?si=Rpl0pzKUvZguLutX
Created by
Anirudh 🚀
Tier 4
5 views
0 followers
Jay ⚡🚀
submitted Macropad!! (handwired) for review ago
Anirudh 🚀
submitted Macropad!! (handwired) for review ago
Anirudh 🚀
added to the journal ago
Completed Everything!
YT DEMO LINK -> https://youtu.be/4JAaVo-tPpQ?si=Rpl0pzKUvZguLutX
Final Words from me to anyone checking my project out
PS - This genuinely took this much time :sob: and the hand soldering took my soul out NGl ( I suck at hardware :pf: and I needed to get my hands on it before fallout )
This is by far the best project that I have created till now, which I felt I learned a lot during this because first thing I got to know everything about making keyboards, like I referred to the split keyboard guide also. So I know what is ghosting and how to make my tricks. I didn't use matrix in this, but at least I know how to use diode, how should be the connection. And secondly, I also tried to focus a bit on the coding part as the code is relatively easy to understand and I already know Python. So after reading some docs and other examples, it was pretty easy or I would say not easy, but very helpful and learning for me while making this project. And for the 3D print also, it took three iterations. I could have minimized it to two, but I was having the 3D printer, so I didn't spend too much time thinking about that. Though I would say the most of the time that I spent on this project is with the hand wiring stuff because I would have finished this project in 10 hours or even less than 10 hours if I had proper... PCB manufacturing, but it took this much time just because I was hand soldering the PCB. I didn't know that I should use labs or not, so I didn't use that, but hand wiring this has taught me a lot about power boards and soldering and generally diagnosing how to make a circuit and what could cause issues in a circuit. This was a relatively smaller project. Still, the circuit looks pretty complex and the precision is really required. So anyone who sees this message or reads this, do note that this was not easy to hand solder and if you want to create something quickly, I would never recommend doing hand soldering. Like even if you think it's very easy, I spent at least 3 hours, I spent on ground and VCC connecting each other. Because like there were so many connections and when I try to fix one connection, the another connection, I don't know how it somehow combines and two other GPIO pins start to touch. So it was kind of too frustrating also and cutting the perboard is also very risky. So I would never recommend doing that because the parts were jumping off like crazy. I was using a nipper, I didn't use a handsaw because I was not having that. But with the nipper I was cutting it and it was just flying like crazy. It even left a mark on a cardboard box that it hit once. And it would just lie all over your floor and maybe cause injury in leg or something. And I also got to learn that I need to be careful while soldering because I burned my finger. And also sometimes you should not be too smart and learn about something and then later switch to something else. Because if it works, it works. You don't need to stress too much on that unless you are doing a research, which I should. That's why I was focusing more. But with the final product finished, it looks really clean and if a reviewer has come to reading all of my yapping, please do let me know that does it feel to you that it's made on a perfboard? Like the final model, because I really tried to improve the case and the overall project, so it does not hint in any way that this was made up of a board and no PCB was used. And for anyone reviewing this, anyone reading or reviewing this, I also want to say that I didn't use PCB because the review would take at least one to two weeks and then the PCB manufacturer in India would take at least 20 days. So till my PCB would arrive, I would have already completed this project. And the blueprint would also end by then. So that's why I hand soldered everything. And it was a lot more learning than creating a PCB. I have created PCB during high way also and I also created a sample PCB for anyone who want to replicate this. And I would say that it is very easy to make a PCB and it's at least 10 times difficult to actually handwire that shit. Because making connection on keyCAD or EasyEDA are really easy, but actually joining them and using a multimeter to find where did I mess up. All wires holding five things together, all of them petting each other with GND and VCC so near to each other, is really fun. So again, thank you Hack Club for giving me the chance to make this project because I wouldn't have created this normally. I saw everyone near me making hackpads. Everyone was asking me to print their hackpads. So I thought that I should also make my own. And it's really, really looking great on my desk and I love it.
V2 and V3 model
So after doing everything and doing for the version 2 print, the size came out to be a little too big because the version 1 was quite tight, so I mistakenly added a bit too much of offset. So that caused a little issue there, but I guess it wasn't that bad after all. And yeah, it looks really good. Then I also wanted to add screws which was not in that print. And the corners were really sharp, not that sharp, but above of the lid it was a little too sharp. So I fixed that to of the upper part. And in the version 3, I added holes for adding M3 screws and I added heat insert. I was initially thinking of magnet, but the corners felt a little too small and I didn't want it to make it. Too bulky, so I sticked with this only and I had to modify the slots for buttons a little bit because it was too tight to get in and position change of the Pico one. I also created a lot of round corners near the display also and a lot more fillet from both outside and inside. Initially, the inside part was not having any fillet, only the outside part was having it. So I did it for the inside part also. The heat insert had a little issue in going on. I guess the space was little too less because if I observe closely, the corner part shows a little bit of heat insert because the area kind of melted and that's why my screw also don't go fully inside, but it's good enough. The alignment is perfect and yeah, everything is done. I am not including the key caps because that was personal and I didn't created them. I just got it from printables, so they are not part of my project, nor I would be including its filament usage in my project. But overall, I am really happy with the current project. It works completely fine. All of the buttons are working really great. The knob is also working perfectly. The response time is also not too much. It's decent for being a wireless project and the display also changes immediately. The switches are a little bit of low quality, which I couldn't do much because that's what I was having majorly. And they are not clicky. So for my next project, I would try to make something which would have better screws and kind of clicky-clicky.
V2
.jpeg)
.jpeg)
.jpeg)

V3 FINALL!!!
.jpeg)

.jpeg)


.jpeg)



.jpeg)
Anirudh 🚀
added to the journal ago
V1 of the case + measurements
So after lurking around in the blueprint channel and asking for advice from Shadow, Anir, Tirthag, and Softik, I was thinking of maybe making a multi-height top case, top lid. But for just the demo one and to check whether my measurements are correct or not, I did a test print and it seems like it doesn't look that bad that I was thinking initially. It actually looks pretty cool, even while not being everything on a single height. So I'm thinking to just stick with it and use it as my final prototype design. Like the dimensions look good to me. The OLED and order and the ports might need to get a little fix. So I'll be doing another test print to see whether everything fits in perfectly or not. But yeah, I think this is pretty dope. I am really loving this one. I will do one test print with the change setting now for the second revised version. And then for the third one, I will be finally printing it in another color of filament. I also printed these different sort of keycaps and encoder knob. I found these on printables, so they took much time and I'm not including time for that too. And the measurements took a while, like taking the measurements again and again and plotting it on Fusion. I also tried the image method but seems like my image was not that perfect or maybe a bit tilted. That's why I found a bit inconsistency in it. But overall, I am pretty satisfied with it. I just need to do some more changes and let's see how the final version looks. I would be making one more devlog, one more journal log for the second revision of the case and the final revision of the case. Because I don't think individually they would take much time. This one took a bit while just cause of the measurements and stuff. Because on Fusion it's just like a block only. discussion thread lol( this took a while can check the timestamps) https://hackclub.slack.com/archives/C083S537USC/p1772676166035369


Measurements











Anirudh 🚀
added to the journal ago
Added battery and switch! PCB WIRING COMPLETED




So, this one was a bit easy to do, like I had to add the TP module. I am using a 1500 mAh lithium ion battery right now because that's what I was having with me. I have attached it on the backplate and it looks good enough. I was having empty space near these switches wiring, so I added it just there because near the microcontroller I can see a lot of wiring and all, which already creates a depth while placing the PCB in the case. So the battery shouldn't be a very big problem. I also added a small switch to turn it on and off. I did had a little trouble while setting up the switch because I thought I again messed up some of my wiring because I had to... One wire was kind of wiggling, so I desoldered and re-soldered again. So it wasn't turning on when I was keeping this switch closed, which I assumed was closed. So, like after a while when I was like, okay, I couldn't do this, like previously if you read the journals, you will realize that I had a lot of issue with GND touching VCC. So I was thinking, okay, I'll give up. It's happening every now and then. I don't want to cry my... laptop boards again. So I just gave up on it and turned it off because I was thinking maybe the VCC and GND are touching. So the battery will heat up and all. So that's why I turned off the switch and kept it aside. And after two minutes, I realized that the screen was turned on. So I quickly recognized my fault of keeping it the wrong way. But yeah, I turned too much of time. Though the TP charging module was not lining up with my board, so I kinda added like, what would you say, a bit hole near it. And for the battery also, I just used the simple connectors that I was having. And yeah, I'm pretty happy with the current conditions. I also will be printing a few like keycaps and knob for this because, but the main issue that I'm currently facing and thinking of is like how will I make this 3D case now? Like I have the 3D printer, that's not an issue, but the switches are at a different level. The microcontroller is at a different level. The knob. of the rotating encoder is at a different level. My battery and my circuit is quite uneven and at a different level and the switch is also currently just opening up and the USB or the TP module that I have added is also a little bit inward, which I realized later on and there is no point in removing it again and setting it. So which might make the C-type port a bit inward and hard to connect USB, so I would have to make it a bit bigger at that time. Yeah, this concerns me because I couldn't think of a way to make a case for it in a better way. Like if everything was at a single height difference, I could easily make a case and a top plate. But this concerns me way too much. But let me think of some alternative or way to fix this issue. I will also try to ask in Blueprint, like, do they have any suggestions for this?
Anirudh 🚀
added to the journal ago
Setup wireless connection!
Main demo (wireless)
minor demo ( wired testing )
https://youtube.com/shorts/u-JTORLwfro
So now I was really happy that everything was configured well, but then my rotatory encoder started to tweak a bit. So if you see my previous journal picture, you will observe that the SW pin of the rotatory encoder was somehow connected to the VCC of my Pico. So I don't know how high I was when I was making those corrections and I somehow connected it and the most surprising thing is I came to notice that I did such thing. Like usually I don't really notice that I made such mistake. But yes, in this case, I didn't notice it, so I quickly removed it, but the wire felt a bit short to connect to the GPIO. So I had to desolder it and add a new wire, but after that it's pretty awesome now. And then I started to work on the firmware part. First, I made sure everything is working. So first video is about the initial one working, that is just checking if the switches are working and the encoder is working and the OLED display is working. And then I spent quite a while. And to make a connection with my PC through wirelessly. So in the second video, if you observe all the connection is wireless. I have set up a Python script on my PC to run a server, web server, which looks for requests from the Pico and Pico logs all the button clicks and retrieves time every five seconds. I may tweak the values, but I think it's pretty fire right now. Like it does it work and I don't seem to find any big issue. The main part was making it establish proper connection with the Pico because the first try, it was having around two to 2.5 second delay, which is quite a lot for a device like macro pad or input device. So I tried googling a bit about wireless connections and like I took help from AI also. AI wasn't too helpful with the code part. Like I was using ChatGPT, my cloud credit ran out. So yeah, GPT is dumb, kinda, but cloud works fine, but I didn't had cloud credits. So right now I was using GPT, which sucks at this. So I used some of the online tutorials and documentations to try and look for it. And one major issue I was initially having due to the lag is, I was taking data from the server each second for the time. Then I changed it to five seconds. I may even change it to like 15 seconds because seeing time is not really a big issue.Right now the time is broken and I need to fix it idk what time is it getting from the pc but yeah its broken I'm also thinking of making a batch time about every one or two hours and change the time itself, but that would require me to create a new thread. I tried this path also, but it was going a bit too complex and I couldn't understand that much. Like I was trying to create two separate threads, one thread monitors the clicks and packages the request and the post requests and get requests. And another thread runs a timer. I won't say timer, but yeah, another process which makes sure that the time gets updated properly each second. But with my current design, I'm pretty happy that the code is working and coder is working, buttons are working and everything is super duper cool. So my next step would be to make it perfect by adding a battery and power system. I'm thinking of adding a small battery. I do have a couple of batteries with me. I would see that in my next devlog. Check what's. But yeah, right now I am really, really happy. Today is Holi, which is like a festival in India of colors. And I had a very good day also today. So this added up onto my happiness and I was pretty high today too. But yeah, I loved doing this and now I need to add the battery system I am trying to add by today itself and tomorrow work on the case. And I forgot to tell the one major thing that happened while doing the soldering part that I burned my finger also. So yeah, very unhappy with that. Like not a very severe, but yeah, it's 350 degrees and I just touched the tip itself. The reaction was quite instant, but yeah, it left a mark on my finger right now.

my dear finger ..... :( 
Anirudh 🚀
added to the journal ago
Connected the encoder
https://youtube.com/shorts/ghjy8Nz1D2Q
So now my display and everything was working, so this was time for me to start working on the rotary encoder. I already had issue initially with the rotary encoder by removing its pins. Right, so the same issue arise now that the pins that I removed and reinserted were not on the side of the solder paste. So the connections were not working there. So I had to remove it again. And though it was a little bit easier this time as it wasn't that well struck already. So I added the new connections, but the problem arise that it was having around five pins. And I was hand-wiring everything and the GND and VCC all were there and connected. So the thing that messed up with there is my VCC and GND were touching. Like I totally forgot about that I need to use a multimeter before plugging in as for switches and OLED everything was working fine. So I just did the connections and I started, plugged it in my laptop, and the next thing that happened was my laptop port fried. I won't actually say fried, but yeah, kind of due to this short circuit. I don't have any proof video to show you that because I don't know to make that video at that time. But yeah, it fried my USB port. I initially thought maybe it was the Pico that got fried and the port was working fine. So I tried plugging something else in the port, but nothing worked. I also have one other USB port on my laptop itself, which was connected to a USB hub. So I thought maybe let's try in this. So it mashed up and I just connected it and all of my mouse and keyboard, everything went off and nothing was working. So this was quite heartbreaking because this laptop is around six months old only. So I thought like, oh man, I fried my laptop for this silly error. But when I took help from ChatGPT, it told me that this is normal, that it automatically shut down that port. So it told me a few steps to do and after that my PC came back to rescue. But yeah, this part was quite Because the five connections were really close to each other, which was the most hard part. Like I had to desolder it, desolder it again and again with many iterations just to get it right. But now the firmware part is also working. I connected it with the MicroPython itself and everything seems to be working. The button functionality, I don't think I would need it because my encoder is kind of in thin air and I don't want to mess more with the pins of it. So I will be keeping a pause on that. That's the firmware part. I already created the connections of it. And later on, if I decide to make a PCB of it, I could do that. But yeah, the main difference between getting a PCB manufactured and handwiring a circuit is, I would say, in these components only, which are really, really close to each other, having the pins. And after even trying to clog up there, still I don't know how and where there were few places where the VCC and GND were touching each other. I don't know how that happened, but yeah. So now everything seems good and my encoder is also working.



Anirudh 🚀
added to the journal ago
Rewired the switches and integrated oled (switch to micropy)
So after my switch was done, I noticed that my wiring had a bit issue and the solder was not really well. So like one of the wires fell off. So I had to remove the old wiring, like full soldering from the main board and the switchboard and re-solder all these switches. And that took quite a while because remove, uh, doing the soldering part is easy, but removing the solder is quite tough. Like, I don't know if there's any good trick for it. I was trying to use the desolder pump, but it wasn't very effective and it was taking me a much longer in using that with like both of my hands. But yeah, I managed to fix that issue and the switches are in a good condition right now. Then I started working on my OLED display. So the wiring was quite simple. The soldering part was really, really tricky this time, as for switches, the pins were very far away. But for the POG board, all the four pins, that is the GND, VCC, SCL, and SDA were very near. So it was quite risky while doing the soldering part, as I am not a very big expert in soldering. And blobs were forming around the pins and they were getting connected. And I also didn't had the right or I should say very high quality POG board. So like a few of pads were also off and one pad even came out while soldering, so which was leaving me with very less options. And it took a few dry error and dissolving pump to get to this result. And I know this is not at all good or professional, but I think this would at least work right now. Like if it is working, it's good. Earlier it was not working, I tried a few times, but when it started to work, I guess I should not complain more about the soldering for that. But I could have done better with a PCB, but with hand wiring, I guess this was a pretty big issue. First of all, I am currently using copper wires. So I had to make sure they were not overlapping anyhow. And second of all, later I am thinking to maybe use insulated wire for the next few parts. So I would need to replace one or two copper wire of the OLED also with a insulated wire because I can see it would overlap for sure.. But when I went to the firmware part, I had to waste quite a bit of time by trying to configure CircuitPython with the OLED display. I tried the Adafruit firm, Adafruit library. for this, but it seems like it wasn't working really well and was like, I don't even know how to explain that, but it was giving me multiple errors when I was trying to use tutorial codes from websites or even their own documentation. I even tried taking help from ChatGPT and Gemini, but they were also not giving me any fruitful results. So it was really frustrating at that moment. So I decided as this was like the 10 point something version of the firmware, while the most worldwide documentation is on 9 point or 8 point, like the bootloader that I loaded up. So that's why it was giving me too much issue and I couldn't continue with that because I needed to add complex functionality also to it. So what I decided is, I switched to MicroPython and it was relatively easy to find and write code for MicroPython and for the OLED display. So I tried for a code that I found online and took inspiration from it and write my own demo code to demo the... And yeah, it was working quite fine, so I'm happy with the current situation. And yeah, this thing is taking me quite a bit of time, but I think just copy pasting stuff or just directly doing it without knowing what are you doing is not a right choice because I would be making more projects in Fallout. So I think I should stick with the basics and even if it takes a bit of time, but I should do the things properly. So that's why I was doing everything properly and I'm also documenting and keeping this journal very well and adding video proofs also for like, yeah, these are the issues that I was facing and I couldn't do much about it. If a reviewer is reading this, he could give some reduction in tickets, but this is exactly how much time it's taking me.




Anirudh 🚀
added to the journal ago
Connected and tested the Switches
MANNN I CANNOT ADD VIDEO SO HERE IS A YT LINK - "https://youtube.com/shorts/lHE-9vhGmHI"
and yeah don't laugh at me guys this was really tough to get :sob: like FOR REALL TUFFFF, it maybe easy for other but not for me but maybe in future i'll become pro! So I started with the connection of the switches board to the main board. Initially, the alignment was kind of tricky as I couldn't think of a good way to like connect the switchboard and main board as the switchboard would be at different height and I couldn't just bring wire from the above or else it would look really ugly. So I used the copper wire that I was having, peeling it off and then cutting it in small different length of wire chunks. I also marked the PCB with my marker to get the accurate position as when I was keeping the switchboard over the main board, I couldn't see the holes through the perboard because the perboard holes are quite small and the visibility is not really high. So what I needed to do was just somehow I managed to get two or three dots or the pin locations of the switchboard and then by a rough approximation, I used to determine the position of all six switches and the two pins that each one of them was having. As the GIT was already connected of each of the switch, I only needed to get away the GPIO ones, so I soldered one one to each of them. And pulled it from the inside to the back of the main board. Though there was one more issue that I initially pulled off it and started soldering, but I forgot to pull out the GND one. So like all the six GPIO ones were out, but I didn't have any ground one. So I had to remove it all and then again put the ground one and then again solder it. And yeah, then there was the issue with the alignment of them because I don't, I was using directly copper strand wires, so there was no insulation on them. So I needed to be sure that the correction goes to the right direction. I was having some issues when it was like touching each other, so I had to manually remove some of them and then again apply it. And yeah, after all, I somehow managed to use the GPIO 2, 3, 5, 7, 10, and 13 for the six switches, did spent time on learning about which pin is for what and how to not select the wrong pin. And then I also wrote a small program to test if the buttons were right because I was really like, I was really scared that this would not work or maybe the Pico is already bad one because I haven't tested it yet. But yeah, it was pretty good. For the installation, I used CircuitPython to install for the switch part. As I was having doubt between MicroPython and CircuitPython, but I decided to go with CircuitPython as it was quite easy for the switch part. So I loaded up the UTF file and I also installed the Thonny IDE. This was in my previous PC, but it wasn't in this, so I had to set it all up. And yeah, the happy thing is, now the switches are working. There is no delay also. I get all the six switches, all of them are working really well. Now my main next goal would be to make the OLED work.


Anirudh 🚀
added to the journal ago
Started working on arrangement and soldering
tldr - I am a noob :sob:and I skip sleep.jpeg)


.jpeg)

.jpeg)
After my PCB design was ready, I took a few suggestions from other people also about anything I should improve on, but I didn't found any great suggestions, so I hopped back to my PCB and components. The first issue I was facing is that the switches were not aligning with the perfboard. Like, if someone who is reading this has a perfboard and any MX switch lying around, they could check it themselves that it doesn't align with the perfboard holes. So like in the straight perfboard, it was not aligning. So this was the most challenging part because it took me a lot of time to figure it out that after tweaking around, I noticed one pattern that if I tilt the keycap, the switch, if I tilt the switch, I could find a certain angle at which it fits perfectly. But then the question again arises that if I maybe put the six switches with the tilted one, first of all, I just can't keep them tilted. It would look ugly as hell. So I wanted to make it straight also. So I thought initially that maybe I will keep the switches tilted and if I keep the other components also tilted, it would look normal. But then again the issue came that the other components were right with the perf board, so they were not fitting in with the stated position. So this became a major issue for me. And also note that the switches that I am having were having some sort of like big thing in the center. I don't know what we call it, but due to that, I wasn't able to put it in the perfboard and I was really lazy enough to maybe drill a hole in the perfboard because that does not make any sense, right? So I had to hop back and think of something else, so I couldn't find of anything else, so the last thing that I did was just to grab it and cut it with a nipper and then I had a good switches. I used them, but the main issue again arrived that I need to cut the perfboard because I couldn't just keep it like this. I decided to have a main board and have the switches on another separate board and place it on that board. So as the perfboard is quite hard and I didn't have the right tools, I need to use nipper and it was really dangerous, like the parts were flying out everywhere. So I had to be very cautious, but somehow I managed to get it in a quite good shape.So after cutting the perfboard, I placed the switches. They were quite loose, so I was having trouble while soldering them. But somehow I managed to first solder them. And I also created the joints between the ground terminals of each switch and used a copper wire without any insulation for this. Now I need to think of another way of connecting the pins to the GPIOs because I need to use something more insulated, as I need to make it all in a single layer. And for the main board, I used the OLED display and I used some of the, I forgot the name of the pins that we used, like the black ones. I guess header pins. I used those for the Raspberry Pi Pico because I'm sure I would try one or two Raspberry Pi. So I'm not gonna risk re-soldering it again and again. So I created, I inserted a header there. And then again, a big issue came was with the rotary encoder. Like if you see my initial dev log or journal, you will notice that the ones which were already present on it were quite at the 90 degree angles. But I wanted to make it straight because... That's how it should look right. But yeah, again I was struck with the almighty God not being on my side. So I had to desolder it and this was a really pain to do stuff. Like I can't even imagine how hard it was to remove those. I first wasn't using my helping hands, so it was heating up whenever I was trying to pull out one. It was like plastic was melting out. Like you could even see the image that I would be uploading here that they were quite bent and even melted to top of very loose. So I had to pull each one manually and that was a bit time consuming. And then putting back the new header pins were also really really hard as uh the holes were already covered with solder. So I couldn't heat all the five holes at once to insert the header pins. I don't know if there is a good way to handle this. If someone manages to read all of my yapping and knows a fix for this, please let me know on how do we do this. I just asked my mother to help me with it. So I have two soldering iron, one is like quite junky. And we don't use it, but yeah, so we heated two holes with that one and three holes with my solder, and while it was hot, we just inserted them. It was quite unfinished, but yeah, I guess it will do the job. But I haven't tested it yet, and the one thing that I am fearing right now is that the solder paste part was on the back side, and I did the soldering from the front side, because like how else I was supposed to do this. I couldn't just melt solder on the plastic part. So I am pretty unsure if that would work or not. If this doesn't work, I guess I would just... I don't have any other encoder right now, so maybe in future I would buy another encoder and use it. But I think this should work. But yeah, we would see that in future. And other than this, everything looks fine. Now I just need to do the circuit as per my schematic, which would be quite difficult due to the wirings that I am having and the restriction of being on a perfboard and the switches being on a separate perfboard.
Anirudh 🚀
added to the journal ago
Completed Schematic + Routing of PCB

I started working with the PCB schematic after finalizing my components. I took help from initially the HackPad guide that was available on the website, but while trying to use it on KiCad, I was facing issues with like finding footprints of stuff like the OLED display and then the Raspberry Pi Pico W. So I was getting a bit frustrated with KiCad. So I had to drop KiCad because I didn't really wanted to make a very big PCB or very industrial level one. So I just went to our dear Bob and started using EasyEDA to create the schematic. I kind of forgot how everything used to work in EasyEDA because it's been quite a few months since I have used it. So after a bit of Googling and all, I found like I honestly forgot from where do we add components. I was pressing the A key for like two minutes and then I didn't know. And I remembered that, yeah, we go to the library part. And then also earlier I was trying to find the switches. Through the normal library, but where I searched on Google how to find like the MXR libraries, it told me about to go into the user generated or whatever we call it, that section. And then I went to that section and I easily found all the stuff that was needed. And then I started with the PCB. I created the schematic and worked on arrangement was not that tough, it was kind of easy. And then I worked on routing also. I didn't use auto route, I manually did the routing part for both the top layer and bottom layer. And now the PCB is also kind of ready. So I know how everything should look like in the final version of it. And if someone gets inspired from my project, they could even use it, the PCB and could build their own. So yeah, I kept that option and didn't just make the schematic. I also created the PCB as well. The routing part, it did took a while because I didn't know like I shouldn't be making 90 degree turns, but like earlier on or in auto routing also, there's a 45 degree automatically gets created. I don't know how I could have turned that off, so it didn't really matter too much as it's just a macro pad, so I ignored that for now. It was also still not to confirm as I was not doing the matrix one. I was simply using one GPIO for everything. So IR is in blueprint channel and in my channel and in some other personal channel as well and in DMs also. Like firstly, I was also confused as everyone was saying that use Xiao RP2040. But then I realized that they are saying this because this is the one which comes in the kit. So yeah, that wasn't a very big issue, but it did make me confused because I was doubting my own decision. The Pico does look quite big and heavy. I could have used a C3 super mini, but right now I was not having it. And if I would have used it, I would have needed to do a bit more on the wiring part as I need to make the matrix and also add the diode, which is kind of inefficient for my current design as this is just gonna be on a perfboard.


Anirudh 🚀
added to the journal ago
Design + Components + Planning
I started with learning more about macro pads and how they will work. I saw the guide on HackPad that was available. So after talking with my friends also and using a bit of YouTube, the time I'm not including of everything, I planned the structure on how I would be making it. Initially, I was thinking to use a xiao or a mini, super mini ESP S3, but then I decided to use a normal Raspberry Pi Pico W because I was having quite a few of them. And I also didn't use the matrix method to map the switches. Instead, I would be using a direct GPIO connection. So I don't need diode for the ghosting part. So yeah, I checked my inventory and after struggling a lot, I found the OLED display, our rotary encoder, the perf boards, switches, and Pico. So now I'm almost all set with it, though when I was trying to plug in the switches on the perf board, they were not really aligning with it. But I guess that's something which would be concerning us later, not right now. So I'm ignoring that for now and I would be starting with the schematic now on EasyEDA because I tried to find the footprints of everything on KiCad, but I guess it would just take more time. So I would be switching to EasyEDA only because I need just a schematic and I don't even need to make the PCB. So I would be using the p
erf board for that.
Anirudh 🚀
started Macropad!! (handwired) ago
3/2/2026 7 PM - Design + Components + Planning
I started with learning more about macro pads and how they will work. I saw the guide on HackPad that was available. So after talking with my friends also and using a bit of YouTube, the time I'm not including of everything, I planned the structure on how I would be making it. Initially, I was thinking to use a xiao or a mini, super mini ESP S3, but then I decided to use a normal Raspberry Pi Pico W because I was having quite a few of them. And I also didn't use the matrix method to map the switches. Instead, I would be using a direct GPIO connection. So I don't need diode for the ghosting part. So yeah, I checked my inventory and after struggling a lot, I found the OLED display, our rotary encoder, the perf boards, switches, and Pico. So now I'm almost all set with it, though when I was trying to plug in the switches on the perf board, they were not really aligning with it. But I guess that's something which would be concerning us later, not right now. So I'm ignoring that for now and I would be starting with the schematic now on EasyEDA because I tried to find the footprints of everything on KiCad, but I guess it would just take more time. So I would be switching to EasyEDA only because I need just a schematic and I don't even need to make the PCB. So I would be using the p
erf board for that.
3/2/2026 11 PM - Completed Schematic + Routing of PCB

I started working with the PCB schematic after finalizing my components. I took help from initially the HackPad guide that was available on the website, but while trying to use it on KiCad, I was facing issues with like finding footprints of stuff like the OLED display and then the Raspberry Pi Pico W. So I was getting a bit frustrated with KiCad. So I had to drop KiCad because I didn't really wanted to make a very big PCB or very industrial level one. So I just went to our dear Bob and started using EasyEDA to create the schematic. I kind of forgot how everything used to work in EasyEDA because it's been quite a few months since I have used it. So after a bit of Googling and all, I found like I honestly forgot from where do we add components. I was pressing the A key for like two minutes and then I didn't know. And I remembered that, yeah, we go to the library part. And then also earlier I was trying to find the switches. Through the normal library, but where I searched on Google how to find like the MXR libraries, it told me about to go into the user generated or whatever we call it, that section. And then I went to that section and I easily found all the stuff that was needed. And then I started with the PCB. I created the schematic and worked on arrangement was not that tough, it was kind of easy. And then I worked on routing also. I didn't use auto route, I manually did the routing part for both the top layer and bottom layer. And now the PCB is also kind of ready. So I know how everything should look like in the final version of it. And if someone gets inspired from my project, they could even use it, the PCB and could build their own. So yeah, I kept that option and didn't just make the schematic. I also created the PCB as well. The routing part, it did took a while because I didn't know like I shouldn't be making 90 degree turns, but like earlier on or in auto routing also, there's a 45 degree automatically gets created. I don't know how I could have turned that off, so it didn't really matter too much as it's just a macro pad, so I ignored that for now. It was also still not to confirm as I was not doing the matrix one. I was simply using one GPIO for everything. So IR is in blueprint channel and in my channel and in some other personal channel as well and in DMs also. Like firstly, I was also confused as everyone was saying that use Xiao RP2040. But then I realized that they are saying this because this is the one which comes in the kit. So yeah, that wasn't a very big issue, but it did make me confused because I was doubting my own decision. The Pico does look quite big and heavy. I could have used a C3 super mini, but right now I was not having it. And if I would have used it, I would have needed to do a bit more on the wiring part as I need to make the matrix and also add the diode, which is kind of inefficient for my current design as this is just gonna be on a perfboard.


3/3/2026 8 AM - Started working on arrangement and soldering
tldr - I am a noob :sob:and I skip sleep.jpeg)


.jpeg)

.jpeg)
After my PCB design was ready, I took a few suggestions from other people also about anything I should improve on, but I didn't found any great suggestions, so I hopped back to my PCB and components. The first issue I was facing is that the switches were not aligning with the perfboard. Like, if someone who is reading this has a perfboard and any MX switch lying around, they could check it themselves that it doesn't align with the perfboard holes. So like in the straight perfboard, it was not aligning. So this was the most challenging part because it took me a lot of time to figure it out that after tweaking around, I noticed one pattern that if I tilt the keycap, the switch, if I tilt the switch, I could find a certain angle at which it fits perfectly. But then the question again arises that if I maybe put the six switches with the tilted one, first of all, I just can't keep them tilted. It would look ugly as hell. So I wanted to make it straight also. So I thought initially that maybe I will keep the switches tilted and if I keep the other components also tilted, it would look normal. But then again the issue came that the other components were right with the perf board, so they were not fitting in with the stated position. So this became a major issue for me. And also note that the switches that I am having were having some sort of like big thing in the center. I don't know what we call it, but due to that, I wasn't able to put it in the perfboard and I was really lazy enough to maybe drill a hole in the perfboard because that does not make any sense, right? So I had to hop back and think of something else, so I couldn't find of anything else, so the last thing that I did was just to grab it and cut it with a nipper and then I had a good switches. I used them, but the main issue again arrived that I need to cut the perfboard because I couldn't just keep it like this. I decided to have a main board and have the switches on another separate board and place it on that board. So as the perfboard is quite hard and I didn't have the right tools, I need to use nipper and it was really dangerous, like the parts were flying out everywhere. So I had to be very cautious, but somehow I managed to get it in a quite good shape.So after cutting the perfboard, I placed the switches. They were quite loose, so I was having trouble while soldering them. But somehow I managed to first solder them. And I also created the joints between the ground terminals of each switch and used a copper wire without any insulation for this. Now I need to think of another way of connecting the pins to the GPIOs because I need to use something more insulated, as I need to make it all in a single layer. And for the main board, I used the OLED display and I used some of the, I forgot the name of the pins that we used, like the black ones. I guess header pins. I used those for the Raspberry Pi Pico because I'm sure I would try one or two Raspberry Pi. So I'm not gonna risk re-soldering it again and again. So I created, I inserted a header there. And then again, a big issue came was with the rotary encoder. Like if you see my initial dev log or journal, you will notice that the ones which were already present on it were quite at the 90 degree angles. But I wanted to make it straight because... That's how it should look right. But yeah, again I was struck with the almighty God not being on my side. So I had to desolder it and this was a really pain to do stuff. Like I can't even imagine how hard it was to remove those. I first wasn't using my helping hands, so it was heating up whenever I was trying to pull out one. It was like plastic was melting out. Like you could even see the image that I would be uploading here that they were quite bent and even melted to top of very loose. So I had to pull each one manually and that was a bit time consuming. And then putting back the new header pins were also really really hard as uh the holes were already covered with solder. So I couldn't heat all the five holes at once to insert the header pins. I don't know if there is a good way to handle this. If someone manages to read all of my yapping and knows a fix for this, please let me know on how do we do this. I just asked my mother to help me with it. So I have two soldering iron, one is like quite junky. And we don't use it, but yeah, so we heated two holes with that one and three holes with my solder, and while it was hot, we just inserted them. It was quite unfinished, but yeah, I guess it will do the job. But I haven't tested it yet, and the one thing that I am fearing right now is that the solder paste part was on the back side, and I did the soldering from the front side, because like how else I was supposed to do this. I couldn't just melt solder on the plastic part. So I am pretty unsure if that would work or not. If this doesn't work, I guess I would just... I don't have any other encoder right now, so maybe in future I would buy another encoder and use it. But I think this should work. But yeah, we would see that in future. And other than this, everything looks fine. Now I just need to do the circuit as per my schematic, which would be quite difficult due to the wirings that I am having and the restriction of being on a perfboard and the switches being on a separate perfboard.
3/3/2026 6 PM - Connected and tested the Switches
MANNN I CANNOT ADD VIDEO SO HERE IS A YT LINK - "https://youtube.com/shorts/lHE-9vhGmHI"
and yeah don't laugh at me guys this was really tough to get :sob: like FOR REALL TUFFFF, it maybe easy for other but not for me but maybe in future i'll become pro! So I started with the connection of the switches board to the main board. Initially, the alignment was kind of tricky as I couldn't think of a good way to like connect the switchboard and main board as the switchboard would be at different height and I couldn't just bring wire from the above or else it would look really ugly. So I used the copper wire that I was having, peeling it off and then cutting it in small different length of wire chunks. I also marked the PCB with my marker to get the accurate position as when I was keeping the switchboard over the main board, I couldn't see the holes through the perboard because the perboard holes are quite small and the visibility is not really high. So what I needed to do was just somehow I managed to get two or three dots or the pin locations of the switchboard and then by a rough approximation, I used to determine the position of all six switches and the two pins that each one of them was having. As the GIT was already connected of each of the switch, I only needed to get away the GPIO ones, so I soldered one one to each of them. And pulled it from the inside to the back of the main board. Though there was one more issue that I initially pulled off it and started soldering, but I forgot to pull out the GND one. So like all the six GPIO ones were out, but I didn't have any ground one. So I had to remove it all and then again put the ground one and then again solder it. And yeah, then there was the issue with the alignment of them because I don't, I was using directly copper strand wires, so there was no insulation on them. So I needed to be sure that the correction goes to the right direction. I was having some issues when it was like touching each other, so I had to manually remove some of them and then again apply it. And yeah, after all, I somehow managed to use the GPIO 2, 3, 5, 7, 10, and 13 for the six switches, did spent time on learning about which pin is for what and how to not select the wrong pin. And then I also wrote a small program to test if the buttons were right because I was really like, I was really scared that this would not work or maybe the Pico is already bad one because I haven't tested it yet. But yeah, it was pretty good. For the installation, I used CircuitPython to install for the switch part. As I was having doubt between MicroPython and CircuitPython, but I decided to go with CircuitPython as it was quite easy for the switch part. So I loaded up the UTF file and I also installed the Thonny IDE. This was in my previous PC, but it wasn't in this, so I had to set it all up. And yeah, the happy thing is, now the switches are working. There is no delay also. I get all the six switches, all of them are working really well. Now my main next goal would be to make the OLED work.


3/4/2026 6 AM - Rewired the switches and integrated oled (switch to micropy)
So after my switch was done, I noticed that my wiring had a bit issue and the solder was not really well. So like one of the wires fell off. So I had to remove the old wiring, like full soldering from the main board and the switchboard and re-solder all these switches. And that took quite a while because remove, uh, doing the soldering part is easy, but removing the solder is quite tough. Like, I don't know if there's any good trick for it. I was trying to use the desolder pump, but it wasn't very effective and it was taking me a much longer in using that with like both of my hands. But yeah, I managed to fix that issue and the switches are in a good condition right now. Then I started working on my OLED display. So the wiring was quite simple. The soldering part was really, really tricky this time, as for switches, the pins were very far away. But for the POG board, all the four pins, that is the GND, VCC, SCL, and SDA were very near. So it was quite risky while doing the soldering part, as I am not a very big expert in soldering. And blobs were forming around the pins and they were getting connected. And I also didn't had the right or I should say very high quality POG board. So like a few of pads were also off and one pad even came out while soldering, so which was leaving me with very less options. And it took a few dry error and dissolving pump to get to this result. And I know this is not at all good or professional, but I think this would at least work right now. Like if it is working, it's good. Earlier it was not working, I tried a few times, but when it started to work, I guess I should not complain more about the soldering for that. But I could have done better with a PCB, but with hand wiring, I guess this was a pretty big issue. First of all, I am currently using copper wires. So I had to make sure they were not overlapping anyhow. And second of all, later I am thinking to maybe use insulated wire for the next few parts. So I would need to replace one or two copper wire of the OLED also with a insulated wire because I can see it would overlap for sure.. But when I went to the firmware part, I had to waste quite a bit of time by trying to configure CircuitPython with the OLED display. I tried the Adafruit firm, Adafruit library. for this, but it seems like it wasn't working really well and was like, I don't even know how to explain that, but it was giving me multiple errors when I was trying to use tutorial codes from websites or even their own documentation. I even tried taking help from ChatGPT and Gemini, but they were also not giving me any fruitful results. So it was really frustrating at that moment. So I decided as this was like the 10 point something version of the firmware, while the most worldwide documentation is on 9 point or 8 point, like the bootloader that I loaded up. So that's why it was giving me too much issue and I couldn't continue with that because I needed to add complex functionality also to it. So what I decided is, I switched to MicroPython and it was relatively easy to find and write code for MicroPython and for the OLED display. So I tried for a code that I found online and took inspiration from it and write my own demo code to demo the... And yeah, it was working quite fine, so I'm happy with the current situation. And yeah, this thing is taking me quite a bit of time, but I think just copy pasting stuff or just directly doing it without knowing what are you doing is not a right choice because I would be making more projects in Fallout. So I think I should stick with the basics and even if it takes a bit of time, but I should do the things properly. So that's why I was doing everything properly and I'm also documenting and keeping this journal very well and adding video proofs also for like, yeah, these are the issues that I was facing and I couldn't do much about it. If a reviewer is reading this, he could give some reduction in tickets, but this is exactly how much time it's taking me.




3/4/2026 10 AM - Connected the encoder
https://youtube.com/shorts/ghjy8Nz1D2Q
So now my display and everything was working, so this was time for me to start working on the rotary encoder. I already had issue initially with the rotary encoder by removing its pins. Right, so the same issue arise now that the pins that I removed and reinserted were not on the side of the solder paste. So the connections were not working there. So I had to remove it again. And though it was a little bit easier this time as it wasn't that well struck already. So I added the new connections, but the problem arise that it was having around five pins. And I was hand-wiring everything and the GND and VCC all were there and connected. So the thing that messed up with there is my VCC and GND were touching. Like I totally forgot about that I need to use a multimeter before plugging in as for switches and OLED everything was working fine. So I just did the connections and I started, plugged it in my laptop, and the next thing that happened was my laptop port fried. I won't actually say fried, but yeah, kind of due to this short circuit. I don't have any proof video to show you that because I don't know to make that video at that time. But yeah, it fried my USB port. I initially thought maybe it was the Pico that got fried and the port was working fine. So I tried plugging something else in the port, but nothing worked. I also have one other USB port on my laptop itself, which was connected to a USB hub. So I thought maybe let's try in this. So it mashed up and I just connected it and all of my mouse and keyboard, everything went off and nothing was working. So this was quite heartbreaking because this laptop is around six months old only. So I thought like, oh man, I fried my laptop for this silly error. But when I took help from ChatGPT, it told me that this is normal, that it automatically shut down that port. So it told me a few steps to do and after that my PC came back to rescue. But yeah, this part was quite Because the five connections were really close to each other, which was the most hard part. Like I had to desolder it, desolder it again and again with many iterations just to get it right. But now the firmware part is also working. I connected it with the MicroPython itself and everything seems to be working. The button functionality, I don't think I would need it because my encoder is kind of in thin air and I don't want to mess more with the pins of it. So I will be keeping a pause on that. That's the firmware part. I already created the connections of it. And later on, if I decide to make a PCB of it, I could do that. But yeah, the main difference between getting a PCB manufactured and handwiring a circuit is, I would say, in these components only, which are really, really close to each other, having the pins. And after even trying to clog up there, still I don't know how and where there were few places where the VCC and GND were touching each other. I don't know how that happened, but yeah. So now everything seems good and my encoder is also working.



3/4/2026 6 PM - Setup wireless connection!
Main demo (wireless)
minor demo ( wired testing )
https://youtube.com/shorts/u-JTORLwfro
So now I was really happy that everything was configured well, but then my rotatory encoder started to tweak a bit. So if you see my previous journal picture, you will observe that the SW pin of the rotatory encoder was somehow connected to the VCC of my Pico. So I don't know how high I was when I was making those corrections and I somehow connected it and the most surprising thing is I came to notice that I did such thing. Like usually I don't really notice that I made such mistake. But yes, in this case, I didn't notice it, so I quickly removed it, but the wire felt a bit short to connect to the GPIO. So I had to desolder it and add a new wire, but after that it's pretty awesome now. And then I started to work on the firmware part. First, I made sure everything is working. So first video is about the initial one working, that is just checking if the switches are working and the encoder is working and the OLED display is working. And then I spent quite a while. And to make a connection with my PC through wirelessly. So in the second video, if you observe all the connection is wireless. I have set up a Python script on my PC to run a server, web server, which looks for requests from the Pico and Pico logs all the button clicks and retrieves time every five seconds. I may tweak the values, but I think it's pretty fire right now. Like it does it work and I don't seem to find any big issue. The main part was making it establish proper connection with the Pico because the first try, it was having around two to 2.5 second delay, which is quite a lot for a device like macro pad or input device. So I tried googling a bit about wireless connections and like I took help from AI also. AI wasn't too helpful with the code part. Like I was using ChatGPT, my cloud credit ran out. So yeah, GPT is dumb, kinda, but cloud works fine, but I didn't had cloud credits. So right now I was using GPT, which sucks at this. So I used some of the online tutorials and documentations to try and look for it. And one major issue I was initially having due to the lag is, I was taking data from the server each second for the time. Then I changed it to five seconds. I may even change it to like 15 seconds because seeing time is not really a big issue.Right now the time is broken and I need to fix it idk what time is it getting from the pc but yeah its broken I'm also thinking of making a batch time about every one or two hours and change the time itself, but that would require me to create a new thread. I tried this path also, but it was going a bit too complex and I couldn't understand that much. Like I was trying to create two separate threads, one thread monitors the clicks and packages the request and the post requests and get requests. And another thread runs a timer. I won't say timer, but yeah, another process which makes sure that the time gets updated properly each second. But with my current design, I'm pretty happy that the code is working and coder is working, buttons are working and everything is super duper cool. So my next step would be to make it perfect by adding a battery and power system. I'm thinking of adding a small battery. I do have a couple of batteries with me. I would see that in my next devlog. Check what's. But yeah, right now I am really, really happy. Today is Holi, which is like a festival in India of colors. And I had a very good day also today. So this added up onto my happiness and I was pretty high today too. But yeah, I loved doing this and now I need to add the battery system I am trying to add by today itself and tomorrow work on the case. And I forgot to tell the one major thing that happened while doing the soldering part that I burned my finger also. So yeah, very unhappy with that. Like not a very severe, but yeah, it's 350 degrees and I just touched the tip itself. The reaction was quite instant, but yeah, it left a mark on my finger right now.

my dear finger ..... :( 
3/5/2026 7 AM - Added battery and switch! PCB WIRING COMPLETED




So, this one was a bit easy to do, like I had to add the TP module. I am using a 1500 mAh lithium ion battery right now because that's what I was having with me. I have attached it on the backplate and it looks good enough. I was having empty space near these switches wiring, so I added it just there because near the microcontroller I can see a lot of wiring and all, which already creates a depth while placing the PCB in the case. So the battery shouldn't be a very big problem. I also added a small switch to turn it on and off. I did had a little trouble while setting up the switch because I thought I again messed up some of my wiring because I had to... One wire was kind of wiggling, so I desoldered and re-soldered again. So it wasn't turning on when I was keeping this switch closed, which I assumed was closed. So, like after a while when I was like, okay, I couldn't do this, like previously if you read the journals, you will realize that I had a lot of issue with GND touching VCC. So I was thinking, okay, I'll give up. It's happening every now and then. I don't want to cry my... laptop boards again. So I just gave up on it and turned it off because I was thinking maybe the VCC and GND are touching. So the battery will heat up and all. So that's why I turned off the switch and kept it aside. And after two minutes, I realized that the screen was turned on. So I quickly recognized my fault of keeping it the wrong way. But yeah, I turned too much of time. Though the TP charging module was not lining up with my board, so I kinda added like, what would you say, a bit hole near it. And for the battery also, I just used the simple connectors that I was having. And yeah, I'm pretty happy with the current conditions. I also will be printing a few like keycaps and knob for this because, but the main issue that I'm currently facing and thinking of is like how will I make this 3D case now? Like I have the 3D printer, that's not an issue, but the switches are at a different level. The microcontroller is at a different level. The knob. of the rotating encoder is at a different level. My battery and my circuit is quite uneven and at a different level and the switch is also currently just opening up and the USB or the TP module that I have added is also a little bit inward, which I realized later on and there is no point in removing it again and setting it. So which might make the C-type port a bit inward and hard to connect USB, so I would have to make it a bit bigger at that time. Yeah, this concerns me because I couldn't think of a way to make a case for it in a better way. Like if everything was at a single height difference, I could easily make a case and a top plate. But this concerns me way too much. But let me think of some alternative or way to fix this issue. I will also try to ask in Blueprint, like, do they have any suggestions for this?
3/5/2026 9 AM - V1 of the case + measurements
So after lurking around in the blueprint channel and asking for advice from Shadow, Anir, Tirthag, and Softik, I was thinking of maybe making a multi-height top case, top lid. But for just the demo one and to check whether my measurements are correct or not, I did a test print and it seems like it doesn't look that bad that I was thinking initially. It actually looks pretty cool, even while not being everything on a single height. So I'm thinking to just stick with it and use it as my final prototype design. Like the dimensions look good to me. The OLED and order and the ports might need to get a little fix. So I'll be doing another test print to see whether everything fits in perfectly or not. But yeah, I think this is pretty dope. I am really loving this one. I will do one test print with the change setting now for the second revised version. And then for the third one, I will be finally printing it in another color of filament. I also printed these different sort of keycaps and encoder knob. I found these on printables, so they took much time and I'm not including time for that too. And the measurements took a while, like taking the measurements again and again and plotting it on Fusion. I also tried the image method but seems like my image was not that perfect or maybe a bit tilted. That's why I found a bit inconsistency in it. But overall, I am pretty satisfied with it. I just need to do some more changes and let's see how the final version looks. I would be making one more devlog, one more journal log for the second revision of the case and the final revision of the case. Because I don't think individually they would take much time. This one took a bit while just cause of the measurements and stuff. Because on Fusion it's just like a block only. discussion thread lol( this took a while can check the timestamps) https://hackclub.slack.com/archives/C083S537USC/p1772676166035369


Measurements











3/10/2026 - Completed Everything!
YT DEMO LINK -> https://youtu.be/4JAaVo-tPpQ?si=Rpl0pzKUvZguLutX
Final Words from me to anyone checking my project out
PS - This genuinely took this much time :sob: and the hand soldering took my soul out NGl ( I suck at hardware :pf: and I needed to get my hands on it before fallout )
This is by far the best project that I have created till now, which I felt I learned a lot during this because first thing I got to know everything about making keyboards, like I referred to the split keyboard guide also. So I know what is ghosting and how to make my tricks. I didn't use matrix in this, but at least I know how to use diode, how should be the connection. And secondly, I also tried to focus a bit on the coding part as the code is relatively easy to understand and I already know Python. So after reading some docs and other examples, it was pretty easy or I would say not easy, but very helpful and learning for me while making this project. And for the 3D print also, it took three iterations. I could have minimized it to two, but I was having the 3D printer, so I didn't spend too much time thinking about that. Though I would say the most of the time that I spent on this project is with the hand wiring stuff because I would have finished this project in 10 hours or even less than 10 hours if I had proper... PCB manufacturing, but it took this much time just because I was hand soldering the PCB. I didn't know that I should use labs or not, so I didn't use that, but hand wiring this has taught me a lot about power boards and soldering and generally diagnosing how to make a circuit and what could cause issues in a circuit. This was a relatively smaller project. Still, the circuit looks pretty complex and the precision is really required. So anyone who sees this message or reads this, do note that this was not easy to hand solder and if you want to create something quickly, I would never recommend doing hand soldering. Like even if you think it's very easy, I spent at least 3 hours, I spent on ground and VCC connecting each other. Because like there were so many connections and when I try to fix one connection, the another connection, I don't know how it somehow combines and two other GPIO pins start to touch. So it was kind of too frustrating also and cutting the perboard is also very risky. So I would never recommend doing that because the parts were jumping off like crazy. I was using a nipper, I didn't use a handsaw because I was not having that. But with the nipper I was cutting it and it was just flying like crazy. It even left a mark on a cardboard box that it hit once. And it would just lie all over your floor and maybe cause injury in leg or something. And I also got to learn that I need to be careful while soldering because I burned my finger. And also sometimes you should not be too smart and learn about something and then later switch to something else. Because if it works, it works. You don't need to stress too much on that unless you are doing a research, which I should. That's why I was focusing more. But with the final product finished, it looks really clean and if a reviewer has come to reading all of my yapping, please do let me know that does it feel to you that it's made on a perfboard? Like the final model, because I really tried to improve the case and the overall project, so it does not hint in any way that this was made up of a board and no PCB was used. And for anyone reviewing this, anyone reading or reviewing this, I also want to say that I didn't use PCB because the review would take at least one to two weeks and then the PCB manufacturer in India would take at least 20 days. So till my PCB would arrive, I would have already completed this project. And the blueprint would also end by then. So that's why I hand soldered everything. And it was a lot more learning than creating a PCB. I have created PCB during high way also and I also created a sample PCB for anyone who want to replicate this. And I would say that it is very easy to make a PCB and it's at least 10 times difficult to actually handwire that shit. Because making connection on keyCAD or EasyEDA are really easy, but actually joining them and using a multimeter to find where did I mess up. All wires holding five things together, all of them petting each other with GND and VCC so near to each other, is really fun. So again, thank you Hack Club for giving me the chance to make this project because I wouldn't have created this normally. I saw everyone near me making hackpads. Everyone was asking me to print their hackpads. So I thought that I should also make my own. And it's really, really looking great on my desk and I love it.
V2 and V3 model
So after doing everything and doing for the version 2 print, the size came out to be a little too big because the version 1 was quite tight, so I mistakenly added a bit too much of offset. So that caused a little issue there, but I guess it wasn't that bad after all. And yeah, it looks really good. Then I also wanted to add screws which was not in that print. And the corners were really sharp, not that sharp, but above of the lid it was a little too sharp. So I fixed that to of the upper part. And in the version 3, I added holes for adding M3 screws and I added heat insert. I was initially thinking of magnet, but the corners felt a little too small and I didn't want it to make it. Too bulky, so I sticked with this only and I had to modify the slots for buttons a little bit because it was too tight to get in and position change of the Pico one. I also created a lot of round corners near the display also and a lot more fillet from both outside and inside. Initially, the inside part was not having any fillet, only the outside part was having it. So I did it for the inside part also. The heat insert had a little issue in going on. I guess the space was little too less because if I observe closely, the corner part shows a little bit of heat insert because the area kind of melted and that's why my screw also don't go fully inside, but it's good enough. The alignment is perfect and yeah, everything is done. I am not including the key caps because that was personal and I didn't created them. I just got it from printables, so they are not part of my project, nor I would be including its filament usage in my project. But overall, I am really happy with the current project. It works completely fine. All of the buttons are working really great. The knob is also working perfectly. The response time is also not too much. It's decent for being a wireless project and the display also changes immediately. The switches are a little bit of low quality, which I couldn't do much because that's what I was having majorly. And they are not clicky. So for my next project, I would try to make something which would have better screws and kind of clicky-clicky.
V2
.jpeg)
.jpeg)
.jpeg)

V3 FINALL!!!
.jpeg)

.jpeg)


.jpeg)



.jpeg)