This is a repository containing all reverse engineering data i can find about the internal SPI bus of my CDJ800 Mk2s.
My goal is to replace the MAIN
board with a microcontroller and enable them to control a software via MIDI of USB-HID.
As of now, I won't have a working CDJ anymore to continue working on this...
I fried the one I had on hand while rerouting the debug wiring Feel free to fork this and/or add to it
0x00 | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | 0x10 | 0x11 | 0x12 | 0x13 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x01 | 0x10 ? | ? | VNLS | PITH | PITL | JGPH | JGPL | JGAH | JGAL | JTCH | BTN1 | BTN2 | BTN3 | BTN4 | BTN5 |
All the BTN registers are ON
when pushed and OFF
when not.
Single uint_8
Vinyl Speed Adjust rotary knob.
16 bits Integer
PITH (pitch high byte) and PITL (pitch low byte)
Pitch fader value
16 bits Integer
JGPH (jog position high byte) and JGPL (jog position low byte)
Jog Wheel relative position value (allows to determine the way of rotation)
16 bits Integer
JGAH (jog acceleration high byte) and JGAL (jog acceleration low byte)
Jog Wheel acceleration (deceleration actually, stands by at 0xFFFF
)
0x10
- Loop In0x20
- Reverse0x40
- Loop Out0x80
- Cue
0x01
- Play0x02
- Loop Exit
0x01
- Previous Track0x02
- Next Track0x04
- Search Forward0x08
- Search Backward
0x01
- Previous Folder0x02
- Next Folder0x04
- Quick Return (not tested)0x08
- Eject0x10
- Jog Mode0x20
- Tempo Wide / 10%0x40
- Master Tempo
0x01
- Call Next Cue0x02
- Call Previous Cue0x04
- Memory0x08
- Delete0x10
- Text Mode0x20
- Time Mode
This one still has to be reverse engineered. But this seems to be a complete frame, with no CD in, on starup.
A few stuff that caught my eye :
- The last column is a CRC (same as documented for the CDJ1000).
- The 18th (before last) seems to describe the jog wheel indacator state (same as documented for the CDJ1000);
- Bytes
0x0b
,0x0b
&0x0d
of package0x20
seem related to the pitch (BPM values maybe ?) 0xd0
or0x47
seems to be related to the vinyl mode
Counter | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 | 0x08 | 0x09 | 0x0a | 0x0b | 0x0c | 0x0d | 0x0e | 0x0f | 0x10 | Jog | CRC |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | 0x50 | 0x11 | 0x50 | 0x00 | 0x01 | 0x04 | 0x10 | 0x10 | 0x15 | 0x00 | 0x00 | 0x00 | 0x58 | 0x00 | 0x00 | 0x00 | 0x00 | 0x43 |
0x10 | 0xf0 | 0x2b | 0x81 | 0x04 | 0xb8 | 0x40 | 0x08 | 0xa1 | 0x3f | 0x00 | 0xb3 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x33 |
0x20 | 0xa8 | 0x20 | 0x88 | 0x80 | 0x02 | 0x0a | 0x28 | 0x88 | 0x0a | 0x00 | 0xee | 0xb6 | 0xd6 | 0x00 | 0x00 | 0x00 | 0x00 | 0x10 |
0x30 | 0xa6 | 0x36 | 0xf0 | 0xc1 | 0x13 | 0x0f | 0x3d | 0x70 | 0x6a | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0xc6 |
0x40 | 0x02 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x02 |
0x50 | 0x00 | 0x00 | 0x00 | 0x00 | 0x04 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0xd0 | 0x47 | 0x00 | 0x00 | 0x00 | 0x00 | 0x1b |
I guess its complicated since its actually proprietary stuff ?
If u want to use this data, I don't mind, just please credit me a little.
And keep me updated i'm interested about what can be done with it !