Open-Source Transcraniale Magnetische Stimulator (OpenTMS)

Veiligheidswaarschuwing

Dit is geen officieel medisch hulpmiddel en is geen vervanging voor een echte TMS-behandeling. Dit is een experiment dat in een garage is gebouwd; er is geen verificatie dat het apparaat doet waarvoor het bedoeld is. Dit apparaat is gevaarlijk; het werkt op energieniveaus die ruim voldoende zijn om het hart te stoppen, dodelijk te zijn, te exploderen en grote schade aan te richten. Wees uiterst voorzichtig bij het werken met systemen voor gepulste energie met een hoog vermogen.

---

TMS-spoelen

Er worden voornamelijk twee spoelgeometrieën gebouwd: enkelvoudige spoelen en figuur-8 spoelen. De focus ligt op luchtkernwikkelingen in zowel enkelvoudige als meervoudige laagvorm. De algemene architectuur is aangepast op basis van onderzoekspapers en de beperkte informatie die is gepubliceerd door commerciële fabrikanten van TMS-spoelen. De figuur-8 CloudTMS-spoel was een belangrijke inspiratiebron, met name wat betreft het gebruik van holle koperen geleiders voor koelvloeistof.

Naarmate de pulssnelheden en energieniveaus toenamen, werd actieve koeling noodzakelijk. De gekozen aanpak maakt gebruik van holle koperen buisjes (gebruikt voor HVAC/koeling), geïsoleerd met PTFE-krimpslangen. PTFE is zeer geschikt omdat het een goede diëlektricum is, dunwandig blijft na het krimpen, hoge temperaturen verdraagt en de vorm van de spoel beter behoudt dan dikkere alternatieven, hoewel er aanzienlijke hitte nodig is om het volledig te laten krimpen.

Bouwproces:

  1. Schaf koperen buisjes aan (4mm buitenmaat / 3mm binnenmaat, secties van 5m) en PTFE-krimpslangen (4,5mm, 4:1) in bulk.
  2. Het voeden van de krimpslang over een lange buis vereist geduld; het gebruik van perslucht om een luchtkussen tussen de buis en de krimpfolie te creëren, maakt dit proces veel eenvoudiger.
  3. Wikkel de spoel op een op maat gemaakt mal, in één laag of meerdere lagen (meerdere lagen betekent hier het willekeurig wikkelen rond een spoelkern in plaats van het stapelen van discrete enkellaags spoelen).
  4. Voeg tijdens de eerste wikkelingen iets in de koperen buis in dat dicht bij de binnendiameter ligt (bijv. een grastrimmerkabel) om te voorkomen dat de buis inklapt; verwijder dit zodra het wikkelen is voltooid.
  5. Houd de spoel met tape bij elkaar voordat de inkapseling (potting) begint.
  6. Het inkapselen van de spoel in epoxy verbetert de mechanische stabiliteit aanzienlijk en vermindert geluid door te voorkomen dat de wikkelingen onder pulskrachten tegen elkaar bewegen. Lijmpistool-lijm (hot glue) is een alternatief, maar resulteert in spoelen die merkbaar luider zijn in gebruik, wat bij hogere vermogens minder betrouwbaar overkomt.

Koeling van de spoelen

Spoelen die zijn gebouwd van holle koperen buisjes worden gekoeld door koelvloeistof door de wikkeling zelf te pompen.

  • Minerale olie: Lange tijd gebruikt; dunner dan typische oliën maar dikker dan water. Om een temperatuur van circa 40°C te behouden, was ongeveer 150–200 psi nodig om voldoende flow door de kleine binnendiameter van de spoel te persen. Bij hogere energieniveaus zijn een waterkoeler en warmtewisselaar toegevoegd om de olie voor te koelen.
  • Gedestilleerd water: Recentelijk overgestapt op gedestilleerd water in combinatie met een membraanpomp, aangezien het membraan een mate van elektrische isolatie biedt tussen het pompmechanisme en de vloeistof. Dit is eenvoudiger en effectiever, hoewel er nog steeds een risico bestaat dat de koelingsloop onder hoge spanning komt te staan.

Spoelmaterialen

MateriaalDoelOpmerkingen
Holle koperen buisWatergekoelde spoelwikkelingStandaard buis voor koeltechniek; goedkoop en breed beschikbaar.
GlasvezelharsplaatToepassingszijde van het spoeloppervlakStevig, goede elektrische isolator en lijkt permeabel voor magnetische velden. Een gedemonteerde commerciële spoel maakte gebruik van wat leek op FR4 glasvezel (PCB-grade).
MAX EPC epoxy potting compoundInkapseling van de spoelGoedkoop, goede elektrische isolator, redelijke thermische geleidbaarheid. Voor buisgekoelde spoelen is MAX MCR (lagere thermische geleidbaarheid) ook een optie.

IGBT-schakelaars

De huidige voorkeur gaat uit naar de Infineon/Eupec FZ1200R33KF2; deze is voordelig en kan aanzienlijk vermogen aan. Er zijn pulsen van 8kA door één unit gestuurd. Adequate snubber-capaciteit en -circuits zijn essentieel om de spanning over het apparaat onder de nominale 3,3kV te houden (er wordt gestreefd naar een veiligheidsmarge daaronder).

