Standalone engine
The ESP32-P4 owns playback, mixer state, DSP and the UI. No performance computer is required.
Web Remote
Control decks, mixer, library and maintenance functions from a phone, tablet or laptop.
Dual USB roles
Separate USB hosts serve music storage and controller MIDI/audio. Connector numbers depend on the board and experiment.
Signed OTA
Local browser upload and service-network pull updates both validate signed firmware packages.
Choose your board
JC4880, JC1060 and M3 share the playback, library, controller, UI, web and OTA core. Their peripherals, USB connector labels, audio outputs and network providers differ.
| Board | Display | Ordinary controller / music ports | MAIN / cue | Network / signed OTA package |
|---|---|---|---|---|
| JC4880P443C_I_W | 800 × 480 | Controller USB1 / music USB0 | PCM5102A RCA MAIN / controller headphones | Wi-Fi Pajoniiirmain-deck-p4.ddjota |
| JC1060P470C_I_W_Y | 1024 × 600 | Controller USB0 / music USB1 | Controller USB MAIN / headphones; no PCM5102A | Ethernet provider; no Wi-Fimain-deck-jc1060.ddjota |
| JC-ESP32P4-M3-DEV | EYOYO DSI506 5-inch, 800 × 480 / FT5426 touch | Controller USB2 FS / music USB3 HS; USB1 supply/debug | PCM5102A GPIO1/2/3 MAIN at 48 kHz / controller headphones | Wi-Fi Pajoniiir-M3, default ONmain-deck-m3.ddjota |
JC1060 physical acceptance is NOT RUN, deferred to contributor Kayrosen. Its beta kit and first-test handoff define the bring-up scope. JC4880's later short Hercules checks are accepted on their recorded image; its long soak was explicitly waived, not passed. Historical M3/controller campaigns remain tied to exact images. See board policies and electrical/wiring instructions.
Supported DJ controllers
Use the matching compiled controller profile and firmware configuration. A profile being available does not establish complete physical support on every board.
| Controller | Support status | Audio and setup | Coverage and limits |
|---|---|---|---|
| Pioneer DDJ-FLX4 | Reference controller; stable JC4880 and accepted historical M3 configurations | USB MIDI/LED + UAC1 headphone cue; ordinary board port policy | Transport, mixer, jogs, pads, loops and effects. Mapping and evidence. |
| Hercules DJControl Inpulse 500 | Beta support; tested on M3 and JC4880 | UAC1 headphones with native Mix/Volume; M3 requires the matching USB3-controller experiment | M3 exact-image hour and JC4880 short functional blocks accepted. Individual pad/FX/LED coverage is partial; controller RCA MAIN is unqualified. Control mapping. |
| Native Instruments Traktor Kontrol S2 MK3 | Experimental M3 support; operator-closed with waivers | MIDI mode and HS UAC2 headphones; USB3 controller / USB2 music | Historical 48/44.1-kHz hours accepted on exact images. Remaining checks were waived; other boards are unqualified. Support scope. |
| Pioneer DDJ-400 | Software profile; hardware NOT RUN | Shared MIDI/LED and USB audio implementation | Local MIDI/LED/audio/reconnect qualification is pending; eight memory-call/store/delete inputs are omitted. Profile limits. |
Controller setup
- Choose the appropriate board image and port policy. Keep the reference FLX4 arrangement unless using a documented experiment.
- For S2 MK3, hold the left FLX button while connecting USB to enter MIDI mode; release after the green flash. Hercules connects normally without holding buttons.
- Install only a matching compiled
profile.s3binthrough the profile service, then confirm the active profile and MIDI/audio availability. The beta includes profiles separately from firmware. - Raise headphone volume gradually. Enable D1/D2 PFL before judging cue sound; native Hercules headphone Mix/Volume controls act on the controller itself.
A limited S2 basic profile and generic MIDI-CI fixture are also supplied for development; these are not additional hardware-qualified DJ models. Full support and historical acceptance are detailed in the repository's controller records.
Quick start · JC4880 / FLX4 reference
The ESP32-P4 is the sole runtime authority. It plays the tracks, owns deck and mixer state, drives the display and communicates directly with the FLX4. The physical controller, touch UI and browser Remote Control all operate the same P4-owned state; no performance computer is required.
For M3 or JC1060, substitute the ports, audio and network provider in the board table; the steps below retain the JC4880 reference setup.
Pajoniiir, then open http://pajoniiir.local or http://192.168.4.1.Connections and signal roles · JC4880 reference
| Function | Connection | Use |
|---|---|---|
| Music library | USB0 host | Rekordbox storage / MSC medium |
| DJ controller | USB1 host | DDJ-FLX4 MIDI IN/OUT + 4-channel USB Audio |
| MAIN program | PCM5102A / RCA | Main stereo output to amplifier/mixer |
| Headphone cue | DDJ-FLX4 headphones | UAC channels 3/4 monitor/cue |
| Local user interface | P4 display / touch | Overview, Library, Hot Cues and Settings |
| Remote user interface | Wi-Fi Web Controller | Browser-based deck, mixer, library and maintenance controls |
| Service / recovery | Wi-Fi or P4 service connector | Diagnostics, profile service, signed OTA and wired recovery |
Power note: downstream USB VBUS must be protected and current-limited. Do not join independent supplies with a passive Y-cable and do not inject raw 5 V into USB-C pins.
On-device display
The P4 LVGL interface provides the primary stand-alone visual surface. It remains independent of whether Wi-Fi Remote is enabled.





