Skip to content

DS34 v2 Numpad (b23_ds34_v2) ​

34-key + 1-knob numpad · USB wired · QMK firmware · VIA

b23_ds34_v2 is the CZMao DS34 v2 numpad PCB: STM32F103CBT6 (Blue Pill), 8-column × 6-row matrix with a full edit cluster, arrow keys and volume keys, plus one EC11 knob. The knob is mapped to virtual key positions, so both directions can be remapped independently in VIA. QMK firmware, open source, VIA-compatible.

1. Specifications ​

ItemValue
PCB modelb23_ds34_v2 (DS34 v2)
Keys34 keys + 1 knob
Matrix8 columns × 6 rows (COL2ROW)
ConnectionUSB wired (single mode)
PortUSB Type-C (C-to-C supported)
MCUSTM32F103CBT6 (Blue Pill)
Knob1 × EC11 encoder (B8 / B9, direction flipped)
USB VID / PID0x4B23 / 0x4B23
LightingWS2812 per-key RGB @ B13, 33 LED positions
Default effectcycle_left_right
Layers4 (0–3)
N-key rolloverYes (NKRO)
Polling rate1000 Hz
FirmwareQMK (open source)
Keymap toolVIA (web)
Source codegithub.com/micahyy/czm_qmk

2. Hardware / pinout (PCB design) ​

FunctionPin / value
Matrix6 rows × 8 columns (COL2ROW)
Knob A / BB8 / B9
WS2812 data pinB13
Bootloaderstm32duino

The knob's CW / CCW map to the two virtual positions row 3 / col 0 and row 3 / col 1 (ENCODERS_MATRIX_MAP); they have no physical switch and are editable per layer in VIA. Direction is flipped in firmware (ENCODER_DIRECTION_FLIP).

3. Lighting ​

  • WS2812 per-key RGB, 33 LED positions, default effect "cycle left/right".
  • NumLock indicator: LED 9 lights white while NumLock is on.
  • Layer indicator: the matching LED lights white on layers 1 / 2 / 3.
  • Effects can be controlled from layer 1 shortcuts or the VIA Lighting tab.

4. Layers and shortcuts ​

4 layers (0–3):

ActionResult
Hold FN (4th key of the top row, the Pause position)Layer 1
On layer 1, hold ↓Layer 3 (maintenance)

4.1 Layer 0 (default) ​

AreaKeys
Top rowPrintScreen, ScrollLock, FN, PgUp, PgDn, Mute, Vol-, Vol+
2nd rowInsert, Home, PgUp, Num, /, *, -
3rd rowDel, End, PgDn, 7, 8, 9, +
4th row4, 5, 6 (the two knob positions are on the left)
5th row↑, 1, 2, 3, Enter
6th row←, ↓, →, 0 (2u), .

4.2 Layer 1 (hold FN) ​

PositionKey
NumRGB toggle (RM_TOGG)
5Next effect (RM_NEXT)
0Next effect (RM_NEXT)
↓Hold for layer 3 (MO(3))

4.3 Layer 3 (maintenance; on layer 1 hold ↓ first) ​

PositionKey
Top-left PrintScreenBootloader (QK_BOOT)
Bottom-right .Factory reset (EE_CLR)

5. VIA ​

  1. Connect over USB and open VIA: CN server | GitHub Pages
  2. On first use load the keyboard definition JSON in the Design tab
  3. Switch to Configure and remap — changes apply instantly and are stored on the keyboard
  4. All 36 positions are editable; row 3 / col 0 and col 1 are the knob

See also: Using VIA

6. Flashing ​

The PCB uses the stm32duino bootloader:

  1. Enter bootloader (either way):
    • Shortcut: hold FN, hold ↓, then press the top-left PrintScreen position (QK_BOOT)
    • Or: unplug USB, hold the top-left key and plug back in (QMK Bootmagic Lite)
  2. Flash:
    • QMK Toolbox with the compiled .bin; or
    • CLI: dfu-util -a 2 -d 1EAF:0003 -D <firmware>.bin
  3. Re-plug when done.

7. Building the firmware ​

make czmao/b23_ds34_v2:via

Prebuilt binaries: GitHub Actions artifact firmware-b23_ds34_v2.

8. FAQ ​

Q: VIA does not detect the board? A: Use a WebHID-capable browser (Chrome / Edge) and load the definition JSON. Also try another port or cable.

Q: The knob turns the wrong way? A: Swap the two knob positions in VIA, or change ENCODER_DIRECTION_FLIP and rebuild.

Q: How do I reset the keymap? A: Hold FN → hold ↓ → press the bottom-right . position (EE_CLR).

Q: Numpad digits do not type? A: Turn NumLock on (LED 9 lights white); on some systems disable Mouse Keys.


QQ group: 677654482


📥 Firmware & source ​

  • Firmware source (QMK): github.com/micahyy/czm_qmk (PCB path keyboards/czmao/b23_ds34_v2)
  • Prebuilt firmware: GitHub Actions artifact firmware-b23_ds34_v2

See section 6 "Flashing" for flashing instructions.

评论 / 提问 (填个昵称就能留言,无需注册;邮箱选填,填了能收到回复通知)

Released under the MIT License.