2 phase synthesised sinewave generator for synchronous motor drive

Hi Chris,
I'm still intrigued why you have/had a signal integrity problem, it shouldn't have to rely on an external connection to ground for robust operation. Are you now using a buck converter from the spinamp supply for the supaspin as you mentioned above? All grounds commoned between the two? A quick sketch could help here too.

Maybe the tachometer reliability issue is related to this. Whilst a 10ms tach pulse represents a ~1:180 mark:space ratio (~2 degrees of rotation), a pulse edge is checked for every 32us so that should be plenty wide enough at over 300 periods.

Have you tried jumpering the 'GEN' output to the 'TACH' input (this is a 50:50 mark:space ratio signal)? Does that give a steady reading?

I take it you're using a resistive potential divider for the tacho sensor output into the Nano RP2040 -the high voltage is a little low, what is your measured VCC/5v going to the sensor? If it is indeed close to 5v, maybe massage the resistor ratio slightly to get a 3.3v 'high' level. I used a white sticky label on the glass platter for my tachometer reflective sensor and mine is rock solid.

If you could address all the points above that would be really helpful.
Cheers, Rich
 
Last edited:
Yes, even though the Vhi was on the lowish side I would have expected it to register as a logic high.

I've tried using a sig gen with the same parameters as the sensor output (with different voltage divider - see below) and the tacho reading is solid, so it's obviously something to do with the sensor or wiring

I've investigated the tacho sensor a little further. It appears that the sensor I've bought ('MH Flying Fish' - same as this), uses an LM393 comparator, an open collector output device, with a 10K pull up already on the module. This means the values of the resistive divider in your suggested schematic are not suitable and effectively pulls the Vhi down. My bad, I should have checked/looked/thought further - I've simply added about 18K from the tacho input pin to ground, so the comparator now pulls up to about 3.2V, and Vlo is about 0.2V. However, even with these changes the odd behaviour is still present. I've looked for noise or odd flips with the scope and found nothing obvious.

I'm going to try a little capacitance on the input to try and filter any hf noise or very short duration spikes - using the sig gen I slowed the rise / fall times on the pulse to 1mS and the tacho was fine with this so I'll play around with a few values in the nF range and see where I get to.
 
Ah that is making more sense now. It looks like you could also run the sensor from 3v3, then it can interface directly to the input pin (which also has a 50-80kOhm pullup to 3v3 so these two would be in parallel) without any potential divider. But the 18k to ground as you have configured should also work fine.
A longer tacho pulse = a wider reflective strip might also be worth a try, but the experiments don't tend to point to this as a problem.
 
OK - 10nF between the tach pin and ground fixes the problem. I couldn't see any significant noise and certainly no visible spikes on the scope, but I can only guess that something like that was happening.

I'm really pleased with the improvements the supaspin/spinamp has made to my (very) old Rega Planar 3 TT. I could have finished it a lot quicker, but found myself requiring 'extended listening tests' :cool:

Re the signal integrity issue on the pushbutton input - with the circuit fully isolated from the mains (including the earth), it's free to float to whatever potential it feels like, normally influenced by whatever leakage might take effect due to the local electro-magnetic environment. Initially I was using a switched mode 12Vac lighting transformer (cheap and I had one lying around) - the capacitive leakage across this psu was sufficient to allow the spinamp ground to float up to some 300V from mains earth (measurable with a high impedance voltmeter). I suspect that when I touched the unit the discharge current to house earth through me was enough to register as a brief signal to the pushbutton input. I observed a similar effect using the 5V usb output from a mains socket powering the supaspin. I didn't see these effects when testing the circuit on the bench because I have a linear lab psu.

My understanding of the rules around electrical equipment is that because I'm generating above 50V I need to either double insulate, or reference everything to mains ground and earth out any touchable metal parts. The rega motor is notionally touchable (1mm dia probe through the hole for the pulley), so for safety's sake I've chosen the grounding route. I bring house earth in to the psu (single star point to the common 0v rail on the spinamp), and take that earth onward to the turntable to ground the motor casing (i.e. a separate core to the 0V line for the 110V ac motor) . This has the side effect of ensuring the circuit is earth referenced so I can touch the low voltage parts of it without spurious interaction.

Although this is a hobby project for personal use and I could do what I please in respect of safety or electrical rules, but family circumstances mean I feel more comfortable following accepted practice.

I need to tidy up the wiring just a little, then I'll post some photos of the completed unit.

Thanks again Rich for a fantastic project.

Chris
 
  • Like
Reactions: 1 user
Couldn't resist a little more diagnostic work before I moved the 'scope out of the living room... I looked much closely at the rising falling edges of the pulse, and (without the added capacitance). The edges are showing significant 'bounces', maybe 12 to 14 cycles with each bounce taking about 8 microseconds. I'm not sure what's causing this exactly but it's likely due to the longish signal cable (I've used RJ45 terminated cat 5 patch cable) between the sensor and the pull down resistor on the supaspin board. The 10nF cap serves to attenuate the bounces by about 50%, about 50nF smoothes it out mostly leaving a fall time of between 200 and 250 usec. A future version of the firmware could maybe incorporate some de-bounce filtering on the tacho input as a belt and braces, but I have a workable fix I'm happy with.
 
