Blueprint

CAD Macropad (Hackpad)

A macropad for fusion 360 and kicad. Can also use it to display some status using rgb and oled.

Created by kianchenglam8 kianchenglam8

Hackpad

23 views

0 followers

kianchenglam8 kianchenglam8 added to the journal ago

Soldering, printing and troubleshooting

As said before the acetone bonded part broke I think it’s because I forgot that this isn’t abs but pla.
IMG_9220

I sent the model to print again and in the meantime I soldered the switches to the PCB. You can notice at the SEED spot I soldered it flat delibrately so the MCU can sit flush.
IMG_9223

Unfortunately the print warped so I will need to level my bed and print again later.
IMG_9225

Ok here comes the not nice part, I also soldered on the xiao and connected power to it and there were no signs of life!!!! Other than mcu flashing red light so I tried reinstalling circuit python, reuploading the code everything spent so much time and still doesn’t work. The cause might be GP0 being linked to rotary encoder which has common connected to GND and it can’t boot properly when pulled down???

So I tried to add a 10k pull up resistor to the pin connected to 3v3 but it still doesn’t work. I am now stuck…

IMG_9226

kianchenglam8 kianchenglam8 added to the journal ago

Printed part + heatset insert + test fit

Enabled ironing for this print, the chamfers did make the insert easier but also there is a bit of a flaw because the first layer only has one perimeter around the outer edge of the heat insert. Needing very good bed adhesion. I restarted the print twice and still had a small flaw but it’s good enough for me to accept it.

IMG_9216
IMG_9218

After installing the heatset threaded insert I did a fit check and it looks pretty good.
IMG_9217

Oh yeah, a quick edit as I forgot to add this. Despite making the walls thicker the bottom walls still broke. I tried bonding with acetone, but it only worked out ok and this morning, when I was handling it, it broke again.

kianchenglam8 kianchenglam8 added to the journal ago

CAD fixes

Modified CAD for greater clearance and chamfered the threaded insert holes for easier assembly. If I were to start over again I would make it slightly larger to make all of this easier but still compact. Case is off to printing now and we'll see how it goes.

image
image

kianchenglam8 kianchenglam8 added to the journal ago

Case Printing and Failed Test Fit

They work great separately, but when I tried to put them all together to do a test fit, it didn't work.
IMG_9213
IMG_9212
Took me a long time to tune the Z-offset and the support settings so that it prints clean, but turns out the problem was with the CAD itself. Attached below is a picture of one of the three prototypes, the support in one of the channels was unremovable, and the supported surface was uneven. I changed the support interface to grid and increased the distance between the support and part to 0.3mm and it turned out better as seen above. I did a lot more changes but I'll keep it brief here.
IMG_9210

There was basically no tolerance for the PCB to fit despite the 0.2mm offset I did. Not enough for this at least.
IMG_9211

kianchenglam8 kianchenglam8 added to the journal ago

Printing top plate and soldering

Finally back to school from break, I'm in my exam season right now, so I don't have much time, but I did take some time to solder as a break from revision :)
IMG_9203

I snapped on the switches and tested its fit, all looks good except clearance with the OLED might've been a bit too tight. The plate is actually colliding with the solder joint. We'll see if this is an issue next.

IMG_9199

I also snipped off one of the pins for the switches so that the XIAO MCU can seat flat on the PCB.
IMG_9202

I have not soldered the switch + plate combo on as I want to make sure this works by printing the case first. Though that might take quite some time as my printer is not tuned yet and I can't use school printer due to the textured plate causing fitment issues.

kianchenglam8 kianchenglam8 added to the journal ago

Started soldering

Took me some time to set up my new soldering iron, as I think the temperature isn’t what the display is showing. But regardless, I got the LEDs and diodes soldered. Next should be the potentiometer, the display, the switch, and finally the Xiao MCU. There’s a specific order because of how tightly packed everything is.

The LEDs were exceptionally difficult to solder for some reason. I did not expect SMD soldering with an iron to be this hard. I suspect it's because I was using an old roll of solder(cheap and bad quality), which hasn't been used since my last cheapo iron broke.

IMG_9141
I won’t proceed to do too much until I get the plate printed, which won’t be too soon as described earlier.

Toki Toki gave kudos to CAD Macropad (Hackpad) ago

Hello, nice hackpad. I was wondering where to find the oled display? the ones online look nothing like the footprint one. Footprint one is huge and oriented in a different way.

kianchenglam8 kianchenglam8 added to the journal ago

Fit checks

I received my kit this afternoon and did some checks with the fitting of components and clearance. It looks like all is good. However, I might need to buy a soldering iron with the remaining grant, as I did not receive an iron as expected, probably a good thing since I live in a country with a 220V grid, so the iron probably would've been incompatible.

