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 standalone dual-deck DJ system ใช้ ESP32-P4 และ Pioneer DDJ-FLX4
Pajoniiir เป็น Standalone Dual-Deck DJ System ที่ใช้ ESP32-P4 เป็น Main Processor และ Pioneer DDJ-FLX4 เป็น Physical Controller
Key Takeaways
  • 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 ที่เล่นไฟล์เพลงได้ แต่เป็น Embedded System ที่ต้องทำ USB Host, Dual Audio Playback, DJ Control, UI และ Audio Routing พร้อมกัน

ESP32-P4 ตัวเดียวรับผิดชอบอะไรบ้าง?

Official Architecture ของ M2.2 ระบุว่า ESP32-P4 เป็น Authority หลักของระบบ และไม่มี Secondary Runtime Processor ใน Product ปัจจุบัน

Rekordbox USB
Music Library → USB0
↓
ESP32-P4
Library + Decode + Dual Deck + Mixer + DSP + UI
↑
Pioneer DDJ-FLX4
MIDI / LED / Controller + USB Audio → USB1
↓
MAIN
PCM5102A → RCA
+
CUE / PFL
DDJ-FLX4 → Headphones

Repo ยังระบุว่า Architecture แบบ Dual-processor รุ่นเก่า เป็น Historical Material เท่านั้น และไม่ควรถูกนำมาปนกับ M2.2

Hardware หลักมีอะไร?

Guition JC4880P443C_I_W ESP32-P4 touchscreen board ที่ใช้ใน Pajoniiir
Guition JC4880P443C_I_W รวม ESP32-P4 และ Touchscreen 4.3 นิ้ว เป็น Main Processing Platform ของ Pajoniiir
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 แบ่งหน้าที่อย่างไร?

Panel mount USB-A socket สำหรับ Rekordbox USB ใน Pajoniiir
USB0 ใช้เป็น Host Port สำหรับ Rekordbox-exported USB Storage

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
ไม่ได้หมายความว่ารองรับ Rekordbox ทุก Feature: Source ระบุ Feature ที่ Implement ใน Pajoniiir แต่ไม่ได้อ้าง Compatibility แบบ 100% กับทุกข้อมูล หรือทุก Workflow ของ Rekordbox

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
ต่างจาก Music Player ธรรมดาตรงนี้: ESP32-P4 ไม่ได้แค่ Decode Track แต่ต้องรักษา State ของ Deck 1 และ Deck 2, ตอบสนอง Controller, Mix Audio และ Sync UI ให้สอดคล้องกัน

MAIN กับ Headphone Cue ออกคนละทางอย่างไร?

DJ System ต้องสามารถให้คนเล่นฟัง Track ใน Headphones ก่อนปล่อยออก MAIN ได้ Pajoniiir จึงมี Audio Output สองเส้นทาง

Deck 1 + Deck 2
Decode และ Mixer บน ESP32-P4
↓
MAIN Mix
P4 I2S → PCM5102A → RCA
+
PFL / Cue
USB Audio → DDJ-FLX4 Channels 3/4 → Headphones

Repo ระบุว่า PFL Branch ถูกแยกก่อน Channel Fader / Crossfader เพื่อให้การฟัง Cue ไม่จำเป็นต้องสัมพันธ์กับระดับเสียงที่ออก MAIN

PCM5102A ต่อกับ ESP32-P4 อย่างไร?

PCM5102A stereo RCA DAC module ที่ใช้เป็น MAIN output ของ Pajoniiir
PCM5102A รับ I2S จาก ESP32-P4 แล้วส่ง MAIN Stereo ออกผ่าน RCA
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
Power ของ PCM5102A ต้องดู Module Revision: Official Pinout ระบุให้เริ่มจาก 3.3 V และใช้ 5 V เฉพาะกรณีที่ Module จริงต้องการ จึงไม่ควรสรุปว่า PCM5102A ทุก Breakout Board ใช้ Supply แบบเดียวกัน

USB Power คือจุดที่ต้องระวังที่สุด

Official Pajoniiir M2 wiring diagram สำหรับ ESP32-P4 USB และ PCM5102A
Wiring Diagram ของ M2 Architecture ควรใช้ร่วมกับ Official Hardware Wiring Guide โดยเฉพาะส่วน Downstream USB VBUS

Official Hardware Guide ระบุว่า USB0 และ USB1 ต้องได้รับ 5 V ที่ปลอดภัยและมี Current Limiting และการจ่าย VBUS ต้องถูกออกแบบแยกจาก P4-side VBUS อย่างถูกต้อง

