Let's Design and Build a (mostly) Digital Theremin!

Posted: 2/18/2024 4:29:01 PM
Mr_Dham

From: Occitanie

Joined: 3/4/2012

"Yes, swapping the boxes may be best for traditional farther = louder playing.  The DPLL parameters are the same for both so it should work.  If you want to experiment along these lines I'd be interested in your results!" - Dewster

Thanks to the complete axial central symetry of my unit, it was not a great deal to turn my unit 180 degre and swap the plates. As expected having the great plate with the great coil (and small coil with the small plate) brings an additionnal separation of frequency (P/V is greater) which is good. 

For sound checking, I used "swap P and V" = 3. If I check the logs, a cross point still exists (left hand flat on plate, right hand away) but no noise artefact in this area. And of course, nothing in the high pitch near octave 7.


"I just posted an improved version of the librarian: https://d-lev.com/support/d-lib_2024-02-16.zip
The initialization now samples at 1Hz which gives a better baseline, all readings go through the boxcar and LPF, the LPF is now single pole, HPF is also displayed, and you can pick which axes to log via the -p and -v flags (the default is both)."
- Dewster

Sample rate = 1Hz, just for sake of filtering ? it still shows interval of 2s.

Maybe it worth adding space chars or a "|" to separate columns in some specific conditions (line 44 here) :

      34    944764.3  679.4  -664.1-10333.9 24975.2111446.6    712238.9 -1827.8-448831.8-224951.6220927.8526149.1
      36    944616.0  -526.9  -821.0 -9812.2 24388.7111446.6    711978.1  442.8-449033.6-237068.7220771.9526149.1
      38    943947.2  -150.5 -1528.3 -9385.3 23826.0111446.6    719480.7 10494.7-443227.8-247745.1219885.6526149.1
      40    941214.6 -6818.1 -4418.9 -9055.1 23286.7111446.6    776444.4 75751.2-399146.2-255845.4217442.2526149.1
      42    938441.1  2670.7 -7352.5 -9008.7 22740.2111446.6    837316.2 47899.5-352040.3-260750.6213492.9526149.1
      44    942821.9  3368.2 -2718.7 -8768.8 22257.7111446.6    961467.1195197.9-255965.9-262216.3208957.1526149.1
      46    934698.1 -5811.2-11311.7 -8811.6 21782.3111446.6  1260615.5264078.0-24468.9-254273.4208172.1526149.1 


Posted: 2/18/2024 9:08:46 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"Thanks to the complete axial central symetry of my unit, it was not a great deal to turn my unit 180 degre and swap the plates. As expected having the great plate with the great coil (and small coil with the small plate) brings an additionnal separation of frequency (P/V is greater) which is good. 

For sound checking, I used "swap P and V" = 3. If I check the logs, a cross point still exists (left hand flat on plate, right hand away) but no noise artefact in this area. And of course, nothing in the high pitch near octave 7."  - Mr_Dham

Ah, clever!  Using the knob you can't refer to directly here on TW! ;-)  Thanks for that info!

"Sample rate = 1Hz, just for sake of filtering ? it still shows interval of 2s."

Yes, these are raw numbers otherwise unfiltered by the SW, so hum and such are aliasing.

"Maybe it worth adding space chars or a "|" to separate columns in some specific conditions (line 44 here)"

Yah, the numbers kinda mushing together.  I've only been using it for drift / stability testing, where the numbers don't get too big.

Try this one:  https://d-lev.com/support/d-lib_2024-02-18.zip

The number fields are wider, and the sampling interval has been reduced to 1/2 second (to get more samples to filter).

Posted: 2/18/2024 10:12:48 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

A Better AFE?

Had the notion yesterday evening of employing a transformer to go from differential to single ended field coil current sensing.  Spent the day in LTSpice to see how that might perform:

A dual coil 200uH transformer senses the drive / coil current and converts it to single ended.  C1 and R1 are just to see how much we can load it with sense parasitics without affecting the output amplitude too much; at resonance the above gives about 300 Vpp in simulation.  The field coil is a really big 20mH here, which takes resonance below the AM band.  Using 200uH for both windings and a coupling of 0.8 gives us about the same amplitude as the drive, or 2 VPP.  What's probably nice about this is it is low pass if looking into the antenna, which if true should attenuate a lot of environmental interference.

I'm not a huge fan of magnetics, but this seems like a good application of them.  It might be possible to locate both AFE's on the main PWB and use coax between the transformers and field coils, which would make building things a lot easier.  The quadrature looks good, so we could probably still use the LC DPLL construct as the rest of the oscillator.

Posted: 2/27/2024 10:22:42 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Choke Hold