image

kianchenglam8 kianchenglam8 added to the journal ago

CAD fixes following case prototype

Some modifications to the bottom shades to make it thicker.
image

I also increased the tolerance so that it suffers less from elephant foot and makes the fitting easier. But overall, I think the problem is still with the printer's tuning. As I said earlier, I'm unable to print the plate as I don't have access to an AMS printer, so the change I made to the plate can only be verified in January, or I could try to use the current one, knowing its flaws (OCD moment).
image

kianchenglam8 kianchenglam8 added to the journal ago

Not a good print (case)

After printing, which took quite a few attempts because of bed levelling issues, I started finishing the case. First off, the shade for the acrylic back panel is quite weak and shows a fuzzy texture.

IMG_9085

Secondly, there seems to be quite a bit of an issue with elephant foot. This is because my Z height is set too close to the bed, but without it being that low, it risks peeling and warping. I guess I'll have to fine-tune that. This issue is quite big as the channels designed to match the plate don't fit. Other than that, I noticed that the supports for the threaded insert holes were very hard to remove. I should've let the printer bridge it, but Cura doesn't work well with support exclusion zone, so I guess I'll have to use Prusa Slicer.

IMG_9086

Thirdly, I tried deburring the elephant foot off the print, and it resulted in a white streak, probably because of plastic deformation from the force. IDRK, but it's always observed whenever coloured filament changes its shape beyond yield strength. This means that I have to minimise post-processing work and maximise print accuracy, as the same will probably happen if I try to sand the print.
IMG_9087

kianchenglam8 kianchenglam8 added to the journal ago

Receiving my PCB

Received my corrected PCBs. I used a spare switch I have to test the fit, and it's looking pretty good. The EC11 and OLED are lining up, although the switch was a bit difficult to fit into the PCB, but maybe it's because it's not an actual MX switch.

IMG_9083

IMG_9084

A slight issue I noticed was that the LEDs are only half lined up with the diffuser; the other half seemed to be on the switch side.

I then sent the main body of the case to print. Had to do the routine filament change, slicing, etc. (ugh took me so long, too used to bambulabs at school)

kianchenglam8 kianchenglam8 added to the journal ago

Prototyping switch plate again

Learning from past mistakes I did not use a raft and just embraced the textured surface.
IMG_9027

It turned out pretty good, but I felt like the light diffuser could've been more transparent. So I scaled it down to 0.6mm and sent it to print, not so good news is that Bambu Studio doesn't automatically pull objects down to build plate meaning it now looks like this:

IMG_9035

IMG_9030

(I also increased the flushing setting so the white looks cleaner and less contaminated)
Not what I wanted but it did show a better defusing effect tho. My school is going into winter break now so I will not be able to print multicolour prints for the next 3 weeks.

I am thinking of either using it, somehow smoothing it out or just wait for three weeks. I guess this will really be determined by the time I receive my kit.

kianchenglam8 kianchenglam8 added to the journal ago

Prototyped the top plate

I 3D printed the panel as a prototype and the light defusing effect seems to be working pretty well. I tried to use a raft to eliminate the texture from the texture plate but it seems to be more trouble as it’s really difficult to remove. I printed this at school using the Bambulab P1S with AMS and we only have textured plate at school so I guess I’ll have to print it with textured surface for the next iteration.

It took me a long time to even clean off some space to test the transparency of the 2 white layer and fit of the holes. They were pretty good, I’m quite happy with it. Only thing I wished to improve was the surface finish, the raft also made the white diffuser have a shade of black making it less luminous. I wanted a smooth surface but seems like it’s impossible using a textured PEI sheet.
IMG_9020IMG_9021
IMG_9019

kianchenglam8 kianchenglam8 added to the journal ago

CAD fixes

I noticed that the Macropad lacks a finished look. To make it look more finished, I gave the top plate a chamfer so that it looks more polished.
image

Other than that, I also fixed some issues with the support. The old support points interfere with the mini LEDs that were now bottom-mounted.
image

After that, I added a feature (forgot the name) to prevent light from bleeding out as the LEDs shine light. This technique is used in a lot of products; it's very subtle but gives it the little improvements that most people would never notice unless being put next to one without such a feature. The light bleed makes it look cheap and unfinished.
image

Hope my kit comes soon, it's been stuck with Asendia in the US for a few days now.

kianchenglam8 kianchenglam8 added to the journal ago

Bug fixes (a lot)

