2 phase synthesised sinewave generator for synchronous motor drive

Hello richb, this is my first post here, but I wondered, will this work on a pro-ject turntable having a single 16v ac motor? I have an older pro-ject xpression1.
I would prefer this over the speedbox pro-ject makes.
I am interested in what modifications would be required to the original circuitry as well.
Thank you.
 
New processor, single file firmware distribution, options menu

Recently I've been experimenting with adapting the firmware to run on the RP2040 processor, initially as a learning exercise, but the ability to 'drag-and-drop' upload the firmware as a single compiled file, without the need to set up the Arduino IDE and associated libraries, would potentially make it more accessible, alongside the greatly increased capability of the processor.

By using the follwing board with a Nano footprint, the existing PCBs can still be used: https://www.cytron.io/p-maker-nano-rp2040-simplifying-projects-with-raspberry-pi-rp2040
(The code can also been compiled for the Arduino Nano RP2040 Connect, in case of difficulty getting hold of the above or you already have one, but this is as yet untested).

I have been running this in my system for a while now, so would like to announce this as an update, with the following features:

  • all run-time options in new menu system
  • jumper selection of SPI or I2C display type, and buttons or rotary encoder
  • ability to disable tachometer function if not used, removing from display
  • new options for when frequency adjustments are saved
  • easier initial setup via menu, including target frequencies
  • compatible with existing Nano boards (v3 for 2 or 3 phase, and v2 for 2 phase only) with minimal component changes
  • easy firmware distribution with 'drag-and-drop' uploading (no Arduino IDE required)

This is suitable for new builds, as well as existing users if they wish to take advantage of the updated features and menu system. Due to this release, the Uno/Nano firmware will now not be updated any further. Please contact me directly for the latest firmware build.

An updated build guide including BOM is included here. Things to note:

  • extra button added for menu navigation
  • gain setting resistors R3/R4/R14: due to change from 5v to 3.3v PWM, drop 2 steps in the E12 series to give equivalent output sinewave amplitude (see table on schematic)
  • tachometer input: potential divider required from 5v sensors, can be added on prototype area as shown
  • I2C address currently set at 0x3C - additional addresses can be supported via jumper options if required
  • BT interface no longer supported

Here is the description of the new menu system:

1683221277673.png


and a few images:

Top menu.............................ampliture sub-menu...............setup sub-menu

1683223717755.png
1683223764654.png
1683223809108.png
 
Last edited by a moderator:
  • Like
Reactions: 1 user
Hi Rich, have now put together a supaspin with the maker-nano-rp2040 build on the 2 phase board with new firmware you've kindly supplied. The board is currently powered from the USB connector. Initially I'm using OLED I2C and 4 buttons as the UI.

It mostly seems to be working, but I cannot get any response from the menu button, so am unable to access/test the new menu system. I've confirmed the button is connected to the maker-nano board, and is pulling the A3 pin from 3.3V down to gnd when pressed (probed on the underside of the pcb).

Any suggestions?

Cheers

Chris
 
Last edited:
Rich I'm afraid I have another issue here - I hope it's as simple as the previous.

I'm getting a perfect output on phase B, but nothing on phase A.

I cross checked all the component values, joints, routing etc., on the board and it matches the schematic.

I then ran the maker-nano unplugged from the supaspin pcb. Running unconnected (output triggered) doesn't appear to be providing any output on PWMa (it sits at 3V3), whereas I can see a pwm signal on PWMb, and PWMc (when 3 phase is enabled). I tried a second maker-nano board and this shows the same behaviour. I have checked impedances from the D11 pin on the supaspin to VCC, GND and 3V3 and they all check out (e.g. no shorts that might damage the pin by feeding it 5V, etc.).

Any ideas as to what I can check next?

Thanks

Chris
 
Ah no - I wondered about that and looked at it carefully, thinking it was maybe a 3 phase board only layout issue, so double checked with the schematic. I soldered it up to ensure it matched the schematic. Lesson learnt - I'll ask next time I see something that's not obvious (to me).

Thanks - I'll change it.

Chris
 
OK, thanks for highlighting that for me and others.

The schematic still matches the PCB (as it is the unaltered Uno/Nano PCB), but for the maker-nano-RP2040 I was rather fortunate that it was almost a perfect match, except that the same PWM signal came out of D3 and D11 (which is mapped to D19 on the RP2040 - both output PWM1B), so the neatest solution was to swap the functions of D11 and D9 (which outputs PWM4B) with that resistor repositioning.
 
Ah I wondered what had prompted the change. All working OK now, tiniest DC offset on channel A at the moment, but as I've used bits box components and bodged the 4.7uF output filter caps with 2 cheap 10uF caps in series I'm not going to look further until I've source something of more appropriate quality.

I'm going to have a play with the tacho now, whilst sourcing the spinamp parts I need.

Thanks again.

Chris
 
  • Like
Reactions: 1 user
Hi Rich,

