

Unmechanical sweepish
Capacitive touch keyboard running QMK firmware
- Size
- 214 × 142.6 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 168
- Nets
- 132
- Pads
- 616
- Tracks, vias
- 1,366, 161
- Pours
- 19
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 25 Dec 2023
- Updated
- 3 Aug 2024
Overview
Unmechanical sweepish is an open-source printed circuit board by ebastler, from the ebastler/UnMechanical repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 4-layer board of 214 × 142.6 mm with 168 parts on 132 nets, routed with 1,366 tracks and 161 vias.
It is built around the OPA340NA, 74HC4051 and SRV05-4, with the 1N4148WT, AO3400A and BLM15PX121SN1D11 among its other parts. Its parts include 44 resistors, 36 capacitors, 14 diodes, 10 ICs and 6 connectors. It belongs with the keyboards and input boards and the STM32 boards of this library.
Main components
7OPA340NA
SOT-23-5SOT-23-5 Operational Amplifier ROHSTexas InstrumentsOperational Amplifier74HC4051
SOP-16-40℃~+85℃ 1 170MHz 28ns 29ns 3V~9V 5ns 5pF 80Ω 8:1 SOP-16 Analog Switches, Multiplexers ROHSWuxi I-core ElecAnalog Switches, MultiplexersSRV05-4
SOT-23-6L-55℃~+150℃ 15V 1pF 4A 5V 5uA 6V 80W ESD Four channels IEC 61000-4-2、IEC 61000-4-5 Unidirectional SOT-23-6L ESD and Surge Protection (TVS/ESD) ROHShongjiachengESD And Surge Protection (TVS/ESD)1N4148WT
SOD-523-55℃~+150℃ 1.25V@150mA 100V 150mA 150mW 1uA@75V 2A 4ns Independent SOD-523 Switching Diodes ROHShongjiachengSwitching DiodesAO3400A
SOT-23-55℃~+150℃ 1 N-channel 1.45V 1.4W 30V 48mΩ@2.5V 5.7A 50pF 630pF 75pF 7nC@10V N-Channel SOT-23 MOSFETs ROHSAlpha & Omega SemiconductorMOSFETsBLM15PX121SN1D11
04020402 Ferrite Beads ROHSMurataFerrite BeadsSMF3.3
SOD-123FL-55℃~+150℃ 200W 3.3V 3.4V 30A 500nA 6.8V IEC 61000-4-2、IEC 61000-4-4 TVS SOD-123FL ESD and Surge Protection (TVS/ESD) ROHSLittelfuseESD And Surge Protection (TVS/ESD)
README
README.mdUnMechanical
Unmechanical is an attempt to create a capacitive touch keyboard, replacing switches with touchpads.
The operating principle is pretty much unchanged from the EC boards by cipulot. Basically, the columns are strobed by the MCU, and the capacitive touchpad forms a capacitive voltage divider together with a 220pF resistor on the PCB. The voltage over the capacitor is measured to determine the capacity of the touchpad, which strongly changes if the pad is touched.
In order to be able to scan multiple rows, the board uses an analog mux chip that switches from row to row. The input signal is amplified by an OPAMP, since QMK does not offer support for the STM32G431 built-in OPAMPs yet.
Sweepish
So far, this repository contains a single board, "Sweepish", which consists of a Sweep 3x5 alpha cluster, and a modified 3 key thumb cluster.
Features:
- 36 capacitive touch-keys (Layout similar to Sweep)
- Magnetic split connect, allowing for unibody-use
- USB-C PD peripheral of the STM32G431 chip connected to USB-C port
- Circuitry and hole in PCB to mount a Switch Joycon haptic actuator and use it for typing feedback


The board is designed to be used as a unibody, held together by HytePro M411P magnetic pogo connectors, but can also be made into a "proper" split board by using a magnetic cable assembly instead.
Firmware support, as well as some optimizations to make the board nicer to use, are still being worked on (so far it can only work as a single half, split EC keyscan does not work yet). The repo is only published as a proof-of-concept - more or less what the entire board design was for, in the first place.
This keyboard also uses the USB-C PD peripheral of the STM32G431 since I wanted to make a test-board to experiment using it.
Pictures


