https://github.com/dcpedit/mod-mmm
Here's a quick list of features:
- Hotswap sockets for MX switches
- Multiple layout support, including ISO, split spacebar, and 4x5 numpad. KLE link
- PCB mount stabalizers
- Under-switch LED for caps, scroll, and num lock
- Supports up to 3 rotary encoders
- Piezo buzzer
- Solenoid
- USB-C support via the STM32F411 Blackpill dev board. Possibility of upgrading to the Bluetooth PillBug.
- Vial firmware
PCB curvature: The curvature radius of the Model M's steel backplate is about 10.9 inches. Flexible PCBs are super expensive, so for this prototype I opted for thinner FR4. The risk is that traces/pads could break, and components can become damaged due to the stress placed on the board. Converting all the components to through-hole might help mitigate this issue, and hopefully the large radius of the curve will cause less stress.
FR4 thickness: Too thick, and it will be difficult to bend. But too thin, and the hotswap sockets and stabilizers won't fit well. I felt 1mm was a good compromise.
MCU board: I settled on the SMT32F114 Blackpill since it has the most usable pins in a form factor that fit on the daughterboard (I used EVERY SINGLE pin). I was hoping that once the PillBug from MechWild came out, it could easily be converted to wireless.
Stabalizers: I was worried that the curvature of the PCB would not work with PCB mount stabs. I made the mount holes a tad bigger in the vertical direction to give them some more wiggle room, and it seems to work OK.
Hot swap sockets: It was easier to test things during development with hot swap, but the sockets themselves did not provide enough holding power to keep the switches stable (at least with 3 pin switches). I decided to design a plate for this iteration, which in turn also required plate foam. Converting the switch sockets to solder-only could allow for more stable plateless builds.
I also posted this on reddit