Been working on a Go program that I've dubbed "tcoil".  Turns out it's not all that difficult fairly straightforward to calculate just about any air core solenoid, donut, choke, transformer, etc.  You just add up the mutual inductances of all the windings with each other, multiply that by 2 because they are mutual in both directions, then add in the sum of the self inductances of each of the windings.  Calculating capacitance is much more complex because everything interacts, there's no superposition to fall back on, and all of the wire in between makes for a rather strange dielectric.

Anyway, here's a 2mH choke made up of 40 donuts spaced 0.7mm apart of ~8 turns each using 32 AWG on 38mm coil form:

Code:
 
> choke: l[2]mH, fd[38]mm, wd[0.227]mm, wcd[0.2]mm, c[15]pF, o[40], og[0.7]mm, ow[3]

 Type         -CHOKE-
 L total      1.999 mH
 N total      312 turns
 AWG          32.1
 Wire Length  37.86 m
 L/Wire Len   52.81 uH/m
 N Width      54.54 mm
 N Diameter   39.36 mm
 N W/D        1.386 (aspect)
 Donuts       40
 Donut N      7.8 turns
 Donut Gap    0.7 mm
 Donut Height 0.681 mm
 Donut Width  0.681 mm
 Donut H/W    1 (x-section)
 L Mutual     1.957 mH
 L Self       0.04235 mH
 L M/S        46.21
 Skin         425.5 kHz
 LC Reson     919.1 kHz
 DCR          20.25 Ohms
 ACR          22.55 Ohms
 DCR/ACR      0.8979
 LCR Q        512

Fun stuff!  I don't have it doing transformers yet, but it can take inductance, wire length, or total turns as the input constant and solve for the others.

[EDIT] It also calculates wire stats so you don't have to go looking those things up (TODO: PVC specs):

Code:
> wire: awg[32], f[900]kHz, b[2]

 AWG          32
 OD           0.2391 mm
 ID           0.2019 mm
 Skin         417.4 khz
 DCR          0.5245 Ohms/m
 ACR          0.584 Ohms/m @ 900 kHz
 DCR/ACR      0.8983 @ 900 kHz

And, given two, it solves for the third term in LCF, with optional Q if R is given:

Code:
> lcf: l[5]mH, c[15]pF, r[25]Ohms

  L   5 mH
  C   15 pF
  F   581.2 kHz
  R   25 Ohms
  Q   730.3

Posted: 3/8/2024 9:12:08 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

All Choked Up

My "tcoil" air core coil design program feels largely done - it can do brooks (speaker crossover type) coils, single layer solenoids, multi-layer donuts, multi-donut chokes, and transformers.  Today I got it to kick out OpenSCAD files in order to view the results, which was fun.  I wish there were some way to calculate self capacitance / resonance, tried a few things but came up a total dud.

Above: A 10 donut 25 mH 30 AWG choke with with the following specs:

Code:
> choke: wd[0.279]mm, wcd[0.2546]mm, od[38]mm, ow[11]turns, oo[10]mm, o[10]donuts, c[15]pF, file[choke], l[25]mH

  Type            -CHOKE-
  L total          24.99 mH
  N total           1305 turns
  N Width          93.07 mm
  N Dia             44.7 mm
  N W/D            2.082 (aspect)

  Wire AWG            30
  Wire Dia         0.279 mm
  Wire Length      169.4 m

  Donuts              10
  Donut N          130.5 turns
  Donut Layers        12
  Donut ID            38 mm
  Donut OD          44.7 mm
  Donut Height     3.348 mm
  Donut Width      3.069 mm
  Donut H/W        1.091 (x-section)
  Donut Gap        6.931 mm

  L Mutual          24.8 mH
  L Self          0.1836 mH
  L M/S            135.1
  L/Wire Len       147.5 uH/m

  Skin             262.6 kHz
  LC Reson           260 kHz
  DCR              55.89 Ohms
  ACR              55.89 Ohms @ 260 kHz
  DCR/ACR              1
  LCR Q            730.2

Takes a significant amount of wire to do: ~ 1/6 km!

I'll put it on the support page soon: https://d-lev.com/support.html

[EDIT] I think I need a lathe or something to make coil forms from PVC pipe, though I'm a bit afraid that all the plastic might seriously amplify the self capacitance.  Any ideas / suggestions?  I think physical stability is probably the most important thing to control drift.

Posted: 3/9/2024 12:22:00 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Transformative

And here's a coaxial transformer:

Which has the following specs:

