Here is corrected gerber files, as I promised. And some little more detailed W&F measurements with quartz lock on, and pictures of replacement board from infrared camera after playing a tape about half on an hour. BOM and assembly drawing is not ready yet, will post them later with installation instruction witch I'm currently working on.
Thank you! Actually, I have two units - D6 and D6C, and W&F is the same on both of them, mayby slightly better on D6 because of it's small usage. D6C has significantly signs of wear - I think, it's really been used by journalist, because pause button surface is polished.
That's funny, that sealed IC has only sentimental value if one wants to collect it. Is there anyone collecting NOS parts (without the intetion of ever using it) ? I wonder... For everyone else, donors can be bought much cheaper (remember donor doesn't have to be a D6C), then it's the new Chinese board alternative and the BA6301 solution presented by @LeKos. With 3 significantly cheaper options available, I honestly fail to see any value at all in this listing apart from potentially being a collector's item. Even a couple of years ago when I could still get these genuine NOS CX20084 ICs, they used to cost less than 1/10 with shipping included.
Making an instruction actually took more time than I suspect. Now I think it`s ready, but maybe I missed something, so if you have any questions, I will try to help. So… Desolder: Components within blue line. Wires from motor (red and white). Wires from FG coil. Brown wire #15. Blue wire #17. Also remove R603, R604. R604 need to be replaced by 300k resistor, R603 need to e replaced by 330k resistor. Existing wires soldering: Red wire from motor solder to the same place as brown wire #18. Wires from FG coil connect to "FG+" and "FG-" pads on replacement board. Blue wire #17 and brown wire #15 connect to "Blue" and "Brown" pads on replacement board. White wire from motor connect to "M-" pad on replacement board. And there are some new wires needed: Wire from "GND" pin on replacement board solder to the same place as black wires #4, 25, 43, 44. Wire from "+10V8" pin on replacement board connect to the same place as orange wires #14, 11. Wire from "+5V" pin on replacement board connect to pad for pin 5 of IC601. Wire from "To pin 4 of CX20084" connect to pad for pin 4 of IC601. And you need to add a 270p cap between pins 5 and 8 of IC701 on Auto OFF board for proper working of quartz lock mode. After installation adjust RV603 with speed tune set to on and RV602 on center position. Adjust RV601 according to minimum W&F with speed tune set to off. This is the same adjustment as described in "Tape speed adjustment" in service manual, but I`m not sure about proper speed. In my unit, with "Tape speed" solder joint removed, I have speed about 3240 Hz on 3000 Hz test tape. Be careful - instead of original, in my current schematic this adjustment have smaller area, in witch PLL lock works properly and stable. If you can't obtain stable small W&F, try to increase R715 on Auto OFF board, decreasing additional capacitor's value from 270p. I have the same stable results with R715 changed to 3.3 MOhm and 120p capacitor. Also you can try to increse a value of R603 and decrease RV601 - theoretically it should simplify the adjustment. All of this is more tricky than original procedure, and I can`t guaranty that it will work. In my case it works perfectly, but if in you case it don't, just replace R603 by 300k, remove "Tape speed" solder joint and adjust speed by RV601 to obtain correct tape speed. Quartz lock will be disabled, but unit should work stable. In attachment there are pictures with instructions, BOM and gerber-files. Gerber files are the same as before, attached them here so that everything - instructions and gerbers - was in one place.
I recently purchased a wm-d6c specifically for a restoration project when I retire in July. It is exhibiting the speed related issues that point to the CX20084 I being bad. I won't know for sure until I dig into it. But, I prefer to be prepared for the inevitable. Is anyone producing these boards or have one they could sell me? I looked up the guy on ebay who used to sell these modules, and he's not coming up on a seller search. Conversely, if anyone who regularly refurbishes these units, do you have an actual CX20084 that they could part with? I've got the full rubber kit and pinch roller coming from FixYourAudio. And some alignment tapes coming. Thanks.
There is also a Chinese board available, but you need to remove quite a few components from the board to install it. It's available here, you will need a proxy like SuperBuy: https://www.goofish.com/item?&id=766454209480 This is a something you can buy directly, but a bit harder to install compared to the BA6301. Not sure if this BA6301 board is available to buy (you can ask) or you need to make one yourself. I am also considering to design something with discrete components, but that would need to be tested first. So it may take a while.
There are many possibilities of implementing this, including a digital control loop with microcontroller. With this approach there are some things that have to be taken into consideration: it can't run a bootloader (the time to load it would be too high) and the code itself must be efficient not creating any delays in the control loop. It would be nice to implement such a solution, but in my opinion it's not the easiest approach (despite it looks that way at first glance). Found another interesting Chinese replacement, different than the first: https://www.goofish.com/item?&id=1052384295216
I'm looking at the STM32G0B1KBT6. The STM32G0B1 is an exceptionally fast-starting microcontroller for this application. From the moment power reaches the VDD pin, the internal HSI16 oscillator — a 16 MHz RC oscillator built into the silicon — begins running within microseconds, requiring no external crystal and no oscillator stabilization wait time. The PLL locks onto HSI16 and ramps the core to 64 MHz in under 200 microseconds. From there, the bootloader checks the BOOT0 pin state, confirms the flash is not empty, and jumps to the user application in one clean step — no negotiation, no USB enumeration delay, nothing that adds meaningful time. The servo initialization code configures TIM2 for FG input capture, sets up the DAC output, enables the ADC for pot scanning, and enters the main control loop. All of that together — power-on to active servo loop running — takes approximately 2 milliseconds. This matters because the WM-D6C's capstan motor M901 takes roughly 300 milliseconds to spin up from rest to operating speed after the play button is pressed. The STM32 is therefore sitting in its control loop, reading FG pulses, and actively managing motor current for the final 298 milliseconds of that spin-up ramp — the most critical phase where the original CX20084 was applying servo correction to achieve a smooth, flutter-free lock to target speed. The replacement not only matches the original's behavior, it improves on it: the digital PLL can apply a precisely tuned PI control algorithm from the very first FG pulse, whereas the analog CX20084 required its own RC time constants to settle. The net result is that tape speed locks to the correct value faster and holds it more tightly than the original circuit, with no perceptible delay from power-on.
The firmware runs directly on the metal — no operating system, no HAL abstraction layer, no middleware stack consuming clock cycles and flash between the control loop and the hardware registers. Every microsecond of execution time is accounted for and intentional. The core servo loop is written in minimal C, compiled with GCC for ARM with full optimization enabled (-O2 or -Os), which on a Cortex-M0+ produces tight, predictable machine code with none of the overhead that higher-level abstractions introduce. The C code maps directly to the STM32G0B1's peripheral registers through simple pointer dereferences — writing a value to the DAC output register, for example, is a single 32-bit store instruction in the compiled output, executing in one clock cycle at 64 MHz. There are no driver layers, no callback chains, no interrupt-driven peripheral frameworks sitting between the algorithm and the hardware. The timing-critical sections — specifically the TIM2 input capture interrupt service routine that timestamps each FG pulse and computes the instantaneous period — are written to be as short as possible. The ISR reads the capture register, computes the period delta, updates the PI accumulator, writes the new DAC value, and exits. On a Cortex-M0+, interrupt entry and exit overhead is fixed at 15 clock cycles. At 64 MHz that is 234 nanoseconds of unavoidable latency. The actual ISR body adds perhaps another 20-30 instructions — call it 500 nanoseconds total from FG edge to updated motor drive voltage. The capstan motor and its mechanical load have a time constant measured in tens of milliseconds. The servo is therefore responding roughly 50,000 times faster than the system it is controlling, which is why the digital implementation achieves tighter speed stability than the original analog circuit. The PI coefficients — the proportional gain Kp and integral gain Ki — are stored as fixed-point integers scaled to avoid floating point entirely. The Cortex-M0+ has no hardware floating point unit, and a software float multiply would cost 20-40 cycles versus a single-cycle integer multiply. Using Q15 or Q16 fixed-point arithmetic keeps the entire control calculation inside 10-15 clock cycles, maintaining the ISR's deterministic execution time regardless of operating conditions. This is the same approach used in professional motor control ICs — it is not a compromise, it is the correct implementation for this class of problem. The USB CDC stack for live tuning runs entirely in the main loop between servo interrupts. It is non-blocking, checking for received characters and updating PI coefficients or target period registers in place. Because the servo loop runs from hardware interrupts and the USB handling runs in the background main loop, there is no scheduling complexity — the control loop always preempts, always runs on time, and the tuning interface gets whatever cycles are left over, which at 64 MHz is the vast majority of them. The result is a firmware image that fits comfortably within 32 KB of the 128 KB flash — leaving the remaining 96 KB entirely unused — and a RAM footprint measured in hundreds of bytes rather than kilobytes. The machine runs one job, runs it perfectly, and does so with the kind of deterministic real-time behavior that a 1990 Sony professional field recorder deserves.
Sounds very good, I think what you stated is an excellent starting point. If you don't mind, when done please share the project with the community or sell the complete PCB. One other thing I think is important is external component count and MCU package footprint. The LQFP32 is a bit big for this application, BGA being a better option but that would require automatic assembly. The important aspect is for the replacement PCB to be as small as possible and requiring as little modifications to the original PCB as possible (so even DIYers can install it). It is clear that one way or the other, we will need reliable alternatives to the original CX20084, since those are no longer viable from a cost point of view. This MCU solution you proposed seems by far the best one as far as performance goes, if it can tick the other boxes (cost, footprint, ease to install) it is the winner.
I have set up a Github project for this. I have some information in place including a block diagram and a 30 page module Datasheet. This is a fully open source and open hardware project. Schematics are being developed in KiCad and will be made available when I have them roughed in. I truly would like everyone to take time to look thru the repo and comment, offer suggestions and such. Much of it is placeholder, but the block diagram and module datasheet are available now. https://github.com/ChipCreates/wmd6c-servo.git
There's only 2mm difference in chip dimensions between the two. Additionally, for the DIYer who likes to assemble their own boards, the tiny BGA chip is a serious challenge.