Skip to content

Hardware

Kicking Off the Dilder Full Board — One PCB to Carry Everything

For two months Dilder has been a constellation of off-the-shelf modules wired together on a breadboard: a Raspberry Pi Pico 2 W, a Waveshare e-paper HAT, a TP4056 charger module, a GY-6500 IMU breakout, two AAA cells, a 20 mm piezo, a 62×36 mm solar panel, and the hand-routed joystick PCB I sent to JLCPCB last month. The 3D-printed case has been growing pockets and rails for each new piece. The next step is the obvious one: collapse it all onto a single PCB.

This post is the kickoff for that work.

A snap-on thumbpiece for the joystick — designing a tiny part by talking to the CAD

The K1-1506SN-01 5-way switch on the joystick PCB has a bare 3.2 × 3.2 mm rectangular peg sticking up through the cover. Pressing it directly works, but it's small, sharp at the corners, and the peg sticks up into the cover's 12 mm circle cutout where it looks half-finished. I wanted a printable snap cap — concave for the thumb, sized to vanish into the cutout, and tight enough on the peg to stay put without glue.

Pico 2 W in the FreeCAD Assembly — STEP Import, Procedural Headers, Z-Flip Mount

The Rev 2 Mk2 enclosure was already a parametric three-body FreeCAD model (base plate, AAA cradle, top cover). What it was missing was the actual electronics. This pass adds the Raspberry Pi Pico 2 W board — imported from the official STEP file — plus a procedural 2×20 pin-header rail, mounted upside-down inside the cradle's PicoNest cavity with its component-side face flush against the cradle mating plane.

Joystick Breakout PCB Rev 2.0 — Real Footprint, Real Pinout, Real Autoroute

Yesterday's joystick breakout PCB shipped with three quietly serious bugs: a hand-drawn switch footprint with the wrong pad geometry, a wire pad that physically overlapped a mounting hole, and a pinout I'd half-invented because I hadn't read the Alps datasheet diagram. Rev 2.0 fixes all three by stealing real reference designs and runs the full autorouter pipeline headless from the CLI.