Skip to the content
4 layers43.1 × 37.7 mmMachine Controller, the printed circuit board in 3D

64 Slot Break In Machine for MX Style Switches

Size
43.1 × 37.7 mm
Copper layers
4
Thickness
1.6 mm
Parts
84
Nets
86
Pads
314
Tracks, vias
424, 206
Pours
248
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
31 May 2024
Updated
18 Jun 2024

Overview

Machine Controller is an open-source printed circuit board by FinnKrass, from the FinnKrass/MX-Break-In-Machine repository on GitHub, published under the CERN-OHL-S-2.0 licence. It is a 4-layer board of 43.1 × 37.7 mm with 84 parts on 86 nets, routed with 424 tracks and 206 vias.

It is built around the RP2040, SDB628 and W25Q16JVUXIQ, with the AP33772DKZ, SS34B and SSM3J340R,LF among its other parts. Its parts include 26 capacitors, 21 resistors, 6 diodes, 6 connectors and 5 ICs. It belongs with the RP2040 boards of this library.

Main components

6

README

README.md

MX Style Switch Break In Machine

Repository is still a work in progress!

A unique take on the switch break in machine intended to streamline the process and maximise outcomes. Useful for those who want to improve the sound and feeling of MX style keyboard switches that come scratchy/inconsistent from the factory.

Alt text

Table of Contents:

Background

This project started when I first fell in love with Cherry MX Black's. I wanted a way to break in the switches for all of my builds, but had absolutely no understanding of electronics and CAD at the time, so took it upon myself to learn how to use Fusion360 and eventually design a circuit. Once the design had come together, I started selling broken in switches with a fleet of these machines running around the clock, which helped me vet the design and iron out any problems as well as optimize certain things to make the labor involved with operating and maintaining the machines easier. I worked on this project on and off over about a year and was planning to sell the machines themselves once they were in a state I was proud of, but some life events got in the way, so I've decided to work back and open source it for others to enjoy as much as I have.

Features

