Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/gueritta/primemixxx/llms.txt

Use this file to discover all available pages before exploring further.

The Denon Prime Go and Prime 4 share the same Rockchip SoC platform running a stripped-down Buildroot Linux environment — no X11, no Wayland, no conventional desktop stack. This page documents the physical hardware specifications, on-device paths, MIDI control layout, and LED protocols needed when developing or debugging primemixxx.

Hardware Specifications

ComponentDetail
SoCRockchip RK3288 ARMv7 (Cortex-A17, 4 cores)
GPUMali-T76x (4 cores, r1p0 0x0750)
Kernel6.1.111-inmusic-2024-09-19-rt41 with PREEMPT_RT
OSStripped-down Buildroot Linux — no X11, no Wayland
Display7-inch touchscreen, LVDS-1, portrait framebuffer 800×1280 rotated to 1280×800 landscape
TouchscreenILI2117 on /dev/input/event0
AudioXMOS XS1-U6A USB audio controller → AKM AK4621 CODEC + AK4413 DAC
MIDIInternal USB MIDI (platters, faders, pads all exposed as MIDI controllers)

Device Access

MethodAddress
SSH (USB Ethernet gadget)root@192.168.42.1
SSH (WiFi / mDNS)root@primego.local
Passworddenonprime4
Use the USB Ethernet gadget (192.168.42.1) for large file transfers and long debugging sessions — it has no dropout risk. WiFi (primego.local) is convenient for quick commands but drops after ~30 seconds of silence without a keepalive.

Device Paths

PathPurpose
/media/az01-internal/SD card mount (MIXXX bundle lives here)
/data/Internal storage
/media/TKGL_BOOTSTRAP/TKGL SD card bootstrap mount
hw:JP11,0ALSA audio device
/dev/input/event0Touchscreen (ILI2117)
/sys/devices/platform/ffa30000.gpu/Mali GPU sysfs
/dev/dri/card0DRM display card

Sound Cards

card 0 [Surface]: USB control surface (MIDI/HID — no audio)
card 1 [JP11]:    XMOS XS1-U6A main audio interface
The JP11 card (card 1) is the audio interface. The Surface card (card 0) carries only MIDI/HID — it does not route audio.

Mali GPU

The device GPU is hardware revision r1p0. Buildroot ships the Mali DDK at r0p0 by default, which is ABI-incompatible with the on-device kernel driver. Any bundled libEGL.so / libGLESv2.so built against r0p0 will fail EGL initialization at runtime.
# Check GPU hardware revision
cat /sys/devices/platform/ffa30000.gpu/gpuinfo
# r1p0 0x0750

# Set performance governor for reduced rendering latency
echo performance > /sys/devices/platform/ffa30000.gpu/devfreq/ffa30000.gpu/governor
See Troubleshooting for the Mali DDK mismatch symlink fix.

Device Trees

Product codes and device tree source files for both devices live in the devicetrees/ directory of the repository:
Product CodeHardware
JC11Denon Prime 4
JP11Denon Prime Go
The JP11 product code appears throughout MIDI channel names, ALSA device names, and firmware image filenames.

Deck Controls Reference

Source: JP11_Controller_Device.qml, JP11_Controller_Assignments.qml. Deck channels: 2 = Left, 3 = Right (0-indexed QML); MIXXX channels 3 and 4 respectively.
ControlNoteCCLED TypeMIXXX Input
Load0x01 (L) / 0x02 (R)SimpleLoadSelectedTrack / shift = eject
Sync0x08sync_enabled toggle
Cue0x09Simple ✅cue_default / shift = set_cue_point
Play0x0ASimple ✅play toggle
HotCue Mode0x0BRGBPad mode: CUES
Loop Mode0x0CRGBPad mode: LOOPS
Roll Mode0x0DRGBPad mode: ROLL
Pads 1–80x0F0x16RGBhotcue_N_activate / shift = hotcue_N_clear
Pitch Bend −0x1Drate_temp_down_small
Pitch Bend +0x1Erate_temp_up_small
Jog Touch0x21engine.scratchEnable
Vinyl0x23SimpleToggle vinylMode (edge-detect)
AutoLoop Push0x27Simplebeatloop_activate / shift = beatlooproll
AutoLoop Turn0x20Simplebeatloop_size / shift = beatjump_size
Pitch Fader MSB0x1Frate (14-bit with LSB)
Pitch Fader LSB0x4Brate LSB
Jog Wheel MSB0x37jogWheel.inputWheelMSB
Jog Wheel LSB0x4DjogWheel.inputWheelLSB