Gate Drivers

Er zijn twee Power Integrations gate drivers gebruikt met deze IGBT:

  • 2SC0535T2G0-33: Functioneel, maar mist functies zoals actieve clamping om te beschermen tegen spanningspieken bij het uitschakelen. Vereist een aangepaste PCB met weerstanden en condensatoren voor het in- en uitschakelen van de gate.
  • 1SD418F2-FZ1200R33KF2: Speciaal ontworpen voor de FZ1200R33KF2 en wordt direct op de pads van het apparaat gebout. Vereist enkel een 15VDC voeding (bron van 1A). Communicatie verloopt via twee glasvezelkanalen (ingsignaal en output/status), die worden aangestuurd via aangepaste PCB's met AFBR-1624Z HFBR transmitter/receiver modules, aangestuurd door een Teensy 4.1 via een 3,3V → 5V level shifter.

Meet- en monitorsysteem

Differentiële spanningsmeting

Het monitoren van de $V_{ce}$ (collector-emitter spanning) over elke IGBT is cruciaal om binnen de limieten te blijven. Er wordt een veiligheidsmarge aangehouden onder de 2,5kV voor apparaten met een rating van 3,3kV. Aangezien deze schakelaars aan de hoogspanningzijde (high side) werken, is een hoogspannings-differentiële probe nodig: er wordt gebruikgemaakt van een Micsig DP20003 (5600V, 100MHz). Een vergelijkbare probe met een lager bereik (1300V) monitort de spanning van de hoofdcondensatorbank.

Stroommeting

Een shuntweerstand bleek niet betrouwbaar. Twee andere methoden werken wel goed:

  • Rogowski-spoel: Uitstekend voor het meten van hoge stromen (AC of DC, geen ijzerkern die kan verzadigen), maar gekalibreerde probes zijn tweedehands moeilijk te vinden en een gekalibreerd integratiecircuit is nodig voor een bruikbaar oscilloscoopsignaal. Er wordt een gekalibreerde spoel van PowertekUK gebruikt (specifiek de CWTMini).
  • Stroomtransformator (CT): Er wordt een Tektronix A621 AC-stroomprobe gebruikt (gecertificeerd tot 2kA). In de praktijk komt deze tot ongeveer 8kA overeen met de Powertek Rogowski-spoel, ondanks de opgegeven limiet.

Oplaadcircuit

Het oplaadcircuit is een eenvoudig open-loop ontwerp: de netspanning voedt een variabele transformator (variac), die een magnetrontransformator (MOT) aanstuurt om de spanning te verhogen. De verhoogde AC-spanning wordt gelijkgericht door een gelijkrichterbrug en gebruikt om de hoofdcondensatorbank op te laden. Deze wordt vervolgens ontladen door de spoel via een high-side schakelaar (latching SCR of non-latching IGBT).

Magnetrontransformatoren (MOT)

De huidige twee-switch flyback pulsgenerator gebruikt twee gematchte MOT's (gematcht door controle van spanning en fase-overeenkomst). Bij een verbruik van ~15A bij 120V blijven twee gematchte transformatoren onder de ~60°C met enkel luchtkoeling. Eerdere ontwerpen gebruikten één MOT met koeling door minerale olie onder lage druk, wat werkte tot ~14A, maar deze systemen waren complexer en gevoelig voor lekken.

Ontwerpen van de pulsgenerator

Ontwerp #1 — SCR-gebaseerde pulsgenerator

Dit was het eerste ontwerp. Het kan zeer hoge energieniveaus goed aan bij consistente frequenties/patronen (bijv. de standaard 5Hz/10Hz protocollen). De beperking is de flexibiliteit van het patroon: een SCR/thyristor is een latching schakelbare diode; zodra deze wordt getriggerd, ontlaadt de condensator volledig. Dit geleidelijke verval is gunstig voor flyback-effecten, maar sluit complexere patronen zoals Theta-Burst (50Hz bursts herhaald om de 4–5Hz) uit.

Ontwerp #2 — Single-IGBT pulsgenerator

Omdat IGBT's niet latching zijn, kunnen ze binnen een korte puls worden ingeschakeld en weer uitgeschakeld. Dit maakt gedeeltelijke ontlading van de condensator mogelijk en maakt patronen zoals Theta-Burst mogelijk. Het nadeel is de aanzienlijke flyback-spanning bij het onderbreken van de stroom door de spoel. Dit werd opgelost met een robuuste flyback-diode over de spoel en snubber-condensatoren over de IGBT(s) om pieken door parasitaire bedradings- en busbar-inductie te absorberen. HV-differentiële probes zijn hier essentieel voor het tunen binnen de spanningslimieten.

Dit ontwerp gebruikt een flyback-diode over de spoel, wat resulteert in een scherpe stroomstijging maar een langzame daling. Hoewel dit relatief eenvoudig was, wordt het uiteindelijk beperkt door het 120V/15A oplaadcircuit omdat de flyback-energie niet wordt gerecycled.

