stardance has been extended another month! the new deadline is october 31 :)

You are browsing as a guest. Sign up (or log in) to start making projects!

kawaiikiten

@kawaiikiten

Joined October 3rd, 2026

  • 6Devlogs
  • 3Projects
  • 0Ships
  • 0Votes
Open comments for this post

8h 40m 39s logged

wth I didn’t realise I had to make a devlog so early. I’m making a custom handheld console for using a Raspberry Pi Zero 2 W and a 64 GB microSD card that I already have (actually got it from a HackClub event last year!) I wanted to try a more involved hardware project after making my MacroNAVI hackpad (which hopefully gets approved), combining custom PCBs, a printed enclosure, and retro game emulation.

I started by deciding which systems I wanted to support. Initially, I considered everything available in the Delta emulator that I currently have on my phone, including Nintendo DS and Nintendo 64, but narrowed the scope to NES, Game Boy, Game Boy Color, Game Boy Advance, SNES, and Sega Genesis. I also wanted a vertical layout inspired by Delta’s SNES controller skin, with a D-pad, ABXY, Start, Select, and two shoulder buttons. My original size target was roughly an iPhone 13, although I eventually accepted a thicker case to make room for the components.

A lot of the planning involved researching displays and figuring out how they would connect to the Pi. I considered several Waveshare displays using HDMI, DSI, and DPI before choosing the 3.5-inch 640×480 HDMI LCD. I also decided to use the headphone jack which the display includes with an opening in the case.

For power, I planned around a PiSugar 3 Air and an external 3.7 V, 3000 mAh battery measuring 9.6 × 40 × 60.4 mm. I’m using a short internal USB-C extension so the charging port can be accessible from the enclosure. I have a rough idea of how everything is going to fit on the inside, and hopefully there’ll be no issues with some of the assumptions I’ve made in terms of measurements.

I began modelling the enclosure in FreeCAD, the current enclosure is 84 × 147 × 34 mm. I positioned the display, Pi, power board, battery, and controller PCB, then built the front and rear shells around them. This included the screen opening, button openings, mounting posts, screw holes, and heat-set insert holes. I also added battery supports and a retainer, plus a holder and retaining bracket for the charging socket.

For the controls, I wanted soft controller-style buttons using silicone membranes. I contacted RetroSix about membrane dimensions, and they were really helpul and pointed me toward an open-source SNES controller PCB. That gave me a useful reference for the contact footprints, although I still need to verify the physical membranes and their fit.

In KiCad I created the main controller schematic and PCB, assigned the button contact footprints, arranged the controls, and routed the connections. This involved learning about track widths, vias, copper zones, and running the design rule checker. I also ran into problems updating the PCB from the schematic on Arch Linux; switching to Windows resolved that issue. The main board currently passes DRC.

More recently, I designed a small shoulder-button PCB that can be used twice, once for L and once for R. I initially considered putting both switches on one board, but separate boards made placement around the display hardware easier. I adjusted the board outline and mounting holes to clear the display supports, checked it in KiCad, and imported both copies into FreeCAD.

The latest work was adding four supports for those shoulder PCBs and their insert holes in the rear shell. Both boards are now positioned in the assembly, and I’ve planned the rear button locations. The next stage is working out the shoulder button caps and membrane retention, then checking the remaining clearances and wiring.

0
0
56
Open comments for this post

1h 1m 21s logged

Allll done. I organised the CAD, PCB, and firmware files and set up the git repo. I prepared the KMK configuration for the three keys and OLED,hopefully it all works when the kit arrives.

I also exported the PCB’s Gerber and drill files, packaged them for manufacturing, and finished the BOM and README. Also added some color to the case in FreeCAD; don’t know if that’s the colour it’ll be printed with… will I have to paint it myself?? Anyways I’m submitting now.

0
0
33
Open comments for this post

3h 0m 8s logged

Today I worked on the lainboard’s full 3D assembly in FreeCAD. I added the three switches and Cherry-profile keycap models, corrected the switch orientation so the pins lined up with the PCB, and positioned the OLED in its opening.

After checking the assembly, I enlarged the OLED opening slightly to give it 0.3 mm clearance on each side. I also added the XIAO’s two pin headers, four M3×16 screws, and simplified heat-set insert models. I’m still not sure about the exact dimensions of the OLED, so fingers crossed this gets approved and it all fits together.

