I replaced the bad transistor, turntable still does the washing machine motion.
So now here's the deal, and I believe it's very simple for an arduino to do
How can I tell an arduino to open and close a circuit repeatedly at a certain interval, which can be controlled by a pot? And once I use the pot to find the "sweet spot" (which will be 33.3 rpm and 45 rpm), I can simply wire the buttons so that it will be a fixed resistor in the "sweet spot" that feeds to the arduino pin.
Because as you can see, when I turn on the turntable and it does the runaway speed thing, it doesn't do it immediately, it takes time for it to reach whatever speed it's going to reach. So I found if I turned it on and off at the right interval, I can get it spinning at the right RPM.
I think a better way would be to use the pulses from the hall effect sensor built into the motor to feed into the arduino, and so that the arduino will close the circuit until it reaches 33.3 RPM, then open it when it gets too fast, close it when it gets too slow, etc.
It's obvious the drive itself works fine (or else it wouldn't spin AT ALL) but the thing that tells the drive what to do is broken.
I'm playing with this in the tinkercad program. I want to make sure everything is right before I buy anything.
However when I did it, it's not giving me any variation in blinking speed AT ALL.
Using a pot is the primitive version.
Ideally I want some way to read the RPM of the platter and tell Arduino to modulate the opening and closing of the circuit based on a very narrowly defined RPM range, like if RPM is above 33.33RPM, open circuit, and if it falls below 33.329 RPM, close. Because the problem with pot is that the RPM could drift, and the pot will have to be adjusted on the fly to make it work.
The turntable has dots along the edge, this can be used by a reader to determine the spin speed of the platter. I do not know how to lift the hall effect sensor data off the mainboard.
Also I fixed the turntable, I took the AN6680 from a known good Technics SL1200 and transplanted it over, and guess what, it works. So we know it's the AN6680 for sure.
Problem is with the chip costing way too much... going to ask my friend if he can get a deal on them because he's taking a business trip to Japan to procure a bunch of those turntables.
But once that chip's put in, it functions as though nothing ever went wrong, and with the old AN6680 chip it does the washing machine routine.
Such a weak link... and we don't even know much about this chip, not enough to emulate it.
An easier solution - considering you can control the speed of the motor - would be to have a sensor that gives you the RPM, and then have the Arduino adjust the speed to get to the desired 33 rpm. Considering the reaction time you may need PID control. You may be able to use the block pattern on the turntable itself to measure the rotation speed. I wouldn't rely on the stability of a pot or fixed resistor and the ADC to get to a desired speed, it's much more reliable and stable to measure and then adjust the motor to get to the actual speed you want.
By the way, I recall the SL1200 get up to speed within half a turn or so. Pretty fast at least.
I'm not an EE, and I suck at programming. I would have to find tutorials and modify them to suit my needs.
I'm certain the motor has hall effect sensors inside that lets it know where in the position the platter is, but not only that, let it know how fast it's spinning. Need to find a way to feed this data to the Arduino or whatever.
If only we know what the 6680 does, and what each and every pin does, someone can make a version of this chip that does exactly what it does.
But I'm also certain that Panasonic don't just have this one chip for just turntables. They make a lot of consumer electronics that are direct drive. Front loading washer comes to mind.
I wonder if a chip similar to the AN6680 is found in those machines too.
The difference between those two is 0.04 RPM, or 0.0006667Rev/sec, or 0.12% Measuring that difference in speed accurately and quickly enough to adjust the speed might be difficult.
The dots are probably optical, and not part of the board's feedback system.
Maybe reading the dots on the edge would give you enough resolution quickly enough to detect speed changes. I imagine they'd be at 50 & 60Hz (or 100 & 120Hz?) for the proper speeds, so if you can read them with micros(), you could potentially get 120Hz measurements of speed with 4us/8333us = 0.00048= 0.048% resolution.
You don't need to use the pot to cover the full 0-45RPM range, you could map the 1024 steps of analogRead() as trim to 33.333RPM +/-0.1024 by 0.0002. e.g.: RPMtarget = 33.3333+(analogRead(A1)-512)/10000.0; or use two pots to do a rough and finer trim.
The chip is doing some complicated stuff, translating the feedback and reference oscillators into control signals for the driver. With the various voltages and already existing sensors, using a replacement under-documented original chip will be easier than reverse-engineering the protocols and interfaces existing on the board.
I bet the chip isn't doing anything more complicated than say a Z80 processor. We got way more complicated stuff that's mass produced and cheap these days.
I measured a functional turntable, as in with all original hardware that's working like it should, and it's got about 1% RPM range. Even the original hardware isn't that great honestly, but the listener wouldn't notice.
Basically I'm trying to make a turntable work, because it depends on a chip that's so obscure and complicated that not even the Chinese will copy it, and so apart from selling your kidney to afford it, there's no other option (and this is assuming the seller isn't scamming you).
Only thing I've ever been able to find online apart from people charging too much for the chips, is techs assuring everyone that they got plenty of the chip in stock, of course if you're willing to pay double what the deck is worth to get it serviced (I'm told you can get these decks in Japan for around 100 dollars USD and he aims to import them). I told him get as much parts and such as he can, even nonfunctional decks. Because the spare parts are worth money too, and any part with mechanical issue (like the tone arm) I can easily fix.
One guy with some background in EE told me that most these motion control chips are more or less the same anyways.
Yes, the basic Watts = f(rpmTable - rpmDesired) calculation is fairly simple.
Taking your post #25's 20ms/pulse at 33.33RPM ( 90 pulse/rev) math for synchronization fits into small processors:
and
(The mains synchronization PLL stuff towards the end is interesting.)
But the complicated stuff I see is reverse-engineering the undocumented chips and then interfacing the signals with the existing system, figuring out which pin does what, adapting levels, (I'd almost think it would apply a analog voltage to the motor, so it can spin up quickly and reduce to small changes don't bump the speed much when it is near target) figuring out of the hall sensors or inductive sensors or whatever, and then finally working out the tuning of the system so it is fast and accurate enough.
The one chip is one of the two halves of an 0.03% accuracy ESC. Reengineering half of the ESC looks daunting if you don't even have an oscilloscope.
Like we don't even know how it works, and no one tried to figure out?
This isn't a core i7 processor, hell it's not even half as complicated as a Z80, and those things are emulated like all the time.
I googled data sheets and can't find any, is it because there isn't any out there?
I know Panasonic has a lot of products that have high accuracy ESC, not just turntables.
I guess I only mentioned opening and closing the power switch with Q201 removed from the circuit, because it gets the motor spinning but at maximum RPM. So at least we can somewhat control it.
If we can't lift the data from the hall effect sensor to feed into an Arduino, then I'll just have to put shiny tapes on the platter and do it that way (like a traditional tachometer).
I can't believe no one else (who are surely actual EE's) tried this.
Removing Q201 turns off the 6880 and causes the 6875 to run away, since it gets no analog feedback into its EC and ECR.
You can pick up the (non-)hall effect signal leading up to the 6880's pins 23 & 24.
The trick with using an Arduino would be delivering a quality analog signal between the 6675's EC and ECR pins. The rest of the bits (frequency generation, strobe light, buttons and LEDs) look well within the capabilities of an Arduino.
I'm curious does anyone have the schematic of this turntable in tinkercad so I can play around with it without needing to solder or desolder anything?
So if I ran a turntable with the 6680 out of the circuit it will do the same? I have not tried with the good turntable, I was afraid of burning something.