

Controller
MiniRazz - open hardware controller replacement for the Unicomp Mini M keyboard
- Size
- 142.2 × 48 mm
- Copper layers
- 4
- Thickness
- 1.61 mm
- Parts
- 74
- Nets
- 76
- Pads
- 270
- Tracks, vias
- 899, 152
- Pours
- 6
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 13 Feb 2023
- Updated
- 11 Aug 2024
Overview
Controller is an open-source printed circuit board by purdeaandrei, from the purdeaandrei/MiniRazz repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board of 142.2 × 48 mm with 74 parts on 76 nets, routed with 899 tracks and 152 vias.
It is built around the RP2040, 74HC165D and USBLC6-2SC6, with the XC6206P332MR among its other parts. Its parts include 23 capacitors, 17 resistors, 13 connectors, 6 ICs and 1 switch. It belongs with the keyboards and input boards and the RP2040 boards of this library.
Main components
4RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)74HC165D
SO-16-40℃~+125℃ 1 28ns@6V,50pF 2V~6V 35MHz 500mW 74HC 8 Parallel or Serial to Serial SOIC-16 Shift Registers ROHSNexperiaShift RegistersUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)XC6206P332MR
SOT-23-40℃~+85℃@(Ta) 1 1uA 200mA 3.3V 6V Fixed Over Current Protection Positive SOT-23-3L Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTorex SemiconductorVoltage Regulators - Linear, Low Drop Out (LDO) Regulators
README
README.mdMiniRazz - open hardware controller replacement for the Mini M keyboard.
This is a replacement keyboard controller, for the Unicomp Mini M keyboard, this is an independent community project that is not endorsed by Unicomp, and it is not related to any official controller sold by them.
Licensed under CERN-OHL-P v2 or later
Images

