Display Turntable speed with an Arduino Nano

Some turntables come with a way to adjust the speed, some with a way to see the speed, but most do not have either. This project is for the person who wants an inexpensive but accurate way to see the speed of their platter on a digital readout. The display is five seven segment LED displays, two whole numbers and three decimal places. The Tachometer cost under $50 USD to build and is quick and easy to build. It is on 2 ¾” square PCB so will fit in most any table internally with a window to see the display and the trigger LED.

The project uses an Arduino Nano to perform the timing counts, calculations and run the display. The Arduino Nano’s clock crystal is neither stable enough nor accurate enough to use for the clock, fortunately the Nano can be configured to accept an external clock as the timing base. I used a 10-Megahertz oscillator that is good for +/- 2.5 PPM (Parts per Million), so within 9,999,975 to 10,000,025 Hertz. That’s a 0.00025% error rate, accurate enough for even the most stable tables. The 10-Megahertz clock output is run through a divider chip with does two divide by 10’s, so the clock is 100 kilohertz to the timer counter.

The Arduino has three timers built in but to make the timing accurate you must shut off the other two timers, timer 0 and 2, so there is no processing overhead to mess up the timing. Timers 0 and 2 are 8-bit timers, too small for counting the 100 kilohertz clock, produces too many overflow interrupts. Timer 1 is a 16-bit timer which is adequate to the task. As you can see from the source code the setup() procedure’s first five lines manipulates the processors registers to set the timers up. The processor uses two interrupt service routines for timing, one internal to count the number of times the counter over flows and the clock pulses, and one external interrupt connected to a Hall Effect sensor which is placed under the rim of the turntable platter and a small button magnet is glued to the underside of the rim of the platter. The magnet is small enough and light enough not to affect the platter balance.

The PCB has a 5-volt regulator on it so you can feed the board 7.5 to 12 volts DC. The optimal voltage in is 9 volts DC. While the regulator can handle higher input voltages the heat dissipation may be too much, 12 volts is pushing the thermal limit of the PCB heat sinking capability.

Note: the cost of the tach is using Blue LED displays, we build one with Red LED displays, a lot cheaper, and it still looks good. The hall effect sensor is around $10 but I designed a small ½” square board with a $0.60 hall effect sensor on it so cut the cost to about $1. So, an overall savings of $15 with Red LEDs and the home-made sensor. I will post the gerbers and part number for the Hall Effect sensor in another post.

This post has the PCB gerbers, the schematic, the BOM, a couple pics, and the code.

Operations: when the tach is powered on it runs through the setup of the Arduino and, before it exits, turns on all the LED segments for 5 seconds, this is a test to show you if you have any issues with your soldering. Then the main code runs, loop(), which looks at the number of overflows of the counter, which being 16 bits can only hold 65535 clock cycles before it trips the overflow flag and resets. If the platter isn’t turning the overflow count will keep going up, but once the number of overflows is over five, long enough to see the platter isn’t turning, it shut off the display. As soon as the platter starts turning the overflow number is reset by the triggering of the hall effect sensor and the display comes on. Whatever speed the turntable is spinning the speed will be displayed whether it is 33 1/3, 45, or 78 rpms. My table is a Denon DP80 built into a heavy plinth and typically displays 33.332 to 33.334 which is extremely stable and what Denon was known for. A friend is working with some Pioneer high end tables with a custom platter and heavy plinth and is seeing similar numbers, once the tables warm up. For grins I stuck a magnet to the side of an old, cheap Girard table and it was varying a lot more than I would like to see in an audiophile table.
 

Attachments

  • TurnTable Speed.pdf
    TurnTable Speed.pdf
    28.9 KB · Views: 388
  • TTmicroPtachBOM.zip
    TTmicroPtachBOM.zip
    12.9 KB · Views: 215
  • MicroPtachV3-1_gerber.zip
    MicroPtachV3-1_gerber.zip
    25.7 KB · Views: 178
  • IMG_3556.JPG
    IMG_3556.JPG
    264.4 KB · Views: 384
  • IMG_3557.JPG
    IMG_3557.JPG
    327.1 KB · Views: 376
  • TT-Tachometer.zip
    TT-Tachometer.zip
    1.9 KB · Views: 236
Last edited:
johnhenryharris:

Thanks for this project! Would you consider updating the BOM? I found issues with the following:

I couldn't locate the 7-segment display listed in the spreadsheet at either digikey or mouser. Is DSM7TA39106T a suitable replacement?​
The linear regulator is out of stock at mouser for the next 3 months. Would MC7805CDTG work as well?​
The oscillator (CVT32-10.000) is in very short supply at mouser. Can you suggest any alternatives?​

Regards!
 
The LED display DSM7TA39106T is a good replacement and I actually prefer it over Digikey as they ship directly from the vendor and delays the materials by several days.
The Linear regulator MC7805CDTG is the same part just different material packaging but since you only buy one, or so, it is shipped in an individual package.
The CTS32-10.000 has 29 in stock but is twice as expensive as the new one available, FOX924B-10.000, same foot print and PPM.

So I have updated my BOM with these new parts. Thanks for the questions about the materials, This is always a problem with projects, material going end of life or long lead times.
Good luck.
 

Attachments

johnhenryharris:

I would appreciate your guidance: I'm finalizing the BOM for my build and have decided to go with an orange 7-segment display instead of the bright blue unit you proposed. The specs (including the forward voltage) on the orange display (Vishay model VDMO10C0 -- https://www.newark.com/vishay/vdmo10c0/display-seven-segment-10mm-orange/dp/06AC6506) are quite different from the blue display (https://www.aopled.com/AOP_PDFs/SMCA391LB.pdf). Under the circumstances, I suspect that the resistors connected to the displays should be changed, perhaps closer to 300R. Would you mind confirming or correcting my thinking, and also confirm which resistors should be changed?

Thank you,
Scott
 
johnhenryharris:

What a pest! I have another dumb question. Mouser and Digikey won't be resupplied with the linear voltage regulator for many months. Mouser does have a few alternatives, and I'd like to confirm with you that NCV7805BDTRKG is a suitable replacement.

Thank you for you patience and consideration.

Regards,
Scott
 
Hi Scott, I've been using the STMicro 5V 0.5A L78M05ABDT-TR without issue and have also powered it directly through the USB port on the Nano as well. It works so well that I am considering just runnning a USB cable to it and plugging it into a charging pack when I want to adjust it, instead of trying to find 9V somewhere (or you can use an outboard 9V battery).

I measure the draw over USB and over the 9V input at 40-50mA. Any of these (0.5A to 1A) regs should work, which also includes the onSemi one you listed:
5V TO-252-3 SMD voltage regulators 0.5-1.0A output

Cheers,
Stephen

P.S. johnhenryharris replied in the meantime and I didn't check pinouts (footprint) so anyone reading this, reminder to check pinout when selecting a replacement regulator.

Thanks for sharing this @johnhenryharris !!!