Skip to the content
PCBKitNew board
2 layers321 × 92.3 mmMx40, the printed circuit board in 3D

Split keyboards with 38 or 40 keys, LCD display and Cirque trackpad

Size
321 × 92.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
181
Nets
142
Pads
958
Tracks, vias
1,947, 173
Pours
4
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
13 Jan 2023
Updated
6 Nov 2024

Overview

Mx40 is an open-source printed circuit board by zzeneg, from the zzeneg/stront repository on GitHub, published under the MIT licence. It is a 2-layer board of 321 × 92.3 mm with 181 parts on 142 nets, routed with 1,947 tracks and 173 vias.

It is built around the RP2040-ZERO. Its parts include 82 diodes, 40 switches and 4 resistors. It belongs with the keyboards and input and lEDs and displays boards and the RP2040 boards of this library.

Main components

1

README

README.md

stront

Family of modular split keyboards with 38 or 40 keys, LCD display and Cirque/Azoteq trackpad.

Features

All versions:

  • Hotswap sockets
  • LCD display (1.69" 240x280 by default)
  • Cirque or Azoteq (with VIK adapter) trackpad
  • roller/rotary encoders
  • 3D printed cases
  • exposed SPI/I2C contacts, so any other device can be used instead, it's just a matter of changing the case
MX-40MX-38Choc
Number of keys403838
Supported switchesMX/KS[1]MX/KS[1]Choc v1
InterconnectUSB-CUSB-C/TRRSUSB-C/TRRS
InterconnectUSB-CUSB-C/TRRSUSB-C/TRRS
VIK support:heavy_check_mark::heavy_check_mark::x:
Module system:heavy_check_mark::heavy_check_mark::x:
Splay:x::x::heavy_check_mark:

[1]: KS-33/KS-27 - Gateron Low Profile switches, not compatible with MX footprint and require special hotswap sockets

Photos

MX-40 and MX-38 versions

MX-38 versions (MX and KS-33 switches)

Choc version

Display with PC companion app

https://github.com/zzeneg/stront/assets/910255/bb812821-9b2b-454a-a9a5-45d696a1f5aa

Available modules - MX38/MX40 versions only ⚠️

  • LCD displays
    • ST7789 1.69" 240x280
    • ST7789 2" 240x320
    • GC9A01 round 1.28" 240x240
  • Touchpads
    • Cirque 40mm flat
    • Cirque 40mm curved
    • Azoteq TPS43
    • Azoteq TPS65 (technically supported but I think it's too big)

Firmware

Companion app for Raw HID communication.

QMK

Please see main config.h and rules.mk for comments and available options.

Vial
Compiled versions

Each firmware name has two modules, first is on the left side, second on the right, e.g. if your keyboard has Azoteq on the left and round display on the right - choose azoteq-round

  • keymaps:
    • default - sample keymap with home row mods. Not recommended for longer use - create your own.
    • hid - default keymap with HID support. Requires companion application.
    • zzeneg - my highly customized layout.
  • hardware versions:
    • -rect- - rectangular display (ST7789 240x280)
    • -round- - round display (GC9A01 240x240)
    • -flat- - flat 40mm Cirque
    • -curved- - curved 40mm Cirque
    • -azoteq- - Azoteq TPS43

[!WARNING] For 38keys version with VIK display adapter - redefine LCD pins in config.h as in 40keys version

Build Guide

MX38/MX40 versions

Choc version

VIK - MX38/MX40 versions only ⚠️

[!NOTE] VIK is a standard for a data interface between printed circuit boards. It is intended to provide modularity between a mechanical keyboard PCB and additional features.

VIK repository

Certification card
CategoryClassificationResponse
FPC connectorRequired:heavy_check_mark:
Breakout pinsRecommended:heavy_check_mark:
Supplies: SPIStrongly recommended:heavy_check_mark: [1]
Supplies: I2CStrongly recommended:heavy_check_mark: [1]
I2C on main PCBDiscouragedNo
I2C pull upsInformativeOptional[2]
Supplies: RGBStrongly recommended:heavy_check_mark:
Supplies: Extra GPIO 1RequiredDigital
Supplies: Extra GPIO 2RequiredDigital

[1]: I2C and SPI use same pins, so you can use only one or the other, not both. Selection is configured in firmware.

[2]: PCB has pads designed for 1206/3216 SMD resistors, you can solder them manually if needed.

image

VIK usage

Built-in display and trackpad use the same interface, so any additional VIK module will have to replace one of them (it's possible to combine other I2C modules with Azoteq). Depending on the size it can integrated into the cover or a standalone case.

All possible connectors support VIK - FPC horizontal on the back, FPC vertical on the front and the breakout pins.

Support

If you like my work and want to support my future designs, please consider sponsorship, ordering from PCBWay using my shared projects - Choc or MX38, or using referral link for signing up.

Sponsors

Thank you very much for your support!

Parts

181
QtyValueFootprintReferences
42Dzzkeeb:Diode_1N4148-SOD123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +26
40Switchzzkeeb:Switch_MXKS-hotswap-southSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +24
40YS-SK6812MINI-Ezzkeeb:LED_SK6812-MINI-ELED1, LED2, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20, LED21, LED22, LED23 +24
18MountingHolezzkeeb:Hole_M2H1, H2, H3, H4, H5, H6, H7, H10, H11, H12, H13, H14, H15, H16, H17, H18 +2
6SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2, JP3, JP4, JP5, JP6
4MountingHolezzkeeb:Hole_Breakaway-TabsBR1, BR2, BR3, BR4
4RResistor_SMD:R_1206_3216MetricR1, R2, R3, R4
2Connector_HRO-TYPE-C-31-M-12zzkeeb:Connector_HRO-TYPE-C-31-M-12-dataUSB1, USB2
2Connector_VIK-keyboardzzkeeb:Connector_VIK-vertical-keyboardVIK_K1, VIK_K4
2Connector_VIK-keyboardvik:vik-keyboard-connector-horizontalVIK_K3, VIK_K6
2Connector_VIK-keyboardvik:vik-keyboard-througholeVIK_K2, VIK_K5
2Display_generic-spi-8pinzzkeeb:Connector_Display-8pin-SPI-2.0mmDISP1, DISP2
2GP17TestPoint:TestPoint_Pad_D1.5mmTP1, TP2
2RollerEncoder_EVQWGD001zzkeeb:RotaryEncoder_EVQWGD001ROLL1, ROLL2
2RotaryEncoder_Switchzzkeeb:RotaryEncoder_EC11RE1, RE2
2rp2040-zerozzkeeb:MCU_rp2040-zero-thtMCU1, MCU2

The 172 most common of 181 parts.

Questions

How big is the Mx40 PCB?

It measures 321 × 92.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Mx40 use?

181 parts, built around the RP2040-ZERO. 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 Mx40 KiCad files?

From the zzeneg/stront repository on GitHub, at the commit this page was made from: the board is pcb/mx40/pcb.kicad_pcb and its schematic pcb/choc/pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mx40 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from zzeneg/stront

1
  • 2 layers320.9 × 84.4 mmChoc, the printed circuit board in 3D

    Choc

    zzeneg/stront

    Split keyboards with 38 or 40 keys, LCD display and Cirque trackpad

    162 parts353MIT

Similar boards

  • 2 layers132.3 × 94.9 mmCheapino, the printed circuit board in 3D

    Cheapino

    tompi/cheapino

    An affordable split 36 keys keyboard

    59 parts1.2kCC-BY-4.0
  • 2 layers255.9 × 99.3 mmZerosprey42, the printed circuit board in 3D

    Zerosprey42

    beekeeb/zerosprey42

    Zerosprey42 Keyboard is a wired, beginner friendly, choc hotswap, MonoBlockSplit (Unibody), column-staggered, DIY mechanical keyboard.

    96 parts140
  • 2 layers146.3 × 69.5 mmStress, the printed circuit board in 3D

    Stress

    GroooveBob/Stress

    Pocket Arcade Fight Pad

    22 parts102MIT
  • 2 layers54 × 64 mmDonConIOmini, the printed circuit board in 3D

    DonConIOmini

    ravinrabbid/DonCon2040

    RP2040 based firmware and hardware for DIY Taiko no Tatsujin Drum Controllers

    96 parts66MIT
  • 2 layers52 × 50 mmRP2040-TestPatternGenerator VGA, the printed circuit board in 3D

    RP2040-TestPatternGenerator VGA

    nmur/RP2040-TestPatternGenerator

    A simple test pattern generator running on the RP2040 microcontroller

    12 parts64GPL-3.0
  • 2 layers120 × 40 mmBuinchiez40, the printed circuit board in 3D

    Buinchiez40

    ChrisChrisLoLo/bunchiez40

    A pocket keyboard that makes use of mouse switches to achieve a miniscule size

    90 parts56GPL-3.0
  • 2 layers305.2 × 76.2 mmSoroka, the printed circuit board in 3D

    Soroka

    kapee1/soroka

    40% DIY-keyboard with base kit support

    126 parts47Unlicense