This is rev4 of the Flatbox. In this version the PCB includes a microcontroller and USB port. Everything is built in, you only have to add the switches (and flash the firmware).
To make one you will need:
- 3D printed case parts - top and bottom
- the PCB
- 12x Kailh low profile (choc v1) switches of your choice
- (optionally) 12x Kailh low profile hotswap sockets
- 3D printed buttoncaps
- 6x 6x6x5mm tact switches
- 7x 3x10mm wood screws
- some kind of rubber feet or non-slip padding for the bottom
- a soldering iron
I printed the case at 0.20mm layer height. The top part should be printed upside-down, the bottom part should be printed as-is. They don't require supports.
I used JLCPCB to make the PCB and assemble the SMD parts. The included files can be used with JLCPCB directly. If you want to use some other service, check the file formats that they expect. When ordering from JLCPCB, upload the Gerber zip, leave all the settings at default (you can choose the PCB color), then select "SMT Assembly" and upload the BOM and CPL files. PCB thickness should be 1.6mm.
The PCB you get from JLCPCB will look like this:
The switches can be soldered in directly to the PCB or you can use hotswap sockets. If you want to use hotswap sockets, you will have to print the appropriate bottom part of the case (it's 1mm thicker).
For the firmware you probably want to use GP2040-CE. Go to the GP2040-CE downloads page and get the UF2 file for Flatbox rev4.
To flash the firmware, connect the PCB to a computer with a USB cable, then press the RESET button while holding the BOOT button on the PCB. A drive named "RPI-RP2" should appear. Copy the UF2 file you downloaded to that drive. That's it.
(Of course you can also use any other RP2040-compatible firmware if you want.)
PCB design licensed under CC BY-SA 4.0.
PCB design uses the following libraries:
- keyswitches.pretty by daprice (CC BY-SA 4.0)
- Type-C.pretty by ai03-2725
- RP2040 library from the minimal design example from the Hardware design with RP2040 document