Maker Project · Open Hardware

Open CDJ

A standalone DJ player, designed and built end to end — from blank schematic to an injection-ready enclosure.

Raspberry Pi 5 Mixxx Custom PCB 5″ Touch

What it is

A club-style deck, opened up

I designed and built every layer myself: the electronics, the mechanics, the enclosure and the firmware. It runs Mixxx on a Raspberry Pi 5, with a custom controller mapping and a homemade bridge that turns the hardware into MIDI the software understands.

The Open CDJ opened up — the layered top plate, jog wheel and internal boards inside the transparent enclosure.

The feel

No motor, all feel

The heart of the deck is a 360 pulse-per-revolution encoder under a weighted platter. Touch-search, pitch bend and scratch are read in real time and streamed to Mixxx — the tactile core of a CDJ, rebuilt from open parts.

End to end

Built from A to Z

No off-the-shelf shortcut — every stage was designed, prototyped and iterated by hand.

01

Schematic & design

EasyEDA Pro

Full schematic capture for the control surface, encoder front-end, power and the Raspberry Pi interface.

Schematic capture in EasyEDA Pro.
02

PCB layout & routing

EasyEDA Pro

Routing the board around the jog, screen and button matrix — component placement driven by the mechanical layout.

PCB routing layout in EasyEDA Pro.
03

Sourcing & fabrication

JLCPCB

Part sourcing and board fabrication, with assembly iterations to refine fit, footprints and the bill of materials.

The fabricated custom interface PCB.
04

Mechanical design

Fusion 360

Modelling the full assembly to solve the mechanical constraints between the jog wheel, the screen and the board stack.

X-ray wireframe render of the full mechanical assembly.
05

Enclosure for injection

Fusion 360

A case designed with manufacturing in mind — draft angles, ribs and bosses ready for plastic injection moulding.

Injection-ready enclosure model.
06

Firmware & bridge

Mixxx · Python · MIDI

A custom Mixxx controller mapping plus a homemade Python bridge running on the Pi, translating the hardware into MIDI for Mixxx.

Python bridge code for the Mixxx controller mapping.

Control surface

Everything under the hands

The layout mirrors a pro deck — performance pads, loops and transport laid out for muscle memory.

Top-plate layout drawing showing the jog wheel, seven colour-coded hot cues, tempo fader and transport controls.
  • Jog wheel360 P/R encoder — search, bend & scratch
  • 7 hot cues (A–G)colour-coded performance pads
  • Tempo fader±6 / ±10 / ±16 / WIDE ranges
  • Loop sectionIN/CUE · OUT · RELOOP/EXIT
  • Beat jump & searchtrack search + fine search
  • CUE · PLAY/PAUSEtransport controls
  • 5″ touchscreen800×480 IPS, capacitive · MENU & SHIFT

Under the hood

A tightly packed stack

A Raspberry Pi 5, the custom interface board and the control surface stack into one slim chassis — modelled together so nothing fights for space.

Firmware

Mixxx, at your fingertips

The 5″ capacitive touchscreen puts the whole interface under your fingers — browse, loop and needle-search by touch. Under the hood, a custom controller mapping and a homemade Python bridge turn every control into MIDI Mixxx understands, running live on the Raspberry Pi 5.

The numbers

Specifications

Audio quality 92 kHz high-resolution playback engine
Jog encoder 360 P/R
Display 5.0″ 800×480 · IPS · capacitive
Compute Raspberry Pi 5
Software Mixxx
Power USB-C · 5 V
Knob DJ TechTools
Controls Hot cues, play, cue, tempo…

Thanks for looking

More builds on the way

← Back to portfolio