How to order from JLCPCB:
- Go to http://jlcpcb.com , sign in to your account (create one if you don't have one)
- Click Order Now, click Add gerber file
- Upload the .zip file from the "order" subfolder.
- Wait for the gerbers to be processed.
- Check that it correctly detected 4-layerboard.
- Select PCB Qty you wish to build
- Specify Layer Sequence, click Yes, And select L1=F_Cu L2=In1_Cu L3=In2_Cu L4=B_Cu
- Set "Remove Order Number" to "Specify a location"
- Scroll down, turn on the "SMT Assembly" option, turn it on
- Select "PCBA Type" = "Economic"
- Select "Assembly Side" = "Top Side"
- Select "Tooling holes" = "Added by Customer"
- Click "I agree to the Terms and Conditions..."
- Click "Next" on the right side
- Click "Next" on the right side
- Click "Add BOM File", upload the "*_bom_jlc.csv" file from the "order" subfolder.
- Click "Add CPL File", upload the "*_cpl_jlc.csv" file from the "order" subfolder.
- Click "Process BPM & CPL"
- Take a look at what parts are available. At the time of writing J2/J3 triomate connectors were only available if pre-ordered (at a higher cost than ordering from DigiKey). You may be able to optimize cost by choosing to solder certain parts yourself, through-hole parts being the most likely candidate. (Please see the following section)
- Click "Next", you will also have to click "Do Not Place" if some components are missing.
- Check the rotation of components. JLCPCB may change default rotation in their component libraries at any time, and also position and rotation of the triomates has not been verified.
- Check that component pins line up correctly with pads
- Check that components which have polarity (usually marked with a dot) are oriented towards an assimetric marking on the silkscreen (for example for the memory and the io expander there's an extra line, while for the RP2040 there's a missing corner line to mark pin 1)
- Click "Next"
- Select Product Description: Office Appliance.../Keyboard...
- Save to Cart, Check Out.
Cost analysis at the time of writing (2024 Aug 11):
| Qty | JLCPCB (USD) | JLC shipping est. (USD) | Digikey Triomates (USD) | Digikey shipping est. (USD) | VAT (19%) USD | Total (USD) | Coast per Board (USD) |
|---|---|---|---|---|---|---|---|
| 5 | 84.34 | 23.80 | 14.66 | 30 | 29.03 | 181.83 | 36.37 |
| 10 | 106.13 | 29.80 | 29.32 | 30 | 37.10 | 232.35 | 23.24 |
| 15 | 130.10 | 55.54 | 43.76 | 30 | 49.29 | 308.69 | 20.58 |
| 20 | 154.18 | 57.74 | 58.35 | 30 | 57.05 | 357.32 | 17.87 |
Components of this design that may have to be ordered separately:
- 2 pcs of 16-pin 90-degree triomate connectors / board:
- Part number:
6-520314-6(TE Connectivity AMP Connectors) - Digikey
- If the 90-degree connectors are not in stock, then you may also be able to get away with vertical ones (part number
6-520315-6)- This has not yet been tested for fit in the keyboard.
- JLCPCB now has it in its library, however it's not in stock.
- You can pre-order it, and then have them assemble it, however it may not make financial sense (current costs are higher than from digikey, and you have to order 5 pcs extra for attrition.)
- If you decide to have JLCPCB assemble this component, it is present in the bom/cpl files, but make sure the connector position/rotations are connect. I could not verify because they weren't in stock at the time I last checked.
- You can pre-order it, and then have them assemble it, however it may not make financial sense (current costs are higher than from digikey, and you have to order 5 pcs extra for attrition.)
- Part number:
Other through hole components that may make sense to buy separately and to solder yourself:
- USB connector with locking tab
- Optional 90 degree headers for solenoid support. You can use one of two options:
- An 1x4 90-degree header: (recommended)
- You will need to use single jumper wires to connect the solenoid driver, (or need to crimp a custom cable with dupont connectors)
- A 2x3 90-degree header: (not recommended)
- This may not fit well in the space available, and you may need to add tape to isolate the bottom of the backplate.
- An 1x4 90-degree header: (recommended)
Firmware
VIAL-QMK and ZMK firmwares are available, (plain QMK upstreaming will also be attempted).
VIAL Firmware
Download from here: https://github.com/purdeaandrei/vial-qmk-minirazz/releases
Use unicomp_mini_m_minirazz_vial.uf2 or unicomp_mini_m_minirazz_vial_debug.uf2
ZMK Firmware
The ZMK firmware can be downloaded by clicking Releases here: https://github.com/purdeaandrei/minirazz-zmk-config The keymap can be customized by forking this repository, and editing the keymap. The firmware will be automatically rebuilt by github, and will be available on the "Actions" tab. If you want to keep your keymap secret, you can copy the content of this repository into a private github repository.
Parts
74| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 100nF | Capacitor_SMD:C_0402_1005Metric | C3, C12, C14, C15, C16, C17, C18, C19, C20, C22, C23, C24 |
| 8 | 68k | Resistor_SMD:R_0402_1005Metric | R7, R8, R9, R10, R11, R12, R13, R14 |
| 4 | 1uF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C21, C25 |
| 3 | 196 | Resistor_SMD:R_0402_1005Metric | R15, R16, R17 |
| 3 | Conn_02x01 | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | J7, J8, J11 |
| 3 | Ferrite_Bead | Inductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolder | FB1, FB2, FB3 |
| 3 | SMTAssemblyMountingHole | footprint:tooling_hole | H1, H2, H3 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R5, R19 |
| 2 | 27.4 | Resistor_SMD:R_0402_1005Metric | R3, R4 |
| 2 | 30pF | Capacitor_SMD:C_0402_1005Metric | C8, C10 |
| 2 | 43pF | Capacitor_SMD:C_0402_1005Metric | C9, C11 |
| 2 | AroundUsbPortMountingHole | MountingHole:MountingHole_3.5mm | H7, H8 |
| 2 | Conn_01x16 | footprint:TE_connectivity_AMP_6-520314-6 | J2, J3 |
| 2 | DNP 100nF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C4, C5 |
| 2 | MountingHole | MountingHole:MountingHole_3mm | H5, H6 |
| 1 | 10k | Resistor_SMD:R_0402_1005Metric | R6 |
| 1 | 12MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSoldering | Y1 |
| 1 | 3.3V IO EXPANSION HEADER | footprint:PinHeader_2x03_P2.54mm_Vertical_3dhorizontal | J4 |
| 1 | 74HC165 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U3 |
| 1 | Conn_01x01 | footprint:PinHeader_1x01_P2.54mm_Vertical_3dhorizontal | J13 |
| 1 | Conn_01x02 | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J12 |
| 1 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J5 |
| 1 | Conn_02x01 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | J9 |
| 1 | Conn_02x01 | Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolder | J10 |
| 1 | DNP 10k | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | DNP 1uF | Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolder | C6 |
| 1 | DNP Conn_01x04 | Connector_JST:JST_PH_S4B-PH-K_1x04_P2.00mm_Horizontal | J6 |
| 1 | DNP Ferrite_Bead | Inductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolder | FB4 |
| 1 | DNP TXS0102DCU | Package_SO:VSSOP-8_2.3x2mm_P0.5mm | U5 |
| 1 | LOGO | footprint:oshw_outline | G*** |
| 1 | MountingHole_Pad | MountingHole:MountingHole_3mm_Pad | H4 |
| 1 | RP2040 | Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mm | U1 |
| 1 | SW_Push | footprint:switch_K2-1187SQ-A4SW-06 | SW1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U4 |
| 1 | USB_A | footprint:LUSB_A111_00 | J1 |
| 1 | W25Q16JV | Package_SO:SOIC-8_5.275x5.275mm_P1.27mm | U2 |
| 1 | XC6206P332MR | Package_TO_SOT_SMD:SOT-23 | U6 |
Questions
How big is the Controller PCB?
It measures 142.2 × 48 mm and has 4 copper layers, 1.61 mm thick.
What parts does the Controller use?
74 parts, built around the RP2040, 74HC165D, USBLC6-2SC6 and XC6206P332MR. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Controller KiCad files?
From the purdeaandrei/MiniRazz repository on GitHub, at the commit this page was made from: the board is controller/controller.kicad_pcb and its schematic controller/controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Controller design in my own project?
Its repository publishes it under the CERN-OHL-P-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers82.3 × 35.5 mm

- 2 layers353.1 × 124.9 mm

- 2 layers96 × 99.9 mm

Horizons Badges
Taran-the-Idiot/Horizons-Badges
E-ink badges for Horizons Crux! Made in Kicad. They use 2.66" E-ink screens with an RP2040 mcu. And they are made in the shape of a mantaray :D
58 partsMIT - 4 layers98.7 × 77.3 mm

Akeypad
luantty2/akeypad
8khz polling rate keypad, uses STM32F405 and USB3300, powered by QMK.
69 parts13GPL-3.0 - 2 layers181 × 97 mm

OpenDeck r3.1.2
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
262 parts960Apache-2.0 - 4 layers100 × 100 mm

- 4 layers219 × 108.5 mm

Z80DevBoard
gianluca-rainis/Z80DevBoard
An advanced development board for the Z80 microprocessor, powered by an RP2040.
182 parts7CERN-OHL-S-2.0 - 4 layers32.7 × 99.7 mm

Grid devkit
RustyCircuit/grid-devkit
KiCad PCB designed to interoperate with the Intech Studio Grid ecosystem. This devkit is a fork of Intech's VSNX hardware design, adapted to fill a gap between fully-developed hardware and breadboard/DIY controller…
167 parts1GPL-3.0