Home | Concept | Body & instrument | Optical tonearm | Turntable platter | PIC code | Review
The internal direct-drive electromagnetic motor of the turntable operates at specific frequencies, nominally 33 and 45 RPM. Its control circuit incorporates a pair of Hall effect sensors to maintain these velocities. In order to gain speed control over the motor, we are using a MOSFET based circuit (controlled by a digital output of the CUI PIC) to connect and disconnect the turntable's own 12V power from its motor circuit at a high rate; effectively a PWM control technique.

The PIC software allows the desired frequency for the motor to be specified using the force feedback protocol. The MOSFET circuit then gates the power of the motor accordingly in order to achieve this frequency of rotation, as registered by the frequency sensor described below.

The platter rotation may also be overridden manually through physical interaction of course, but it can also be overridden using the original buttons and switches on the turntable body. These buttons have been connected to the PIC and transmit their state to the computer via USB, however they can also directly disconnect and connect the platter motor power supply for steady pitch or manual motor pulse interaction.
The turntable platter is bordered by alternate black and silver stripes, intended for use in conjunction with a strobe light to indicate the accuracy of the frequency of rotation of the platter (at both 33 and 45 RPM). We have taken advantage of these markings by replacing the strobe light with an IR transmitter-receiver pair aimed at the markings, generating alternate high and low resistances as the platter rotates.

The IR transmitter and receiver are incorporated into a circuit to convert these resistances to voltages alternately higher and lower than 2.5V (including a potentiometer to calibrate the system in different ambient IR light situations). These voltages are connected to a digital input pin of the PIC.
The activity of this pin triggers interrupt functions in the PIC code to measure the period of each transition between high and low resistances. This period is compared to the period corresponding to the requested platter motor frequency and thus the motor is activated/deactivated accordingly (noting that the platter has 182 divisions, therefore 364 transitions, per revolution). The evaluated platter frequency is also sent back to the computer as an input device parameter.
The platter speed value we send from the computer to the PIC using the force feedback protocol is meant to represent the desired number of transitions over this period; the PIC compares the desired number and the actual number reported, and turns on/off the motor accordingly. We found in tests that attempting to flip the motor state faster than around 100ms resulted in no motor activity at all,
so the total pulse width period we are using is 128ms with an on pulse width of 4*8=32ms. You can see how this works in the code example here.