Stuff people have been asking. There are really two projects here: the hardware deck (the ESP32-P4 one in the case) and freedj-3000, the software version that runs on a Pi and on iPad as OpenDeck DJ.
Open-source DJ decks that behave like a CDJ: load a track, cue it, nudge it, loop it, and beat-sync with the other players in the booth over Pro DJ Link.
No. freedj is an independent project with no connection to Pioneer DJ or AlphaTheta. None of their code is used. It talks to their players using the publicly documented Pro DJ Link protocol (thanks to Deep Symmetry's research), and reads rekordbox's USB export format.
Not right now. The hardware deck is a build-it-yourself project, but I might make kits if there\'s enough interest: add yourself here if you\'d want one. The software deck is on the App Store as OpenDeck DJ, and free to build from source for the Pi and Linux.
Now. The build guide has the parts list with links, the print files, wiring diagrams and the firmware.
No Android, Windows or macOS build yet. Any screen works; the layout scales to the resolution.
It's built for the Waveshare ESP32-P4-Module-DEV-KIT. That's the only board supported today.
A 4.0" 320×480 SPI touch screen (ST7796S with FT6336U touch, sold as the MSP4031 module or under brands like Hosyond). The case's window and screw bosses are made for it; check the hole spacing with calipers before printing, as clones vary. A larger DSI screen is planned.
controllers.toml)
with LED feedback. Tested on a DJ2Go.Want your controller supported? See contributing: a mapping is often an evening's work.
Each freedj deck is one deck, like a CDJ: you pair it with another player and a mixer. A two-deck version with a built-in mixer (EQs down each side, one platter in the middle) is planned for the hardware deck.
For the first release, all off the shelf:
The full list, with links, is in the build guide.
fit_gauge.stl first and pick the pin that fits snugly.jog_test_*) check the magnet gap before you commit to a full platter.No. The first release wires the buttons, pitch fader and sensor straight to the dev board with jumper wires, about nine wires in all. A small control board with lit buttons is designed and will come later as an optional upgrade.
If you've flashed an ESP32 and soldered a header, you can build it. You'll press bearings, melt in heat-set inserts, glue in a magnet, crimp or solder a few wires, and flash the firmware from a computer over USB.
Yes. The case is parametric Python CAD (build123d). The size follows the jog and screen, and there are switches for angled or flat, the platter style and the button style. Remixes are welcome, under the hardware licence.
Yes. Plug in a stick exported from rekordbox and the deck reads rekordbox's analysis: colour waveforms, beat grids, hot cues and memory cues.
No. Both decks play plain music files from a USB stick or SD card. On the hardware deck, beat sync, quantize and beat loops need a beat grid, which today comes from rekordbox's analysis. The software deck analyses tracks itself.
Both decks join a Pro DJ Link network with an Ethernet cable and take a player number.
Yes, both. Change the tempo without changing the pitch.
That's a separate, experimental firmware for the ESP32-A1S audio board in the freedj-esp repo: put a control record on a turntable and play files in sync with it. It's in progress.
The brain is a standard ESP32-P4 dev board, so you can flash anything that supports it. Other firmware won't know about the deck's jog sensor, buttons or screen unless it's written for them.
Not on the ESP32: those need a full computer. The Linux route is freedj-3000 on a Raspberry Pi, which is its own software deck.
No. They share ideas, file formats and the Pro DJ Link protocol, but the hardware deck is C++ for the ESP32 and the software deck is Rust for computers.
Both licences say the same thing: if you share or sell something built from freedj, you share its source under the same terms.
The licences allow it, as long as you publish your changes under the same licence. But you can't use the freedj or audiodestrukt names or logos: they're trademarks, and they aren't covered by the open licences. Give your version its own name. "Based on freedj" is fine.
freedj is a clean-room project: written from scratch, from public documentation and from watching how players behave on the network, with no Pioneer code or firmware. Pioneer, rekordbox, CDJ, XDJ and Pro DJ Link are trademarks of their owners and are named only to describe compatibility.
Open an issue on GitHub: hardware deck or software deck. Say what you did, what you expected, and what happened, with your board or device.
Fork the repo, make the change on a branch, and open a pull request. Small, focused pull requests get merged fastest. For anything big, open an issue first so we can agree on the approach. Contributions are accepted under the project's licence.
On the audiodestrukt blog, on Instagram, and in each repo's changelog.
Question not here? Open an issue on GitHub and it may end up on this page.
Not affiliated with Pioneer DJ / AlphaTheta. CDJ, XDJ, rekordbox and Pro DJ Link are their trademarks.