Overview
The previous waveform and transport layout is retained, with key, bounded artwork, memory-cue markers and load/error state.
Library
Browse the USB collection and ordered Rekordbox playlists/folders. The FLX4 encoder selects a track; LOAD 1 / LOAD 2 requests the destination. LOAD LOCK normally rejects replacement while that deck is playing. Pause it first.
Hot Cues
Eight effective hot-cue slots merge source cues with persistent local edits/deletions. Up to 16 separate memory points/loops are shown with truncation status. Hold HOLD RESTORE only when you intend to restore source cues; a short tap preserves edits. Exhaustive source-import/touch comparison is not physically qualified.
Settings
Contains device/service controls including P4 Remote / Wi-Fi Remote, load lock and jog mode. Wi-Fi startup is asynchronous. Network Link and recorder controls are hidden when the build does not support them.
Browse rotate / press
Rotate to move the Library selection. Press toggles Library and Overview; it does not load a deck. Navigation preserves the current location and selection.
Idle screensaver
The default timeout is 2 minutes. The first touch or controller action restores the previous screen and is consumed. A first PLAY wakes only; press PLAY again to start. Touch wake does not activate the control underneath. Playback inhibits idle sleep. Screensaver/restore software regression remains covered separately from physical panel acceptance.
DDJ-FLX4 core controls
The DDJ-FLX4 is the main physical performance surface while the P4 owns playback, mixer state and DSP. Controller LEDs are driven from P4-owned state.
PLAY / PAUSE
Starts or pauses the selected deck. If the screensaver is active, the first press only wakes the screen; the next press performs PLAY.
CUE
Paused cue setting, held preview and release-to-cue share the deck transport rules. PLAY while CUE is held can continue playback; advanced touch/held-disconnect variants remain outside focused v91 acceptance.
JOG
VINYL platter touch scratches; CDJ mode bends. SHIFT+jog search is implemented. Focused both-deck scratch listening passed.
TEMPO / MASTER TEMPO
SHIFT+Beat Sync cycles ±6%, ±10% and ±16% (default ±10%). Focused CUE/PLAY/MT and combined scratch/MT sound passed on v91.
BEAT SYNC
JC4880 matches the other local deck BPM and performs one-shot beat-phase alignment when grids are available. Ethernet continuous following belongs to the unqualified JC1060 Link configuration.
LOOPS
IN, OUT, halve, double and RELOOP/EXIT are implemented. Focused MP3/WAV/FLAC operator tests passed after the manual-FLAC-loop correction. Advanced shifted/adjust and other deck/format combinations require separate acceptance.
Mixer and monitoring
| Control | Current behavior |
|---|---|
| Channel faders / Crossfader | Implemented and hardware verified |
| Master Level / Trim | Implemented; hardware-smoked / verified |
| EQ High / Mid / Low | Implemented in P4 DSP |
| CH1 / CH2 CUE | PFL toggle to headphone cue path |
| Headphones Mix / Level | Implemented; FLX4 USB headphone path hardware-smoked |
| Master Cue | Implemented with P4-owned state and LED feedback |
| Smart CFX | P4 filter-DSP macro with LED state |
| Smart Fader | P4 transition-assist behavior with LED state |
Performance pads and effects
Hot Cues
Hot Cue pads 1–8 are implemented on both decks for set/recall. SHIFT + Hot Cue pad clears the corresponding cue. The normal pad LED state is P4-owned and restored after reconnect.
Beat Jump / Beat Loop
Beat Jump pads and normal/shifted Beat Loop pads are implemented; the core pad behavior has hardware acceptance on both decks. Shifted Beat Jump size-page controls remain outside the inherited M2.1 control subset.
Pad FX
Pad FX1 and Pad FX2 input ranges are implemented in the P4 DSP path. Filter/Echo pad behavior and Echo release-tail operation have hardware smoke coverage; use those as the inherited M2.1 Pad FX evidence.
Beat FX
Beat FX target, depth and ON/OFF are P4-owned. FILTER and ECHO have hardware acceptance. FLANGER and DELAY are implemented in DSP but remain outside the inherited fully qualified M2.1 effect subset.
Intentionally out of scope
Keyboard/Stems, Sampler and Key Shift pad modes are intentionally ignored in the standalone product. Some additional shifted FLX4 functions are mapped for compatibility or testing but are not part of the accepted standalone workflow.
Standalone behavior
Pajoniiir does not attempt to clone every rekordbox-on-PC behavior printed on the FLX4. The supported behavior is the P4-owned standalone mapping described in this manual and the project MIDI map.
Rekordbox USB library
Use the music port assigned to your board (USB0 on the JC4880 reference build). The P4 reads the exported library and analysis data, exposes tracks in Library, and uses available BPM, beatgrid, waveform and cue information.
Accepted focused audio formats
Real MP3, PCM16 RIFF/WAV and FLAC playback passed on v91 with normal speed and clean MAIN/cue, including 96 kHz/24-bit FLAC. WAV float, 24/32-bit PCM and extensible WAV are unsupported.
Metadata and browsing
Rekordbox title/key, beat number 1 as downbeat, ordered playlists, artwork and PWV4 color preview are implemented. Missing optional images/waveforms do not block audio. Exhaustive real-export comparison remains NOT RUN; software coverage is not physical acceptance.
Local browsing
Use Library or FLX4 Browse/LOAD. Load lock protects a playing destination; local cue edits persist across reload/reboot.
Remote browsing
The Web Controller searches the same USB library by title/artist and requests D1/D2 loads through the same admission rule.
For best results, prepare the medium with Rekordbox export before use. Do not remove USB0 while a track is loading unless you are intentionally testing recovery behavior.
Embedded Web Controller
Pajoniiir contains its own HTTP web server and browser-based remote interface. The page is served directly by the P4; it is not a cloud service and does not require an external web server. A phone, tablet or laptop connected to the device AP can become an additional operator surface.
Open the Web Controller
Pajoniiir.Pajoniiir.http://pajoniiir.local. If mDNS is unavailable on the client, use http://192.168.4.1.What the browser can control
Deck 1 / Deck 2
- Track title and artist
- Playback state
- Elapsed / remaining time
- BPM and pitch
- PLAY / PAUSE and CUE
- 4-beat loop and loop clear
- Tempo/pitch control
- Tap/click progress to seek
Mixer
- CH1 and CH2 channel faders
- CH1 / CH2 PFL cue
- Crossfader
- Master level indication based on the real master limiter peak
USB Browser
- Reads the active board music library
- Searches title and artist
- Shows BPM
- Loads tracks to D1 or D2
- Refreshes if the underlying library generation changes
Controller Profile
- Reads available controller profiles
- Accepts compiled
profile.s3bin - Profile ID / SD directory selection
- Optional overwrite
- Format and CRC are validated before replacement
P4 Firmware Update
- Reads firmware status
- Uploads signed
.ddjotabundles - Shows transfer progress
- Stops playback during update
Update Server
- Stores service-network SSID
- Stores passphrase locally
- Stores update base URL
- Tests STA connectivity
- Checks for a newer release
- Downloads and installs an offered signed release
The browser polls live status frequently and continuous sliders are rate-limited before commands are sent to the embedded HTTP server. If the connection indicator goes offline, stop issuing commands and verify the Wi-Fi state before continuing.
Pajoniiir with WPA2/WPA3 transition mode; M3 uses Pajoniiir-M3 with WPA2 and Wi-Fi enabled by default. Both use the AP address 192.168.4.1 and default password Pajoniiir. JC1060 has no Wi-Fi; use its Ethernet-assigned address and separately qualify network readiness.Wi-Fi AP and STA modes
The AP provides local browser control; the STA uplink reaches a service network. JC4880 temporarily leaves its AP during service visits. M3 keeps AP services alive while adding the STA uplink (AP+STA); clients may briefly reconnect when the radio changes channel.
Normal Remote Control
Pajoniiir creates its own local Wi-Fi network. This is the normal browser-control state.
Temporary Service Visit
The deck joins an external service network. JC4880 restores its AP afterward; M3 retains AP services during the uplink and removes STA afterward.
| Mode | Purpose | Web Controller | Addressing | What happens next |
|---|---|---|---|---|
| AP / SoftAP | Normal Remote Control mode. Pajoniiir creates its own local Wi-Fi network. | Available | Device: 192.168.4.1/24mDNS: pajoniiir.local | JC4880 leaves AP for service visits; M3 retains it during the STA uplink. |
| STA | Temporary maintenance/update visit. Pajoniiir joins a configured external service network. | JC4880: unavailable during STA M3: AP retained; brief reconnect possible | Receives an IPv4 address by DHCP from the external network. | After service, JC4880 restores AP/web; M3 removes its uplink while retaining AP/web. |
AP / SoftAP — normal remote operation
Network identity
SSID: Pajoniiir (JC4880) / Pajoniiir-M3 (M3)
Default password: Pajoniiir
Security: JC4880 WPA2/WPA3 transition; M3 WPA2
AP IPv4: 192.168.4.1
Netmask: 255.255.255.0
Wi-Fi channel: 6
Client capacity and local-only behavior
The firmware allows up to four associated AP clients. This is a local service network; Pajoniiir intentionally does not present itself as the client's Internet router. A browser and a second service device can therefore coexist without the deck pretending to provide Internet access.
Pajoniiir network has no Internet connection. That does not mean the Remote Control is broken. Stay connected and open http://192.168.4.1 manually. The design intentionally avoids installing a useless default Internet route through the deck.The firmware also advertises the mDNS hostname pajoniiir.local. mDNS support varies by operating system and client configuration, so the fixed AP address 192.168.4.1 is the recovery/fallback address.
STA — temporary service/update network
STA exists so the deck can temporarily reach an external network, primarily for update-server connectivity. It is not the normal browser-remote mode. JC4880 stops its AP web/DNS services for the visit, waits for service-network DHCP, performs the operation and restores AP/web afterward. M3 retains its AP netif, lease and HTTP/DNS services during the added STA uplink; a radio channel change can briefly interrupt a client. Neither behavior makes the AP an Internet router.
Web Remote available→service STA uplink
JC4880 leaves AP; M3 retains AP→service action
probe / check / download→service visit ends
check/reconnect board AP
TEST CONNECTION
On JC4880 the deck may leave its AP for up to approximately 25 seconds; M3 retains AP services, with a possible brief client reconnect. It verifies saved service-network association and DHCP, then ends the uplink; no firmware is installed. The test itself does not install firmware.
CHECK FOR UPDATE
JC4880 may leave its AP for up to approximately 30 seconds while checking the server. M3 retains AP services during its uplink. Nothing is installed during the check; the AP is restored afterward.
Updates, beta installation and controller profiles
The current P4-only product has two signed firmware-update workflows: local browser upload while connected to the Pajoniiir AP, and a pull-update flow that temporarily joins a configured service network.
Connect
Join the Pajoniiir AP for local OTA, or save the external service-network settings for pull OTA.
Verify
The update path validates the signed package, target metadata and image integrity before activation.
Restart & check
After restart, reconnect and verify firmware status, USB library, FLX4 control, MAIN audio and cue.
Before installing a beta
Download shared-p4-beta.2 from GitHub. The jc4880-beta-kit.zip, jc1060-beta-kit.zip and m3-beta-kit.zip include board identity, signed OTA, recovery files, configuration and SHA-256 inventories. Select by board/project, verify the signed manifest and checksums, and keep the matching debug archive. Beta2 retains the exact M3/JC4880 images with their recorded acceptance; JC1060 physical testing is still NOT RUN. After updating FLX4 firmware, start headphone LEVEL low and raise gradually: beta2 restores the cue level lost in the previous transport.
| Board | Signed local OTA file | Beta embedded version |
|---|---|---|
| JC4880 | main-deck-p4.ddjota | M2.5-215-g40e72fcb |
| JC1060 | main-deck-jc1060.ddjota | M2.5-215-g40e72fcb |
| M3 | main-deck-m3.ddjota | M3-dev-g40e72fcbf403 |
Historical M3 firmware named main-deck-p4 needs the preserving wired identity migration before main-deck-m3 OTA. Application OTA cannot change a partition table; verify board/layout before wired recovery and never perform an indiscriminate full-chip erase.
A. Local signed OTA upload
.ddjota for your board/project from the table above; cross-board packages are rejected..bin through the signed web-update path. Raw images are reserved for wired recovery or explicitly defined transition procedures. Normal browser OTA uses the signed .ddjota bundle.The P4 validates the signed package before activating the inactive OTA slot. The update design checks the embedded ECDSA signature and signed image metadata including image size/hash, chip, project and version. Wrong-target or tampered bundles are intentionally rejected.
B. Update Server / pull OTA
The UPDATE SERVER panel in the Web Controller configures the external network that the P4 may visit temporarily. It is separate from the normal Pajoniiir AP credentials.
| Web Controller field/action | Meaning |
|---|---|
| Wi-Fi network (SSID) | External service/update network that the P4 will temporarily join in STA mode. |
| Passphrase | Credential for that external network. The stored passphrase is not returned to the browser page. |
| Update base URL | Base location used by the pull-update service to discover/download releases. |
| SAVE | Stores the entered service-network/update configuration on the deck. |
| TEST CONNECTION | Temporary AP→STA→AP round trip. Verifies association and DHCP without installing firmware. |
| CHECK FOR UPDATE | Temporarily joins the service network and checks whether a newer valid release is offered. |
| INSTALL | Downloads the selected offered release, verifies it and restarts into the update flow. |
| CLEAR WI-FI | Forgets the saved update network, passphrase and update URL. |
C. Controller profile service
Upload only compiled profile.s3bin: M2.5 accepts S3CP v2/v3/v4. The compiler chooses the oldest representable version; bare historical M2.4 accepts v2 only. Never convert a profile by editing version bytes. Choose the SD profile ID and enable overwrite only intentionally. Length/CRC and binding epoch are validated; v4 initialization precedes LED feedback. Successful installation does not qualify a non-FLX4 controller.
D. API and remote-control safeguards
The embedded API accepts the canonical Pajoniiir host identity / active AP address and state-changing browser requests use a dedicated control-request marker. These checks are part of the current protection against accidental cross-site mutations and DNS-rebinding-style access. The AP is a local service surface. The shared service-password risk remains explicitly accepted for this deployment; firmware authenticity remains protected by signed OTA. Revisit per-device credentials before wider deployment if the exposure model changes.
Power, shutdown and handling
Before power-up
Use the accepted common-5 V / protected dual-VBUS wiring and enclosure arrangement. The inherited M2.1 bench electrical gate remains valid for the unchanged JC4880 topology; repeat and record the qualification after any wiring, supply, USB-power or enclosure change.
Before power-off
Stop playback and make sure no OTA, profile upload or service write is active. Avoid removing media during a load/write operation.
During OTA
Keep power stable until the update completes and the controller restarts. Do not use the unit for performance while firmware is being written.
During STA service
A JC4880 AP disappearance during service is expected; M3 retains AP services but may briefly change radio channel. Do not power-cycle merely because the browser loses contact during this controlled transition.
Transport
Disconnect USB and RCA cables before moving the unit. Protect connectors from lateral load and keep ventilation paths clear.
Recovery access
Keep the confirmed wired P4 service/recovery path accessible for current and future signed-release validation. Wired recovery remains the fallback for bootloader/partition/signing-baseline changes.
Troubleshooting
The Pajoniiir Wi-Fi network is not visible
Open Settings on the device and confirm Wi-Fi Remote is enabled. Allow the ESP-Hosted/C6 radio link time to start. If the feature was rapidly toggled, leave it enabled and allow the asynchronous worker to settle on the requested state.
My phone says “No Internet” after joining Pajoniiir
This is expected. The AP is a local control/service network and intentionally does not act as an Internet router. Stay connected and open http://192.168.4.1.
pajoniiir.local does not open
mDNS is not guaranteed on every client. Use the fixed AP address http://192.168.4.1. Also confirm you are actually connected to the Pajoniiir SSID.
The Web Controller status indicator is offline
Confirm the client is still on the Pajoniiir AP, then reload the page. If you just started TEST CONNECTION, CHECK FOR UPDATE or an update download, the AP may be intentionally unavailable while the P4 is in temporary STA mode.
The browser disconnects when I test the update network
On JC4880 this is normal: TEST CONNECTION leaves AP for STA association/DHCP and restores it. M3 retains AP services, though a radio channel change can briefly require client reconnection. The page can be unreachable for up to roughly 25 seconds. Reconnect to Pajoniiir when it returns.
CHECK FOR UPDATE makes the web page disappear
JC4880 can leave its AP for up to roughly 30 seconds while checking the external service; M3 retains AP services during its STA uplink. The check does not install anything. When the AP returns, reconnect/reload and read the resulting status.
The STA connection test fails
Verify the saved service SSID and passphrase, confirm that network is in range, and confirm its DHCP server can issue an IPv4 address. A Wi-Fi association without an assigned IP is not considered a successful service connection.
The Library is empty or USB0 is not detected
Confirm the Rekordbox medium is in the music port shown in the board table; USB0 applies only to the JC4880 reference setup. Re-seat the medium once, wait for the mount/library refresh, and confirm the device has a valid Rekordbox export. If the problem follows the medium, test another known-good export.
The first PLAY only wakes the screen
This is expected screensaver behavior. The first controller event wakes the GUI without executing the control; press PLAY again to start. Touch wake also consumes the initial touch.
The FLX4 controls do not respond
Verify the FLX4 is on the controller port for your board; USB1 applies to JC4880, USB2 to ordinary M3 and USB0 to JC1060. Confirm the controller is powered/enumerated and that the display/system is otherwise responsive. The current firmware has validated reconnect recovery, so a controlled disconnect/reconnect can be used after stopping playback if needed.
There is no MAIN audio
Check Deck PLAY state, channel fader, crossfader, Trim and Master Level. JC4880/M3 MAIN uses PCM5102A/RCA; JC1060 MAIN uses the controller USB audio path. Follow the board audio table.
There is no headphone cue
Headphones belong on the active controller. Enable CH1/CH2 CUE (PFL), then check headphone Mix and Level. Hercules uses its native headphone controls. The cue/monitor path uses FLX4 USB-audio channels 3/4.
A local OTA package is rejected
Use the signed OTA package matching your board/project in the update table. Wrong target, chip/project, key, signature, size, image hash, modified manifest or trailing data are intentionally rejected. Do not work around signature failures with a raw web upload.
The controller does not come back after an update
Allow normal startup and reconnect to the Pajoniiir AP. v91 returned AP/API and both USB roots automatically in its recorded OTA/reboot/rollback checks; a routine power cycle is not required by the current procedure. If a pending image cannot meet critical startup readiness within 60 seconds, it requests rollback. Check the restored version and save diagnostics before retrying. Wired recovery is available for boot/partition/trust failures and must target only the identified Pajoniiir board.
Stable M2.5 and shared P4 beta
Frozen release identity
Tag M2.5 identifies 20f1c3f04a615209ae25e9bbdae649d0f5b44e8d. The exact ESP-IDF v6.0.2 image is published; later documentation commits do not replace it. Previous tags remain immutable.
Accepted focused checks
Final M2.5 passed signed OTA, startup readiness, USB/FLX4 availability and 62.622211 seconds of dual playback with zero strict faults and operator-confirmed Overview/MAIN/D1/D2 cue. Real-cover/logo/page and normal media-return checks passed on the artwork candidate. Earlier format, transport, cue, reconnect and diagnostic rollback results remain tied to v91.
Published artifacts
Public OTA channel advertises M2.5. The signed bundle is 2,576,620 bytes, SHA-256 44db191c1785168781e9b2893cac6dda1b92a20a5342c328d7fbfdbbd8707e27. GitHub release and HTTPS assets were independently downloaded and verified.
Accepted exception and limits
A new final M2.5 180-minute soak was explicitly waived because audio code is unchanged. No M2.5 long-soak PASS is claimed. Older v91 segmented evidence remains image-specific. Advanced touch/shift, source-cue reimport/cross-media and active-removal variants remain unrun. Shared credentials and deferred Secure Boot/Flash Encryption/eFuses retain controlled physical access and signed-OTA requirements. See the release record.
Development configurations and collaboration
A-L integration is merged into master. Modules, fixes and ideas from collaborator kayrozen include richer metadata, seek/cue/loop handling, DDJ-400/JC1060 work and Pro DJ Link. Provenance and software evidence retain his frozen donor revision. JC1060 physical testing is deferred to Kayrosen; DDJ-400/real Link hardware remains NOT RUN; JC4880 has no Link provider. Preview, recorder and SD experiments stay off in production. APTA remains separate.
40e72fcbf403a1650185a4c64509dd11bba9f73f, three fresh ESP-IDF 6.0.2 builds, signed packages and all fifteen downloaded asset hashes verify. These exact beta images are not installed or physically accepted. Earlier M3/Hercules/S2 hours retain their exact image/configuration; S2 is operator-closed. JC4880 long soak is explicitly waived, NOT RUN; JC1060 physical checks await Kayrosen. Hosted CI and wider real-media/controller gates retain explicit limits. Beta delivery record · Final support handoff.