EtchPad
This is a macro pad with 2 dials for drawling like an etch-n-sketch and 4 switches for controls and other fun macros.
Created by
Cubic-Vyper
Hackpad
5 views
0 followers
Cubic-Vyper
submitted EtchPad for ship review ago
Cubic-Vyper
added to the journal ago
Aassembling The Case
now that I have all my parts printed it's time to assemble

first I insert the pcb into the bottem half of the case

next I put the top on

now I screw it all together

Finaly I add the keycaps and the enchoder knobs!

now I plug it up

Cubic-Vyper
added to the journal ago
fixing the top plate
so I went to put my soldered pcb in its case, I didn't plan on there being spacers under the xioa, so now the lid won't fit, if I raise the lid anymore the keys won't work, so I started brain storming and decided to add a slant after the keys so there will be enogh room for the xiao and it still look nice.
so now I start designing, first I made a sketch of where the slant will be

now I make another but on the side

the big rectangle is me making sure that my enchoder knob will fit (I'll show that later), at first I was gonna do a slant all the way to the edge

but instead I did a slant just to the hight I need

now I cutout the holes for the parts agin

and now the area for the xiao

Now that there is more hieght I will need a longer screw, luckily I have a lot of M3 screws so that won't be a problem.
now I design the enchoder knob I mentiond above first I measure the shaft of the enchoder and schetc it

next from that scetch I extrude the top

then the D-shaft part

and then the last part (this covers most of the threads)

now I add a chanfer aroung the top

then I extrude a grove into the knob

and repeat it with pattern

now I round the edges of each cutout (I found out that I could do this before the pattern, but not before I hand selected all of those groves ðŸ˜)

now I add it to my assembled model

next I will print these out.
I use cura slicer

I want to use ironing on the top layers but not the slant, to do this I will slice it where it irons everything, but have it pause after the lower section of it, next I turn it to only ironing the highest layer, with the same pause. next I open the gcode and I delete evrything after the pause in the first one (my print can't resume after pause so I have to edit gcode to resume as another file).

then I edit the first to resume the rest of the gcode with the new setting (I delete the every thing expet the startup code before the pause).

now I print
Cubic-Vyper
added to the journal ago
Soldering
First before I stared to solder I made larger cutouts on the bottom of the switches using a file and a knife (to let more light from the leds pass through)

next I set up my soldering station

while soldering I killed 3 led because I was using the wrong tip on my soldering iron, while removing one of those leds, I somehow removed 2 soldering pads for a led, so I grabbed some wire and soldered the led to where it should go.

at first I had no idea I had destroed the soldering pads and whent to use it and only the first two would light up, after a bit I finaly found out what I did.
next I shortened the pin headers now that I had soldered them

now everything worked

exept my previous/play/pause keys in my second layer. I reseted it and now it works? I have no idea how this happened, but if it works it works.
Cubic-Vyper
added to the journal ago
Code debuging and flashing code
So I added circuitpython and kmk to my keyboard, when I added my code, I received a few errors. I had to relabel some pins in my code. Then my code corupted and I spent hours trying all kinds of trouble shooting, in the end I had to reset my computer and nuke the Xiao (a few times 🙃). I also had to switch to putting my code in code.py instead of boot.py, the code would run before it's finished setting up.

Switches
board.GP1 → board.D7
board.GP2 → board.D8
board.GP4 → board.D9
board.GP3 → board.D10
Encoder 1
board.GP9 → board.D6
board.GP0 → board.D7
board.GP26 → board.A0
Encoder 2
board.GP27 → board.D1
board.GP28 → board.D2
board.GP29 → board.D3
m0.hid âš¡
approved EtchPad ago
Great work on this hackpad!
Cubic-Vyper
submitted EtchPad for ship review ago
Shadow
requested changes for EtchPad ago
Hey! Could you please include the assembled model as a STEP file! Thanks
Cubic-Vyper
submitted EtchPad for ship review ago
Shadow
requested changes for EtchPad ago
Hey! Please listen to previous review and change the footprint of the LEDs , everything else looks good to me!
Cubic-Vyper
submitted EtchPad for ship review ago
Shadow
requested changes for EtchPad ago
Hey! I loved the design of your hackpad but could you please include an assembled model of it in the readme!( this includes the case and PCB and if possible other components too ) and you need to change the footprint of the LEDs you are using , you can find the correct ones here. Everything else looks good to me! Great work
Cubic-Vyper
submitted EtchPad for ship review ago
Cubic-Vyper
started EtchPad ago
2/23/2026 - Code debuging and flashing code
So I added circuitpython and kmk to my keyboard, when I added my code, I received a few errors. I had to relabel some pins in my code. Then my code corupted and I spent hours trying all kinds of trouble shooting, in the end I had to reset my computer and nuke the Xiao (a few times 🙃). I also had to switch to putting my code in code.py instead of boot.py, the code would run before it's finished setting up.

Switches
board.GP1 → board.D7
board.GP2 → board.D8
board.GP4 → board.D9
board.GP3 → board.D10
Encoder 1
board.GP9 → board.D6
board.GP0 → board.D7
board.GP26 → board.A0
Encoder 2
board.GP27 → board.D1
board.GP28 → board.D2
board.GP29 → board.D3
3/16/2026 11:28 AM - Soldering
First before I stared to solder I made larger cutouts on the bottom of the switches using a file and a knife (to let more light from the leds pass through)

next I set up my soldering station

while soldering I killed 3 led because I was using the wrong tip on my soldering iron, while removing one of those leds, I somehow removed 2 soldering pads for a led, so I grabbed some wire and soldered the led to where it should go.

at first I had no idea I had destroed the soldering pads and whent to use it and only the first two would light up, after a bit I finaly found out what I did.
next I shortened the pin headers now that I had soldered them

now everything worked

exept my previous/play/pause keys in my second layer. I reseted it and now it works? I have no idea how this happened, but if it works it works.
3/16/2026 11:33 AM - fixing the top plate
so I went to put my soldered pcb in its case, I didn't plan on there being spacers under the xioa, so now the lid won't fit, if I raise the lid anymore the keys won't work, so I started brain storming and decided to add a slant after the keys so there will be enogh room for the xiao and it still look nice.
so now I start designing, first I made a sketch of where the slant will be

now I make another but on the side

the big rectangle is me making sure that my enchoder knob will fit (I'll show that later), at first I was gonna do a slant all the way to the edge

but instead I did a slant just to the hight I need

now I cutout the holes for the parts agin

and now the area for the xiao

Now that there is more hieght I will need a longer screw, luckily I have a lot of M3 screws so that won't be a problem.
now I design the enchoder knob I mentiond above first I measure the shaft of the enchoder and schetc it

next from that scetch I extrude the top

then the D-shaft part

and then the last part (this covers most of the threads)

now I add a chanfer aroung the top

then I extrude a grove into the knob

and repeat it with pattern

now I round the edges of each cutout (I found out that I could do this before the pattern, but not before I hand selected all of those groves ðŸ˜)

now I add it to my assembled model

next I will print these out.
I use cura slicer

I want to use ironing on the top layers but not the slant, to do this I will slice it where it irons everything, but have it pause after the lower section of it, next I turn it to only ironing the highest layer, with the same pause. next I open the gcode and I delete evrything after the pause in the first one (my print can't resume after pause so I have to edit gcode to resume as another file).

then I edit the first to resume the rest of the gcode with the new setting (I delete the every thing expet the startup code before the pause).

now I print
3/16/2026 11:35 AM - Aassembling The Case
now that I have all my parts printed it's time to assemble

first I insert the pcb into the bottem half of the case

next I put the top on

now I screw it all together

Finaly I add the keycaps and the enchoder knobs!

now I plug it up
