I've got a new #KiCad plugin out in the KiCad plugin manager:

KiCoil generates "twisted" planar inductors. You can make it do one- or two-layer spiral inductors, toroid inductors, and many intermediate, hybrid variants in between spiral and toroid inductors.

These hybrid types have wider traces than a single-layer spiral, and have better high-frequency behavior (parasitic capacitance and self-resonant frequency) compared to two-layer spiral inductors. And they look really pretty!

#electronics

You can install the plugin on KiCad 9.0+, or you can try out the GUI and the command line interface from the accompanying PyPI package even without KiCad installed. The CLI can also export gerber and SVG in addition to KiCad footprints.

Here's how you run the GUI using uvx:

uvx --with cairosvg,pillow --from kicoil kicoil-gui

Here's how to install it as a python package using pip:

pip install kicoil cairosvg pillow

In normal modern PCB processes where vias are possible, I'd expect that a planar inductor with 3-7 twists should usually outperform a standard two-layer spiral inductor at least a little bit.

If anyone with an ansys or CST license is bored over the christmas holidays, I'd love to see some simulations of the magnetostatic field and the RF performance of these. I can contribute code for geometry export, and I also have a working mesher based on gmsh.

#electronics

@gsuberland @jaseg I can do Sonnet simulations and extract S-parameters if that would be useful?
@azonenberg @gsuberland I think it would be possible to do this kind of simulation in sonnet, I just have to find out at which frequency at the low end their models break down. I'll have a look at their manuals. Thank you!

@jaseg @gsuberland It's just method of moments, it should run down to arbitrarily low frequencies but it's still inherently an AC technique so you won't get a 0Hz point at the edge of the curve.

The curve fitting for s-parameter interpolation doesn't like running over toooo many decades though. You might need a ton of sim points if you tried to do like 1 Hz to 10 GHz.

@azonenberg @gsuberland The SRFs of most reasonable coils of this type that have PCB-scale dimensions (millimeters to centimeters, not RF IC-size micrometers) are in the tens-to-hundreds of megahertz range anyway, so e.g. 10 kHz to 1 GHz would already be plenty.

The DC resistance of these I can calculate during generation pretty accurately. The magnetostatic field would be interesting, but that should be close enough at say 10 kHz.

@jaseg @gsuberland I don't think I can get you field renders in Sonnet since it's a frequency domain current solver. I could get you far field radiation pattern at a given frequency but that's probably not useful.

(Sonnet actually is *mostly* meant for RFIC/MMIC work and excels there, using it for PCB stuff is the stretch not the other way around)

@jaseg @gsuberland What I can easily get you is current in any conductor layer at a given frequency
@azonenberg @gsuberland Yeah, I see. I figured it would mostly be used for IC design, not for PCB stuff at such low frequencies. I'll have a look around the doc and see what I find.

@jaseg @gsuberland I've been seeing some interesting line blurring though.