Before I ordered the PCB, I triple checked the board and looked for any bugs in the PCB. And at the second pass I noticed some inconsistency in track width, 90 degree traces and some tight spacing between the led status bar and OLED screen. Spotting these issues I fixed the bugs both in KiCad and Fusion then sent the PCB for order.

3 days after ordering the PCB I noticed that my OLED screen was connected in reverse, I rewired them in the right orientation in kicad and will check throughly before ordering again.
image

image

CAN CAN ⚡🚀 approved CAD Macropad (Hackpad) ago

Nice hackpad!

CAD Macropad (Hackpad) was submitted for review ago

kianchenglam8 kianchenglam8 started CAD Macropad (Hackpad) ago

12/6/2025 - Bug fixes (a lot)

Before I ordered the PCB, I triple checked the board and looked for any bugs in the PCB. And at the second pass I noticed some inconsistency in track width, 90 degree traces and some tight spacing between the led status bar and OLED screen. Spotting these issues I fixed the bugs both in KiCad and Fusion then sent the PCB for order.

3 days after ordering the PCB I noticed that my OLED screen was connected in reverse, I rewired them in the right orientation in kicad and will check throughly before ordering again.
image

image

12/8/2025 - CAD fixes

I noticed that the Macropad lacks a finished look. To make it look more finished, I gave the top plate a chamfer so that it looks more polished.
image

Other than that, I also fixed some issues with the support. The old support points interfere with the mini LEDs that were now bottom-mounted.
image

After that, I added a feature (forgot the name) to prevent light from bleeding out as the LEDs shine light. This technique is used in a lot of products; it's very subtle but gives it the little improvements that most people would never notice unless being put next to one without such a feature. The light bleed makes it look cheap and unfinished.
image

Hope my kit comes soon, it's been stuck with Asendia in the US for a few days now.

12/10/2025 - Prototyped the top plate

I 3D printed the panel as a prototype and the light defusing effect seems to be working pretty well. I tried to use a raft to eliminate the texture from the texture plate but it seems to be more trouble as it’s really difficult to remove. I printed this at school using the Bambulab P1S with AMS and we only have textured plate at school so I guess I’ll have to print it with textured surface for the next iteration.

It took me a long time to even clean off some space to test the transparency of the 2 white layer and fit of the holes. They were pretty good, I’m quite happy with it. Only thing I wished to improve was the surface finish, the raft also made the white diffuser have a shade of black making it less luminous. I wanted a smooth surface but seems like it’s impossible using a textured PEI sheet.
IMG_9020IMG_9021
IMG_9019

12/13/2025 - Prototyping switch plate again

Learning from past mistakes I did not use a raft and just embraced the textured surface.
IMG_9027

It turned out pretty good, but I felt like the light diffuser could've been more transparent. So I scaled it down to 0.6mm and sent it to print, not so good news is that Bambu Studio doesn't automatically pull objects down to build plate meaning it now looks like this:

IMG_9035

IMG_9030

(I also increased the flushing setting so the white looks cleaner and less contaminated)
Not what I wanted but it did show a better defusing effect tho. My school is going into winter break now so I will not be able to print multicolour prints for the next 3 weeks.

I am thinking of either using it, somehow smoothing it out or just wait for three weeks. I guess this will really be determined by the time I receive my kit.

12/16/2025 6 PM - Receiving my PCB

Received my corrected PCBs. I used a spare switch I have to test the fit, and it's looking pretty good. The EC11 and OLED are lining up, although the switch was a bit difficult to fit into the PCB, but maybe it's because it's not an actual MX switch.

IMG_9083

IMG_9084

A slight issue I noticed was that the LEDs are only half lined up with the diffuser; the other half seemed to be on the switch side.

I then sent the main body of the case to print. Had to do the routine filament change, slicing, etc. (ugh took me so long, too used to bambulabs at school)

12/16/2025 8 PM - Not a good print (case)

After printing, which took quite a few attempts because of bed levelling issues, I started finishing the case. First off, the shade for the acrylic back panel is quite weak and shows a fuzzy texture.

IMG_9085

Secondly, there seems to be quite a bit of an issue with elephant foot. This is because my Z height is set too close to the bed, but without it being that low, it risks peeling and warping. I guess I'll have to fine-tune that. This issue is quite big as the channels designed to match the plate don't fit. Other than that, I noticed that the supports for the threaded insert holes were very hard to remove. I should've let the printer bridge it, but Cura doesn't work well with support exclusion zone, so I guess I'll have to use Prusa Slicer.

IMG_9086

Thirdly, I tried deburring the elephant foot off the print, and it resulted in a white streak, probably because of plastic deformation from the force. IDRK, but it's always observed whenever coloured filament changes its shape beyond yield strength. This means that I have to minimise post-processing work and maximise print accuracy, as the same will probably happen if I try to sand the print.
IMG_9087