The machine is quite rugged, I've had customers request their switches broken in for 2.5 million + actuations and the machines have handled that no problem. For good measure, I give them 1 hour break every 12 hours, and have had machines comfortably surpass total lifetime actuations of 75 million. This isn't guaranteed of course, it depends on a plethora of variables, including materials used to print, print profiles, the motor manufacturer, bearing quality etc. Regardless, here is a list of features:

  • Linear bearings (inspired by Feng Studio's machine)

    • Eliminate plastic on plastic friction
    • Ensure the pistons remain aligned, applying even force on all switches
  • Full capacity (64 switches) off centre operation.

  • Noise reducing plates

    • The biggest issue I had with the machines was the noise. To fix that, rear plates were integrated into the design that would be printed in a flexible material (95A TPU) to dampen the noise produced by the switches colliding with the back walls and pistons.
    • An off centre version of this was introduced later on. There are two models for this; one which attaches to the piston, and one which rests against the back wall. The intention is to operate in off centre at all times.
  • USB Power Delivery compatible controller & power supply.

  • 128x64 OLED display for information on progress.

  • Actuation counter with programmable profiles to disable/enable the motor after x number of actuations. Currently programmed to turn off after 250,000 actuations to ensure an even distribution of off centre actuations on all 4 sides.

  • Two speeds can be selected via a switch on the PCB.

  • Rugged 24V motor, capable 564 actuations/minute. (Faster is not recommended)

  • Non-volatile flash memory, will recall number of actuations recorded in the event of power loss.

Here are a few video's showing off the operation. Video A, Video B.

Some older video's of their operation can be found here and here.

To-Do

  • Finalise documentation

    • User guide and tips on operating the machine

    • General clean up, more coherent structure.

  • Acceptable print tolerance specifications

  • Piston bearing socket tolerance calibration print

  • PCB BoM optimisations (more details in PCB doc)

  • PCB BoM sheet for mouser to automate adding to cart (should be done very soon)

References & Thanks

The individual who helped me most requested not to be named, but a deep thank you goes out to them for the help they have provided me and continue to provide to the community. Their help is the reason I became more interested in the intricacies of electronics, and that passion has continued far beyond this project now.

Kee Keen's open source break in machine helped me greatly in the beginning, definitely check it out if you're interested in the roots of this project!

Parts

84
QtyValueFootprintReferences
120.1uFCapacitor_SMD:C_0402_1005MetricC8, C9, C10, C11, C12, C13, C14, C15, C16, C18, C19, C24
622uFCapacitor_SMD:C_0805_2012MetricC1, C3, C6, C20, C21, C22
51uFCapacitor_SMD:C_0603_1608MetricC7, C17, C23, C25, C26
55K1Resistor_SMD:R_0603_1608MetricR11, R12, R13, R20, R21
410kResistor_SMD:R_0603_1608MetricR3, R4, R9, R10
4GNDTestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mmTP5, TP7, TP8, TP9
310KResistor_SMD:R_0603_1608MetricR2, R6, R17
3MountingHoleFinn-Lib:M2_Screw_PTHH1, H2, H3
21N4148Diode_SMD:D_SOD-323FD3, D4
21kResistor_SMD:R_0402_1005MetricR5, R8
222uFCapacitor_SMD:C_0603_1608MetricC4, C5
227RResistor_SMD:R_0603_1608MetricR14, R15
278171-0002Finn-Lib:Molex_Pico-EZmate_78171-0002_1x02J4, J7
1100RResistor_SMD:R_0603_1608MetricR16
110mResistor_SMD:R_0603_1608MetricR19
112MHzFinn-Lib:OSC_CSTNE12M0G520000R0Y2
11uFCapacitor_SMD:C_0805_2012MetricC2
122uHFinn-Lib:TDK-VLS5045-5x5.3x4.5L1
129KResistor_SMD:R_0805_2012MetricR1
139KResistor_SMD:R_0805_2012MetricR7
13K8Resistor_SMD:R_0603_1608MetricR18
13V3Finn-Lib:Keystone_5000-5004_MiniatureTP4
1AP33772Finn-Lib:QFN50P400X400X80-25N-DU4
1AP7370-33W5-7Package_TO_SOT_SMD:SOT-23-5U3
1BTN_RFinn-Lib:SW_SPST_TL3342SW4
1BTN_URFinn-Lib:SW_SPST_TL3342SW3
1BZX84C22-7-FPackage_TO_SOT_SMD:SOT-23-3D1
1Conn_01x03Connector_JST:JST_SH_BM03B-SRSS-TB_1x03-1MP_P1.00mm_VerticalJ5
1Conn_01x03Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ3
1Conn_01x05Finn-Lib:Molex_Pico-EZmate_78171-0004_1x04-1MP_P1.20mm_VerticalJ2
1LEDLED_SMD:LED_0603_1608MetricD2
1PUSB3FS4ZFinn-Lib:DFN2510A-10D6
1RP2040Finn-Lib:RP2040-QFN-56U5
1SDB628Package_TO_SOT_SMD:SOT-23-6U1
1SS34BDiode_SMD:D_SMBD5
1SSD1306Finn-Lib:Display_128x64_096_I2CBrd1
1SSM3J340RFinn-Lib:SOT-23-3FQ1
1SW_PushConnector_PinHeader_2.00mm:PinHeader_1x02_P2.00mm_VerticalSW2
1SW_SPDTFinn-Lib:SW_Slide_1P2T_CK_OS102011MS2QSW1
1Thermistor_NTCCapacitor_SMD:C_0402_1005MetricTH1
1USB_C_Receptacle_USB2.0Finn-Lib:USB_C_Receptacle_HRO_TYPE-C-31-M-12J6
1V_{in}Finn-Lib:Keystone_5000-5004_MiniatureTP6
1V_{out}Finn-Lib:Keystone_5000-5004_MiniatureTP2
1V_{s}Finn-Lib:Keystone_5000-5004_MiniatureTP1
1W25Q16JVUXIQFinn-Lib: USON-8_2x3x0.6mmU2

Similar boards

  • 4 layers20.6 × 51.1 mmPicoPD V1.2, the printed circuit board in 3D

    PicoPD V1.2

    centydev/PicoPD

    Repo for PicoPD hardware/software and documentation

    52 parts67MIT
  • 2 layers208 × 130 mmAlim and ctr, the printed circuit board in 3D

    Alim and ctr

    Hackuarium/ion-mobility

    DIY Ion mobility spectrometer

    72 parts11
  • 4 layers117.5 × 73 mmLumioV2, the printed circuit board in 3D

    LumioV2

    BastaMasta/LumioV2

    A repo with the kicad project for Lumio V2

    80 parts
  • 2 layers55 × 100 mmESP32AY revD2, the printed circuit board in 3D

    ESP32AY revD2

    djspawnbrest/ESP32AY

    ZxPod - ESP32 based AY multiformat player

    138 parts59GPL-3.0
  • 2 layers72 × 121 mmTeebeutel, the printed circuit board in 3D

    Teebeutel

    entropia/Teebeutel-Hardware

    Teebeutel (eng. Teabag) is an electronic, Entropia themed con-badge for the GPN20, featuring an ESP32 microprocessor running micropython.

    201 parts1
  • 2 layers58 × 68.5 mmFS1--ATmega32U4, the printed circuit board in 3D

    FS1--ATmega32U4

    libertathiest/fs10-atmega32u4-monitor

    A standalone USB monitor and configuration tool for the FCI FS10 Flow Switch, built around the ATmega32U4 on an Arduino Leonardo–compatible board.

    73 parts

Questions

How big is the Machine Controller PCB?

It measures 43.1 × 37.7 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Machine Controller use?

84 parts, built around the RP2040, SDB628, W25Q16JVUXIQ and AP33772DKZ. 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 Machine Controller KiCad files?

From the FinnKrass/MX-Break-In-Machine repository on GitHub, at the commit this page was made from: the board is PCB/Machine-Controller.kicad_pcb and its schematic PCB/Machine-Controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Machine Controller design in my own project?

Its repository publishes it under the CERN-OHL-S-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).