Philips 212 (GA212) Turntable Upgrade

I still have a Philips 212 turntable that I bought new around 1974. This turntable is a bit of a classic from the heyday of affordable, but high quality, Hi-Fi gear.

Philips 212 turntable. A classic from 1971.

Over the years, my 212 developed all the ailments familiar to owners of these machines. The main power switch failed, and then the touch buttons stopped working. This post details my repair/modification project.

The Philips 212 was built before the era of low cost integrated circuits, so everything inside is designed with discrete transistors.  An advantage of this is the machine can be troubleshot and fixed without hunting down specialized components, but some parts can still be hard to get. Surprisingly, the bulbs that light the buttons are particularly scarce. They are also, annoyingly, integral to the circuit operation so that when a bulb burns out, the problem is not just that a button no longer lights up when touched, the button itself also ceases to work.

To be blunt, the circuit has not aged well over the decades. I’m sure those Philips designers were clever guys in 1971, but a design rule I learned early on is that circuit robustness is inversely proportional to the number of trim pots.  The 212 has five trim-pot tweaks under the hood. I’m an old “analog” guy, so the decision to give up on the original circuit was not made lightly. Maybe this design made sense in 1971, but the more I stared at the circuit, a voice in my head became louder, telling that a little micro-controller could run the entire machine in its sleep.

Underside of Philips 212. Remember, “No User Serviceable Parts” 😉
Old control board extracted for a (brief) attempt at trouble-shooting

The Philips 212 schematic and service manual are linked here:   philips_ga212_sm


Almost everything on controller board can be replaced by a micro-controller. I used an Arduino Uno clone from Adafruit called the Metro Mini.

New Arduino-based Philips 212 controller schematic


Schematics, board files and Arduino code can be found at:


Touch button sensing for 33 RPM, OFF, and 45 RPM — The original touch sensing design used finger impedance to draw a uA (or so) current that activates a discrete transistor flip-flop. Since CMOS logic and micro-controllers have VERY low input leakage current, I now simply connect the touch buttons to Arduino inputs and 10MegOhm pull-up resistors to 5V. A finger touch overdrives the pull-up resistor and forces an input low. All speed select and OFF logic is Arduino controlled.

33, OFF, and 45 button illumination — I replaced incandescent bulbs with white LEDs, mercifully retiring the old circuit that utilized the bulbs in the control logic.

33 and 45 fine speed adjust — The Arduino clock is more than precise enough to give the new design sufficient accuracy without needing adjustments, but the Philips 212’s fine speed adjust is still desired for occasionally tuning records up or down. In order to retain the outer appearance and functionality, two of the old potentiometers are mounted on the new board and read by Arduino analog inputs A0 and A1. A small adjustment (up to about 2%) is made to the speed controller set-point depending on trim pot rotation.

Motor speed control — The original circuit drove the motor with DC, controlled by feedback from a tachometer winding. In the old circuit, the tachometer sinusoidal output was rectified and filtered to supply a DC feedback signal. Rather than replicate that, I square up the tach’s sine output with a comparator (IC1A, LM339D), and then measure period by counting time between pulses. The tachometer period provides more accurate feedback, won’t drift, and requires no trim pots. Motor drive is from an Arduino PWM output (D11) and a MOSFET switch (Q1) connected to the 9V supply.  The original drive was DC, but I took an educated chance that the 500Hz Arduino PWM output will look enough like DC to the motor. Additionally, the rubber drive belt and inertia in the platter smooth out the short drive pulses. I also opted for simple proportional control of the motor, and not PID, figuring to try the easiest path first. Turntable speed seems very stable with this scheme.

Power — The original circuit is powered from a discrete transistor -9V regulator circuit that was adjusted by yet another trim pot. This was replaced with fixed-output three-terminal linear regulator ICs (U1 and U2) to supply +9V motor drive, and +5V to power the Arduino, LEDs, and buttons.

