Skip to content

ilfmoussa/do52pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

do52pro Keyboard

do52pro

A split ergonomic keyboard with integrated DPAD, featuring RP2040 controllers and QMK firmware support.

📋 Table of Contents

🎯 Overview

The do52pro is a split keyboard designed by YK, featuring:

  • 68 keys total (30 per side + 8 DPAD keys)
  • 6×6 matrix per side with integrated DPAD
  • RP2040 microcontroller (Raspberry Pi Pico compatible)
  • Soft serial communication between halves
  • ISO European layout support

✨ Features

  • ✅ Split keyboard design for ergonomic typing
  • ✅ Integrated DPAD on both sides (navigation + arrow keys)
  • ✅ QMK firmware with full customization support
  • ✅ RP2040-based (fast, modern MCU)
  • ✅ ISO European layout (< > key support)
  • ✅ Hot-swappable keymaps
  • ✅ USB-C connectivity

🔧 Hardware

Microcontroller

  • Processor: RP2040 (Raspberry Pi Pico compatible)
  • Bootloader: RP2040 bootloader
  • USB: USB-C connector

Matrix Configuration

  • Type: COL2ROW (diodes on columns)
  • Size: 6 columns × 6 rows per side
  • Total keys: 68 (30 per side + 8 DPAD)

Pin Mapping

Left Side

Pin Type Pins
Rows GP27, GP8, GP9, GP29, GP7, GP28 (DPAD)
Cols GP0, GP1, GP2, GP4, GP5, GP6

Right Side

Pin Type Pins
Rows GP27, GP8, GP9, GP29, GP7, GP28 (DPAD)
Cols GP6, GP5, GP4, GP2, GP1, GP0 (inverted)

Communication

  • Serial Pin: GP3 (soft serial, 1-wire communication)
  • DPAD Pin: GP28 (internal pull-up)

Schematic Reference

┌─────────────────────────────────────────────────────────┐
│                    LEFT HALF                            │
│                                                          │
│  Rows: GP27, GP8, GP9, GP29, GP7, GP28                  │
│  Cols: GP0, GP1, GP2, GP4, GP5, GP6                     │
│                                                          │
│  ┌─────────────────────────────────────┐                │
│  │  Matrix: 6×6 (30 keys)              │                │
│  │  + DPAD Row (4 keys)                 │                │
│  └─────────────────────────────────────┘                │
│                                                          │
│  Serial: GP3 ────────────┐                              │
│                          │                              │
└──────────────────────────┼──────────────────────────────┘
                           │
                           │ Soft Serial (1-wire)
                           │
┌──────────────────────────┼──────────────────────────────┐
│                          │                    RIGHT HALF │
│  Serial: GP3 ────────────┘                              │
│                                                          │
│  Rows: GP27, GP8, GP9, GP29, GP7, GP28                  │
│  Cols: GP6, GP5, GP4, GP2, GP1, GP0 (inverted)          │
│                                                          │
│  ┌─────────────────────────────────────┐                │
│  │  Matrix: 6×6 (30 keys)              │                │
│  │  + DPAD Row (4 keys)                 │                │
│  └─────────────────────────────────────┘                │
└─────────────────────────────────────────────────────────┘

⌨️ Layout

Visual Layout

┌─────────────────────────────────────────────────────────────────────────────┐
│                         LEFT HALF        │        RIGHT HALF                 │
├──────────────────────────────────────────┼──────────────────────────────────┤
│                                           │                                  │
│  ESC   1    2    3    4    5  │  6    7    8    9    0    BSPC            │
│  TAB   Q    W    E    R    T  │  Y    U    I    O    P    \               │
│  < >   A    S    D    F    G  │  H    J    K    L    ;    '               │
│  SHIFT Z    X    C    V    B  │  N    M    ,    .    /    SHIFT           │
│  CTRL  WIN  ---  ---  ALT  SPC│  SPC  ALT  ---  ---  WIN  CTRL            │
│                                           │                                  │
│  ┌─────────────────────────┐  │  ┌─────────────────────────┐              │
│  │ HOME  PGUP  PGDN  END   │  │  │ LEFT  RIGHT  DOWN  UP   │              │
│  └─────────────────────────┘  │  └─────────────────────────┘              │
│         DPAD LEFT              │         DPAD RIGHT                         │
└─────────────────────────────────────────────────────────────────────────────┘

Keymap Details

Row 0 (Top Row)

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│ ESC  │  1   │  2   │  3   │  4   │  5   │  6   │  7   │  8   │  9   │  0   │ BSPC │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Row 1

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│ TAB  │  Q   │  W   │  E   │  R   │  T   │  Y   │  U   │  I   │  O   │  P   │  \   │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Row 2

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│  < > │  A   │  S   │  D   │  F   │  G   │  H   │  J   │  K   │  L   │  ;   │  '   │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Note: < > is KC_NUBS (ISO European key for < and >)

Row 3

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│SHIFT │  Z   │  X   │  C   │  V   │  B   │  N   │  M   │  ,   │  .   │  /   │SHIFT │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

Row 4 (Bottom Row)

┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
│ CTRL │ WIN  │ ---  │ ---  │ ALT  │ SPC  │ SPC  │ ALT  │ ---  │ ---  │ WIN  │ CTRL │
└──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
  • Left: CTRL WIN --- --- ALT SPC
  • Right: SPC ALT --- --- WIN CTRL

