A standalone dual-deck DJ system for the Pioneer DDJ-FLX4, powered by a single ESP32-P4 board.
Pajoniiir plays a Rekordbox-exported USB library without a laptop. The ESP32-P4 hosts both the USB drive and DDJ-FLX4, renders the touchscreen UI, runs the two playback decks and mixer, and sends MAIN and headphone-cue audio.
- No PC is required during a performance.
- MP3, WAV and FLAC playback is supported.
- Two independent decks provide waveforms, tempo control, Master Tempo, Hot Cues, loops, Beat Jump, Sync, Pad FX and Beat FX.
- MAIN audio is available on the PCM5102A RCA output.
- Headphone cue is returned through the DDJ-FLX4.
- Signed local and remote OTA updates are supported.
The current production release is
M2.4.
| Part | Purpose |
|---|---|
Guition JC4880P443C_I_W |
ESP32-P4 board, 4.3-inch touchscreen and main processor |
| Pioneer DDJ-FLX4 | MIDI control surface and four-channel USB audio device |
| Rekordbox USB drive | Music library connected to USB0 |
| PCM5102A DAC | Stereo MAIN output over RCA |
| Regulated 5 V / 3 A or better supply | Common system supply with separately protected USB outputs |
| Pajoniiir enclosure | Printable model and reference renders in misc/ |
![]() |
![]() |
|
Guition JC4880P443C_I_W touchscreen board [AliExpress] |
PCM5102A stereo RCA DAC [AliExpress] |
![]() |
![]() |
|
Panel-mount USB-A socket for the Rekordbox drive [AliExpress] |
Board-to-panel USB cable [AliExpress] |
![]() |
![]() |
|
Panel-mount USB-C OTG lead for the DDJ-FLX4 [AliExpress] |
Panel-mount USB-C power input [AliExpress] |
These are reference photos of the parts used in the build. Seller revisions and cable pinouts can vary; verify every part electrically and follow the wiring documentation rather than relying on product photos.
Caution
USB0 and USB1 must receive safe, current-limited 5 V power. Isolate the native P4-side VBUS conductors before injecting protected downstream VBUS. Never combine independent supplies with a passive Y-cable. Read the complete hardware wiring and electrical acceptance guide before building or changing the power wiring.
- With power off, connect the regulated system supply and common ground as shown above.
- Insert the Rekordbox USB drive into USB0.
- Connect the DDJ-FLX4 to USB1 using the USB-C OTG connection.
- Connect the PCM5102A RCA output to the MAIN amplifier or powered speakers.
- Connect headphones to the DDJ-FLX4 if cue monitoring is required.
- Power on the system and wait for the Library to appear.
- Browse a track, load it to D1 or D2, and press Play on the controller.
Both USB insertion orders and reconnect recovery have been physically tested.
For connector details and electrical limits, use
docs/HARDWARE_WIRING.md as the source of truth.
- Overview shows both deck waveforms, transport state, time, BPM, pitch, Master Tempo and the active Beat FX.
- Library browses the Rekordbox USB collection and loads tracks to either deck.
- Hot Cues displays and manages performance cue points.
- Settings controls device options, diagnostics and Wi-Fi Remote.
- The DDJ-FLX4 controls transport, jog/vinyl, tempo, mixer/EQ, cue, loops, Beat Jump, Sync, pads and effects, with LED state restored after reconnect.
- Enable Wi-Fi Remote on the Settings screen.
- Connect a phone or computer to the
PajoniiirWi-Fi network. The default WPA password isPajoniiir. - Open
http://192.168.4.1orhttp://pajoniiir.local.
For a local update, upload only the signed main-deck-p4.ddjota package. Keep
power stable, stop playback and wait for the device to reboot completely.
Remote releases are published through https://ota.pajoniiir.eu.
See the OTA update procedure for installation, verification, rollback and wired-recovery instructions.
![]() |
![]() |
| Compact standalone player and touchscreen | Dual-deck Overview during playback |
![]() |
|
| Enclosure connections and ventilation | |
The printable enclosure and assembly references are stored in
misc/:
PajoniiirCASE.stl— binary STL ready for slicer preparation;case_anim.gif— exploded assembly animation;case_assembe.png,case_assembe2.pngandcase1.jpg— assembly and case reference views.
Confirm dimensions, orientation, supports and material settings in your slicer before printing.
ESP-IDF v6.0.2 is required.
. C:\Espressif\tools\Microsoft.v6.0.2.PowerShell_profile.ps1
idf.py --version # must report ESP-IDF v6.0.2
$repoRoot = git rev-parse --show-toplevel
Set-Location "$repoRoot\firmware\main-deck-p4"
idf.py buildRun the same P4 host regression suite used by CI:
Set-Location $repoRoot
$env:Path = "$env:Path;C:\msys64\ucrt64\bin"
.\tests\run_p4_host_tests.ps1Run the headless UI screenshot and navigation gate:
.\tests\ui_simulator\run_ui_simulator_e2e.ps1Generated build directories, local sdkconfig files, signing keys and release
packages are intentionally excluded from Git. The reproducible dependency lock
at firmware/main-deck-p4/dependencies.lock is committed.
M2.4 is the immutable production release based on commit 9d0c954. It keeps
the qualified playback, controller, UI and audio behavior while restoring pull
OTA compatibility with the current valid cross-signed public TLS chain. Its
exact ESP-IDF v6.0.2 build, signed installation, live production-channel probe,
cold-boot hardware/API smoke, clean operator-confirmed MAIN/cue and published assets passed. See the
M2.4 production release report
and the inherited
M2.1 production baseline.
- Project overview
- Architecture
- Hardware wiring
- Startup and release checklist
- FLX4 MIDI map
- OTA update procedure
- Security and provisioning policy
- Development plan
- Risk register
The active product contains one P4 firmware target:
firmware/main-deck-p4. Historical S3 and dual-processor material is available
through Git history and is not part of the current tree or build.
Pajoniiir is available under the MIT License.













