Repository navigation
Releases
M2.5 — JC4880 / DDJ-FLX4
M2.5 is released for JC4880 / Pioneer DDJ-FLX4 / PCM5102A MAIN / FLX4 headphone cue.
- Retains the previous product UI and adds the supplied Pajoniiir logo when track artwork is missing, in Library and Overview.
- Consolidates the shared-core library/transport work already published in v91: richer metadata, playlists/artwork, memory cues, persistent cue edits, title/downbeat corrections and improved seek/loop handling.
- Keeps S3CP v2/v3 compatibility and v4 profiles, signed board-specific OTA and bounded startup readiness.
Thanks to collaborator kayrozen for modules, fixes and ideas adapted from his Pajoniiir fork, including metadata, seek/cue/loop, JC1060/DDJ-400 and Pro DJ Link work. Provenance and licensing remain in the integration ledger.
The artwork candidate passed signed OTA, normal USB/media return, cover/logo/page transitions, allocation/resource checks and operator-confirmed MAIN/D1/D2 cue listening with zero new strict faults. Final tagged-image results and artifact hashes are recorded in the release evidence.
Explicit release exception: the operator waived a new 180-minute soak for this final M2.5 image because audio/deck/DSP code is unchanged. The final image receives short OTA/startup/USB/UI/audio checks; v91's older soak remains evidence for v91, and no M2.5 long-soak PASS is claimed.
JC1060/DDJ-400/real Pro DJ Link peers remain development configurations awaiting hardware acceptance. Recorder/SD experiments are disabled; APTA and the public Web Profile Builder v4 deployment are separate. Full real-export/downbeat/PWV4 comparison, nested playlist order, source-cue reimport/restore/cross-media isolation, delayed/corrupt artwork and advanced active-removal/shift/touch variants remain unrun.
App-only OTA preserves the partition layout. Previous immutable releases remain available for signed service rollback.
Read the user manual and release record.
Frozen source: 20f1c3f04a615209ae25e9bbdae649d0f5b44e8d, annotated tag M2.5, ESP-IDF 6.0.2. Exact-source CI.
Artifacts:
main-deck-p4.bin: 2,576,432 bytes, SHA-2567aaab31d4a7c00990939cb9ccecb04aba1cba463b1db919d168477c7df3210ba.main-deck-p4.ddjota: 2,576,620 bytes, SHA-25644db191c1785168781e9b2893cac6dda1b92a20a5342c328d7fbfdbbd8707e27.manifest.jsonandmanifest.sig: independently verified signed release manifest.
Final tagged M2.5 / ota_1 passed signed OTA and startup readiness, USB storage/FLX4 availability and 62.622211 seconds of measured dual playback with zero new strict PCM, deadline, USB packet/ring/host/queue faults. The operator confirmed normal Overview and clean MAIN/D1/D2 CUE sound. Both decks were stopped at completion. All eight exact-source CI jobs passed.
Pajoniiir JC4880/FLX4 M2.4-91-g75136aef
Release for JC4880 + Pioneer DDJ-FLX4, PCM5102A MAIN and FLX4 headphone cue.
This publishes the existing hardware-tested image M2.4-91-g75136aef from
source 75136aef749a1f03d9089c8b6ff6452b3dba0839. It has not been rebuilt or
re-versioned for publication.
- Preserves the previous UI design and adds richer library metadata,
playlist/artwork navigation, memory cues and persistent local hot-cue edits. - Corrects Rekordbox title/downbeat interpretation and improves transport,
seek, cue and loop handling. - Fixes reproduced FLAC loop OUT/resize starvation and output deadlines.
- Adds compatible S3CP v4 profiles while retaining v2/v3 support.
- Retains signed board-specific OTA and bounded pending-image startup readiness.
Both firmware targets and all eight exact-source CI jobs passed. Focused real
MP3/WAV/FLAC, MAIN/cue, scratch/MT, loop, local cue, load-lock and stopped USB
reconnect checks passed with operator listening confirmation.
Isolated diagnostic images passed automatic unconfirmed-image bootloader
rollback and startup readiness rejection at 60.253 seconds. Both returned
automatically to the original v91; neither diagnostic is a release artifact.
Accepted test exception: 180m01.37s of recorded dual-deck playback was
accepted in two segments, including a 163m05.48s uninterrupted continuation.
This is not an uninterrupted 180-minute soak. Retained intervals had zero
strict fault deltas; the operator confirmed clean MAIN/D1/D2 cue sound.
JC1060, DDJ-400, other controllers and real Pro DJ Link peers remain development
configurations awaiting physical qualification. Recorder and SD experiments
are disabled. Unrun deck/format, source-cue reimport/cross-media, shifted/touch
load-lock and active removal/cancellation variants remain explicit limitations.
Signed service rollback remains available; normal pull OTA offers only newer
versions. App-only OTA does not migrate the partition table.
Artifacts:
main-deck-p4.bin: 2,570,752 bytes, SHA-256
d93de2ce1e788dd167c2a87dffd1908e2202c1bf399a8a6ba5c25f75e0224caamain-deck-p4.ddjota: 2,570,940 bytes, SHA-256
9810b31ece270c7b406be2eb605331ad460e83dc06134519e57498cb6270d069manifest.json/manifest.sig: signed outer release manifest.
Detailed acceptance and retained limitations are in the integration branch:
release record.
Pajoniiir M2.5 development pre-release (M2.4-7-gb8d9cb7)
Development pre-release for M2.5 controller-profile support, using the exact firmware already installed and tested on the P4: M2.4-7-gb8d9cb7, source commit b8d9cb7bbf73b86d3379e8c8a9eb9c7f4417958a.
Changes
- Add S3CP v3 scaling of 7-bit MIDI CC mixer/tempo values to the P4 14-bit range, preserving endpoints and center.
- Retain S3CP v2 profile compatibility; update both runtime and SD/upload validation for v3.
- Preserve mixer snapshot replay while excluding tempo replay.
- Expand the experimental original Numark DJ2GO2 profile to 27 controls. Other controller mappings remain partial; profile validity is not hardware qualification.
Verified
- ESP-IDF v6.0.2 build and full P4 host suite, including profile installation and FLX4 parity tests.
- Signed opposite-slot OTA, automatic USB0/FLX4 recovery and a 324-track library.
- Dual-deck playback telemetry, subsequent software reboot and persistence of the 512-byte Numark v3 profile.
- Operator confirmed clean MAIN/cue and normal FLX4 controls/LEDs without power cycling or USB removal.
Limits and installation
Additional controllers were unavailable for physical tests. Numark, S2 MK3, FLX10 and REV7 hardware, LED, reconnect and audio acceptance remain open; REV1 still lacks confirmed VID/PID. This is not the final M2.5 release.
Use main-deck-p4.ddjota for local signed P4 OTA, with stable power and playback stopped. The raw .bin is for wired recovery only. Install this firmware before any S3CP v3 profile; M2.4 rejects v3. Existing v2 profiles remain supported. Controller profiles are not installed by the OTA bundle.
The production OTA channel remains on M2.4. This pre-release does not deploy the public Web Profile Builder.
Artifact identity
- Image: 2,505,392 bytes; SHA-256
0e9caf717808adbe2be526a10f59ddf768c1119eb2c914ccfe6b4fae15005d6c. - Signed OTA bundle: 2,505,580 bytes; SHA-256
425aecff679f9e71e0b86aec80f0c99f555a06a6a1c0ba1aa1fcfb376c4cd44d. - Signing key ID:
rel-001.manifest.jsonandmanifest.sigprovide the signed release manifest.
Pajoniiir M2.4
Pajoniiir M2.4
M2.4 supersedes M2.3 after the first live production pull check on M2.3 exposed an ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED against the current cross-signed edge certificate chain.
The release enables ESP-IDF certificate-bundle cross-signed-chain verification. CA validation and hostname verification remain mandatory. Playback, controller, UI, DSP and audio code are unchanged from M2.3.
Verified
- exact tagged ESP-IDF v6.0.2 production build;
- full P4 host regression suite and GitHub Actions;
- signed
.ddjotabundle and detached manifest signature verified with the firmware trust key; - installed on physical ESP32-P4 as
M2.4inota_1, boot epoch 559; - live HTTPS pull discovery succeeded against the production channel and correctly rejected the older M2.3 offer;
- no new PCM underrun, UAC data-loss, packet/drop/overflow, USB daemon/recovery, log-drop or TWDT fault on the installed image.
Accepted deferred checks
- duplicate raw track-ID exact-image repetition;
- Rekordbox cue/loop comparison.
Pajoniiir M2.3
Pajoniiir M2.3 production maintenance release.
Source and build:
- immutable tag commit:
b9d6bf1b5ea4992312669a7679f73a31d011b791 - ESP-IDF:
v6.0.2 - firmware size:
2505648bytes - firmware SHA-256:
5a0051b3e449db85125f57cbc05b1f507c543097af07d988c469315919222ca2 - signed OTA bundle size:
2505836bytes - bundle SHA-256:
31050432dfe2f3ebc5901692081ba54f7ddafd6c35e1286aeca18d427a1a495e - signing key ID:
rel-001
The signed bundle was installed on the production P4 (ota_0, boot 558) and passed cold-boot USB0/FLX4 recovery, playback, strict health counters, and operator-confirmed clean MAIN/headphone cue.
Accepted scope limitations:
- exact-M2.3 duplicate raw track-ID repetition: NOT RUN — OPERATOR ACCEPTED; the same gate passed on
M2.2-37-g751d3c6. - real Rekordbox cue A/C and loop slot/time comparison: NOT RUN — OPERATOR ACCEPTED.
Pajoniiir M2.2-13 OTA review candidate
This prerelease contains the exact signed P4 image validated through the public production OTA path on 2026-09-24.
- Source commit:
e0f9add1e1a76bc49eac7e155bf8ac8142737b11 - Installed image:
M2.2-13-ge0f9addonota_1 - Signed bundle verification: PASS with release key
rel-001 - Public pull OTA: PASS on controlled retry
- Post-install dual-deck smoke: PASS
- 180-second FLAC/MP3 dual-deck soak: PASS with zero PCM, output-late, UAC, USB daemon and service-log error counters
The first pull-install attempt reset the previous M2.2-12-g626c2d9 image with a retained controller_usb/IDLE0 task-watchdog summary before the candidate slot booted. The clean controlled retry completed successfully. This intermittent watchdog remains an open release-assessment finding.
This is a review candidate and does not replace stable M2.2. The public latest.json production channel remains on M2.2.
Asset hashes:
main-deck-p4.bin:eb3439702c3c590c1ff8a24df3fb19f47cbbd8671b41d2e7c3b91b3edc6d2624main-deck-p4.ddjota:b5b48161fa5cc346b2b55a2e7f4296672b59aa8211bb228bcce859b0825db959
Pajoniiir M2.2
Pajoniiir M2.2 upgrades the embedded Wi-Fi Remote controller while preserving the M2.1 dual-deck firmware baseline.
Highlights:
- redesigned responsive desktop, landscape and portrait web controller
- authoritative deck SYNC state and backend action support
- single-commit waveform seek semantics with safe cancellation
- offline embedded assets and improved accessibility/browser zoom
- seven browser contract tests integrated into the P4 host regression suite
Qualification:
- GitHub Actions run 35792104604 passed host regressions, UI simulator and ESP32-P4 build gates
- exact annotated M2.2 tag built with ESP-IDF v6.0.2
- signed rel-001 OTA installed on hardware and booted from ota_0
- USB0 mounted with 324-track library, zero host errors, PCM underruns, UAC loss, TWDT and output-late events
- live M2.2 HTML and reversible SYNC ON/OFF smoke passed
Use main-deck-p4.ddjota for signed OTA updates. main-deck-p4.bin is for wired recovery only.
Pajoniiir M2.1
Pajoniiir M2.1 production release.
Frozen source: 70824d24dbb1c8d72d19f15797afa2946c5eb909
Toolchain: ESP-IDF v6.0.2
Installed and accepted: M2.1 / ota_1
The exact tagged image passed the clean build, ECDSA P-256 signed-package verification, signed OTA installation, dual-USB/dual-deck strict-counter smoke, and operator-confirmed audio, display and touch smoke.
Assets:
main-deck-p4.ddjota: signed OTA bundle for normal updatemain-deck-p4.bin: raw application image for wired recovery onlymanifest.jsonandmanifest.sig: release metadata and ECDSA signature
Public OTA channel: https://ota.pajoniiir.eu/latest.json
Validation record: https://github.com/dvucinozd/Pajoniiir/blob/master/docs/validation/M2_1_PRODUCTION_RELEASE_20260920.md
Accepted M2.1 boundaries: shared service credential, no SBOM, and Secure Boot/Flash Encryption/security eFuses deferred on the sole P4 board. Encrypted offline primary and separately stored backup signing-key copies are operator-confirmed; recovery signing from the backup is operator-accepted as deferred maintenance. Multi-key trust overlap is required only before a future planned key rotation.