Open source digital servo replacement module for the Sony Walkman WM-D6C. Replaces the CX20084 servo IC, CP304 boost converter, and CN301 power jack with a single STM32G0B1-based PCB. Dual variant: USB-C PD or polarity-agnostic barrel jack input. Bare-metal C firmware. CERN OHL-P v2 / MIT / CC BY 4.0.
Loading README and project media…
Open-source / open-hardware servo, power, and USB-C service subsystem for the Sony Walkman WM-D6C / TC-D6C
DSR-1 is an in-development replacement and modernization subsystem for the Sony WM-D6C / TC-D6C. Rev A targets the CX20084 former-type servo family, with the first physical unit identified as WM-D6C serial 72795, PCB marking C11-494-12, and a surface-mount CX20084 at IC601. Its purpose is to preserve machines by replacing the fragile capstan-servo IC path, modernizing the external power interface, and adding USB-C data/service access for tuning, telemetry, firmware update, and diagnostics.
This project is not yet a finished installation-ready repair. It is currently in source-grounded design and firmware-prototype development. The firmware architecture exists, the KiCad files are in-flight and not yet synchronized with the latest documentation, and the design is being revised against the Sony WM-D6C/TC-D6C service manual and the selected STM32G0C1KCU6 device. PCB layout, hardware validation, installation documentation, and performance testing remain pending.
DSR-1 should be understood as an integrated two-board subsystem project, not a servo-only daughterboard: a Power Board and a Servo Control Board.
The Sony WM-D6C is a professional-grade portable cassette recorder with a quartz-lock capstan servo system, excellent speed stability, and a transport worth preserving. Many surviving units are threatened by failures in and around the servo and power-input circuitry:
DSR-1 aims to make the WM-D6C repairable without reducing it to a generic motor controller. The goal is not to modernize for its own sake. The goal is to preserve the machine by replacing an increasingly fragile control and power-support subsystem with one that can be measured, tuned, documented, powered safely, and reproduced.
Status: active design / firmware prototype. Not bench-validated. Not ready for installation in a valuable machine.
| Area | Status |
|---|---|
| Architecture | Defined at a high level |
| Sony service-manual review | In progress |
| STM32G0C1KCU6 package/pinout review | Accepted baseline; firmware migration pending |
| Firmware prototype | Register-level C source exists; bench validation pending |
| USB-C data/service path | Design requirement; validation pending |
| USB-C PD / power path | First-class design requirement; final implementation pending |
| KiCad schematic | In-flight legacy project exists; manual split to Power Board and Servo Control Board pending |
| PCB layout | Not complete |
| Bench measurements | Required before Rev A finalization |
| Installation guide | Planned; not yet valid for users |
| Pre-built module | Not available |
| Performance claims | Pending measured speed, power, USB, and wow/flutter data |
Until the electrical interface is measured on a real WM-D6C and a Rev A board is validated, DSR-1 should be treated as an engineering project, not a repair product.
DSR-1 targets the full WM-D6C / TC-D6C production run (1984–2002). Two servo circuit families exist:
| Circuit family | Years | Servo IC | Rev A status |
|---|---|---|---|
| Ver. 1.0 | 1984 – mid 2001 | CX20084 | Primary Rev A target |
| Ver. 1.1 | mid 2001 – 2002 | CX-069A | Planned post-Rev A variant |
Rev A targets CX20084 boards — the large majority of surviving units. CX-069A board support is planned as a separate variant once Rev A is validated. See docs/hardware/wmd6c-revision-compatibility.md for detailed production timeline and identification guidance.
The primary unit currently being mapped is serial 72795, observed PCB marking
C11-494-12, with a surface-mount CX20084 at IC601. Earlier assumptions that this
unit was a through-hole board are superseded.
Rev A is being grounded against these primary references:
Sony WM-D6C / TC-D6C Service Manual, original edition (fb4872.pdf)
Sony WM-D6C / TC-D6C Service Manual, Ver. 1.1, 2001.06 (sony_wm-d6c_tc-d6c_ver-1.1.pdf)
STMicroelectronics STM32G0C1KCU6 / STM32G0 family documentation
The repository documentation should distinguish clearly between:
DSR-1 is now scoped as an integrated two-board subsystem with three first-class domains:
| Domain | Purpose |
|---|---|
| Capstan servo | Replace the obsolete CX20084-based servo path with a measurable digital control loop |
| Power | Power Board for USB-C input, charger, LiPo/protection, regulation, and battery telemetry |
| USB-C data/service | Provide telemetry, live tuning, firmware update, diagnostics, and optional PD negotiation |
The servo loop remains the hardest performance-critical problem, but power and USB-C are not deferred side features. They are part of the Rev A architecture and must be represented in schematics, firmware, verification plans, and documentation.
The first physical target is a former-type CX20084 WM-D6C, not the 2001 CX-069A new-type circuit.
| Machine / board | Current status |
|---|---|
WM-D6C serial 72795 | Primary physical unit |
PCB marking C11-494-12 | Observed on the actual unit |
| IC601 | Surface-mount CX20084 |
| CX-069A boards | Planned post-Rev A variant only |
| WM-D6 | Future variant candidate only |
| WM-D3 / WM-D3C | Future variant candidate only |
| TC-D5M and related Sony professional machines | Future variant candidates only |
A variant port will require a schematic comparison, a harness/interface map, measured FG target data, power-interface notes, USB/service constraints, and proof of operation on physical hardware.
The project boundary is larger than the CX20084 alone. The intended Rev A design work concerns the WM-D6C capstan-servo subsystem, the power path required to support it, and a USB-C service/data interface.
| Original function / missing function | DSR-1 design intent |
|---|---|
| CX20084 / IC601 capstan-servo function | STM32G0C1KCU6 digital PI servo loop using timer input capture |
| FG feedback path from motor / FG901 | Protected, conditioned MCU timer-capture input |
| Motor correction output to Sony drive network | PWM + RC filter + NPN level-shift to Q601 base; exact Q601 part/package pending physical confirmation |
| RV601 base speed adjustment | Retained as measured analog input |
| RV602 Speed Tune control | Retained as measured analog input |
| RV603 Speed Tune range control | Retained as measured analog input |
| S601 Speed Tune switch | Retained as digital input, polarity to be verified |
| S801 VU/BATT switch and D801-D805 LEDs | S801_BATT enables MCU battery-gauge ownership; MCU drives LEDs only in BATT mode and releases them in VU/non-BATT mode |
| CP304 / supporting power conversion | Replacement or support circuit pending Rev A power design |
| CN301 external power vulnerability | Protected input and/or USB-C power path |
| USB service interface absent in original | USB CDC / DFU / diagnostics / telemetry |
| USB-C PD absent in original | Power negotiation strategy, implementation pending |
The original transport, heads, audio path, user controls, and mechanical adjustment procedures should remain intact wherever possible.
DSR-1 is designed around an STM32G0C1KCU6 microcontroller running register-level bare-metal C.
Planned/implemented firmware architecture:
VBAT_SENSE, CHG_STAT, PGOOD, and S801_BATT; it drives BATT_LED1-5 only while S801 is in BATT.Important design caveat: the target period stored in flash is numerically stable, but final speed accuracy depends on the MCU timebase. The STM32 internal oscillator is suitable for firmware development, but final speed-performance claims require either a proven timing strategy, an external reference, calibration, or measured evidence that the selected clocking approach meets the WM-D6C speed requirements across realistic conditions.
The next project milestone is a source-grounded electrical interface and a bench-measured Rev A design covering servo, power, and USB-C.
Required before Rev A PCB finalization:
Power and USB-C are part of the project scope.
| Function | Rev A intent |
|---|---|
| Protected external power | Required |
| Reverse-polarity protection | Required |
| Overcurrent / fault protection | Required |
| USB-C connector | Required for service/data; power role to be finalized |
| USB CDC telemetry | Required design goal |
| Firmware update path | Required design goal |
| USB-C PD | First-class design requirement; implementation architecture pending |
| Original barrel jack retention | Optional variant decision |
| CN301 replacement/removal | Optional variant decision |
Possible power approaches:
| USB-C-centered variant | Protected barrel / hybrid variant | |
|---|---|---|
| Power input | USB-C power path with PD strategy | Original-style or lab/protected input retained |
| User-facing behavior | Modern external power and data through USB-C | More conservative power bring-up |
| Complexity | Higher | Lower |
| Project status | In scope | In scope |
The preferred architecture should be selected by schematic feasibility, pin availability, installation constraints, safety behavior, and bench validation—not by minimizing scope.
wmd6c-servo/
├── hardware/ KiCad project, schematic work, future PCB/BOM/gerbers
├── firmware/ Bare-metal STM32G0 family firmware prototype
├── docs/ Theory, datasheet references, installation and validation docs
└── tools/ Calibration and development utilities
Some paths and build commands are still being normalized as the project moves from design notes into a reproducible hardware/firmware package.
The firmware is written in C for the STM32G0 family, using CMSIS device headers and direct register access. The hardware target is STM32G0C1KCU6; some firmware filenames and comments may still reflect the earlier STM32G0B1KBU6 prototype until the firmware migration is completed. No STM32 HAL, no RTOS, and no dynamic memory allocation are intended.
Current firmware areas:
main.c — clock setup, peripheral initialization order, main loopservo.c / servo.h — TIM2 capture ISR, PI loop, TIM3 PWM output pathadc.c / adc.h — speed-control potentiometer scan and target adjustment supportflash.c / flash.h — persistent settings storageusb_cdc.c / usb_cdc.h — USB CDC command and telemetry pathconfig.h — tunable constants and hardware-selection flagsFirmware areas now required by project scope:
S801_BATT as the LED ownership enable and keep BATT_LED1-5 released in VU/non-BATT modes.Current firmware caveats:
See the firmware README for current build notes.
The repository should grow toward the following documentation set:
docs/
├── hardware/
│ ├── wmd6c-interface-contract.md
│ ├── wmd6c-revision-compatibility.md
│ ├── power-usb-c-architecture.md
│ └── timebase-decision.md
├── theory/
│ ├── original-servo-circuit.md
│ ├── digital-pll-servo.md
│ ├── signal-chain-analysis.md
│ └── power-supply-design.md
├── verification/
│ ├── 00-rev-a-bringup-checklist.md
│ ├── 01-wmd6c-preinstall-measurements.md
│ ├── 02-fg901-waveform-capture.md
│ ├── 03-motor-drive-characterization.md
│ ├── 04-speed-calibration-procedure.md
│ ├── 05-wow-flutter-test-plan.md
│ ├── 06-power-fault-test-plan.md
│ └── 07-usb-c-data-pd-test-plan.md
└── installation/
└── planned after Rev A validation
Installation documentation should not be treated as valid until the hardware has been built, tested, photographed, and verified against the Sony adjustment procedure.
Contributions are welcome, but the project is still early enough that measurements and source-grounded review are more valuable than feature additions.
Most useful contributions right now:
Please see CONTRIBUTING.md for contribution expectations.
| Artifact | License |
|---|---|
| Hardware design files | CERN OHL-P v2 |
| Firmware source | MIT |
| Documentation | CC BY 4.0 |
DSR-1 is being developed as a preservation-oriented engineering project. Its purpose is to make the WM-D6C repairable, measurable, maintainable, safely powered, and digitally serviceable without erasing what made the original machine worth saving.
Performance and safety claims will be earned by measurement, not assumed from architecture.