mohan-bee/mini-mp3-player
Portable, battery-powered MP3 player hardware with USB charging, microSD storage, an MCU, VS10xx audio decoder, headphone output, status controls, and regulated power rails.
- Version
- 1.2.0
- License
- unset
- Stars
- 0
PROTOTYPE.md
# Rev B prototype package — 2026-10-07
**Status: engineering prototype for fabrication and bench bring-up. Not a verified working product or a volume-production release.** Hardware has not been assembled. Firmware now exists, compiles and passes host tests. No boards or parts have been ordered.
## Files to use
| Deliverable | File |
|---|---|
| PCB fabrication, drills, stencil | manufacturing/mini-mp3-revB.zip |
| JLCPCB grouped BOM | manufacturing/bom.csv |
| Top placement | manufacturing/pick_and_place.csv |
| Assembly and PCB drawings | drawings/assembly.svg, drawings/pcb.svg in the package |
| Four schematic sheets | drawings/sheets/ in the package |
| Playback firmware | firmware/build/mini-mp3.hex, .bin, .elf |
| Firmware wiring and behavior | firmware/README.md |
| Complete hardware source | source/ in the package |
| Exact-file integrity | SHA256SUMS in the package |
PCB specification: 82 × 62 mm, two copper layers, 1.6 mm FR-4, 1 oz copper, minimum via drill/pad 0.30/0.45 mm, top assembly, 100 fitted parts / 35 BOM groups. Request the manufacturer's DFM and placement preview; verify J1/J4 orientation, IC pin 1, C43/C44 positive polarity, LED polarity and charger exposed-pad soldering. Test pads and mechanical CAD objects are not fitted BOM parts. Starting stencil thickness 0.10–0.12 mm; have the assembler review its process. The archive includes explicit pill-pad apertures and 58.5% charger thermal-pad coverage. Use this release archive rather than a fresh unprocessed library Gerber export.
No substitutions without checking pinout, footprint, regulator voltage and decoder analog limits. Component stock and assembler availability are order-time checks. Current export has zero DRC errors, 35 reviewed metadata warnings, 101 passing electrical/assembly assertions and no detected shorts using the CLI Gerber-mode check. These are design checks, not factory DFM acceptance.
## External items
- Protected **1S 4.2 V-full LiPo**, suggested ≥600 mAh, rated for at least 0.33 A charging and the measured playback peak current. Include a cell-mounted 10 kΩ NTC matched to the charger's temperature thresholds. J2 pin 1 BAT+, pin 2 NTC, pin 3 BAT−/GND. PHR-3 mating housing; confirm contact numbering by continuity, never wire color. A common two-wire LiPo is not a drop-in replacement. No exact battery SKU is qualified yet.
- For the modeled case, nominal battery body 52 × 36 × 5 mm or smaller, including protection-board envelope where applicable. Confirm cable exit, thickness tolerance and swelling allowance before buying a pack or printing the final case.
- FAT16/FAT32 microSD, standard stereo 3.5 mm headphones (start testing with 32 Ω dummy loads), WCH-Link supporting CH32 RISC-V, 3.3 V UART adapter, USB 5 V supply and cable.
- Printed case, caps, slider, divider, clear windows, adhesive and suitable M2 fasteners are external to PCBA. Native GLBs are inspection models, not a qualified print or tooling release. See mechanical/README.md. Do a fit print before final enclosure manufacture.
## First-board acceptance record
Record board serial, firmware SHA256, card model, battery model, instruments, ambient temperature and measured results. Leave each item pending until actually tested.
1. **Unpowered:** inspect bridges, polarized parts and all connectors. Confirm no sustained near-zero rail-to-ground resistance after capacitors settle. Check J2 wiring with a meter and J4 tip/ring/sleeve continuity using a breakout plug.
2. **USB power, no battery/card/headphones:** current-limited 5 V bench source through USB, start at 100 mA with switch OFF. Confirm no heating or excessive draw. Switch ON; increase the limit only after checking for faults. Measure TP2 nominal 3.3 V, TP12 2.5 V, TP13 2.7 V. Target unloaded ±2%; **VS analog must stay 2.6–2.85 V under operating conditions**. Verify switched SYS and battery ADC fall near zero when OFF. Inspect rail ripple with a scope.
3. **Program:** follow firmware/README.md, verify flash and UART clock/decoder initialization. Check 8 MHz and 12.288 MHz oscillator startup with a suitable low-capacitance probe. Never attach a high-capacitance probe directly and interpret its loading as an oscillator fault.
4. **Storage/UI:** two short-named known-good MP3 files; confirm automatic play, pause/resume, prev/next wrap, VOL mode, both volume directions and LED states. Test power cycling, absent card, invalid filesystem and recovery. Test several actual cards and 128/320 kbps material for at least 30 minutes without decoder starvation.
5. **Audio:** first use two 32 Ω loads to ground. Check left/right mapping and settled DC across each load (target <10 mV). Scope clipping, noise and turn-on/track-change transients at low and high volume. Then test headphones at low volume. Qualify 16 Ω operation separately if required; do not claim an output-power rating without measurement.
6. **Battery/charging:** connect only the verified protected pack with NTC. With system OFF, measure charge current (approximately 0.30 A; computed tolerance about 0.263–0.328 A), cell voltage and termination against the pack specification. Verify NTC open/short inhibits charging. Test USB insertion/removal during playback and simultaneous charging/playback. Log cell, charger and regulator temperatures through a charge cycle; confirm pack temperature limits and no brownouts.
7. **Low voltage:** use a suitable current-limited battery simulator with USB absent; sweep 4.2→3.4 V while observing 3.3 V during card reads. Compare UART battery reading against the meter and calibrate. Verify playback stops around the configured 3.55 V threshold before loss of regulation; raise the threshold if needed. Switch OFF afterward: firmware stop does not remove system power.
8. **Enclosure:** fit pack, insulation and cable without squeezing the pouch; verify screw ends and copper clearances. Check all caps release freely with no preload, slider travel, card eject access and headphone plug shoulder clearance. Bond clear-window flanges to the lid. Repeat charging temperature checks with the lid closed.
A board that fails any item needs correction and retest before calling the product working. ESD/EMC, drop, durability and production reliability qualification are outside this first prototype release.
## Design review basis
- MCU supply/debug/boot mapping checked against [WCH documentation and reference design](https://github.com/openwch/ch32v20x). Firmware uses PA13/PA14 WCH-Link, not guessed programming pins.
- Decoder rails, control pins, clock and 32-byte DREQ servicing checked against the [VS1003 datasheet](https://www.vlsi.fi/fileadmin/datasheets/vs1003.pdf). Analog rail is 2.7 V; core 2.5 V; I/O 3.3 V. GBUF is not grounded. Headphones are AC-coupled with 220 µF per channel.
- [BQ24074](https://www.ti.com/lit/ds/symlink/bq24074.pdf): USB500 input mode, 3 kΩ ISET, power path and external pack NTC. Charge current can reduce with system load or thermal regulation. TMR/ITERM open use documented defaults. USB is power-only; use a 5 V source that supplies at least 500 mA, not a data-port enumeration assumption.
- [PJ-320D supplier drawing](https://datasheet.lcsc.com/datasheet/pdf/50aca6c1750ca25d6422baa81dc852bf.pdf?productCode=C431535): imported pin 2 corresponds to D/tip, pin 3 C/ring; pins 1 A and 4 B are tied to ground. Confirm with a physical plug before audio testing.
- LDO dropout, card peak load, charge thermals and battery runtime cannot be signed off from nominal values alone. The 3.3 V LDO has limited headroom near discharge; the prototype threshold deliberately leaves margin but must be calibrated under load. There is no dedicated external ESD clamp on the exposed audio/card interfaces; consumer ESD robustness remains unqualified.