OK that's interesting diagnostics. I could introduce a 'blanking period' after a detected edge, so that only the first of multiple rapid transitions is interpreted as valid, which would maintain the timing accuracy, which a digital (or analogue) debounce could affect. If I do this maybe I can get you to try it.
Looking forward to your photos.
 
SpinAmpHV now cased up and in serious use. I 3D printed a case based upon this project. It's probably a bit too tight for comfort and cable management is not good. I've added a control / sensor pod to my (v) old Rega Planar 3 with the intention that the SpinAmp box will hide away in a cupboard for day to day use. I'm really happy with the sound quality improvements this has made to an old and tired TT.

Many thanks again Richard for a 'Supa' DIY project.

Supaspin pcb is at the front, SpinAmpHV stack in the middle and mains tx at the rear.
PXL_20230604_154157010 (2).jpg


PXL_20230601_112326980.jpg


Rear panel connections - I used an RJ45 keystone coupler and RJ45 patch lead for the control/sensor wiring to the TT, and a separate power cable to the motor with safety ground.
PXL_20230601_112453527.MP.jpg


with the lid on, vented because the unit dissipates 12 to 15 watts (not measured yet).
PXL_20230604_155308541 (2).jpg


TT control pod with illuminated button and IR reflective tacho sensor.
PXL_20230601_112018345.MP.jpg


Replacement motor cover plate under TT, with motor power and sensor/control cabling connections (obscuring black metalwork is the wall bracket the TT sits on)
PXL_20230601_112625149.jpg
 
Superb!
Great physical implementation with that case, very neat control pod, and TT connections. I've also gone for an ethernet cable connection to my TT, but as I'm using a low-voltage motor it can also carry the motor outputs to give a single-cable solution.
Thanks for your comments, glad it's worked out well.
 
Having migrated to the RP2040 processor using the existing Nano PCBs, I felt it may be useful to produce a version that allowed the uber-cheap and readily available Raspberry Pi Pico (the original RP2040 module). So here it is - the v3.0 PICO!

Along with the change of the processor module footprint, a few more hardware features have been added:
  • more power supply connector options
  • optional 3-terminal regulator
  • SOIC footprints for the opamps (OPA1642 tested)
  • tachometer potential divider included
  • more on-board buttons
  • easier access to 3v3 supply
  • more jumper options (for future use)
  • same size and mounting holes
The firmware is unchanged, and the current Nano PCB/processor options are still supported.

20230603_162437311r.png


The PCB Gerbers ('v3.0_pico') and an updated build guide covering all the RP2040 versions will be added to the first post. Gerbers for the Nano footprint PCB will still be available to give a choice of processor module and hardware options for new builds.

When requesting the firmware, please specify the target processor module, as although it is identical functionally, it is compiled individually for each

- Rich
 
  • Like
Reactions: 1 user
Hi Giuseppe, additional address options can be added to the firmware, but the fact that you see part of the 'OFF' characters suggests to me it's not an address issue. Can you find the exact spec. of your OLED display, specifically the address (default is 0x3C), chipset type (should be SSD1306), and whether it has pull-up resistors on the SDA and SCL lines. If there are no pull-ups, I should be able to address that with a firmware update.
 
Last edited:
Hi,
I'm trying to use a 1.3" OLED display with ssh1106 controller, 128×64 points, distributed by azdelivery. I thought the ssd1306 library was also good for this. The address is 0x3c. for the pullup resistors I don't know if there they are, they are not seen.
Giuseppe. With the 0.98" oled ssd1306 on the new supaspin pcb v.3 and maker nano, all is fine.
Giuseppe
 
Ah the issue here is the chipset, the SSH1106 requires a different library. I have another project where I've used an SSH1106 SPI OLED, so I can look into adding support here, but as I don't have the I2C version of such a display I will need you to test the firmware 'blind' when updated. I will need to assign a hardware jumper to select display type (can't use the menu for obvious reasons!), probably sacrifice one of the I2C address select bits as it doesn't seem like we need 8 options considering I have yet to see a display that doesn't use 0x3C. Watch this space!
 
Hello RichB,
As you know, I have already made a Supaspin, V.2 pcb, arduino nano, firmware kindly provided by you, and 2*lm3886 as amplifier. It works very well and drives the 16Vac synchronous motor of a Thorens td166MKII, it always starts well and also manages 45 rpm, 18.6V at start then reduced to 14Vac after 10s.
I created another supaspin with pcb v.3 cytrix maker rp 2040, firmware provided by you, the supamp as amplifier. I always have serious problems on the thorens td166mkii, the start at 33/45 rpm is always random: sometimes it turns clockwise and at times counterclockwise.
If I power the Thorens with its power supply and phase shift capacitor, or if I power it with the Supaspin/Arduino Nano/LM388, it works flawlessly.
I also tried with a pro-ject motor and the same random starting problem occurs, sometimes it turns clockwise and sometimes it doesn't turn or tries to turn counterclockwise.
It remains for me to try with supaspin/maker rp2040 and LM3886, but it seems that with maker rp2040 the start of the 2 sinusoids occurs randomly, when the phase shift capacitor is used the sinusoid starts at phase 0 first, then due to the slight charging delay of the capacitor the 90° phase sinusoid starts. What do you think?
Greetings, Giuseppe.