Skip to the content
PCBKitNew board
4 layers142.2 × 48 mmController, the printed circuit board in 3D

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

4

README

README.md

MiniRazz - 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

Top of the controller board Bottom of the controller board

How to order from JLCPCB:

  1. Go to http://jlcpcb.com , sign in to your account (create one if you don't have one)
  2. Click Order Now, click Add gerber file
  3. Upload the .zip file from the "order" subfolder.
  4. Wait for the gerbers to be processed.
  5. Check that it correctly detected 4-layerboard.
  6. Select PCB Qty you wish to build
  7. Specify Layer Sequence, click Yes, And select L1=F_Cu L2=In1_Cu L3=In2_Cu L4=B_Cu
  8. Set "Remove Order Number" to "Specify a location"
  9. Scroll down, turn on the "SMT Assembly" option, turn it on
  10. Select "PCBA Type" = "Economic"
  11. Select "Assembly Side" = "Top Side"
  12. Select "Tooling holes" = "Added by Customer"
  13. Click "I agree to the Terms and Conditions..."
  14. Click "Next" on the right side
  15. Click "Next" on the right side
  16. Click "Add BOM File", upload the "*_bom_jlc.csv" file from the "order" subfolder.
  17. Click "Add CPL File", upload the "*_cpl_jlc.csv" file from the "order" subfolder.
  18. Click "Process BPM & CPL"
  19. 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)
  20. Click "Next", you will also have to click "Do Not Place" if some components are missing.
  21. 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)
  22. Click "Next"
  23. Select Product Description: Office Appliance.../Keyboard...
  24. Save to Cart, Check Out.

Cost analysis at the time of writing (2024 Aug 11):

QtyJLCPCB (USD)JLC shipping est. (USD)Digikey Triomates (USD)Digikey shipping est. (USD)VAT (19%) USDTotal (USD)Coast per Board (USD)
584.3423.8014.663029.03181.8336.37
10106.1329.8029.323037.10232.3523.24
15130.1055.5443.763049.29308.6920.58
20154.1857.7458.353057.05357.3217.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.

Other through hole components that may make sense to buy separately and to solder yourself:

  • USB connector with locking tab
    • Part number: LUSBA11100 (AMPHENOL COMMUNICATIONS SOLUTIONS)
    • Digikey
    • Farnell
  • 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.

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
QtyValueFootprintReferences
12100nFCapacitor_SMD:C_0402_1005MetricC3, C12, C14, C15, C16, C17, C18, C19, C20, C22, C23, C24
868kResistor_SMD:R_0402_1005MetricR7, R8, R9, R10, R11, R12, R13, R14
41uFCapacitor_SMD:C_0402_1005MetricC1, C2, C21, C25
3196Resistor_SMD:R_0402_1005MetricR15, R16, R17
3Conn_02x01Capacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderJ7, J8, J11
3Ferrite_BeadInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderFB1, FB2, FB3
3SMTAssemblyMountingHolefootprint:tooling_holeH1, H2, H3
21kResistor_SMD:R_0402_1005MetricR5, R19
227.4Resistor_SMD:R_0402_1005MetricR3, R4
230pFCapacitor_SMD:C_0402_1005MetricC8, C10
243pFCapacitor_SMD:C_0402_1005MetricC9, C11
2AroundUsbPortMountingHoleMountingHole:MountingHole_3.5mmH7, H8
2Conn_01x16footprint:TE_connectivity_AMP_6-520314-6J2, J3
2DNP 100nFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4, C5
2MountingHoleMountingHole:MountingHole_3mmH5, H6
110kResistor_SMD:R_0402_1005MetricR6
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mm_HandSolderingY1
13.3V IO EXPANSION HEADERfootprint:PinHeader_2x03_P2.54mm_Vertical_3dhorizontalJ4
174HC165Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
1Conn_01x01footprint:PinHeader_1x01_P2.54mm_Vertical_3dhorizontalJ13
1Conn_01x02Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ12
1Conn_01x03Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5
1Conn_02x01Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderJ9
1Conn_02x01Capacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderJ10
1DNP 10kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
1DNP 1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC6
1DNP Conn_01x04Connector_JST:JST_PH_S4B-PH-K_1x04_P2.00mm_HorizontalJ6
1DNP Ferrite_BeadInductor_SMD:L_0805_2012Metric_Pad1.15x1.40mm_HandSolderFB4
1DNP TXS0102DCUPackage_SO:VSSOP-8_2.3x2mm_P0.5mmU5
1LOGOfootprint:oshw_outlineG***
1MountingHole_PadMountingHole:MountingHole_3mm_PadH4
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU1
1SW_Pushfootprint:switch_K2-1187SQ-A4SW-06SW1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U4
1USB_Afootprint:LUSB_A111_00J1
1W25Q16JVPackage_SO:SOIC-8_5.275x5.275mm_P1.27mmU2
1XC6206P332MRPackage_TO_SOT_SMD:SOT-23U6

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 mmFc980c controller, the printed circuit board in 3D

    Fc980c controller

    wlhlm/fc980c-controller

    Leopold FC980C replacement keyboard controller

    38 parts20
  • 2 layers353.1 × 124.9 mmSkeleton68rev2, the printed circuit board in 3D

    Skeleton68rev2

    skeletonkbd/Frost68

    252 parts5
  • 2 layers96 × 99.9 mmHorizons Badges, the printed circuit board in 3D

    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 mmAkeypad, the printed circuit board in 3D

    Akeypad

    luantty2/akeypad

    8khz polling rate keypad, uses STM32F405 and USB3300, powered by QMK.

    69 parts13GPL-3.0
  • 2 layers181 × 97 mmOpenDeck r3.1.2, the printed circuit board in 3D

    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 mmPCBA OCTV, the printed circuit board in 3D

    PCBA OCTV

    intechstudio/grid-hardware

    403 parts59GPL-3.0
  • 4 layers219 × 108.5 mmZ80DevBoard, the printed circuit board in 3D

    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 mmGrid devkit, the printed circuit board in 3D

    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