Skip to the content
2 layers154.4 × 112.7 mmC dux, the printed circuit board in 3D

A split keyboard PCB designed with Ergogen v4.

Size
154.4 × 112.7 mm
Copper layers
2
Thickness
1.6 mm
Parts
30
Nets
54
Pads
305
Tracks, vias
152, 19
Routed
Yes
KiCad
KiCad 4.1.0 (file 20240108)
Created
29 Jan 2025
Updated
31 Oct 2026

Overview

C dux is an open-source printed circuit board by cyfdecyf, from the cyfdecyf/c-dux repository on GitHub, published under the MIT licence. It is a 2-layer board of 154.4 × 112.7 mm with 30 parts on 54 nets, routed with 152 tracks and 19 vias.

It belongs with the keyboards and input boards of this library.

README

README.md

C. Dux Keyboard

C. Dux frontC. Dux back

C. Dux is a 38-key split wireless keyboard inspired by rae-dux and Architeuthis Dux (A. Dux).

Features

  • Split Design: 38-key, mainly 3x5 column-staggered layout, 3 thumb keys and 1 extra pinky key
  • Choc v1 switch, optional hot-swap sockets
  • Uses ZMK firmware
  • Rotary encoder placed near thumb, easy to reach
  • Diodless Reversible PCB: Single PCB design that can be used for both left and right halves

Note: I did not consider designing a case when I designed the PCB, as I use the keyboard with naked PCB. A 3D printed vertical stand came later, see 3D printed case below. So it's better to use leadless PCB and solder. I find SAC305 solder (with 380-degree solder iron) is a little harder to use compared to Tin-Lead 63/37 solder (with 280-degree solder iron), but not too much.

Differences with rae-dux:

  • One extra key for little finger
    • C. Dux v1 uses 36-key, but as a long time Vim user who uses Capslock as Esc, I missed the efficiency of pressing Esc with pinky. So I added the extra pinky key.
  • Supports EC11/EC12 rotary encoder
    • I use the left encoder for left, right arrow keys, the right one for up and down. With layer switching, they are also used for page up/down, alt f/b (in shell), ctrl-tab/ctrl-shift-tab.
  • Using ProMicro NRF52840 as controller
    • I choose diodeless design to make things simple. With vanilla ProMicro's 18 GPIO pins, I can only build a 36-key keyboard.
    • Both nice!nano and ProMicro NRF52840 provides 3 extra pins, which allows adding rotary encoder and one extra key. But the physical position for the 3 extra pins on those two controllers are not the same, so they are not fully compatible.
  • With mounting holes to for Tenting Puck
    • Using only 3 holes, took the design from A. Dux
  • M4 holes for other mounting options

The keyboard layout and PCB is generated using Ergogen v4. Traces are added manually in KiCAD 8. I learned how to use Ergogen form FlatFootFox's Let's Design A Keyboard With Ergogen v4 series articles, highly recommended!

Configurations

Refer to my zmk-config repo. I do local build, github workflow is not tested.

Some combos are inspired by Glove80 TailorKey. (I own one Moergo's Glove80. It's a great keyboard. I started using home-row mod with Glove80.)

PCB files

Here's v2.0 PCB gerbers file. You can download the file and place order from JLC. I made a few fixes for problems found after I got the PCB from JLC, so it's not exactly the same file I've used but should work without problems.

Tips for using Ergogen with KiCAD

For non-key footprints (power/reset switches, etc.), my workflow is:

  1. Generate the footprint in PCB with Ergogen at arbitrary position
  2. Place the footprint in KiCAD with mouse
  3. Use KiCAD ruler to find relative position to some key
  4. Update the footprint position in Ergogen yaml file

My own build

As I suffer from RSI, I choose the 20g pink Choc v1 switches (which is the lightest switches I know). For keycaps, I find the 3D printed saddle variant of KLP-Lame-Keycaps quite pleasant to use. The keycap curve makes it easy to press the up & down rows, and helps a lot to position fingers on the home row.

PCBs are ordered from JLC. Power and reset switch are from LCSC.

C. Dux v2

I got the idea of mouting keyboard on desk and let hands go twards the ground from Ben Vallack's video The Perfect TENTING SOLUTION For Split Keyboards. Check out Ben Vallack's channel if you are interested in ergonomic keyboards.