12/17/2025 12 PM - CAD fixes following case prototype

Some modifications to the bottom shades to make it thicker.
image

I also increased the tolerance so that it suffers less from elephant foot and makes the fitting easier. But overall, I think the problem is still with the printer's tuning. As I said earlier, I'm unable to print the plate as I don't have access to an AMS printer, so the change I made to the plate can only be verified in January, or I could try to use the current one, knowing its flaws (OCD moment).
image

12/17/2025 7 PM - Fit checks

I received my kit this afternoon and did some checks with the fitting of components and clearance. It looks like all is good. However, I might need to buy a soldering iron with the remaining grant, as I did not receive an iron as expected, probably a good thing since I live in a country with a 220V grid, so the iron probably would've been incompatible.

image

12/28/2025 - Started soldering

Took me some time to set up my new soldering iron, as I think the temperature isn’t what the display is showing. But regardless, I got the LEDs and diodes soldered. Next should be the potentiometer, the display, the switch, and finally the Xiao MCU. There’s a specific order because of how tightly packed everything is.

The LEDs were exceptionally difficult to solder for some reason. I did not expect SMD soldering with an iron to be this hard. I suspect it's because I was using an old roll of solder(cheap and bad quality), which hasn't been used since my last cheapo iron broke.

IMG_9141
I won’t proceed to do too much until I get the plate printed, which won’t be too soon as described earlier.

1/7/2026 - Printing top plate and soldering

Finally back to school from break, I'm in my exam season right now, so I don't have much time, but I did take some time to solder as a break from revision :)
IMG_9203

I snapped on the switches and tested its fit, all looks good except clearance with the OLED might've been a bit too tight. The plate is actually colliding with the solder joint. We'll see if this is an issue next.

IMG_9199

I also snipped off one of the pins for the switches so that the XIAO MCU can seat flat on the PCB.
IMG_9202

I have not soldered the switch + plate combo on as I want to make sure this works by printing the case first. Though that might take quite some time as my printer is not tuned yet and I can't use school printer due to the textured plate causing fitment issues.

1/9/2026 9 PM - Case Printing and Failed Test Fit

They work great separately, but when I tried to put them all together to do a test fit, it didn't work.
IMG_9213
IMG_9212
Took me a long time to tune the Z-offset and the support settings so that it prints clean, but turns out the problem was with the CAD itself. Attached below is a picture of one of the three prototypes, the support in one of the channels was unremovable, and the supported surface was uneven. I changed the support interface to grid and increased the distance between the support and part to 0.3mm and it turned out better as seen above. I did a lot more changes but I'll keep it brief here.
IMG_9210

There was basically no tolerance for the PCB to fit despite the 0.2mm offset I did. Not enough for this at least.
IMG_9211

1/9/2026 10 PM - CAD fixes

Modified CAD for greater clearance and chamfered the threaded insert holes for easier assembly. If I were to start over again I would make it slightly larger to make all of this easier but still compact. Case is off to printing now and we'll see how it goes.

image
image

1/10/2026 - Printed part + heatset insert + test fit

Enabled ironing for this print, the chamfers did make the insert easier but also there is a bit of a flaw because the first layer only has one perimeter around the outer edge of the heat insert. Needing very good bed adhesion. I restarted the print twice and still had a small flaw but it’s good enough for me to accept it.

IMG_9216
IMG_9218

After installing the heatset threaded insert I did a fit check and it looks pretty good.
IMG_9217

Oh yeah, a quick edit as I forgot to add this. Despite making the walls thicker the bottom walls still broke. I tried bonding with acetone, but it only worked out ok and this morning, when I was handling it, it broke again.

1/11/2026 - Soldering, printing and troubleshooting

As said before the acetone bonded part broke I think it’s because I forgot that this isn’t abs but pla.
IMG_9220

I sent the model to print again and in the meantime I soldered the switches to the PCB. You can notice at the SEED spot I soldered it flat delibrately so the MCU can sit flush.
IMG_9223

Unfortunately the print warped so I will need to level my bed and print again later.
IMG_9225

Ok here comes the not nice part, I also soldered on the xiao and connected power to it and there were no signs of life!!!! Other than mcu flashing red light so I tried reinstalling circuit python, reuploading the code everything spent so much time and still doesn’t work. The cause might be GP0 being linked to rotary encoder which has common connected to GND and it can’t boot properly when pulled down???

So I tried to add a 10k pull up resistor to the pin connected to 3v3 but it still doesn’t work. I am now stuck…

IMG_9226