$$ \usepackage{amssymb} \newcommand{\N}{\mathbb{N}} \newcommand{\C}{\mathbb{C}} \newcommand{\R}{\mathbb{R}} \newcommand{\Z}{\mathbb{Z}} \newcommand{\ZZ}{\ooalign{Z\cr\hidewidth\kern0.1em\raisebox{-0.5ex}{Z}\hidewidth\cr}} \newcommand{\colim}{\text{colim}} \newcommand{\weaktopo}{\tau_\text{weak}} \newcommand{\strongtopo}{\tau_\text{strong}} \newcommand{\normtopo}{\tau_\text{norm}} \newcommand{\green}[1]{\textcolor{ForestGreen}{#1}} \newcommand{\red}[1]{\textcolor{red}{#1}} \newcommand{\blue}[1]{\textcolor{blue}{#1}} \newcommand{\orange}[1]{\textcolor{orange}{#1}} \newcommand{\tr}{\text{tr}} \newcommand{\id}{\text{id}} \newcommand{\im}{\text{im}\>} \newcommand{\res}{\text{res}} \newcommand{\TopTwo}{\underline{\text{Top}^{(2)}}} \newcommand{\CW}[1]{\underline{#1\text{-CW}}} \newcommand{\ZZ}{% \ooalign{Z\cr\hidewidth\raisebox{-0.5ex}{Z}\hidewidth\cr}% } % specific for this document \newcommand{\cellOne}{\textcolor{green}{1}} \newcommand{\cellTwo}{\textcolor{red}{2}} \newcommand{\cellThree}{\textcolor{brown}{3}} \newcommand{\cellFour}{\textcolor{YellowOrange}{4}} $$

Corne + 2 PSP joysticks/dual trackpoint (Rust/RMK)

computer science
compilers
hardware
esp32
keyboard
rust
Author

Luca Leon Happel

Published

October 30, 2025

Abstract

I designed, wired, built, and programmed (completely from scrarch, because no software previously supported 2 joysticks) an egronomic keyboard using some trash PSP parts. This led PCBWAY to sponsor me :)

I wanted to have a ThinkPad like experience with my first ergo keyboard, because I really liked the trackpoint. I got these PSP joysticks for really cheap and they work even better than a trackpoint. Because I couldn’t get zmk or qmk to work correctly with this custom design, I just wrote the Rust code myself using RMK (this allows me to use the keyboard both in wired and wireless mode without any compromises and both joysticks work fine).

I used a 3d print design I found online and extruded it upwards to fit two 2000mAh lithium ion batteries (this made the keyboard kinda chunky).

Code: https://github.com/Quoteme/corne-rmk (maybe check out the “joystick” branch, not main, because I still work on them)

Reddit post: https://www.reddit.com/r/ErgoMechKeyboards/comments/1otcfzr/corne_2_psp_joysticksdual_trackpoint_rustrmk/