Auto-Shutoff — A photo-resistor/bulb combination (R404 and LA412 in the old Philips schematic) is mounted on a bracket inside the turntable. This is the auto shutoff module. When the tonearm reaches the end of a record, a thin metal vane interrupts light from a bulb that falls on the photo resistor. I replaced the bulb with a small white LED, though there would really be no problem leaving the old bulb in and powering it from 9V through 36 Ohms (as in the original schematic), but I wanted all the incandescent bulbs out.

In order to minimize mechanical changes, I broke open one of the bulbs and soldered an LED in the bulb base. You could skip the bulb and solder the LED directly to the socket, but I found the socket’s plastic unable to take much heat and gave up on that idea. In the new circuit, the LED is powered from 5V through 130 Ohms, and the photo resistor is biased from 5V through 10 kOhms. The photo resistor voltage is read by the Arduino A2 input and compared to a selected threshold (see photo_trip below)

Side view of photo interrupter showing LED
LED soldered into bulb base. Unscrew the bulb before soldering.

PCB and Mechanical — A new printed circuit board which matched the footprint of the original board was fabricated. This allowed easy board swapping with no special cutting or drilling. It was particularly useful to precisely copy the mounting hole locations and slot locations for the bracket that holds the speed adjust potentiometers. The new board also allows the button LEDs to be mounted to the PCB, eliminating some hardware and wiring.

The schematic and PCB were designed in Eagle. I have an Eagle Premium license, so my 5″ x 6″ board was not a problem, but it exceeds the 4″ x 6″ limit for Eagle Standard. The circuitry could probably be housed in as small as 2″ x 4″ with a a different mounting scheme however.

Arduino Sketch – This is my first Arduino sketch for a real project (as opposed to blinking LEDs and other tutorials). There is probably a lot of badly conceived code in this, but it does run. I’m sure the hive mind can improve on it. Please feel free to let me know in the comments how it can better. I won’t feel bad.

Calibration/Set-Up — Once the hardware is built and installed, control variables need to set. Since I’ve only modified one turntable, I don’t know if the values I chose will work for every GA212 (but you can certainly start with them). In order to perform set up, operate the turntable with the Arduino connected via USB to a computer running the Arduino IDE so that you can edit parameters and measure results.

I should note that I had no problem plugging and unplugging the USB connector to my laptop while the turntable was powered or un-powered. By the letter of USB law, you should not back-power a laptop USB output, which is sort of what I WAS doing when connecting my powered-on turntable to my laptop. But, since both sides (laptop and Arduino) are at 5V, there did not seem to be a problem. I can’t guarantee this will be OK every time. If you are worried about this, you’ll have to power off the turntable each time you upload a new sketch. I didn’t have the patience for that, but still lived to tell the tale. YMMV.

One other small note is that I put a small “mouse hole” in a corner of the plastic base so that I could run the USB cable out while machine was all together.

Four parameters need to be set. You’ll find these in the Arduino sketch:

t_err_range is the gain of the motor control loop. The code is such that a larger number equals lower gain. I set this by monitoring the PWM motor drive output with an oscilloscope to watch for oscillation in the pulse width, and testing different values (starting with 6000). The goal is to use the highest loop gain (lowest t_err_range) that is not so high that it causes oscillation in the PWM output. The t_err_range value I used was 7000. Unfortunately I can’t think of any way to test this without an oscilloscope, but if you don’t have one, you’d probably be fine just using 7000.

t_set_33 is the 33 RPM set-point for the motor controller. The number is the period of the tachometer output waveform at 33.3 RPM (in microseconds). Since the tachometer measures the motor (not the platter), which drives the platter via a belt and with a large speed reduction, the target period is not 1/33.3 RPM, but rather about 25ms, or a t_set_33 value of 25000. Note that any t_err_range adjustment requires a subsequent t_set_33 and t_set_45 readjustment since the control loop is not perfect and the actual output RPM depends both on the target period and the gain. The t_set_33 value used was 24650.