I've been playing with the supaspin (maker version) and spinamp HV connected to my turntable built using the pcbs you kindly supplied me. Overall this has been a fairly smooth ride for me (ignoring my stupid mistakes). A few observations / ideas:

  1. Button sensitivity/psu choice - the button input on the RP2040 seems quite sensitive to spurious 'coupled' input from leakage current grounding - I'm running my setup isolated from mains ground, and depending on the power supplies in use (e.g. isolated mains switched mode for USB 5v and/or 12v ac using an electronic lighting transformer) I can get fairly high touch voltages between the supaspin 0v rail and house ground, anything between 80 and 120V. NB these have no real drive behind them so are safe, but can cause issues with electronic signals. The supaspin button frequently registers a press when the psu for the spinamp switches on/off and when I touch, not push, the encoder shaft (a metal one). The issue disappears when I use a traditional 12v ac transformer. So I think careful psu choice and consideration of chassis grounding when I put the unit in a case will be necessary for reliable operation. In any future revision of the supaspin it might be worth considering an external pullup and a current limiting resistor for the button inputs to increase resilience to this sort of spurious operation.
  2. Heatsink Choice - I've found my motor requires quite high voltage amplitudes to minimise vibration. At these settings the heatsinks on the amplifier transistors are reaching 55 to 60 deg C (based on touch - haven't probed this yet). Based on this I would suggest that the heatsinks you've designed (21 deg C / watt) are about right for me and for use in the HV version I wouldn't want anything smaller. I will use a ventilated enclosure.
  3. Amplitude setting - phase settings are applied immediately, but amplitude settings seem to require a stop/start. This is less convenient when tuning for minimum vibration.
  4. OLED life - as the bluetooth interface is not available for the maker version, the OLED is essential for setup and occasional checking but, for me at least, is not necessary for day to day operation (my unit will be out of sight). It might be nice to have an option where the OLED display blanks or dims after a timeout (say 2 minutes) and only comes back on after user input (button press/encoder use). This might help extend the life of the cheaper OLEDs we use (e.g. see this hackaday post where odd pixel failure was noted in a year long test).
  5. on/off led drive - I'm planning on mounting an illuminated pusbutton on my turntable for day to day control. The LEDs in these can take around 20mA and I'll need to add a driver transistor to power it (hopefully I'll find space on the strip matrix area in the pcb). Maybe an option for a future pcb revision, (together with a pwm dimmer for the LED ;) )
  6. Hours run meter(s) - I'm interested in tracking the hours I'm putting on my stylus. There are lots of tunes you could play on this ('trip' meters, lifetime warnings, etc.), but even a simple hours run counter could be useful (e.g. value saved to flash every motor turn off).
Thanks again for this really interesting and useful project. If only the other aspects of my TT refurb were as straightforward....

Cheers

Chris
 
Hi Chris, thanks for the feedback. On point 3 - amplitude setting, this is designed to happen immediately on adjustment, and I've just checked that mine does so. This setting only applies to the amplitude after the 'ampRed' time has passed, so this must be set to something other than 'OFF', and then you wait for the time to pass before adjusting. Is this how you were assessing it?
 
Aha - I just checked with a voltmeter and of course you are correct. I'd assumed that the motor vibration level would change immediately with amplitude and had made my misjudgement as to the firmware behaviour by assessing the vibration level whilst changing amplitude setting. So it would appear that once my motor starts vibrating due to insufficient voltage (especially noticeable on the 45rpm setting) it stays that way until it is stopped and restarted.

By the way - in testing just now with the supaspin powered up through a battery pack, when I turned on main power to amp (from an old fashioned ac transformer), the supaspin automatically started up the turntable, so whatever sensitivity I'm seeing on the ss_spd line can still be triggered with better power supplies. In practice I'll power the supaspin from the spinamp-HV using a cheap buck regulator module (think I saw you doing the same in one of your photos), so the power on situation won't be relevant for me, but it might be an issue for someone else.

I'm sorting our a case for the unit now, then onto reworking the TT to accommodate the 2 phase cabling, illuminated pushbutton and an IR tacho. I'll post piccies once its all together.

Chris
 
OK, that's good the amplitude is working as expected.

I'm not clear on your supply setup when you have (and don't have) such sensitivity problems, can you sketch them out for me? The buttons should be on the local ground to the processor so it's hard for me to imagine how this is happening.
The internal pull-ups on the button pins have a value of 50-80kOhm on the RP2040 (it is 20-50kOhm on the ATMega328), ideally the source of the problem can be addressed, but if not then a lower external pull-up could be added, maybe you could trial this to see if it has a beneficial effect?
 
Hi Rich,

I've finally built the unit into a case with a built in mains transformer which allowed me the opportunity to introduce a connection between the 0v (GND) of the supaspin(maker)/spinampHV combo, and the protective conductor of the local ring main (house earth). This has resolved the spurious digital input switching I was seeing.

Everything's working well apart from the tacho - the display is a bit hit and miss, despite what appears to be a reliable signal from the tacho sensor.

I'm using a cheap reflective IR module with a single thin strip of aluminium foil attached to the edge of the glass platter platter (so 1 pulse per rev). The tacho signal is 2.8V dropping to less than 160mV when the aluminium strip passes the sensor - the pulse width is 10msec @ 33 rpm . I've verified the signal is reliable using both optical tell-tail on the sensor and a scope, and I'm not seeing any spurious or missing pulses that I can detect. There is a bit of noise on the signal (looks to be less than 200mV pk-pk) but I don't think its enough to cause false logic transitions.

So when running at 33rpm the display varies between showing a correct rpm, a spurious one (usually 45.4 ish), and blank (dashes). Quite frequently when showing dashes the display appears to flash a number briefly when the sensor sends a pulse.

Do you have any suggestions as to what I should be doing to get a reliable tacho display (e.g. invert the signal).

Many thanks

Chris