A short video showing the board in action can be found on my youtube channel: https://youtu.be/7uHqJic0PQ8
Thanks
Parts
168| Qty | Value | Footprint | References |
|---|---|---|---|
| 36 | EC | ec_finger_touch:capsense_finger_1 | EC1, EC2, EC10, EC11, EC12, EC13, EC14, EC15, EC16, EC17, EC18, EC19, EC20, EC21, EC22, EC23 +20 |
| 16 | 100R | Resistor_SMD:R_0402_1005Metric | R1, R2, R4, R8, R9, R10, R11, R12, R23, R24, R26, R30, R31, R32, R33, R34 |
| 16 | 100n | Capacitor_SMD:C_0402_1005Metric | C5, C6, C8, C9, C10, C14, C17, C18, C23, C24, C26, C27, C28, C32, C35, C36 |
| 8 | 100k | Resistor_SMD:R_0402_1005Metric | R17, R18, R19, R20, R39, R40, R41, R42 |
| 8 | 10k | Resistor_SMD:R_0402_1005Metric | R5, R6, R7, R13, R27, R28, R29, R38 |
| 8 | 1N4148WT | Diode_SMD:D_SOD-523 | D3, D4, D6, D7, D10, D11, D13, D14 |
| 8 | 1u | Capacitor_SMD:C_0402_1005Metric | C2, C3, C11, C13, C20, C21, C29, C31 |
| 8 | screw | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H1, H2, H3, H4, H5, H6, H7, H8 |
| 4 | 4k7 | Resistor_SMD:R_0402_1005Metric | R21, R22, R43, R44 |
| 4 | 4u7 | Capacitor_SMD:C_0402_1005Metric | C1, C7, C19, C25 |
| 4 | D_Schottky | Diode_SMD:D_SOD-123F | D1, D2, D8, D9 |
| 4 | LOGO | LOGO | G***, G***, G***, G*** |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R14, R35 |
| 2 | 10n | Capacitor_SMD:C_0402_1005Metric | C12, C30 |
| 2 | 10u | Capacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-I | C4, C22 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R16, R37 |
| 2 | 220p | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C16, C34 |
| 2 | 4R7 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3, R25 |
| 2 | 74HC4051 | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U5, U10 |
| 2 | AO3400A | Package_TO_SOT_SMD:SOT-23 | Q1, Q2 |
| 2 | B/R | PCM_marbastlib-various:SW_SPST_SKQG_WithStem | SW1, SW2 |
| 2 | BLM15PX121SN1D | Inductor_SMD:L_0402_1005Metric | L1, L2 |
| 2 | DNP | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C15, C33 |
| 2 | DNP | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R15, R36 |
| 2 | JP | Jumper:SolderJumper-2_P1.3mm_Bridged2Bar_RoundedPad1.0x1.5mm | JP1, JP2 |
| 2 | M | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3, J6 |
| 2 | OPA340NA | Package_TO_SOT_SMD:SOT-23-5 | U4, U9 |
| 2 | Polyfuse | Fuse:Fuse_0603_1608Metric | F1, F2 |
| 2 | SMF3.3 | Diode_SMD:D_SOD-123F | D5, D12 |
| 2 | SRV05-4 | PCM_marbastlib-various:SOT-23-6-routable | U2, U7 |
| 2 | STM32G431CBUx | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U3, U8 |
| 2 | USB_C_Receptacle_USB2.0 | PCM_marbastlib-various:USB_C_Receptacle_HRO_TYPE-C-31-M-14 | J2, J5 |
| 2 | XC6206PxxxMR | Package_TO_SOT_SMD:SOT-23-3 | U1, U6 |
| 1 | HytePro F | PCM_marbastlib-various:CON_HytePro_M411P_Receptacle_1x04-P2.20mm_Horizontal_FlushMount | J4 |
| 1 | HytePro M | PCM_marbastlib-various:CON_HytePro_M411P_Plug_1x04-P2.20mm_Horizontal_FlushMount | J1 |
Questions
How big is the Unmechanical sweepish PCB?
It measures 214 × 142.6 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Unmechanical sweepish use?
168 parts, built around the OPA340NA, 74HC4051, SRV05-4 and 1N4148WT. 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 Unmechanical sweepish KiCad files?
From the ebastler/UnMechanical repository on GitHub, at the commit this page was made from: the board is unmechanical-sweepish/unmechanical-sweepish.kicad_pcb and its schematic unmechanical-sweepish/unmechanical-sweepish-l.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Unmechanical sweepish 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 layers271.8 × 103.9 mm

- 4 layers45 × 80 mm

- 2 layers94.9 × 69 mm

ECU
rivotmotors-rnd/ECU_Firmware_V3
RIVOT ECU V3.0 Repo containing STM32F446RE firmware and KiCad PCB hardware designs.
115 parts - 2 layers255.9 × 99.3 mm

- 4 layers47.8 × 89 mm

- 2 layers100 × 95.3 mm

- 2 layers142.9 × 80.2 mm

Bifrost left
hringdrifi/bifrost
KiCad source files for the left half of Bifrǫst.
66 parts5CERN-OHL-P-2.0 - 2 layers100 × 86 mm