Wurth actually has made silicon planar magnetics (sorry, birdsite link but it's all I've found publicly https://x.com/QVHenkel/status/1875721779710455888) for PCB applications.

Lukas Henkel (@QVHenkel) on X

The production of the custom silicon-based inductors from Würth Elektronik for the open-source SiP is nearing completion. Looking forward to testing the new design 🙌

X (formerly Twitter)
@azonenberg @gsuberland Oh neat, I guess using silicon you can stack a lot more turns in a smaller area compared to a PCB.
@azonenberg @jaseg AMD and Intel have some presentation slides and patents on this topic too.
@azonenberg @jaseg also lots of substrate integrated inductors in their chip carriers using very similar techniques.
@gsuberland @azonenberg @jaseg their substrates even use vias filled with ferromagnetic material, a liner, then Cu. Make a bunch into a solenoid can you can run a FIVR with it. This way you avoid DCR of long planar inductors.
@craigjb @gsuberland @azonenberg Slihtly related, I saw a bunch of planar PCB coils used with discrete clipped-on ferrite cores as flyback transformer windings in compact power supplies at last year's electronica trade fair. They used separate, high layer count PCBs for the transformer, and the windings were not integrated into the PCB containing the rest of the circuit since that was thinner and usually only 2-4 layers.
@jaseg I don't see the plugin in the KiCad official repository under KiCad 9.0.6; is there another repository I need to add?

@Lynx lol oops I guess sending MRs at midnight isn't the best idea always 🤣

I messed up a bit, should be fixed in a few hours to a day or two.

https://gitlab.com/kicad/addons/metadata/-/merge_requests/516

Fix location of de.jaseg.kicoil metadata (!516) · Merge requests · KiCad / KiCad Addons / Package Metadata · GitLab

I messed up in !515 and added the metadata directory...

GitLab

@Lynx In the meantime, you can run it from PyPI using e.g. uvx like this:

uvx --from kicoil --with cairosvg,pillow kicoil-gui

@jaseg It showed up for me now, and I installed it! Looking forward to trying it out! 😸
@jaseg this looks cool. as a software person, a couple of decades ago i worked on a project that used inductors like these (i think) to do distance sensors (e.g. is door shut or nearly shut? how high up the fuel tank is the floating sensor? axle rotation). They would have an active part on one PCB and a passive part on another (tiny) PCB, and use a microprocessor to estimate resonance (i think). Is that the sort of thing that these are used for? (their patents are all expired)
@drj Tbh, I have never seen anything quite like these used in the wild. There are some high-performance planar RF inductors that apply concepts similar to this or that are special cases of this, but AFAIK this is the first generalized implementation of the concept. I did some literature research back into the 1800s, and I didn't find any other explicit formulation of the general "any combination of co-prime turn count and 'twist' count" inductor idea.
@drj Some coreless motor winding types (e.g. classic Faulhaber) are quite similar in construction, but not in how they work.
@jaseg Here is one of the expired patents: https://www.search-for-intellectual-property.service.gov.uk/GB2417088 but i can't see the text, and all of this is voodoo to me, so i'm unable to tell how similar these things are. At the time i thought the basic idea of using a cheap but fairly precisely made inductor to estimate distance or rotation was actually kinda cool and more people ought to know about it. Maybe it is now a well-known thing; i don't know. (also, i kinda want to try it with hand-drawn spirals with conductive ink on paper)

@drj Oh, thank you, that's really interesting! google patents has a full PDF:

https://patentimages.storage.googleapis.com/ae/04/6f/e7ed0beb7de377/GB2417088A.pdf

I think this one is similar to the theft prevention things you see in stores. I think this is conceptually more similar to what I've seen referred to as "flux-neutral" coils, where you have an arrangement of multiple side-by-side coils of opposing polarity to either suppress or enhance far-field sensitivity.

@drj In aerospace, synchros are basically using inuctors configured as a two- or three-phase transformer for precise rotation sensing. They usually have cores, but there is no reason you wouldn't be able to do the same with a coreless inductor instead.
@jaseg Aha! i'm glad it's interesting. They had linear and rotational positional sensors to, so it might be worth digging around their other patents. They seem to have an annoyingly large number of similar patents.
@drj Yeah, lots of patent-focused companies do this. I know some areas within IBM do this as well. They file one patent, then every other year they file another patent re-using most of the images and a large fraction of the text of the original patent, tacking on only incremental "improvements" to keep the expiry deadline running.
@jaseg out of curiosity, what's a typical inductance that you can sensibly achieve with these?
@gsuberland Depends on board area, I'd say about 50 µH in 25 mm diameter and maybe 400 µH in 50 mm diameter. The main limiting factor for large inductances is DC resistance due to the narrow trace width you need to stack many windings.
@jaseg @gsuberland huh, but thats already feasible sizes for SMPSes, neat

@funkylab @gsuberland I think the main limitation using these for something like an SMPS would be that they are coreless and large, and as such they would be a total EMI nightmare if you fed them straight from a FET switching with nice, crisp edges. You could maybe mitigate that and increase inductance with one fo these ferrite shielding sheets you can get for cheap for wireless charger coils.

Besides that, when pushing power, in PCB planar inductors the DC resistance quickly gets annoying.

@funkylab @gsuberland btw, the GUI calculates a rough approximation of inductance. The approximation holds for near-spiral layouts, the closer you get to a toroid the higher the real inductance gets compared to the calculated one.
@jaseg @funkylab @gsuberland Have you done any characterization against real PCBs? If so, can you share some results and pretty pictures?
If I have empty PCB space on a future project, I would put some of these on there just for the looks.
@tom_verbeure @funkylab @gsuberland I have, a detailed analysis is going to be in my PhD thesis which will be public in a few months, but I can find the results table and post a screenshot here.
@tom_verbeure @funkylab @gsuberland
here’s the results for various configurations of planar spirals with 35 mm size (pic 2) and various larger toroidal-ish configurations (pic 3). The measurements were done on a keysight handheld LCR meter (ESR, L) and a nanoVNA (SRF). first pic is the measurement setup I used to determine their coupling symmetry in a wireless power transfer configuration.

@jaseg Thank you very much for sharing these ideas and measurements.

I am also intrigued by the machine shown in the first photo, with the articulated arms and the orange 3D-printed parts. I would be curious to better understand how it operates and what its objectives are. Does the articulated arm move across the different planar toroid prototypes to characterise their behaviour, or to measure the effects under various positions? Is that the idea?@tom_verbeure @funkylab @gsuberland

@allainyann pretty much, it's a modified 3D printer. I bolted a thing to the toolhead that holds a coil that it can rotate with a servo. The big board on the bottom contains a bunch of different coils. By moving over one of them in XYZ and rotating the coil on the toolhead, the setup can then measure coupling of two of these coils depending on misalignment and distance.
@allainyann The goal of this setup was that I needed two small turn count inductors for a wireless power transfer setup in which one of the coils rotates. In this setup, a conventional spiral coil produces a slight ripple on its output that changes with rotation because the spiral isn't perfectly rotation-symmetric. By "twisting" the coil, you can reduce that ripple.
@jaseg @funkylab @gsuberland Awesome! Thanks for sharing these!
@jaseg @gsuberland I can see that (but think it's an unlikely use case that you'd want a ferrite sheet applied to the surface, but not use a discrete inductor).
@funkylab @gsuberland Yeah, totally. Maybe if you need a ton of inductors of different values you could save some BOM space like this?
@jaseg @gsuberland I do have a few questions on what the actual magnetic field looks like for these, but I might just want to sit dowmln with your inductors first and think. But: first row of your 16 examples, the density's highest in the center, field lines there normal to pcb. Last row I find really hard to visualize.
@funkylab @gsuberland Yeah, due to being busy with other stuff I never managed to do some proper simulations. I spent a bunch of time trying to get these to simulate in elmer, but ultimately the geometric complexity just led to lots of crashes and numeric instability. I *think* the more "twisted" (bottom right) ones have a similar field to a standard spiral/solenoid, but the field lines spiral sideways instead of going exactly parallel to the main axis.

@funkylab @gsuberland This would make sense given that they are intermediates between a solenoid and a toroidal inductor.

I have some preliminary code to simulate these with magneticalc, but IIRC that just didn't work for me:

https://github.com/shredEngineer/MagnetiCalc

GitHub - shredEngineer/MagnetiCalc: MagnetiCalc calculates the magnetic field of arbitrary coils.

MagnetiCalc calculates the magnetic field of arbitrary coils. - shredEngineer/MagnetiCalc

GitHub
@jaseg wow, 50uH is far more than I expected! some of the DC-DC designs I've been looking at only need 220nH.
@gsuberland @jaseg Should be able to get up pretty high with EQ style cores clamped around them assuming you cover vias to not short to the core.
@jaseg yay spirograph!
@jaseg Have you given any thought to how this could be adapted to use more PCB layers? I’m interested in making a PCB loop antenna that I think would benefit from maximizing the number of turns by using more layers.
@mossmann I'm planning to add support for more layers at some point. It's pretty simple, you would just alternate clockwise and counter-clockwise winding orders. You'd need to rotate each layer pair by a bit so the vias don't collide unless you're really posh and pay for blind or buried vias anyway. Right now, you could just overlay two of the footprints this tool generates at an angle and connect them in series as a decent workaround.
@mossmann @jaseg I'd think in that case you're mostly aiming for "tightest possible packing of windings". If you have blind vias (and buried vias at >= 6 layers), you could simply stack identical 2-layer solutions, which would optimize overall.
Without partial vias, you'd always be limited by the space that the layers on the innermost "ring" on which vias lay take up, and then I could see how a nesting of "quasi toroids" could work out in your favor, but unless my spatial imagination betrays me
@mossmann @jaseg … for traces to not cross on the same layer, the layers would need identical winding counts (at different "girths" of the toroid "core"), and an angular offset.
@funkylab @mossmann The generator as is supports offsetting and also staggering the interior and exterior vias and automatically adds small connecting traces. As long as you have enough space for the holes, you could use that to fit more vias on the inside considering their annular rings.
@funkylab @mossmann For large OD, large ID coils, a configuration that has both large turn count and large twist count has a (measured!) inductance that is greater than the sum of either a plain spiral and toroidal coil of the same dimensions. I'm not sure that translates to better performance as a magloop antenna though, because I think the mechanism this works like is that this layout tilts the effective cross-sectional area of each coil turn a little bit.