Update README with accurate hardware details and PCB render
- Add PCB 3D render as hero image, move schematic to bottom - Fix buck converter to SY8368AQQC (was TPS54560) - Add RCA stereo outputs, detail all audio outputs - Add button/connector table from Arduino MIDI schematic - Add connectivity table with correct USB port descriptions - Add dual micro HDMI outputs (touchscreen + debug) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dcfe6acc10
commit
f0b7106932
63
README.md
63
README.md
@ -1,12 +1,12 @@
|
|||||||
# TriMixxx
|
# TriMixxx
|
||||||
|
|
||||||
A custom CDJ (Compact Disc Jockey) unit built from scratch around a Raspberry Pi CM5, designed to run [Mixxx](https://mixxx.org/) DJ software. Features a custom PCB, a custom 3D-printed chassis, and reuses original CDJ buttons and jog wheel for an authentic DJ experience.
|
A custom CDJ (Compact Disc Jockey) unit built from scratch around a Raspberry Pi CM5, designed to run [Mixxx](https://mixxx.org/) DJ software. Features a custom PCB, a custom 3D-printed chassis, and reuses original CDJ buttons and jog wheel for an authentic DJ experience. Reads Rekordbox-formatted USB sticks — no laptop required.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## What is this?
|
## What is this?
|
||||||
|
|
||||||
TriMixxx replaces the internals of a CDJ with modern, open-source-friendly hardware while keeping the physical controls that DJs know and love. Plug in a Rekordbox-formatted USB stick, and you're ready to mix — no laptop required.
|
TriMixxx replaces the internals of a CDJ with modern, open-source-friendly hardware while keeping the physical controls that DJs know and love. Plug in a Rekordbox-formatted USB stick, and you're ready to mix.
|
||||||
|
|
||||||
## Hardware Architecture
|
## Hardware Architecture
|
||||||
|
|
||||||
@ -17,27 +17,50 @@ TriMixxx replaces the internals of a CDJ with modern, open-source-friendly hardw
|
|||||||
### Audio
|
### Audio
|
||||||
|
|
||||||
- **TI PCM5242** — high-quality stereo DAC connected over I2S for low-latency audio output
|
- **TI PCM5242** — high-quality stereo DAC connected over I2S for low-latency audio output
|
||||||
- **Dual audio outputs** — 6.35mm (1/4") and 3.5mm headphone jacks
|
- **RCA stereo pair** — Left (white) and Right (red) main outputs
|
||||||
|
- **6.35mm (1/4") headphone jack**
|
||||||
|
- **3.5mm headphone jack**
|
||||||
|
|
||||||
### MIDI Controller
|
### MIDI Controller
|
||||||
|
|
||||||
- **ATmega32U4** — acts as a USB MIDI class-compliant device, reading the original CDJ's buttons, encoders, and jog wheel and translating them into MIDI messages for Mixxx
|
- **ATmega32U4** — acts as a USB MIDI class-compliant device, reading the original CDJ's buttons, encoders, fader, and jog wheel and translating them into MIDI messages for Mixxx
|
||||||
- **16 MHz crystal** oscillator for reliable USB timing
|
- **16 MHz crystal** oscillator for reliable USB timing
|
||||||
|
|
||||||
|
All controls connect via JST PH connectors to the main PCB:
|
||||||
|
|
||||||
|
| Connector | Controls |
|
||||||
|
|---|---|
|
||||||
|
| **J_PLAY** (6-pin) | Play button + LED, Cue button + LED |
|
||||||
|
| **J_LOOP** (8-pin) | Loop In button + LED, Loop Out button + LED, Reloop button + LED |
|
||||||
|
| **J_MASTER_TEMPO** (4-pin) | Master Tempo button + LED |
|
||||||
|
| **J_ENCODER_BACK** (7-pin) | Back/browse rotary encoder + Back button + LED |
|
||||||
|
| **J_TEMPO** (5-pin) | Tempo fader (analog ADC input) + Tempo Reset button + LED |
|
||||||
|
| **J_JOG** (4-pin) | Jog wheel quadrature encoder (JOG1/JOG2) |
|
||||||
|
| **J_TOUCH** (2-pin) | Jog wheel capacitive touch sensor |
|
||||||
|
|
||||||
|
**Summary of buttons:** Play, Cue, Loop In, Loop Out, Reloop, Master Tempo, Tempo Reset, Back — each with a corresponding LED. Plus a tempo fader (analog), a browse/back rotary encoder, a jog wheel (quadrature encoder), and a jog wheel touch sensor.
|
||||||
|
|
||||||
### Power
|
### Power
|
||||||
|
|
||||||
- **USB-C power input** with **CH224K** USB PD negotiation (requests 20V)
|
- **USB-C power input** with **CH224K** USB PD negotiation (requests 20V @ 3A = 60W, peak draw 42.4W)
|
||||||
- **TPS54560** buck converter stepping 20V down to 5V for the CM5 and peripherals
|
- **SY8368AQQC** synchronous buck converter stepping 20V down to 5V for the CM5 and peripherals
|
||||||
- **AP2112K** 3.3V LDO for logic-level components
|
- **AP2112K** 3.3V LDO for logic-level components
|
||||||
- **AP2553W** USB power switches for safe hot-plug on DJ USB ports
|
- **AP2553W** USB power switches for safe hot-plug on DJ USB ports
|
||||||
|
|
||||||
### Connectivity
|
### Connectivity
|
||||||
|
|
||||||
- **USB 3.0 Type-A port** — for Rekordbox USB sticks
|
| Port | Type | Speed | Purpose |
|
||||||
- **HDMI output** — for an optional display (waveforms, library browsing)
|
|---|---|---|---|
|
||||||
- **USB-C** — power delivery and data
|
| **USB-A** | Full-size | USB 3.0 SuperSpeed | Rekordbox USB sticks |
|
||||||
- **HD3SS3220** USB-C orientation mux and **HD3SS3212** USB 3.0 signal switch for proper USB-C handling
|
| **USB-A** | Full-size | Power only (no data) | Auxiliary power for gadgets/lights |
|
||||||
- **Ethernet** (via CM5) for network connectivity
|
| **USB-C** | Receptacle | USB 2.0 | General connectivity |
|
||||||
|
| **Micro HDMI** | Type D | HDMI 1.4 | 10" touchscreen display |
|
||||||
|
| **Micro HDMI** | Type D | HDMI 1.4 | Debug/secondary screen |
|
||||||
|
| **Ethernet** | RJ45 (via CM5) | Gigabit | Network connectivity |
|
||||||
|
|
||||||
|
Additional internal USB: USB 3.0 Type-A for the touchscreen's USB touch interface.
|
||||||
|
|
||||||
|
- **HD3SS3220** USB-C orientation mux and **HD3SS3212** USB 3.0 signal switch for proper USB-C handling on the DJ stick port
|
||||||
|
|
||||||
### Protection
|
### Protection
|
||||||
|
|
||||||
@ -54,18 +77,18 @@ Designed in Fusion 360 with a custom top panel and bottom tray that fits the ori
|
|||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
```
|
```
|
||||||
CDJ-MainBoard/ KiCad PCB project (6-layer board)
|
CDJ-MainBoard/ KiCad PCB project
|
||||||
├── CDJ-MainBoard.kicad_sch Root schematic
|
├── CDJ-MainBoard.kicad_sch Root schematic
|
||||||
├── arduino_midi.kicad_sch ATmega32U4 MIDI controller subsystem
|
├── arduino_midi.kicad_sch ATmega32U4 MIDI controller subsystem
|
||||||
├── audio_outputs.kicad_sch DAC and audio output stage
|
├── audio_outputs.kicad_sch DAC and audio output stage (RCA + headphones)
|
||||||
├── power.kicad_sch Power supply (USB-C PD, buck, LDOs)
|
├── power.kicad_sch Power supply (USB-C PD, buck, LDOs)
|
||||||
├── hdmi.kicad_sch HDMI output
|
├── hdmi.kicad_sch Dual micro HDMI outputs + Ethernet
|
||||||
├── usb_dj_ports.kicad_sch USB 3.0 host port for DJ USB sticks
|
├── usb_dj_ports.kicad_sch USB ports (DJ stick, aux power, connectivity)
|
||||||
├── test_points.kicad_sch Test points for debugging
|
├── test_points.kicad_sch Test points for debugging
|
||||||
└── CDJ-MainBoard.kicad_pcb PCB layout
|
└── CDJ-MainBoard.kicad_pcb PCB layout
|
||||||
|
|
||||||
JLC2KiCad_lib/ Component library (symbols, footprints, 3D models)
|
JLC2KiCad_lib/ Component library (symbols, footprints, 3D models)
|
||||||
kicad-thirdparty-footprints/ Third-party footprints (CM5, DAC, connectors)
|
kicad-thirdparty-footprints/ Third-party footprints (CM5, DAC, RCA jacks)
|
||||||
*.f3d Fusion 360 chassis models
|
*.f3d Fusion 360 chassis models
|
||||||
*.net Exported netlists (various revisions)
|
*.net Exported netlists (various revisions)
|
||||||
```
|
```
|
||||||
@ -74,7 +97,7 @@ kicad-thirdparty-footprints/ Third-party footprints (CM5, DAC, connectors)
|
|||||||
|
|
||||||
- **[Mixxx](https://mixxx.org/)** — open-source DJ software running on Raspberry Pi OS
|
- **[Mixxx](https://mixxx.org/)** — open-source DJ software running on Raspberry Pi OS
|
||||||
- **Rekordbox USB support** — reads Rekordbox-exported USB sticks for seamless library access
|
- **Rekordbox USB support** — reads Rekordbox-exported USB sticks for seamless library access
|
||||||
- **MIDI mapping** — the ATmega32U4 presents as a standard USB MIDI device, so Mixxx sees the jog wheel, buttons, and knobs as native MIDI controls
|
- **MIDI mapping** — the ATmega32U4 presents as a standard USB MIDI device, so Mixxx sees the jog wheel, buttons, and fader as native MIDI controls
|
||||||
|
|
||||||
## Tools Used
|
## Tools Used
|
||||||
|
|
||||||
@ -83,6 +106,10 @@ kicad-thirdparty-footprints/ Third-party footprints (CM5, DAC, connectors)
|
|||||||
- **JLC2KiCad** — importing JLCPCB component libraries into KiCad
|
- **JLC2KiCad** — importing JLCPCB component libraries into KiCad
|
||||||
- **JLCPCB** — PCB fabrication and assembly
|
- **JLCPCB** — PCB fabrication and assembly
|
||||||
|
|
||||||
|
## Schematic
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
This is a personal hardware project. Feel free to use it as reference for your own builds.
|
This is a personal hardware project. Feel free to use it as reference for your own builds.
|
||||||
|
|||||||
BIN
screenshots/pcb-3d-render.png
Normal file
BIN
screenshots/pcb-3d-render.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1010 KiB |
Loading…
x
Reference in New Issue
Block a user