This is the most comfortable way for me to use a keyboard. This position helps a lot to relieve my RSI and I can work all day long without much pain in my forearm.

C. Dux v2 mounted

C. Dux v2 mounted both

C. Dux v2 in use

C. Dux v2 with M4 threaded bolts

3D printed case

The keyboard stands vertically on the desk with a 3D printed case, designed with build123d. It is a two-piece design: a shared base (symmetric, printed once) plus an upright that sets the recline angle. The two parts join with tongue-and-groove keys and 2×M4 screws from the bottom, so trying a different recline angle only requires reprinting the upright.

C. Dux v1

This is my first attempt to build a keyboard. The rotary encoder is difficult to reach which is the biggest mistake I made.

The keycap used in this version is Chosfox's CFX keycap. (Search for "哈狐 Chosfox" on Taobao if you live in China.) This keycap is not as smootch as Moergo's MCC keycap, but it's still quite good and is much cheaper. But as I like the curved keywell of Glove80, I switched to KLP Lame keycaps later.

C. Dux v1

C. Dux v1 with KLP Lame keycaps

Future plans

I'm quite comfortable with C. Dux v2 and I'm not planning to build an improved version soon. But I do plan to build a third keyboard for backup.

Here are a few things that I'd like to change:

  • Decrease thumb key spacing
    • v2 decrease thumb key spacing compared to v1, but it's still wider compared to Glove80's upper thumber cluster
  • Change hotswap socket outer hole diameter to 1.72mm
    • v1 uses 1.7mm which is too tight, v2 uses 1.74mm which is a bit loose
  • Move rotary encoder a little up to make it easier to reach for index finger
  • Remove teardrop for all GND pads to make solding easier
    • Even thermal reliefs teardrop still makes it harder to solder

Parts

30
QtyValueFootprintReferences
19—ceoloide:switch_choc_v1_v2S1, S2, S3, S4, S5, S6, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19 +3
4—ceoloide:mounting_hole_platedH1, H2, H3, H4
1SW-SMD_4Peasyeda2kicad:SW-SMD_4P-L5.1-W5.1-P3.70-LS6.5-TL_H1.5SW2
1SW_Push_Lockeasyeda2kicad:SW-TH_5.8ZSPTSW1
1Tenting Puck, no holeTentingPuck_NoHoleTP1
1—ceoloide:mcu_supermini_nrf52840MCU1
1—ceoloide:battery_connector_jst_ph_2JST1
1—ceoloide:utility_ergogen_logoLOGO1
1—ceoloide:rotary_encoder_ec11_ec12RE1

Similar boards

  • 2 layers52.2 × 52.2 mmBase promicro, the printed circuit board in 3D

    Base promicro

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    30 parts3kApache-2.0
  • 2 layers40.6 × 15.2 mmVr mmm, the printed circuit board in 3D

    Vr mmm

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    30 parts1.2k
  • 2 layers270 × 11 mmDaylight, the printed circuit board in 3D

    Daylight

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    30 parts1.1kGPL-3.0
  • 2 layers65 × 30 mmRgb to hdmi, the printed circuit board in 3D

    Rgb to hdmi

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    30 parts1kGPL-3.0
  • 2 layers40.5 × 58 mmInitial v, the printed circuit board in 3D

    Initial v

    tenderlove/initial-v

    It's a BMW shifter converted to a Bluetooth Keyboard that you use with Vim

    30 parts1kApache-2.0
  • 2 layers34.3 × 41.8 mmMotionCubeViewAllForces, the printed circuit board in 3D

    MotionCubeViewAllForces

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    30 parts915
  • 2 layers57.4 × 62 mmPicoWS2812, the printed circuit board in 3D

    PicoWS2812

    ErichStyger/mcuoneclipse

    McuOnEclipse projects and examples

    30 parts765
  • 2 layers52.1 × 46.8 mmFIRE TEST PANEL, the printed circuit board in 3D

    FIRE TEST PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    30 parts431

Questions

How big is the C dux PCB?

It measures 154.4 × 112.7 mm and has 2 copper layers, 1.6 mm thick.

What parts does the C dux use?

30 parts. 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 C dux KiCad files?

From the cyfdecyf/c-dux repository on GitHub, at the commit this page was made from: the board is pcb/v2.0/c-dux.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the C dux 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).