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!