Pajoniiir: DJ Dual-Deck ที่ให้ ESP32-P4 ทำงานแทน Laptop
ปกติ DJ Controller อย่าง Pioneer DDJ-FLX4 ต้องมี Computer เป็นคนโหลดเพลง ประมวลผลสอง Deck, วาด Waveform, จัดการ Mixer และส่ง Audio ออก แต่ Pajoniiir ของ Daniel Vučinović ย้ายงานเหล่านั้นมาอยู่บน ESP32-P4 ตัวเดียว
ระบบอ่าน Rekordbox Library จาก USB, Host DDJ-FLX4 โดยตรง, เล่น MP3, WAV และ FLAC, แสดง Waveform บนจอ Touchscreen 4.3 นิ้ว และแยก MAIN Audio กับ Headphone Cue โดยไม่ต้องมี Performance Laptop ระหว่างใช้งาน
- Pajoniiir M2.2 ใช้ Architecture แบบ P4-only มี ESP32-P4 เป็น Runtime หลักตัวเดียว
- ใช้ Guition JC4880P443C_I_W พร้อม Touchscreen 4.3 นิ้ว
- USB0 ใช้กับ Rekordbox-exported USB Storage
- USB1 ใช้กับ Pioneer DDJ-FLX4 ทั้ง MIDI และ USB Audio
- รองรับ MP3, WAV และ FLAC โดย WAV มีข้อจำกัดตาม Decoder ปัจจุบัน
- มี Dual Deck, Waveform, Tempo, Master Tempo, Hot Cue, Loop, Sync และ Effects
- MAIN Audio ออกผ่าน PCM5102A RCA ขณะที่ Headphone Cue กลับออกทาง DDJ-FLX4
- มี Wi-Fi Remote และ Signed OTA
- มีไฟล์ PajoniiirCASE.stl สำหรับพิมพ์ Enclosure จริง
- Current Production Release ที่ Source ใช้คือ M2.2 และ Build ด้วย ESP-IDF v6.0.2
Pajoniiir คืออะไร?
Pajoniiir เป็น Standalone Dual-Deck DJ System ที่ออกแบบมาให้ Pioneer DDJ-FLX4 ทำงานโดยไม่ต้องมี Laptop เป็น Runtime หลักระหว่าง Performance
ESP32-P4 เป็นคนรับ Rekordbox Library, Decode Audio, จัดการ Deck State, Mixer, DSP, Touchscreen UI และ Controller State ก่อนส่ง MAIN และ Cue ไปยัง Output คนละเส้นทาง
ESP32-P4 ตัวเดียวรับผิดชอบอะไรบ้าง?
Official Architecture ของ M2.2 ระบุว่า ESP32-P4 เป็น Authority หลักของระบบ และไม่มี Secondary Runtime Processor ใน Product ปัจจุบัน
Music Library → USB0
Library + Decode + Dual Deck + Mixer + DSP + UI
MIDI / LED / Controller + USB Audio → USB1
PCM5102A → RCA
DDJ-FLX4 → Headphones
Repo ยังระบุว่า Architecture แบบ Dual-processor รุ่นเก่า เป็น Historical Material เท่านั้น และไม่ควรถูกนำมาปนกับ M2.2
Hardware หลักมีอะไร?
| Hardware | หน้าที่ในระบบ |
|---|---|
| Guition JC4880P443C_I_W | ESP32-P4, Touchscreen และ Main Processor |
| Pioneer DDJ-FLX4 | Physical DJ Controller, MIDI และ 4-channel USB Audio |
| Rekordbox USB Drive | Music Library |
| PCM5102A | Stereo MAIN Audio Output ผ่าน RCA |
| USB-A Panel Socket | ช่องเสียบ Music USB |
| USB-C OTG Connection | เชื่อม DDJ-FLX4 กับ USB1 |
| Regulated Supply | Official README ระบุ 5 V / 3 A หรือดีกว่าเป็น System Supply Starting Point |
USB0 กับ USB1 แบ่งหน้าที่อย่างไร?
USB0 — Music Library
USB0 ใช้กับ Storage Medium ที่ Export Library จาก Rekordbox
USB1 — Pioneer DDJ-FLX4
USB1 ใช้ Host DDJ-FLX4 โดยตรง ทั้ง MIDI IN/OUT, Controller LED State และ Four-channel USB Audio
Rekordbox USB ถูกอ่านอย่างไร?
Pajoniiir ถูกออกแบบให้ทำงานกับ Rekordbox-exported USB Library มากกว่าเป็นเพียง Generic Folder Browser
Product Overview ระบุว่า Storage Path ปัจจุบันรองรับ FAT32 และ exFAT บนรูปแบบ Storage เช่น Superfloppy, MBR หรือ GPT
ระบบสามารถนำข้อมูลจาก Library มาใช้กับ:
- Track Library
- Waveform
- BPM
- Beatgrid
- Cue Metadata
Dual Deck ทำอะไรได้บ้าง?
M2.2 มี Playback Deck สองชุดที่ทำงานแยกกัน และ Repo ระบุ Feature หลัก เช่น:
- Waveforms
- Transport Control
- Jog / Vinyl / Scratch
- Tempo Control
- Master Tempo
- Hot Cues
- Loops
- Beat Jump
- Sync
- Pad FX
- Beat FX
- Mixer / EQ
- Cue / PFL
MAIN กับ Headphone Cue ออกคนละทางอย่างไร?
DJ System ต้องสามารถให้คนเล่นฟัง Track ใน Headphones ก่อนปล่อยออก MAIN ได้ Pajoniiir จึงมี Audio Output สองเส้นทาง
Decode และ Mixer บน ESP32-P4
P4 I2S → PCM5102A → RCA
USB Audio → DDJ-FLX4 Channels 3/4 → Headphones
Repo ระบุว่า PFL Branch ถูกแยกก่อน Channel Fader / Crossfader เพื่อให้การฟัง Cue ไม่จำเป็นต้องสัมพันธ์กับระดับเสียงที่ออก MAIN
PCM5102A ต่อกับ ESP32-P4 อย่างไร?
| PCM5102A | ESP32-P4 | หน้าที่ |
|---|---|---|
| BCK | GPIO50 | I2S Bit Clock |
| LRCK / WS | GPIO52 | I2S Left/Right Clock |
| DATA | GPIO51 | I2S Serial Data จาก P4 ไป DAC |
| MCLK / SCK | ไม่ต่อใน Module ที่ใช้ | Module ใน Source ไม่ expose MCLK |
USB Power คือจุดที่ต้องระวังที่สุด
Official Hardware Guide ระบุว่า USB0 และ USB1 ต้องได้รับ 5 V ที่ปลอดภัยและมี Current Limiting และการจ่าย VBUS ต้องถูกออกแบบแยกจาก P4-side VBUS อย่างถูกต้อง
README ใช้ Regulated 5 V / 3 A หรือดีกว่า เป็น Starting Point ของ Common System Supply แต่ Hardware Guide ระบุชัดว่า Current Limit ต่อ Port เป็น Design Starting Point ไม่ใช่ Universal Acceptance Specification
หากเปลี่ยน Cable, Supply, DAC Module หรือ Enclosure ควรทำ Electrical Verification ใหม่ ตามขั้นตอนใน Official Hardware Wiring Documentation
Touchscreen UI มีอะไร?
Overview
- Waveform ของ Deck 1 และ Deck 2
- Transport State
- Time
- BPM
- Pitch
- Master Tempo
- Beat FX
Library
ใช้ Browse Rekordbox USB Collection และ Load Track ไป Deck 1 หรือ Deck 2
Hot Cues
แสดงและจัดการ Performance Cue Points
Settings
ใช้จัดการ Device Options, Diagnostics และ Wi-Fi Remote
MP3, WAV และ FLAC รองรับแค่ไหน?
Official Repo ระบุว่า Playback รองรับ:
- MP3
- WAV
- FLAC
แต่คำว่า WAV มี Caveat เพิ่มเติมใน Architecture เพราะ Decoder ปัจจุบันรองรับ Classic RIFF/WAVE แบบ Linear PCM16 ทั้ง Mono และ Stereo
Architecture ระบุว่า WAV Decoder ปัจจุบันไม่รับ:
- 24-bit PCM
- 32-bit PCM
- IEEE Float
- WAVE_FORMAT_EXTENSIBLE
ESP32-P4 จัดการสอง Deck อย่างไรโดยไม่โหลดเพลงทั้งไฟล์?
Architecture ของ M2.2 ระบุว่าแต่ละ Deck มี Engine State และ Decode Runtime ของตัวเอง
สำหรับ Compressed Audio เช่น MP3, WAV และ FLAC ระบบใช้ Bounded Page Cache แทนการโหลดไฟล์ทั้งหมดเข้า Memory แบบ Contiguous
Current Architecture ระบุ Cache 8 × 32 KiB ต่อ Deck สำหรับ Compressed Audio Path
อีกจุดที่น่าสนใจคือ Task ถูกแบ่งตาม CPU:
- LVGL UI Task → CPU1
- Audio Load / Decode / Shared Output → CPU0
Source ไม่ได้ให้ Audio Latency หรือ Scratch Latency เป็นตัวเลขที่เราสามารถนำมา Claim ได้ ดังนั้นบทความนี้จะไม่สร้างค่าดังกล่าวขึ้นเอง
Wi-Fi Remote และ OTA
M2.2 รองรับ Embedded Wi-Fi Remote ให้ Phone, Tablet หรือ Computer เปิด Browser Controller สำหรับจัดการ Deck, Mixer, Library และ Maintenance Function บางส่วน
Repository ยังระบุระบบ Update ได้แก่:
- Signed Local OTA
- Remote OTA
- Wired Recovery
ดู Pajoniiir Dual-Deck ทำงานจริง
วิดีโอของผู้สร้างแสดงการใช้งาน Pajoniiir ร่วมกับ DDJ-FLX4 และ Touchscreen ในรูปแบบ Standalone Dual-Deck
Build Firmware ด้วย ESP-IDF
Official README ของ Current Release ระบุให้ใช้ ESP-IDF v6.0.2
ตัวอย่าง Build Command ด้านล่างมาจาก Official Repository และใช้ PowerShell Environment
. C:\Espressif\tools\Microsoft.v6.0.2.PowerShell_profile.ps1
idf.py --version
$repoRoot = git rev-parse --show-toplevel
Set-Location "$repoRoot\firmware\main-deck-p4"
idf.py build
พิมพ์เคส Pajoniiir ด้วย 3D Printer
รอบนี้ Source มีไฟล์ Enclosure จริง ไม่ใช่แค่ภาพ Concept
Official Repository มี:
- PajoniiirCASE.stl
- Exploded Assembly Animation
- Assembly Reference Images
Project พร้อมใช้งานระดับไหน?
Official Repository ระบุ Current Production Release เป็น:
M2.2
Release นี้ Freeze จาก Commit 2c2ec32 และใช้ ESP-IDF v6.0.2
Repo ระบุว่า M2.2 ผ่าน Release Build, Signed Package, Hardware Installation, Wi-Fi Remote Smoke Test และ Public OTA Channel Checks ตาม Release Report ของ Project
Official Product Overview ระบุว่า DDJ-FLX4 เป็น Controller ที่ผ่าน Physical Qualification ใน Current Release
Maker ได้อะไรจาก Project นี้?
1. ESP32-P4 ไปไกลกว่า Sensor + Wi-Fi Project มาก
Project นี้รวม USB Host, Compressed Audio Decode, UI, Mixer, DSP และ Storage Access ไว้บน Microcontroller Platform เดียว
2. Dual USB Host เปลี่ยน ESP32-P4 ให้เป็น System Hub
USB0 รับ Music Storage ขณะที่ USB1 รับทั้ง Controller และ USB Audio จาก FLX4 ทำให้ ESP32-P4 อยู่ตรงกลางของ Data และ Audio Flow
3. Audio MAIN กับ Cue ต้องแยก Signal Path
DJ Workflow ต้อง Preview เพลงได้โดยไม่ออก PA จึงต้องมี PFL/Cue Path แยกจาก MAIN Mixer Output
4. Real-time Audio ต้องคิดเรื่อง Memory Architecture
การใช้ Bounded Cache ทำให้ระบบไม่จำเป็นต้องโหลดไฟล์เพลงทั้งไฟล์เข้าหน่วยความจำ ก่อนเล่น
5. UI และ Audio ไม่ควรแย่ง Timing กัน
Architecture แยก LVGL UI ไป CPU1 และ Audio Work ไป CPU0 เป็นตัวอย่างของการแบ่ง Real-time Workload บน Multi-core Embedded System
6. Build จริงไม่ได้จบที่ Firmware
USB Power Distribution, VBUS Isolation, DAC Wiring, Connector Placement และ Enclosure ล้วนเป็นส่วนของระบบที่ต้องออกแบบควบคู่กัน
โปรเจกต์นี้มีหลายขั้น แนะนำอ่านต้นฉบับควบคู่กัน
โดยเฉพาะส่วน USB VBUS, PCM5102A Wiring, Firmware Build และ OTA ควรใช้ Official Documentation ของ Pajoniiir เป็น Source หลักก่อนประกอบ Hardware จริง
FAQ: คำถามที่พบบ่อย
1. Pajoniiir คืออะไร?
เป็น Standalone Dual-Deck DJ System ที่ใช้ ESP32-P4 เป็น Main Runtime และออกแบบให้ทำงานร่วมกับ Pioneer DDJ-FLX4 โดยไม่ต้องมี Performance Laptop
2. ใช้ ESP32 รุ่นไหน?
Current M2.2 ใช้ ESP32-P4 บน Guition JC4880P443C_I_W
3. ใช้จอขนาดเท่าไร?
Official Repo ระบุ Touchscreen ขนาด 4.3 นิ้ว
4. ต้องใช้ Laptop ระหว่างเล่นไหม?
Current Architecture ถูกออกแบบให้ Performance Runtime อยู่บน ESP32-P4 และไม่ต้องมี Computer ระหว่างการเล่นตาม Workflow ของ Pajoniiir
5. เพลงมาจากไหน?
จาก Rekordbox-exported USB Storage ที่ต่ออยู่กับ USB0
6. รองรับไฟล์เพลงอะไร?
MP3, WAV และ FLAC โดย WAV Decoder ปัจจุบันมีข้อจำกัดตามที่ระบุใน Architecture
7. WAV 24-bit เล่นได้ไหม?
Architecture ปัจจุบันระบุว่า WAV Decoder ไม่รองรับ 24-bit PCM
8. MAIN Audio ออกจากตรงไหน?
ผ่าน PCM5102A Stereo DAC แล้วออกทาง RCA
9. Headphone Cue ออกจากตรงไหน?
ผ่าน DDJ-FLX4 UAC Channels 3/4 ไปยัง Headphone Output ของ Controller
10. รองรับ DJ Controller รุ่นอื่นหรือไม่?
Source ระบุว่า FLX4 เป็น Controller ที่ผ่าน Physical Qualification ส่วน Controller อื่นไม่ควรถูกถือว่ารองรับโดยอัตโนมัติ
11. มี Hot Cue และ Loop หรือไม่?
มี Official Repo ระบุ Hot Cues, Loops, Beat Jump, Sync, Pad FX และ Beat FX ใน Current Release
12. ใช้ไฟเท่าไร?
README ใช้ Regulated 5 V / 3 A หรือดีกว่า เป็น Common System Supply Starting Point แต่ Source ไม่ได้ให้ Total Runtime Power Consumption ของทั้งระบบเป็น Benchmark
13. ต่อ USB Power แบบ Y-cable ได้ไหม?
Official Hardware Guide ระบุว่าไม่ควรรวม Independent Supplies ด้วย Passive Y-cable และ Downstream VBUS ต้องมี Protection ที่เหมาะสม
14. มี Wi-Fi Remote หรือไม่?
มี M2.2 รองรับ Browser-based Wi-Fi Remote
15. Update Firmware แบบ OTA ได้ไหม?
ได้ Current Repo ระบุ Signed Local OTA, Remote OTA และ Wired Recovery
16. มีไฟล์เคสสำหรับพิมพ์ 3D ไหม?
มี Repository ให้ไฟล์ PajoniiirCASE.stl และ Assembly References
17. ใช้ Print Settings อะไร?
Source ไม่ได้กำหนด Layer Height, Infill, Nozzle, Material หรือ Temperature แบบ Universal และแนะนำให้ตรวจ Orientation, Supports และ Material ใน Slicer ก่อนพิมพ์
18. ระบบนี้ราคา $50 จริงหรือไม่?
Hackaday กล่าวถึงตัวเลขประมาณ $50 ในบริบทของ ESP32-based setup แต่ Official Repository ไม่ได้ให้ Full BOM Total ที่รวม DDJ-FLX4, USB Drive, Cables, Power System และอุปกรณ์ทั้งหมด จึงไม่ควรตีความว่า Complete DJ System ทั้งชุดราคา $50
References / แหล่งข้อมูลต้นฉบับ
ESP32-P4 จาก Microcontroller สู่ระบบ Audio แบบ Dual-Deck
Pajoniiir เป็นตัวอย่างว่าการทำ Embedded Project ระดับใหญ่ไม่ได้มีแค่ Firmware แต่รวมถึง USB Host, Storage, Audio DSP, Touch UI, Power Distribution และ Mechanical Design ที่ต้องทำงานร่วมกัน
หากกำลังทำ ESP32, Audio, HMI หรือ Embedded Project สามารถสอบถามทีม Globalbyte เรื่อง Development Board, Module และ Maker Accessories ที่เหมาะกับงานได้ และถ้ามีไฟล์ STL สำหรับ Enclosure สามารถส่งให้ทีมช่วยประเมินบริการพิมพ์ 3D ได้เช่นกัน