Skip to content

Latest commit

 

History

1,138 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pajoniiir

Pajoniiir M2.4

Latest release Platform License: MIT CodeRabbit Pull Request Reviews

Watch the video

A standalone dual-deck DJ system for the Pioneer DDJ-FLX4, powered by a single ESP32-P4 board.

Pajoniiir running the dual-deck Overview screen

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.

Hardware

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/

Parts used

Guition JC4880P443C_I_W ESP32-P4 touchscreen development board PCM5102A stereo RCA DAC module
Guition JC4880P443C_I_W touchscreen board
[AliExpress]
PCM5102A stereo RCA DAC
[AliExpress]
Panel-mount USB-A socket Board-to-panel USB cable
Panel-mount USB-A socket for the Rekordbox drive
[AliExpress]
Board-to-panel USB cable
[AliExpress]
Panel-mount USB-C OTG cable Panel-mount USB-C power input
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.

Connect the system

Pajoniiir M2 wiring diagram

  1. With power off, connect the regulated system supply and common ground as shown above.
  2. Insert the Rekordbox USB drive into USB0.
  3. Connect the DDJ-FLX4 to USB1 using the USB-C OTG connection.
  4. Connect the PCM5102A RCA output to the MAIN amplifier or powered speakers.
  5. Connect headphones to the DDJ-FLX4 if cue monitoring is required.
  6. Power on the system and wait for the Library to appear.
  7. 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.

Touchscreen and controller workflow

  • 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.

Wi-Fi Remote and updates

  1. Enable Wi-Fi Remote on the Settings screen.
  2. Connect a phone or computer to the Pajoniiir Wi-Fi network. The default WPA password is Pajoniiir.
  3. Open http://192.168.4.1 or http://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.

Gallery

Pajoniiir side view with touchscreen and USB cable Pajoniiir dual-deck Overview screen
Compact standalone player and touchscreen Dual-deck Overview during playback
Rear of the Pajoniiir enclosure with USB drive, RCA outputs and service connector
Enclosure connections and ventilation

DEMO Video

Watch the video

3D-print enclosure

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.png and case1.jpg — assembly and case reference views.

Pajoniiir enclosure exploded view

Confirm dimensions, orientation, supports and material settings in your slicer before printing.

Build from source

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 build

Run 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.ps1

Run the headless UI screenshot and navigation gate:

.\tests\ui_simulator\run_ui_simulator_e2e.ps1

Generated 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.

Project status and documentation

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.

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.

License

Pajoniiir is available under the MIT License.

About

Standalone dual-deck DJ system using a Pioneer DDJ-FLX4 controller, powered by ESP32-P4 (Guiton JC4880P443C-I-W-Y).

Topics

Resources

Stars

60 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages