Monthly Archives: April 2016

New Feature: “SaveHzAtSec”

I know you’re waiting for it – but I’m truly striving to construct the world’s best turntable speed box for you. The worst thing would be to sell a banana product (which has to mature at the customer). Or even with bugs. That’s why I’m still working on making the firmware perfect – in terms of features and bug testing.

Today, I’ve added a feature that allows MagicQuartz to remember the calibrated speed at the beginning of the record. When you turn the record or put another record onto your player, it will automatically resume to this speed.

You may ask, why. The position of the needle has an impact on the playback speed. When the needle moves towards the center of the record, there’s less friction, and MagicQuartz compensates this with a frequency change of about 0.04 Hertz (at 33.3333 RPM at 50 Hertz). This is not much, indeed, but very noticeable due to MagicQuartz fine timing resolution, and may confuse listeners. They want their records played back correctly from the very beginning, not having to wait for the firmware to correct the speed discrepancy.

In version 1.00, you will be able to set the parameter “SaveHzAtSec” to e.g. “60”, which means that MagicQuartz remembers the current speed calibration 60 seconds after the record has been started. MagicQuartz will automatically resume to this value when the motor has been switched off (e.g., if you turn or change the record). This value is automatically deleted when you change the parameters on the main screen. Of course this can also be disabled.

It’s this and other details that set MagicQuartz apart from other “speed boxes”!

I’m currently also optimizing the source code. I’m already using 98% of the available program memory (with more than 5200 lines of C code). This can lead to unexpected behavior of the firmware, and I need to do more testing. Duh!

Time to go to bed now … 😉

Finalizing the Firmware

During the last couple of months, I’ve been using my MagicQuartz prototype to see how well it performs (with firmware version 0.9). It does perform well! But there were some minor glitches. This evening, I’ve started to sort them out. Here are the current changes for version 1.0 (which will make it into the final product):

  • I’ve added a second standby timer. Now there is one for the motor being switched on and one for the motor being switched off. The first one should be set to e.g. 40 minutes (the maximum playback time of a record side), because you don’t want to go into standby while listening to your record. The other value can be set to e.g. 5 minutes.
  • MagicQuartz will not enter “live quartz mode” or it will leave it, if it thinks that the motor is currently not switched on. In version 0.9, it displayed an error message. Now there’s the possibility to override this warning and to tell MagicQuartz that the motor IS switched on. Normally, the motor status detection works just fine (at least on my Dual 1219), but your results might be different with other turntables (which draw less current). And there are crazy moments where MagicQuartz thinks that the motor has been switched off although it is not. For example, if you switch your turntable from 33 to 78 RPM in live quartz mode. This actually requires some tweaking of the setting in order allow this type of speed correction, but in such cases, overriding the detection of the motor status can be useful.
  • The third thing is related to “live quartz mode”. If you’ve read the manual, you know that MagicQuartz uses some very sophisticated programming to deal with measurement errors. The algorithms are very efficient to not have measurement errors any impact in the speed control. MagicQuartz uses a buffer to display the averaged speed measurements (which has NO impact on the speed regulation performance, as it is totally independent). Now, MagicQuartz will display “LIVE” in the upper right corner if it’s not buffering the values, and it will display the raw (un-averaged) RPM next to it, when applicable. It is now also possible to set a parameter “BufferWait”, which tells MagicQuartz to wait with the buffering if bad measurements have been detected.

This still needs some testing to see how this performs in daily use.

I will also update the documentation and maybe make another YouTube video about this.

Tomorrow I will continue to work on the second revision of the PCB and the 3D-printed case parts. Stay tuned for updates!