t_set_45 is the 45 RPM set-point for the motor controller. The same discussion in t_set_33 applies here. The t_set_45 value used was 17700.

The final values of t_set_33 and t_set_45 were determined by measuring platter RPM with a 60Hz strobe illuminating the strobe ring on the platter. My “strobe” was a white LED driven by a digital waveform generator with a 60Hz 20% duty-cycle square pulse. The generator frequency accuracy was more than adequate for this purpose.

photo_trip is the threshold of the auto-stop end-of-record photo sensor. A vane interrupts light to trigger auto stop, but the threshold may depend on the exact position of the LED and it’s intensity. I determined the correct threshold by serially monitoring the analog reading while moving the tone arm. The photo_trip value used was 800.

I had the boards fabricated by JLCPCB.

In spite of the large board size, the price was less than $35 for 5 boards and slow shipping. I’ve had zero problems with JLC on about a dozen projects.

New controller board. It’s much larger than needed for the circuit, but is the smallest rectangle that reaches all the mounting holes and the fine speed adjust knobs. Note that this board revision ended up needing some hacks that can be seen in later photos. The schematic and Eagle files now reflect these fixes.
New board connections to LEDs and touch buttons.
Bottom of board showing LED connections and fine speed adjust pots and bracket harvested from the original 212 controller board
New controller in place. Note the hacks at the upper right of the board. This is where I put the photo sensor input and LED drive for the auto shut off circuit that I forgot to include in the rev 1.0 design. The schematic and the Eagle files now includes this circuitry.


  • When taking apart the turntable, be very careful when disconnecting the wires from the touch buttons. The parts of the buttons that look like metal (the ring and dot) ARE NOT METAL. They are plastic with a metallized surface coating that is easily scratched. Also BE CAREFUL NOT TO LOSE THE TINY CLIPS that attach wires to the buttons. In hind sight it may be a better strategy to NOT remove wires from the buttons at all, but instead unsolder or cut the touch-button wires from the controller board and leave the buttons undisturbed. Then just solder the wire ends to the new board.

Mistakes Made:

If I were to re-spin the board, this is what I would do differently (All these, except #5, are reflected in the latest board docs, but I have not fabbed rev 2 boards. My 212 works, so I’m done unless there is a big demand from readers.)

  1. Leave more space between AC transformer and Motor/Tach wire pads. There was no reason for 0.1″ spacing.
  2. Leave more space between the touch button wiring pads. Having them 0.1″ apart makes them more sensitive to board leakage.
  3. Add holes in the board at the center of the 45 and 33 RPM trim pots. It would help getting the pots lined up so the little knobs can be positioned more easily for reassembly.
  4. I put the Arduino in a socket header. It’s not super tight. I would add two holes so the Arduino can be secured with a tie wrap (as shown in my pics where I drilled the holes later).
  5. It’s not a “mistake” per se, but I thought about making the Arduino USB socket accessible (for future software upgrades?) without opening the turntable, but I didn’t do this)

It’s done!

So far this turntable has been working beautifully. As far as I can tell, the speed is at least as steady as the original, even with PWM drive to the motor and simple proportional feedback. I am very happy how this turned out, though it was a lot more work than I thought. I’ll leave it to others to decide if a Philips 212 warrants this level of effort to keep running. Though, now, the effort for others will hopefully be much less. This project was probably not justified from a purely economic standpoint, but it was an itch I had to scratch. The Philips 212 was a very nice, but not legendary, machine like Thorens, but it has good “bones”. If you have one that’s mechanically sound, but collecting dust because of controller problems, this may be a nice resurrection project.

I have not thought about whether I want to supply boards or parts. I’ll have to see what the reaction is to this post. It was certainly not a money making enterprise.