Ontwerp #3 — Two-Switch Flyback IGBT pulsgenerator

Dit ontwerp recyclet meer pulsenergie dan de single-IGBT versie en produceert zowel een scherpe stijgende als dalende stroomrand. Dit verhoogt de $di/dt$ voor een sterkere, maar kortere magnetische velspuls. Het vermindert merkbaar de stroomvraag van het oplaadcircuit en lijkt effectiever in het stimuleren van spier- en zenuwweefsel, waarschijnlijk omdat snellere veldovergangen een grotere stroom in het weefsel induceren.

Bij dit ontwerp is het belangrijk dat beide IGBT/schakelaarmodules thermisch gebonden zijn, zodat ze dezelfde temperatuur en schakelkenmerken hebben. Hiervoor worden ze aan tegenovergestelde zijden van een aluminium plaat gebout, die is verbonden met waterkoelblokken. Daarnaast is het essentieel om de schakelcircuits (switching loops) zo kort mogelijk te houden.

Ontwerp #4 — H-Bridge IGBT pulsgenerator (Nog niet gebouwd)

Dit zou de pulsstroom ten opzichte van de two-switch flyback topologie moeten verdubbelen door stroomomkering mogelijk te maken. De complexiteit van het positioneren van vier grote IGBT-schakelaars met bijbehorende snubbers en diodes, inclusief koeling, is echter groot. Er is een risico dat parasitaire inductie de winst tenietdoet.

Besturing van het oplaadcircuit (Charge-Control)

Het nieuwe besturingssysteem maakt gebruik van een DAC die een referentiespanning naar een comparator stuurt. Deze vergelijkt de referentie met de output van een Micsig 1300V differentiële probe. In de Teensy-code zijn schaalfactoren en lineaire kalibraties opgenomen voor zowel de ADC's als de DAC. Een zwakke pull-down op de DAC-output zorgt ervoor dat als de microcontroller vastloopt, de DAC-spanning naar nul zakt en het oplaadcircuit veilig uitvalt.

Voor debugging wordt een Python-script gebruikt dat via seriële output een realtime grafiek en telemetrie van de Teensy-besturing weergeeft. Hiermee kan de capacitor-spanning live worden gevolgd en kan het setpoint van de spanning direct vanuit het Python-venster worden aangepast.

Upgrades aan het Pulse-Driver systeem

Er zijn toevoegingen gedaan aan het besturingscircuit van de pulse-driver:

  • Feedback: De fiber-RX lijnen zijn aangesloten via een level shifter naar 3,3V, zodat de Teensy kan controleren of elke puls is bevestigd (ack'd) door elke gate-driver.
  • Foutindicatie: Een grote rode fault-LED knippert bij waarschuwingen (bijv. een ack-puls die iets afwijkt) en blijft branden (latch) bij een fout zoals kortsluiting.
  • Veiligheid: De Teensy-code heeft de mogelijkheid om een veiligheidsrelais aan te sturen om de hoofdvoeding uit te schakelen bij een fout, hoewel dit mechanische relais nog niet is aangesloten.

Veiligheidsbronnen

  • TMS-veiligheid m.b.t. epileptische aanvallen: Algemene discussie over factoren die de drempel voor aanvallen kunnen verlagen.
  • Risicofactoren: Een beknkt overzicht van risicofactoren voor aanvallen vanuit een klinische setting.

Nuttige bronnen

  • Berekeningen: Online calculators voor het Beam-Protocol/10-20 systeem om de positie van de DLPFC te bepalen.
  • Software: Clinical Researcher Software Tools voor motor-threshold metingen.
  • Video's:
  • Instructies over spoelplaatsing en het 10-20 systeem/beam protocol.
  • Introductie in algemene TMS.
  • Demonstraties van TMS-stimulatie van spieren direct en via de motorische cortex.
  • Uitgebreide uitleg over de inrichting en uitvoering van een behandeling in een TMS-kliniek.

TODO-lijst

  • Schema's bijwerken: De technische tekeningen moeten worden geactualiseerd.
  • Oplaadschakelaar verfijnen: De huidige IGBT is te groot voor de huidige stroomsterkte; zoeken naar een kleinere IGBT/schakelaar die ~2-3kV kan verdragen.
  • Fase-gestuurde gelijkrichter: Een fase-control rectifier bouwen om de variac te vervangen en te integreren in het oplaadsysteem (mogelijk met PID-sturing of een bang-bang schema).
  • Gate-driver feedback verwerken: De functionaliteit voor het uitschakelen van het veiligheidsrelais volledig bedraden.
  • Pulse-Driver functionaliteit: Invoermogelijkheden toevoegen (met goede afscherming) zodat een gebruiker een enkele puls handmatig kan triggeren.
  • Magnetisch veld in kaart brengen: Een tool bouwen om de sterkte en vorm van het magnetische veld van een spoel te mappen. Het idee is om een analoge hall-effect sensor op een 3D-gantry (zoals een 3D-printer) te plaatsen om een 3D heat-map van de veldsterkte te maken.