ARCHIVED FORUM -- March 2012 to February 2022READ ONLY FORUM
This is the second Archived Forum which was active between 1st March 2012 and 23rd February 2022
This article is copied from my website: https://leicht.io/blog/beotac-a-tachometer-for-the-beogram-4000-series
This article aims at describing the process of developing and implementing an Arduino-based tachometer. This should make it possible to measure the performance and stability of the motor in a Beogram 4000 series turntable. The main concept of this system is a tachometer which uses interrupts to calculate the RPM of the turntable and sends the measurements to a connected PC via a serial interface.
It is crucial and of the utmost importance that the turntables I restore are stable, accurate and durable. Minor fluctuations in the stability of the RPM can seriously harm the user experience when listening to one’s favourite music and since the motors are over 40 years old this is often the case. Therefore I needed a way to verify that the motors I restored were performing as expected over a longer period of time. I’ve found two possible solutions to this problem, namely the AR926 and BeoloverRPM (from 2016) as seen in Figure 1.Figure 1: The AR926 compared to the BeoloverRPMAfter multiple investigations, I ended up with the advantages and disadvantages of the existing solutions discussed below.Digital Tachometer, AR926Advantages
Disadvantages
BeoloverRPMAdvantages
With the previously mentioned advantages and disadvantages, I decided to develop my own implementation called BeoTac which enables me to do adequate performance and stability tests over a longer period of time since none of the solutions seems to solve my problem completely. My goal was to create an implementation a lot like Rudys but with the following improvements:Optimized design
Extended software
My initial idea was to create my own circuit with an IR-transmitter and receiver connected to an ATMega 328p microprocessor. I tried to measure the analogue values, but this proved inaccurate and difficult to control which is why I opted to use a digital circuit. To digitize the output from the IR emitter my idea was to include an OP-AMP comparator circuit (LM358).Figure 2: An early-stage prototype with the LM358.After tinkering around with the circuit for some time I decided to simplify the process and decided to use an Arduino Nano in combination with an IR sensor module instead. This would make it easier for me to create an MVP as fast as possible and verify that the idea was possible. I 3D printed a minimal base, attached the IR sensor module and connected it to the Arduino Nano. The LED’s was bent downwards to pick up the black bars.Figure 3: An early-stage 3D printed part used to verify the idea.Figure 4: First readings when switching from 33RPM to 45RPM, using Arduinos Serial Plotter with a Baud Rate of 38400 Bd.With a minimal codebase, the MVP verified that BeoTac solved my issues and made it possible for me to test the stability and performance of the motor.I designed the BeoTac casing from my blueprint to which the SSD1306 OLED display was later added. The sampling time was adjusted to one second since the Arduino would be exhausted by updating the screen and handle interrupts at the same time.Figure 5: Second iteration with the IR sensor attached.Figure 6: Early prototype casing without the OLED screen attached.The software was written from scratch and internally uses interrupts on PIN2 to increment a counter every time a black bar is registered by the IR receiver. Each second the RPM is calculated and sent to the PC via the serial connection and via I2C to the OLED screen.The OLED screen shows the current RPM fixed with two decimals and a “checkmark” if the speed is ~33.33RPM or ~45RPM. Otherwise, it shows an “X” which could indicate that the motor is in need of restoration. I also started using SerialPlot which enables me to take larger data samples, e.g. 24 hours, since Arduinos Serial Plot is limited to ~500 seconds. The screenshot below shows a sample of data for ~1 hour.Figure 7: SerialPlot, plotting data for 1 hour.Figure 8: Prototyping requires a lot of testing.Figure 9: Testing the screen.Figure 10: Finished product compared to the early prototype.The casing as seen in figure 11 worked as expected but after some field testing, I’ve addressed a couple of issues which improved the overall experience.Instead of using four screws to attach the bottom, I’ve changed the design to use a single screw which is indented such that the screws doesn’t scratch the base of the turntable.Figure 11: Optimized the bottom design and added a single indented screw to remove the risk of scratching the surface of the Beogram.Figure 12: A 3D model which compares the two different bottom designs.The base for the OLED screen was originally glued to the case but since glue an unsustainable solution I’ve updated the design and added screws instead. In this way, I am sure that the screen will never fall off.Figure 13: Second iteration of the finished model with screws attaching the screen instead of glue.The software was also updated with a new feature enabling the use of the BeoTac on other turntables than the Beogram 4000 series. With a single command, it is possible to tell BeoTac how many bars it should react on. This makes it possible to print a white piece of paper with a single black bar on and add it to any type of turntable.Below is a 3D image of my initial blueprint (right) and the finished model (left).Figure 14: First design prototype to the right, and the second iteration of the finished product to the left.Figure 15: 3 different prototypes compared next to each other.For those interested the complete component list is below.Hardware components
Software
Hand tools and fabrication machines
Below you’ll find some images of the final product.Thanks for reading. I would be happy to receive some feedback :)
Kind Regards,
Christian Leicht
https://leicht.io - B&O Custom Parts & 3D Models
Hi Christian,
Nice project! Clever thinking and done!
Just a question. Do you think that when you place a record on the turntable, will it affect the speed because of the weight of a record?
I use a record with a pattern to adjust (with the 50 hz lightbulb. If I want to use the same Beotac you've designed, then will it be possible to use that? As my record has multiple patterns (33/45/78 for both 50 and 60hz. Would adding a red led dot on the record to point out the place of your beam? So, you can see which pattern is measured? Or is that completely unnessary and just replace the strobe-record with one with the same pattern as your showed BG400x. There still lies a challenge for adjusting the tables with this Beotac, when it comes to older players, like e.g. a BG1203, which doesn't have the stripes.
But again, nicely done!
Great,good job !
I was already from the RPM meter from Beolover(https://beolover.blogspot.com/2015/12/beoloverrpm-shop-version.html) very impressed, but this looks even better.Unfortunately, Beolover does not respond to requests to buy or information about replicas.
I would be very interested in a case and the Arduino sketch!Do you write me a PM or email?
Best regards
wilfried