I exported the complete assembly as a STEP file and updated the top-plate STL. I’m gonna work on organising the project files, finish the firmware setup (thinking of using KMK since I’m very familiar with python), and hopefully I should ship everything today yippeeee

0
0
27
Open comments for this post

1h 33m 7s logged

I started designing lainboard (name is a work in progress dont hate man plssss :(( ), a compact 3-key macropad with an OLED display and an open section in the case to show the controller and PCB artwork. I kinda want it to have a “raw” aesthetic. There is 100% a better way to describe that which I’m sure I will find in the future.
I set up the KiCad libraries, wired the switches directly to the Seeed XIAO RP2040, and connected the OLED. I then laid out a 90 × 50 mm two-layer PCB, added four mounting holes, routed the connections, and filled the back layer with a ground plane.
For the silkscreen, I converted an image of Lain into a footprint and placed it below the controller. I also added OLED pin labels and replaced the basic header footprint with one showing the display’s dimensions. After fixing the label sizes, the enabled DRC checks passed with no errors, warnings, or unconnected items.
I’ve now started the fully 3D-printed case in FreeCAD, creating the base. Next are the walls, PCB supports, and top plate openings.

0
0
26
Open comments for this post

2h 26m 42s logged

I’ve been working on making the PCB layout and enclosure match the appearance I wanted for HandiNAVI.

I started laying out the screen and buttons in FreeCAD (I know the hackpad guide recommends Fusion360, but I recently switched to Linux and I don’t think it’s available on my system; it’s a pain to use anyway), using constrained sketches to set their sizes and positions. Midway through I realised I didn’t like where I’d placed the switches, so I had to go back and edit the PCB. I moved the switches higher in KiCad, bringing the buttons closer to the screen. I also had to reposition the LCD because the “F.Courtyard” layer was overlapping with one of the switches.

Moving the components meant repairing the routing. I reconnected SW1–SW4, adjusted the LCD signal and power tracks, and refilled the ground zones. The updated DRC report showed no unconnected pads, with one remaining silkscreen warning that I addressed by moving the SW3 label. I then exported the updated STEP model and resumed work in FreeCAD.

I also imported the Waveshare 1.8-inch LCD model and positioned it above the PCB. Using its actual geometry helped me size and align the screen opening.

The case now has a 2 mm front plate, four button openings, 2 mm sidewalls, and a USB opening aligned with the XIAO’s connector. I made a separate back cover with four PCB support posts and pilot holes, then added posts to the front shell and matching clearance holes through the back cover so the two halves can be screwed together.

The current CAD check found valid case solids, aligned mounting holes, and no intersections between the case and the imported electronics. The assembled enclosure is currently 71 × 106 × 22 mm.

Now I think my next objective is probably to add the LCD mounting posts, and round the case/make it prettier. I should probably double check this with someone else but I’ll get around to it (maybe :p)

0
0
14
Open comments for this post

2h 46m 25s logged

I’ve been designing a HandiNAVI-inspired USB macropad, with a colour LCD, four buttons, and a red case with custom black button caps. It’s inspired by various screenshots I found while googling for inspo, it has been built before by other people (some functioning, some as a prop). The design that caught my eye was this 3D model.

So far, I’ve set up the project folders and built the schematic in KiCad, using a Seeed XIAO RP2040, four tactile switches, and an eight-pin connector for the planned ST7735S display. I assigned the button and display signals, connected power and ground, and resolved the electrical-rule checks. I haven’t done many hardware projects before, and I figure that what I’m making doesn’t differ too much in functionality as a macropad. So I’m kinda following the hackpad guide, hence the use of the RP2040.

For the PCB, I created a 65 × 100 mm outline, added four mounting holes, and positioned the components alongside reference outlines for the display and button caps. I routed the connections across both copper layers and added ground planes. After fixing unconnected switch pads and silkscreen issues, the DRC report showed zero violations, unconnected pads, or footprint errors under the enabled checks.

I’ve exported the PCB as a STEP file and imported it into FreeCAD, which is the current stage I’m at.

0
0
32

Followers

Loading…