DPAD Left (Row 5)

┌──────┬──────┬──────┬──────┐
│ HOME │ PGUP │ PGDN │ END  │
└──────┴──────┴──────┴──────┘
   ←     ↑     ↓     →

DPAD Right (Row 11)

┌──────┬──────┬──────┬──────┐
│ LEFT │RIGHT │ DOWN │  UP  │
└──────┴──────┴──────┴──────┘
   ←     →     ↓     ↑

Matrix Positions

Position Key Position Key Position Key Position Key
[0,0] ESC [0,1] 1 [0,2] 2 [0,3] 3
[0,4] 4 [0,5] 5 [6,0] 6 [6,1] 7
[6,2] 8 [6,3] 9 [6,4] 0 [6,5] BSPC
[1,0] TAB [1,1] Q [1,2] W [1,3] E
[1,4] R [1,5] T [7,0] Y [7,1] U
[7,2] I [7,3] O [7,4] P [7,5] \
[2,0] < > [2,1] A [2,2] S [2,3] D
[2,4] F [2,5] G [8,0] H [8,1] J
[8,2] K [8,3] L [8,4] ; [8,5] '
[3,0] SHIFT [3,1] Z [3,2] X [3,3] C
[3,4] V [3,5] B [9,0] N [9,1] M
[9,2] , [9,3] . [9,4] / [9,5] SHIFT
[4,0] CTRL [4,1] WIN [4,2] --- [4,3] ---
[4,4] ALT [4,5] SPC [10,0] SPC [10,1] ALT
[10,2] --- [10,3] --- [10,4] WIN [10,5] CTRL
[5,5] HOME [5,1] PGUP [5,3] PGDN [5,4] END
[11,1] LEFT [11,0] RIGHT [11,2] DOWN [11,3] UP

🔨 Building

Prerequisites

  • QMK Firmware installed
  • QMK CLI tools installed (qmk setup)
  • ARM GCC toolchain (included with QMK)

Build Command

From the QMK firmware root directory:

qmk compile -kb do52pro -km default

The compiled firmware will be available at:

qmk_firmware/do52pro_default.uf2

Build Options

The keyboard uses the following QMK features:

  • SERIAL_DRIVER = vendor (RP2040 soft serial)
  • EXTRAKEY_ENABLE = yes (media keys support)
  • CONSOLE_ENABLE = no (debugging disabled by default)

📤 Flashing

Method 1: UF2 Bootloader (Recommended)

  1. Enter bootloader mode:

    • Hold BOOTSEL button on the RP2040
    • Connect USB cable (or press reset while holding BOOTSEL)
  2. Flash firmware:

    • The RP2040 will appear as a USB mass storage device
    • Copy do52pro_default.uf2 to the device
    • The device will automatically reboot with the new firmware

Method 2: QMK Toolbox

  1. Open QMK Toolbox
  2. Select the .uf2 file
  3. Put the keyboard in bootloader mode
  4. Click "Flash"

Handedness Configuration

By default, the keyboard is configured as MASTER_LEFT (USB connected to left half).

To change to MASTER_RIGHT, edit config.h:

// #define MASTER_LEFT
#define MASTER_RIGHT

Then rebuild and flash both halves.

⚙️ Configuration

Keymap Customization

Edit keymaps/default/keymap.c to customize your layout:

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [0] = LAYOUT_5x6(
        // Your custom layout here
        ...
    )
};

Enable Debugging

To enable debugging output, edit rules.mk:

CONSOLE_ENABLE = yes

And config.h:

#define SERIAL_DEBUG

Then use qmk console to view debug messages.

USB IDs

Default USB IDs are defined in config.h:

  • Vendor ID: 0xFEED
  • Product ID: 0x0000

Change these if needed to avoid conflicts.

🐛 Troubleshooting

Right Half Not Working

  1. Check serial connection:

    • Ensure GP3 is connected between both halves
    • Verify the connection is not loose
  2. Check handedness:

    • Make sure MASTER_LEFT or MASTER_RIGHT matches your USB connection
    • Flash both halves with the same firmware
  3. Check power:

    • Ensure both halves are powered
    • Right half should be powered via TRRS cable or USB

DPAD Not Working

  1. Check DPAD pin:

    • DPAD uses GP28 (row 5 for left, row 11 for right)
    • Verify GP28 is properly connected
  2. Check matrix scan:

    • DPAD is integrated into the matrix
    • Use qmk console to verify key presses are detected

Keys Not Registering

  1. Check diode direction:

    • Keyboard uses COL2ROW configuration
    • Verify diodes are oriented correctly
  2. Check matrix pins:

    • Compare your wiring with the pin mapping above
    • Right side columns are inverted
  3. Enable debug:

    • Enable CONSOLE_ENABLE and SERIAL_DEBUG
    • Use qmk console to see matrix scan results

Build Errors

  1. Submodule issues:

    git submodule update --init --recursive
  2. Clean build:

    qmk clean
    qmk compile -kb do52pro -km default

📚 Additional Resources

📝 License

See LICENSE file for details.

👤 Maintainer

  • Maintainer: fifounet92-by-chatgpt
  • Manufacturer: YK

🙏 Acknowledgments

  • QMK Firmware team
  • RP2040 community
  • All contributors to the split keyboard ecosystem

Made with ❤️ for the mechanical keyboard community

About

reverse engineered of the do52pro of aliexpress

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors