freedj: build your own DJ deck
This is a little CDJ-style player you can make yourself. It's a dev board you can buy off the
shelf, a 4" touch screen, and a jog wheel on a couple of skateboard bearings, in a case you print.
Plug in your rekordbox USB stick and it plays your tracks with the waveforms, beat grids and cues
you already set up. It even syncs with Pioneer players over Pro DJ Link.
If you've got a 3D printer and you've ever plugged an Arduino into a computer, you can build one.
What you need
- A 3D printer. Anything with a bed around 256 mm will do the case in one piece.
- A Waveshare ESP32-P4 dev kit. This is the brains.
- A 4" SPI touch screen (the ST7796 kind, sold as MSP4031 or under brands like Hosyond).
- An AS5600 magnetic sensor board. It comes with the little magnet that goes in the jog.
- Two 608 skateboard bearings.
- Two panel-mount push buttons (CUE and PLAY) and a slide pot for pitch.
- Some jumper wires, a few screws and heat-set inserts.
- A soldering iron helps, but there are only a few joints.
No custom circuit boards. Everything is stuff you can order online.
How it goes together
- Print the case, the base and the jog platter. Start with the flat version: it prints with no supports.
- Press the bearings in, push the platter's shaft through them, and glue the magnet into the end of the shaft.
- Screw the sensor board onto the base under the magnet, the screen in behind the top, and the dev board onto the base.
- Wire it up with jumper wires: 11 to the screen, 5 to the sensor, 7 for the buttons and pitch slider.
- Flash the firmware from your computer over USB.
- Plug in a USB stick and play.
The full build guide is here: step-by-step instructions, wiring diagrams and the print files.
The code and CAD are on GitHub: github.com/audiodestrukt/freedj-esp.
Questions? Check the FAQ.
What it does
- Reads your rekordbox USB sticks. Plug in a stick exported from rekordbox and you get its colour waveforms,
beat grids, hot cues A–H and memory cues. Plain WAV and MP3 files on the stick or a microSD card play too.
You can pull the stick mid-track and it keeps looping until you load something else.
- Works like a CDJ. CDJ-style CUE, loops and beat loops, beat jump, quantize, slip and reverse. Pitch ±6, 10 or 16 %
or wide, with key lock (master tempo).
- A real jog wheel. A weighted platter on two bearings with a magnetic sensor under it: nudge, scratch, search.
- Pro DJ Link. Plug in Ethernet and it joins the booth as another player alongside CDJs and XDJs: beat sync to the
tempo master, or take master yourself and the Pioneer decks follow it.
- External MIDI controllers. Plug a controller into one of its four USB ports. Works today with a Numark DJ2Go, and
with a Pioneer XDJ-1000MK2 in USB MIDI mode: the XDJ's jog, buttons and tempo fader drive the deck.
- USB audio. Plug in a USB sound card and it plays through that as well as the built-in speaker output.
Tested with the XDJ-1000MK2's sound card, so the XDJ becomes the audio out too.
- A 4" colour touch screen with an XDJ-style layout: scrolling waveform, overview, beat counter, BPM and pitch.
Tap to browse and load tracks, needle-search the overview, and switch sync and key lock.
- Open everything. Firmware, case CAD and wiring are all on GitHub. Change whatever you like.
Here my XDJ-1000MK2 is controlling it over USB:
Coming later: playlists and track names from rekordbox, lit buttons, and a two deck version with a mixer.
Don't want to build hardware?
I might make kits (printed parts plus the electronics, ready to put together) if enough people want one.
If you would, add yourself here or message me on Instagram, so I know there's interest.
There's a software version too, called freedj-3000. It runs on a Raspberry Pi, and on iPad and
iPhone as OpenDeck DJ.
Code: github.com/audiodestrukt/freedj-3000.
(How that started.)
Help out
Build one and send me a photo. If something in the instructions is confusing, tell me. If you have a
CDJ-3000, I'd love to know if sync works with it
(test script).
Bugs and ideas go in GitHub issues.
- Dan (audiodestrukt)
The code is GPL and the hardware files are CERN-OHL-S, so build it, change it, share it. The
freedj name is mine though, so if you make your own version please call it something else. Not
affiliated with Pioneer DJ / AlphaTheta.