18 thoughts on “Philips 212 (GA212) Turntable Upgrade

  1. Awesome write up. I’ve been in the process of resurrecting a 212 but recently ran into a snag in sourcing the C733 capacitor. This looks like it may be an easier way to get this turntable up and running. If you do decide to supply the board/parts I would be very interested.


  2. Sir, I recently stumbled upon this thread while trying to troubleshoot my turntable. I have no experience with andruino? I can do the soldering etc. A few questions:

    Is programming the boars fairly straightforward?

    I am fairly sure my pay is bad, and noticed that your pictures have a different unit in a different location. Is that something you changed?


    • I dunno, maybe $200 not counting shipping? There be would be a pretty high cost/risk to ship the turntable both ways. I’m sending a built board to someone who will do their own install. How do feel about wiring it in?


  3. I’m struggling with a speed control problem on my 212 and I’m nearly at the point where I’m ready to take on this modification. However, I thought I’d first ask if you could lend any advice that might lead me to being able to repair mine using the existing circuitry? So far, my current efforts have yielded some improvement, but haven’t fixed the issue.

    Here’s my post over at VinylEngine:


    • I read your post over at Vinylengine. My suggestions: 1st, determine if the speed-up happens to both 33 and 45 rpm, that will narrow things down a bit. If the problem is only at 33, then that means the speed regulation works but the circuit associated with with setting 33rpm is out of whack.

      BUT, I’m guessing the problem IS at both speeds and that it’s the RPM feedback that’s messed up. The circuit gets a feedback signal from the motor and drives the motor with more volts If the feedback goes down (to regulate speed). If the feedback signal is getting reduced by a leaky cap or other circuit problem, then the motor will speed up because the circuit THINKS the motor is slowing down when it isn’t. If you have a DVM, you can watch some of these voltages while the machine is running. If you see the motor feedback voltage not increasing when the speed goes up, that points to a problem.


      • Thank you, I will give that a shot. I think one of the local resale shops had some 45’s I can test with.

        I do have a DVM and looking at the schematic I think that would involve testing voltage across the brown and black wires from the motor as those are apparently connected to the tachometer circuit. Is that correct?


  4. Hello again, two big favors to ask if I may?

    I’ve decided to go all in on using your board.

    First; would you be willing to supply a detailed parts list? I was able to get the parts BOM out of the files you supplied and upon reviewing them I’m not sure how confident I am I’ll select the correct parts. Especially around the area of capacitors. There’s a few that have a different device listed than the value given, my plan was to reference value, but I wasn’t sure if the voltage should be the same.

    Second; I think I’ve got the circuit board sorted out with JLCPCB, but would you mind double-checking my selections? The only one I went away from their defaults was on the surface finish.

    PCB Thickness:1.6
    PCB Color:Green
    Surface Finish:ENIG-RoHS
    Copper Weight:1 oz
    Gold Fingers:No
    Material Details:FR4-Standard Tg 130-140C
    Panel By JLCPCB: No
    Flying Probe Test:Fully Test
    Castellated Holes:no
    Remove Order Number:No


  5. Hi, thanks for the awesome write up. I’ve got an old (unworking) 212 that my dad bought as a teenager and now he’s handed it down to me in hopes taht I can bring it back to life. Any chance you’d still sell one of your leftover rev1 boards?


    • Hi – I have a few Rev 1 boards and also a rev 2 board. I can send you a blank rev 1 board (which will require hacks mentioned in the blog) for $10, or a rev 2 board (no hacks needed) for $20. If you like, I can populate a rev 2 board with everything except the metal bracket, pots (which come from your old controller), and Arduino, for $100.

      Liked by 1 person

      • Thanks! I’d be interested in the rev2 board (possibly populated). I’m sorry, I’m not too familiar with wordpress…is there a way to send you a private message so we can work out the details?


      • Hi jaminwillaims – After a bit of searching, I’m still not sure how to do private messaging here. The only thing I can think of is if you send me a comment containing your email, and I will NOT approve it, so it should not appear. Then I’ll contact you.


  6. I think I could do the upgrade with the board ready to go but would still need maybe help which I think there is enough to do in this article. I hope you are still available.;


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s