Code:
> xfmr: n[75]turns, wd[0.28]mm, wcd[0.25]mm, od[30]mm, ow[25]turns, od2[33]mm, file[xfmr]

  L Total         0.2482    0.2831 mH
  N Total             75        75 turns

  Wire AWG          30.2      30.2
  Wire Dia          0.28      0.28 mm
  Wire Length      7.267     7.973 m

  Donut Layers         3         3
  Donut ID            30        33 mm
  Donut OD         31.68     34.68 mm
  Donut Height      0.84      0.84 mm
  Donut Width          7         7 mm
  Donut H/W         0.12      0.12 (x-section)
  Donut W/D        0.221    0.2018 (aspect)

  L/Wire Len       34.16     35.51 uH/m
  L Mutual        0.2407    0.2748 mH
  L Self        0.007477  0.008352 mH
  L M/S             32.2      32.9
  DCR              2.487     2.729 Ohms

  Gap               0.66 mm
  LX Mutual       0.4361 mH
  L Total         0.9674 mH
  k               0.8225

The coupling isn't too shabby for no ferrite.  It can be increased somewhat by going single layer / narrowing the gap.  I'm imagining it may be beneficial to stick a grounded sheet of thin copper in the gap for capacitive shielding of the sense winding.  I also imagine one would use the outer winding for sensing, as the inner winding has a bit lower DCR.  Bifilar windings would jack up the coupling to max, but probably with too much C between them.

Here's a very similarly spec'ed pancake inductor, each coil is 3 wires wide, separated by a similar gap:

Any C shield in the gap would have to be a split sheet of some sort so as not to act like a shorted winding.

Posted: 3/9/2024 1:06:48 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Donnybrook

And here's a 20 mH 2.8 Ohm Brooks coil wound with AWG 18 (1 mm copper diameter) single coat wire:

Brooks coils give maximum inductance / minimum DCR for a given wire gauge, and this happens when the aspect ratio of the windings is 1, and when the inner radius is equal to the height and width of the windings.  Minimum DCR means the Q is maximized, but the closeness of all the windings means the self C is also maximized, so the resonant frequency is minimized, which means they probably can't be used in series with Theremin antennas, unfortunately.  But for use where frequencies are much lower than self resonance, such as speaker crossovers, they shine.

Posted: 3/14/2024 9:49:10 AM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

ResearchGate

Alan Payne has performed a bunch of "basic experiments" relevant to coils, and has published many fascinating papers describing them:

https://www.researchgate.net/profile/Alan-Payne-3

Posted: 3/15/2024 7:03:32 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Proximate Cause

I'm reading those and other research papers, and it seems the proximity effect is the dominant Q killer in coils.  I'm somewhat ashamed to say this is rather new to me.

The way it works: the magnetic field of the inductor induces eddy currents in the wires, which restricts the conductive path rather like the skin effect.  Litz wire addresses both by giving a smaller cross section for the eddy currents to swirl around in / more skin area.  Ferrite really aggravates the proximity effect because it concentrates and intensifies the magnetic field.  Both proximity and skin effectively narrow the cross section of the conduction path, which raises the DCR of the wire and kills Q.  Adding ferrite can send Q into the toilet, which is why you see litz wire even on cheap AM radio loopstick antennas.

Coils are a big balancing act, so many trade-offs going on.

Posted: 3/24/2024 8:07:19 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

TCOIL

Version 1 of my command line coil design software is now posted: https://d-lev.com/support/tcoil_v1_2024-03-24.zip

There are builds in there for Linux, Windows, Mac, and Mac M1.  To save a bit of space I didn't include the Raspberry pi builds, but they're trivial to do.

Also included in the ZIP file is a spreadsheet that I used to guide me through Alan Payne's excellent May 2021 paper "SKIN EFFECT, PROXIMITY EFFECT AND THE RESISTANCE OF CIRCULAR AND RECTANGULAR CONDUCTORS".  For the proximity effect calculations I worked a couple of the equations backward & forward to arrive at something that seems reasonable.  

I've read that Q is often reported over optimistically by these kinds of programs, and I've done what I can to not have that be the case with this one.  For instance the D-Lev kit volume coil:

Code:
  Type         -SOLENOID-
  L total              2 mH
  N total            370 turns

  Wire Length      44.43 m
  Wire AWG          32.1
  Wire Dia          0.22 mm

  Form Dia            38 mm
  Turns OD         38.44 mm
  Turns Height      0.22 mm (1)
  Turns Width       81.4 mm (370)
  Turns H/W     0.002703 (x-section)
  Turns W/OD       2.118 (aspect)

  L Mutual          1.95 mH
  L Self          0.0496 mH
  L M/S            39.31
  L/Wire Len       45.01 uH/m

  DCR              23.76 Ohms
  Skin            0.9176
  Proximity       0.7099
  ACR              36.47 Ohms @ 919 kHz
  LCR Q            316.6

Actual measured Q is more like 1/2 this, which is probably attributable to self capacitance and hot end lead length.

You must be logged in to post a reply. Please log in or register for a new account.