ห้ามรวม Supply ด้วย Passive Y-cable: Official Documentation เตือนว่า ไม่ควรผูก Independent Regulated Outputs เข้าด้วยกัน และไม่ควร Inject Raw 5 V เข้า USB-C Pins โดยไม่ทำตาม Hardware Guide

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 มีอะไร?

Pajoniiir standalone player พร้อม touchscreen และพอร์ตเชื่อมต่อ
ตัวเครื่อง Pajoniiir รวม Touchscreen และ Connections ไว้ใน Enclosure เดียว

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
อย่าเหมารวมว่า WAV ทุกไฟล์เล่นได้: File Extension เดียวกันสามารถมี Encoding ภายในต่างกัน จึงควรตรวจข้อจำกัดของ Current Decoder ก่อนเตรียม Music Library

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
แนวคิดสำคัญ: UI Rendering และ Real-time Audio ถูกแยกงานออกจากกันแทนที่จะโยนทุกอย่างไว้บน Task เดียว ซึ่งช่วยให้ Architecture จัดการงานสองประเภทที่มี Timing ต่างกันได้ชัดขึ้น

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
ควรใช้ Official Update Procedure: Firmware Package และ Release Policy สามารถเปลี่ยนตาม Version จึงควรใช้ Documentation ของ Release ที่ติดตั้งจริง แทนการยึดขั้นตอนจากบทความนี้ในอนาคต

ดู 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

Official ESP-IDF Build Commands
. 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
Version สำคัญ: Source ของ M2.2 ระบุ ESP-IDF v6.0.2 จึงไม่ควรสมมติว่า Build Procedure เดียวกัน จะทำงานกับ ESP-IDF Version อื่นโดยไม่ตรวจ Repository ล่าสุด

พิมพ์เคส Pajoniiir ด้วย 3D Printer

รอบนี้ Source มีไฟล์ Enclosure จริง ไม่ใช่แค่ภาพ Concept

Official Repository มี:

  • PajoniiirCASE.stl
  • Exploded Assembly Animation
  • Assembly Reference Images
Exploded animation ของเคส Pajoniiir สำหรับพิมพ์ 3D
Exploded View ของ Enclosure ที่ Repository ใช้เป็น Reference สำหรับ Assembly
Source ไม่ได้กำหนด Universal Print Settings: Repository บอกให้ตรวจ Dimension, Orientation, Support และ Material ใน Slicer ก่อนพิมพ์ แต่ไม่ได้กำหนด Layer Height, Infill, Nozzle, Material หรือ Temperature ที่ใช้ได้กับเครื่องพิมพ์ทุกแบบ
มี STL แล้วแต่ไม่มีเครื่องพิมพ์? สามารถส่งไฟล์ให้ทีม Globalbyte ช่วยประเมินบริการพิมพ์ 3D ได้ โดยเลือก Material และเงื่อนไขงานตามความเหมาะสมของชิ้นงานจริง

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

คำว่า Production Release เป็นสถานะของ Project นี้: ไม่ได้หมายความว่าบทความนี้รับรองความเหมาะสม สำหรับงาน Professional DJ ทุก Scenario และไม่ได้หมายความว่า Controller อื่นนอก FLX4 ผ่าน Physical Qualification แล้ว

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 ได้เช่นกัน

Disclaimer: บทความนี้เป็นการสรุปและเรียบเรียงจากแหล่งข้อมูลภาษาอังกฤษ อาจมีความคลาดเคลื่อน กรุณาตรวจสอบ Source ต้นฉบับก่อนลงมือทำ ข้อมูล Technical ในบทความอ้างอิง Pajoniiir M2.2 และ Repository ณ Version ที่ตรวจสอบ โดย Current Master สามารถเปลี่ยนในอนาคตได้ Official Repo ระบุ Pioneer DDJ-FLX4 เป็น Controller ที่ผ่าน Physical Qualification จึงไม่ควรตีความว่า DJ Controller รุ่นอื่นรองรับโดยอัตโนมัติ การจ่ายไฟ USB0/USB1 ต้องปฏิบัติตาม Hardware Wiring Guide และห้ามรวม Independent Supplies ด้วย Passive Y-cable ส่วน PCM5102A Module สามารถมี Hardware Revision ต่างกัน จึงต้องตรวจ Supply และ Pinout ของ Module จริงก่อนต่อใช้งาน Source ไม่ได้ให้ Audio Latency, Scratch Latency, Total System Power, Maximum Library Size หรือ Full BOM Price ที่ใช้เป็นค่ารับประกันได้ สำหรับ Enclosure Source มี STL จริง แต่ไม่ได้ระบุ Universal Layer Height, Infill, Nozzle, Support, Material หรือ Printing Temperature จึงควรตั้งค่าใน Slicer ตามเครื่องและวัสดุที่ใช้งานจริง

 

แท็ก


Blog posts