Mixer Channel Controls Reference

Channels: 0 = Left (MIXXX ch 1), 1 = Right (MIXXX ch 2).
ControlNoteCCLED TypeMIXXX Input
PFL0x0DSimplepfl toggle
Filter FX Select0x0EFilter effect enable
Wash FX Select0x0FWash effect enable
Trim0x03pregain
Treble0x04[EqualizerRack1_ChannelN_Effect1], parameter3
Mid0x06parameter2
Bass0x08parameter1
Filter / Sweep0x0A[QuickEffectRack1_ChannelN], super1
Sweep FX Knob0x0B[QuickEffectRack1_ChannelN], super1
Fader0x0Evolume
VU Meter0x20 (L) / 0x21 (R)CC outVuMeter engine output

Global Controls Reference

Channel: 15 (0-indexed QML) = MIXXX channel 16 (0x9F Note On).
ControlNoteCCLED TypeMIXXX Input
Back0x03Simple[Library], MoveFocusBackward
Forward0x04Simple[Library], MoveFocusForward (shift = Quantize)
Browse Encoder Push0x06Simple[Library], GoToItem
View0x07Simple[Master], maximize_library toggle
Shift0x08SimplePrimeGo.shiftButton
Eject / Source0x14hasLedEject (shift = Source select)
Browse Encoder Turn0x05SimplePrimeGo.browseEncoder (shift = 15-step scroll)
Cue Mix0x0C[Master], headMix
Cue Gain0x0D[Master], headVolume
Crossfader0x0E[Master], crossfader
Mic 10x24Mic on/off + talkover
Mic 20x25Mic on/off

FX Controls Reference

Channel: 4 (QML) = MIXXX channel 5 (0x94 Note On).
ControlNoteCC
FX Activate0x06
FX Select Push0x07
FX Time Push0x08
FX Select Touch0x09
FX Assign 10x0B
FX Assign 20x0C
FX Wet/Dry0x04
FX Select Turn0x21
FX Time Turn0x22

LED Protocols

SysEx RGB (LedType.RGB)

Per JP11_Controller_Device.qml:
F0 00 02 0B 7F 0C 03 00 05 <ch_hex> <idx_hex> <r_hex> <g_hex> <b_hex> F7
  • Gamma: 3.5 (padGamma is also 3.5 for pad indices 15–22)
  • Color calculation: Math.floor(Math.pow(c, gamma) * 127) where c is normalized 0–1
  • Used by: Action Pads (notes 0x0F0x16), Performance Mode buttons
const sendSysexRGB = function(channel, control, red, green, blue) {
    const msg = [0xf0, 0x00, 0x02, 0x0b, 0x7f, 0x0C, 0x03, 0x00, 0x05,
                 channel, control, red, green, blue, 0xf7];
    midi.sendSysexMsg(msg, msg.length);
};

Simple Note On/Off (LedType.Simple)

Note On:  9<ch> <idx> <vel>    (vel > 0 → LED on, color from palette)
Note Off: 8<ch> <idx> 00       (fully off)
Confirmed working for: Cue, Play, Load, Back, Forward, Browse Encoder Push, View, Shift, AutoLoop, PFL, Vinyl.
ValueColorUsed For
0x00Fully offAll off states
0x01Very dim glowLoad (empty)
0x02Subtle dimBack, Forward (always lit)
0x09Dim yellowShift off
0x0CGreenPlay on, Load (track loaded)
0x1AAmber / orangeCue on
0x20Bright greenSync on
0x40RedVinyl on

Build docs developers (and LLMs) love