Perfect Paul ][ ทำ Apple II พูดแบบ DECtalk ด้วย Raspberry Pi Pico
ถ้าคุณมีคอมพิวเตอร์ 8-bit ในยุค 1980 Speech Synthesizer ที่จับต้องได้มักเป็นระบบเสียงพูดแบบง่ายกว่า DECtalk ที่ในเวลานั้นเป็น Hardware ระดับสูงและมีราคาสูง แต่หลายสิบปีต่อมา Michael Wessel นำสองโลกนี้มาเจอกันด้วย Perfect Paul ][ — การ์ด Speech Synthesizer สำหรับ Apple II ที่ใช้ Raspberry Pi Pico และ RP2040 รัน DECtalk Emulator
วิธีคุยกับมันกลับเรียบง่ายแบบ Apple II มาก: ส่งตัวอักษรทีละ Byte ด้วย POKE เข้า Device Window ของ Slot แล้วส่ง Carriage Return เพื่อสั่งให้ DECtalk พูดทั้งบรรทัด
แก้ข้อมูลจาก Main Article: Hackaday ใช้คำว่า “RP2040-based Raspberry Pi Zero” แต่ Official Project Repository ระบุชัดว่า Hardware ใช้ Raspberry Pi Pico / RP2040 บทความนี้จึงยึดข้อมูลจาก Official Repository
Key Takeaways
- Perfect Paul ][ เป็น DECtalk Speech Synthesizer Card สำหรับ Apple II
- Hardware ใช้ Raspberry Pi Pico / RP2040 ไม่ใช่ Raspberry Pi Zero
- Final Revision 2 ถูกผลิต ประกอบ และทดสอบใน Apple II จริงแล้ว
- Apple II ส่ง ASCII Byte เข้า Card ผ่าน
POKE - Carriage Return ค่า 13 ใช้สั่งให้พูดข้อความที่ Queue ไว้
- Card ใช้ได้กับ Slot 1–7 โดยเปลี่ยนเพียงค่า
DRใน BASIC - ไม่ต้องเปลี่ยน Jumper หรือ Recompile Firmware เมื่อต้องการย้าย Slot
- Design เป็น Write-only: ไม่มี Slot ROM, Status Register หรือ Read Cycle
- RP2040 Core 0 รับ Apple II Bus Write ผ่าน PIO
- RP2040 Core 1 รัน DECtalk Synthesis และ Audio Path
- Bus Interface ใช้เพียง 74LVC245 และ 74LVC32
- Logic Chips ทำงานที่ 3.3V แต่รับ Apple II TTL 5V ตาม Design ที่ผู้สร้างเลือก
- Audio มีทั้ง I2S ผ่าน MAX98357A และ PWM ผ่าน PAM8403
- Firmware เลือก Audio Backend ตอน Build ส่วน J7 เลือก Amplifier ที่ต่อ Speaker
- Gerber ของ Final Revision 2 ถูกเผยแพร่ใน Repository
- Project Files ของผู้สร้างใช้ MIT แต่ DECtalk / DECtalkMini มี Licensing แยก
- Repository จึงไม่รวม DECtalk Source และไม่แจก Compiled UF2 ที่ Embed DECtalk
- DAISY Singing Demo และ Talking ELIZA ถูกทดสอบบน Hardware จริง
Perfect Paul ][ คืออะไร?
Perfect Paul ][ เป็น Expansion Card ที่เสียบเข้า Slot ของ Apple II แล้วทำหน้าที่เป็น Speech Synthesizer โดยใช้ DECtalkMini ทำ Text-to-Speech บน Raspberry Pi Pico
↓ POKE ASCII Bytes
Apple II Slot Bus
↓
74LVC245 + 74LVC32
↓
Raspberry Pi Pico / RP2040
↓
DECtalk Synthesis
↓
I2S หรือ PWM Audio
↓
Amplifier + Speaker
Project Repository ระบุว่า Card สามารถ:
- พูด Plain Text
- ใช้ DECtalk Inline Commands
- ร้องเพลงผ่าน Phoneme Mode
- รัน Talking ELIZA
ความ Retro อยู่ตรง Interface: Apple II ไม่จำเป็นต้องรู้ว่า ข้างหลังคือ RP2040 หรือ DECtalk Emulator มันแค่เขียนตัวอักษรเข้า Memory-mapped Device Window เหมือน Peripheral แบบคลาสสิก
จาก Hand-wired Prototype สู่ PCB Revision 2
ต้นแบบแรก: Apple II Prototyping Board
ก่อนจะกลายเป็น PCB Project เริ่มจากการเดินสายแบบ Point-to-point บน Apple II Prototyping Board
Prototype ชุดนี้:
- เป็น First Working Card ของ Project
- ใช้ PWM Audio เท่านั้น
- ใช้ PAM8403 เป็น Amplifier
- ยังไม่มี I2S Amplifier
- ยังไม่มี Supply Diode, Reset Button และ Reservoir Capacitor แบบ Final Board
Revision 1: PCB ที่ผลิตจริงชุดแรก
ภาพนี้คือ Revision 1 ไม่ใช่ Final Revision 2: Revision 1 ยังไม่มี Supply Diode D1, ยังไม่มี Speaker Selector และ Gain DIP Design ต่างจาก Revision 2 ที่ถูกปรับแก้ภายหลัง
Revision 2: Final Board
Repository ระบุสถานะ Project ว่า finished และ Final Revision 2 ถูก:
- Fabricated
- Assembled
- Tested in a real Apple II
ทั้ง I2S และ PWM Audio Path อยู่บน Final Board และเลือก Output ไป Speaker ผ่าน Jumper
Apple II สั่งพูดด้วย POKE ไม่กี่บรรทัด
Interface ของ Perfect Paul ][ เรียบง่ายมาก: เขียน ASCII Byte ไปยัง Device Register ของ Slot แล้วส่ง Carriage Return ค่า 13 เมื่อพร้อมให้พูด
10 DR = -16192 : REM SLOT 4
20 T$ = "HELLO FROM DECTALK"
30 FOR I = 1 TO LEN(T$): POKE DR,ASC(MID$(T$,I,1)): NEXT I
40 POKE DR,13
Byte แต่ละตัว ถูก Queue เป็น Text และ 13 หรือ Carriage Return ใช้ปิดบรรทัดและสั่งให้ Synthesizer พูด
Repository ยังระบุว่า:
-
144หรือ$90ใช้ Stop Speech - Ctrl-C หรือ Byte
3ก็หยุด Speech ได้ - DECtalk Inline Commands ถูกส่งเป็น Printable Text แบบเดียวกัน
ใช้ Slot 1–7 ได้ โดยไม่ต้องเปลี่ยน Firmware
Perfect Paul ][ ไม่ Decode Address Lines เอง แต่พึ่ง /DEVSEL จาก Motherboard ซึ่งถูก Assert ตาม Slot ที่ Card เสียบอยู่
ดังนั้นเมื่อต้องการย้าย Card สิ่งที่ต้องเปลี่ยนคือ ค่า DR ใน BASIC เท่านั้น
| Slot | Address | DR ใน Applesoft BASIC |
|---|---|---|
| 1 | $C090 | -16240 |
| 2 | $C0A0 | -16224 |
| 3 | $C0B0 | -16208 |
| 4 | $C0C0 | -16192 |
| 5 | $C0D0 | -16176 |
| 6 | $C0E0 | -16160 |
| 7 | $C0F0 | -16144 |
Window คำนวณจาก:
$C080 + 16 × slot
A0–A3 ไม่ได้ถูก Decode ดังนั้น Address ทั้ง 16 ค่า ใน Window จะ Mirror ไปยัง Write-only Register เดียวกัน
สำหรับ Apple II+: Repository ระบุว่า Slot 0 มักเป็น Language Card และ Slot 6 มักถูกใช้โดย Disk II ดังนั้น Slot 2, 4 หรือ 5 มัก Practical กว่า
RP2040 สอง Core แบ่งงานคนละด้าน
Card ใช้ความสามารถ Dual-core ของ RP2040 แบ่งงานออกชัดเจน
| Core | หน้าที่ |
|---|---|
| Core 0 | รับ Byte จาก Apple II Slot Write Cycle ผ่าน RP2040 PIO |
| Core 1 | รัน DECtalk Synthesis และ Feed Audio Path |
Bus State Machine อยู่บน: PIO1
ส่วน I2S Implementation อยู่บน: PIO0
จึงไม่แย่ง State Machine กันภายใน RP2040
Design ตั้งใจให้ Card เรียบง่าย: ไม่มี Slot ROM, ไม่มี Status Register และไม่มี Read Cycle Apple II ส่งข้อมูลเข้า Card ทางเดียว
Bus Interface ใช้ Logic IC เพียงสองตัว
↓
74LVC245
↓
Pico GP0–GP7
/DEVSEL + R/W
↓
74LVC32
↓
Pico GP8 (/WRSEL)
U2 — 74LVC245
ทำหน้าที่รับ Data Bus:
D0–D7 → GP0–GP7
Direction ถูกล็อกเป็น Apple → Pico และ Card ไม่ขับ Data กลับเข้า Apple II Bus
U1 — 74LVC32
รวม:
/DEVSELR/W
เพื่อสร้าง:
/WRSEL = /DEVSEL OR R/W
Signal นี้จะ Active เฉพาะตอนมี Write Cycle เข้า Device Window ของ Slot
Apple II เป็น 5V แต่ Pico เป็น 3.3V แล้วคุยกันอย่างไร?
Logic Chips ทั้ง 74LVC245 และ 74LVC32 ถูกจ่ายไฟจาก:
Pico 3V3_OUT
แต่ผู้สร้างเลือก LVC Family เพราะ Input ถูกออกแบบให้รับแรงดัน สูงกว่า VCC ได้ตาม Datasheet และใช้รับ Apple II TTL 5V ใน Design นี้
ห้ามเอา Apple +5V ต่อเข้า Pico 3V3_OUT: ใน Project Apple +5V ถูกส่งผ่าน Schottky D1 ไปยัง Card 5V Rail และเข้า Pico VSYS ไม่ใช่ 3V3_OUT
Power Path
↓
D1 1N5817 Schottky
↓
Card 5V Rail
↓
Pico VSYS + Audio Amplifiers
Pico 3V3_OUT
↓
U1 + U2 + Logic Pull-ups
D1 ทำหน้าที่ช่วยป้องกันไม่ให้ USB Power ที่เข้า Pico Back-feed กลับไปยัง Apple II +5V Rail
อย่าต่อ Card Power เข้า Pico VBUS แทน VSYS: Repository ระบุว่า VBUS คือ USB +5V และการต่อผิดจะข้าม D1 ซึ่งทำลายเหตุผลของ Back-feed Protection ที่ Final Board เพิ่มเข้ามา
Audio มี 2 Path: I2S และ PWM
I2S Path
| Signal | RP2040 GPIO | ปลายทาง |
|---|---|---|
| LRCLK / WS | GP21 | MAX98357A LRC |
| BCLK | GP20 | MAX98357A BCLK |
| Data | GP22 | MAX98357A DIN |
I2S Path ใช้ MAX98357A เป็น Digital Audio Amplifier ก่อนขับ Speaker
PWM Path
PWM Audio ออกที่:
GP28
จากนั้นผ่าน:
↓
Two-stage Low-pass Filter
↓
DC Blocking Capacitor
↓
Volume Trimmer
↓
PAM8403
↓
Speaker
GP28 ขับ Speaker โดยตรงไม่ได้: PWM Path ต้องผ่าน Filter และ Amplifier ตาม Hardware Design ของ Project
Repository ระบุว่า ทั้ง I2S และ PWM Path ถูกทดสอบว่าเล่นเสียงได้ และผู้สร้างฟังแล้วไม่พบความต่างชัดเจน
แต่ Audio Quality ยังไม่ได้วัดด้วยเครื่องมือ: Source ไม่ได้ให้ THD, SNR, Frequency Response หรือ Instrumented Audio Benchmark จึงไม่ควรสรุปว่า I2S ดีกว่า PWM หรือทั้งสองมีคุณภาพเท่ากันในเชิง Measurement
J7 เลือก Amplifier และ SW2 เลือก Gain
Final Board สามารถติดตั้ง Amplifier ทั้งสอง Path ไว้พร้อมกัน แล้วให้ J7 เลือกว่าตัวไหนต่อถึง Speaker
| Audio Path | J7 Shunt |
|---|---|
| I2S / MAX98357A | 1–3 และ 2–4 |
| PWM / PAM8403 | 3–5 และ 4–6 |
Amplifier ทั้งสองเป็น Bridge-Tied-Load Class-D: Speaker Negative ไม่ใช่ Ground ห้าม Ground Speaker Output, ห้ามต่อ Negative Output ของ Amplifier สองตัวเข้าด้วยกัน และห้ามใส่ J7 Shunt แนวนอน
MAX98357A Gain Selector
| SW2 | GAIN Pin | Gain |
|---|---|---|
| Position 1 | GND ผ่าน 100 kΩ | 15 dB |
| Position 2 | GND โดยตรง | 12 dB |
| Position 3 | 5V ผ่าน 1 kΩ | 6 dB |
| Position 4 | 5V ผ่าน 100 kΩ | 3 dB |
| เปิดทั้งหมด | Floating | 9 dB |
เลือกไม่เกินหนึ่ง Position: Final Revision 2 เพิ่ม R7 1 kΩ เพื่อทำให้การตั้งผิดปลอดภัยกว่า Revision 1 แต่ Repository ยังคงกำหนดให้เลือกเพียงหนึ่ง Gain Setting
Final Revision 2: PCB และ Gerber เปิดให้ทำตามได้
| PCB Item | Revision 2 |
|---|---|
| ขนาด | 149.9 × 77.4 mm |
| Layers | 2 |
| Thickness | 1.6 mm |
| Minimum Track / Clearance | 0.2 mm |
| Smallest Drill | 0.3 mm |
| Surface Finish | Source ไม่ได้กำหนดตายตัว |
Repository ระบุว่า Gerber Revision 2 คือ Board ที่ถูก Fabricate จริง
แต่ Surface Finish ถูกปล่อยเป็น Unspecified
ผู้สร้างเพียงแนะนำว่า Card Edge Finger ของ Expansion Card ควรใช้ Finish ที่ทนต่อการเสียบใช้งาน
อย่าสร้าง PCB Manufacturing Spec เพิ่มเอง: Source ไม่ได้กำหนด ENIG, HASL, Gold Finger Thickness หรือ Plating Specification แบบตายตัว
Build Firmware ต้องดึง DECtalkMini แยก
Perfect Paul ][ Repository ไม่ Vendor DECtalkMini Core เข้ามาใน Repo
Build Flow เริ่มจาก Clone DECtalkMini แล้ว Copy Platform Adapter ของ Perfect Paul ][ เข้าไป
git clone https://github.com/dectalk/DECtalkMini
cp -r pico-apple2 DECtalkMini/platforms/
export PICO_SDK_PATH=/path/to/pico-sdk
export PICO_EXTRAS_PATH=/path/to/pico-extras
cd DECtalkMini/platforms/pico-apple2
cmake --preset pico-pwm-release
cmake --build --preset pico-pwm-release
ถ้าต้องการ I2S Backend ให้ใช้ Preset ที่ Repository กำหนดสำหรับ I2S แทน PWM
Build ต้องใช้:
- Pico SDK 2.x
- pico-extras
Build Output
-
dectalk_apple2.uf2— Card Firmware -
dectalk_selftest.uf2— Self-test สำหรับ Audio Path โดยไม่ต้องต่อ Apple II
ชื่อ Output ไม่ได้แปลว่า Repo แจก UF2 สำเร็จรูป: Repository ไม่แจก Compiled UF2 ที่ Embed DECtalk Core เพราะ Licensing ของ DECtalk แยกจาก MIT License ของ Project Adapter
ทดสอบ DECtalk ผ่าน USB ได้ โดยไม่ต้องเสียบ Apple II
Firmware เก็บ USB CDC ไว้เป็น Bench Input โดยใช้ Line Protocol แบบเดียวกับ Slot Interface
./tools/paul-say.sh "Hello from the terminal."
./tools/paul-say.sh
./tools/paul-say.sh -l
ถ้าใช้ minicom ให้ปิด Hardware Flow Control: Pico USB CDC ไม่ Assert CTS และ Repository ระบุว่าการเปิด Flow Control จะทำให้ดูเหมือน Card ไม่รับข้อความ
อย่าเปิด Serial Port ที่ 1200 baud: Repository ระบุว่า 1200 baud เป็น BOOTSEL-reset Trigger ของ Raspberry Pi Pico
DECtalk ไม่ได้แค่พูด — มันร้องเพลงและคุยกับ ELIZA ได้
DAISY
Demo ใช้ DECtalk Phoneme Mode พร้อมกำหนด Duration และ Pitch ให้แต่ละ Phoneme
Repository ระบุว่า DAISY ใช้เวลาประมาณ 23 วินาที และผ่านการทดสอบบน Hardware จริง
Talking ELIZA
ELIZA.bas เป็น Talking Weizenbaum-style Therapist ที่รับข้อความจากผู้ใช้ สร้าง Response แล้วส่งคำตอบไปให้ DECtalk พูด
นี่ไม่ใช่ AI Assistant แบบ LLM: ELIZA ใน Project เป็นโปรแกรมสนทนาแนว Classic ที่ใช้ Keyword, Response Rotation และ Pronoun Reflection
Demo Disk
Repository มี 140 KB ProDOS Disk Image ที่รวม Demo Programs สำหรับ Boot และ Run บน Apple II
Write-only Design มีข้อแลกเปลี่ยน: Demo ยาวต้อง Pace ข้อมูล
Card ไม่มี:
- Status Register
- Hardware Flow Control
Firmware มี Queue:
8 Utterances
ถ้า Queue เต็ม Core 0 จะหยุด Drain Bus FIFO และ Write เพิ่มเติม สามารถถูก Drop ได้
ผลที่ได้ไม่ใช่ Error Message แต่ Speech อาจฟัง Garble
จึงต้อง Pace Demo ยาว: Program อย่าง DAISY มีเพียงไม่กี่ Utterances แต่ Demo ที่มี Phrase จำนวนมาก ต้องเว้นจังหวะให้ Queue มีเวลาระบายข้อมูล
ทดสอบอะไรแล้ว และอะไรยังไม่ได้วัด?
สิ่งที่ Source ยืนยันว่าทดสอบแล้ว
- Final Revision 2 ทำงานใน Apple II จริง
- POKE เข้า Device Window แล้วเกิด Speech
- Startup Voice ทำงาน
- 74LVC Bus Interface ทำงาน
- RP2040 PIO Capture ทำงาน
- Core 0 / Core 1 Split ทำงานภายใต้ Bus Traffic จริง
- PWM Audio Path ทำงาน
- I2S Audio Path ทำงาน
- DAISY Singing Demo ทำงาน
- ELIZA Interactive Demo ทำงาน
สิ่งที่ Repository ระบุว่ายังไม่ได้ Instrument
| หัวข้อ | สถานะ |
|---|---|
| Logic-analyzer Timing Margin | ยังไม่ได้วัดด้วยเครื่องมือ |
| Signal Integrity | ยังไม่ได้วัด |
| Long-run Stability | ยังไม่ได้วัดครบ |
| Thermal Behaviour | ยังไม่ได้วัด |
| Slot Current กับ Amp/Speaker Configuration เฉพาะ | ยังไม่ได้วัด |
| Audio Quality เชิง Instrument | ยังไม่ได้วัด |
| Apple II Machine อื่น | ยังไม่ได้ทดสอบครบ |
อย่าเหมารวม Compatibility: Signal ที่ใช้เป็น Signal ที่พบร่วมกันใน Apple II, II+ และ IIe แต่ Repository ระบุว่าการ Validation จริง ทำกับเครื่อง Apple II เพียงเครื่องหนึ่ง
การ Port ไปคอม 8-bit รุ่นอื่นยังเป็นเพียงแนวคิด: Hackaday ตั้งข้อสังเกตว่า Architecture อาจ Adapt ได้ แต่ Source ไม่มี Implementation หรือ Compatibility Test สำหรับ Commodore, Atari, TRS-80 หรือ Platform อื่น
ฟัง DECtalk บน Apple II ทำงานจริง
Demo จากผู้สร้าง แสดง Perfect Paul ][ ทำงานกับ Hardware จริง และให้ Apple II ส่งข้อความไปยัง Speech Synthesizer Card
Open Source แต่ต้องแยก Perfect Paul ][ ออกจาก DECtalk License
Files ที่เป็นผลงานของ Perfect Paul ][ Repository ใช้ MIT License เช่น:
- Apple II / Pico Adapter Code
- PIO Program
- Build Files
- PCB / Gerber Files
- Documentation
- BASIC Programs ที่ผู้สร้างเผยแพร่
แต่ MIT License นี้ ไม่ได้ครอบคลุม DECtalk หรือ DECtalkMini Core
นี่เป็นเหตุผลที่ Repository:
- ไม่รวม DECtalk Source
- ไม่แจก Compiled UF2 ที่ Embed DECtalk Core และ Dictionary
อย่าเห็นคำว่า MIT แล้วสรุปว่า DECtalk ทั้งหมดเป็น MIT: ก่อนแจก Source, Firmware Binary หรือ UF2 ที่ Build รวม DECtalkMini ต้องอ่าน Licensing Note ของ Project และ Upstream DECtalkMini ให้ครบก่อน
Demo Disk ก็มี Licensing อีกชั้นหนึ่ง เพราะ Image มี:
- PRODOS.SYS
- BASIC.SYSTEM
ซึ่งเป็น Apple System Files และไม่ได้อยู่ภายใต้ MIT License ของ Perfect Paul Repository
Maker เรียนรู้อะไรจาก Perfect Paul ][?
1. Retro Computer ไม่จำเป็นต้องรู้ว่า Peripheral ข้างในทันสมัยแค่ไหน
Apple II เห็นเพียง Memory-mapped Write Register ขณะที่ด้านหลัง RP2040 ทำ PIO, Dual-core Processing และ Speech Synthesis
2. PIO เหมาะกับการเชื่อม Bus เก่าเข้ากับ MCU ใหม่
Core 0 ใช้ PIO รับ Write Cycle โดยไม่ต้องให้ DECtalk Synthesis บน Core 1 มารบกวน Timing ของ Bus
3. Write-only Design ลด Hardware แต่เพิ่มภาระให้ Software
การตัด Status Register และ Flow Control ทำให้ Board เรียบง่ายขึ้น แต่ Demo ยาว ต้อง Pace Data เพื่อไม่ให้ Queue เต็ม
4. Prototype History มีประโยชน์ต่อคน Build ตาม
Repository เก็บทั้ง Hand-wired Prototype, Revision 1 และ Final Revision 2 ทำให้เห็นว่า Hardware Design ถูกแก้ปัญหา Power, Speaker Selection และ Gain Selection อย่างไรทีละขั้น
Project Files / Resources
FAQ: Perfect Paul ][ และ DECtalk บน Apple II
Perfect Paul ][ คืออะไร?
เป็น Speech Synthesizer Expansion Card สำหรับ Apple II ที่ใช้ Raspberry Pi Pico / RP2040 รัน DECtalkMini และรับข้อความผ่าน Apple II Slot Bus
ใช้ Raspberry Pi Pico หรือ Raspberry Pi Zero?
Official Project Repository ระบุ Raspberry Pi Pico Main Hackaday Article มีข้อความเรียกเป็น Raspberry Pi Zero ซึ่งไม่ตรงกับ Hardware ของ Project
Apple II สั่งให้พูดอย่างไร?
เขียน ASCII Byte ทีละตัวด้วย Applesoft BASIC POKE ไปยัง Device Window ของ Slot แล้วส่ง Carriage Return ค่า 13 เพื่อสั่งพูด
ใช้ Slot ไหนได้บ้าง?
Repository ระบุ Slot 1–7 โดยเปลี่ยนเฉพาะค่า DR ใน BASIC
ย้าย Slot แล้วต้อง Flash Firmware ใหม่ไหม?
ไม่ต้อง Card ไม่ Decode Address Lines และใช้ /DEVSEL จาก Motherboard Firmware เดียวกันจึงใช้ได้ โดยเปลี่ยน Address ใน BASIC เท่านั้น
ทำไม Card ถึงเป็น Write-only?
Design ไม่มี Slot ROM, Status Register หรือ Read Cycle เพื่อทำ Hardware Interface ให้เรียบง่าย Apple II ส่งข้อมูลเข้า Card ฝั่งเดียว
Bus Interface ใช้ IC อะไร?
74LVC245 สำหรับ Data Bus D0–D7 และ 74LVC32 สำหรับสร้าง /WRSEL จาก /DEVSEL กับ R/W
ทำไม Logic 3.3V รับ Apple II 5V ได้?
Project เลือก LVC Logic Family ที่ผู้สร้างระบุว่า Input รองรับแรงดัน Apple TTL 5V แม้ IC จะถูกจ่ายที่ 3.3V ตาม Datasheet ของอุปกรณ์ที่เลือก
Audio ออกได้กี่แบบ?
สองแบบ: I2S ผ่าน MAX98357A และ PWM ผ่าน Filter + PAM8403
I2S เสียงดีกว่า PWM หรือไม่?
Source ไม่ได้ให้ Instrumented Measurement ผู้สร้างระบุว่าฟังแล้วแยกความต่างไม่ชัด แต่ THD, SNR และ Frequency Response ยังไม่ได้วัด
มี Gerber ให้ทำ PCB เองไหม?
มี Repository เผยแพร่ Gerber ของ Final Revision 2
มี Firmware UF2 ให้โหลดสำเร็จรูปไหม?
Repository ไม่แจก Compiled UF2 ที่ Embed DECtalk Core เพราะ DECtalk มี Licensing แยกจาก MIT License ของ Adapter Project
Build แล้วได้ไฟล์อะไร?
Build Flow ระบุ dectalk_apple2.uf2 สำหรับ Card และ dectalk_selftest.uf2 สำหรับทดสอบ Audio Path โดยไม่ต่อ Apple II
Card ร้องเพลงได้จริงไหม?
ได้ตาม Hardware Validation ของผู้สร้าง Demo DAISY ใช้ DECtalk Phoneme Mode พร้อม Pitch และ Duration
Talking ELIZA ทำงานจริงไหม?
Repository ระบุว่า ELIZA Interactive Demo ถูกทดสอบบน Hardware จริงแล้ว
ใช้กับ Apple II+, IIe ได้แน่นอนหรือไม่?
Source ระบุว่าสัญญาณที่ Design ใช้ พบร่วมกันใน II, II+ และ IIe แต่ Hardware Validation ทำกับเครื่องจริงเพียงเครื่องเดียว จึงไม่ควรรับประกัน Compatibility กับทุกเครื่อง
เอาไปใช้กับ Commodore หรือคอม 8-bit อื่นได้ไหม?
Hackaday เพียงตั้งข้อสังเกตว่า แนวคิดน่าจะ Adapt ได้ แต่ Project ไม่มี Implementation หรือ Compatibility Test สำหรับ Platform เหล่านั้น
Audio Quality ถูกวัดแล้วหรือยัง?
ยัง Repository ระบุว่า Audio Quality beyond listening ยังไม่ได้ Instrument
สรุป: Retro Interface แต่ข้างในคือ RP2040, PIO และ DECtalk
Perfect Paul ][ น่าสนใจตรงที่ มันไม่พยายามทำให้ Apple II กลายเป็น Computer สมัยใหม่
ตรงกันข้าม มันออกแบบ Interface ให้เข้ากับวิธีคิดของ Apple II:
↓
Memory-mapped Device Window
↓
Apple II Slot Bus
↓
RP2040 PIO
↓
DECtalk
↓
Speaker
สิ่งที่ทันสมัยทั้งหมด ถูกซ่อนไว้หลัง Bus Interface ที่เครื่องยุค 8-bit เข้าใจได้
และ Repository ยังทำให้ Project นี้น่าสนใจในมุม Maker เพราะเก็บ History ตั้งแต่ Hand-wired Prototype, Revision 1 ไปจนถึง Final Revision 2 พร้อม Gerber, BASIC Demo, Firmware Adapter และ Validation Notes
ที่สำคัญ ผู้สร้างยังแยกสิ่งที่ ทดสอบแล้ว ออกจากสิ่งที่ ยังไม่ได้วัด และแยก MIT Project Files ออกจาก DECtalk Licensing อย่างชัดเจน
References / แหล่งข้อมูลต้นฉบับ
- Hackaday — It’s The Speech Synthesiser You Wanted, For The Computer You Had
- GitHub — lambdamikel/perfect-paul-ii
- Perfect Paul ][ — Official README
- Perfect Paul ][ — Raspberry Pi Pico Adapter Firmware
- Perfect Paul ][ — PCB / Schematic Files
- Perfect Paul ][ — Gerber Revision 2
- Perfect Paul ][ — Applesoft BASIC Demo Programs
- Perfect Paul ][ — Project License
- Perfect Paul ][ — DECtalk Licensing Note
- YouTube — The legend lives: DECtalk on the Apple II
สนใจ Retrocomputing, Raspberry Pi Pico หรือ Embedded Audio?
Perfect Paul ][ เป็นตัวอย่างที่ดีของการใช้ MCU รุ่นใหม่ เชื่อมเข้ากับ Computer Bus รุ่นเก่า โดยยังรักษาวิธีใช้งานแบบ Retro Hardware เอาไว้
ถ้ากำลังทำ Raspberry Pi Pico, RP2040, Embedded Audio, Logic Interface หรือ Maker Project สามารถสอบถามทีม Globalbyte เรื่อง Development Board, Module, Logic Components, Speaker, Amplifier และ Maker Accessories ที่เหมาะกับ Project ได้
บทความนี้ไม่ได้ยืนยันว่า Raspberry Pi Pico, MAX98357A, PAM8403 หรืออุปกรณ์รุ่นเดียวกับต้นฉบับ มี Stock อยู่ที่ Globalbyte กรุณาสอบถามรุ่นและ Availability ก่อนสั่งซื้อ