CDI Programmierbar im Eigenbau

  • Aber der frau die Tupperware Dose zu klauen findet sie bestimmt nicht so prickelnd :face_with_tears_of_joy:

    Hut ab vor deinem Elektronikverständnis!

  • Urlaub ist zu ende. Jetzt kommt ein Update:


    Eine Schaltung mit dem Arduino Mega2560 ist gebaut, wie befürchtet ist der Prozessor zu Nerdig und kommt in der rauen Mopedumgebung nicht klar. Die von der Zündspule generierten Elektromagnetischen Störungen bringen den Mega2560 schnell zum Absturz, auch driftet und wackelt der Zündwinkel, das ist nicht optimal.


    In meiner Nano Original schaltung mit dem 328P Prozessor sind jetzt noch ein paar Ungereimtheiten aufgetreten:


    1. Die sporadischen Startprobleme lagen nicht wie vermutet an der Mindestdrehzahl von 444 Umdrehungen sondern am 4,7 Kilo Ohm Vorwiderstand am Pickupeingang zum Optokoppler. Das Pickupsignal war schlicht zu schwach um den Optokoppler beim Start mit schwächelnder Batterie zu zünden. Jetzt mit 2 Kohm geht's viel besser.


    2. Ich hatte einen Durchschlag im 100nF Kondensator im Chinesichen DC/DC Wandler, zu blöd das die Schaltung bereits vergossen war, also hab ich eine neue gebaut.


    3. Jetzt wo die mindest Drehzahl tiefer liegt, kommen neue Probleme: bei ganz tiefer Drehzahl kommt sau viel Ladespannung von 350 Volt und mehr vom China DC/DC mit Spannungsspitzen von 700 Volt (das erklärt den durchschlag am 400V 100nF Kondensator) so das mit über 150mJ gezündet wird. Das generiert soviel EMV Feuer das der Prozessor in der Zündung abstürzt


    Ein Absturz vom Prozessor löst dummerweise eine Kettenreaktion aus: Prozessor stürzt ab, Thyristor wird gezündet aber der DC/DC wird nicht abgeschalten, der DC/DC pumpt nun 200V permanent über den Gezündeten Thyristor in die Spule, da fließt jetzt so viel Strom das der Trafo im DC/DC sich bis zur Rauchentwicklung erwärmt.


    Alle einprogrammierten Sicherheitsmechanismen bringen da nichts, weil der Prozessor sich ja aufgehangen hat, nicht mehr Arbeitet und händisch resettet werden muss.


    Was kommt jetzt:


    * Eine TVS Diode am Ausgang des DC/DC soll die Ausgangsspannung in diesen seltenen Fehlerfall (ziemlich missglückter Startversuch) auf 250- 300V begrenzen so wird die Zündenergie und das EMV Feuer so sehr begrenzt, das kein Absturz vom Prozessor mehr droht.


    * Eine Schmelzsicherung soll dann im noch seltener gewordenen Fehlerfall , wenn der DC/DC sich selbst zerstören will, auslösen und die CDI davon abhalten in Flammen auf zu gehen.


    Wenn die Maßnahmen fruchten aktualisiere ich die Montageanleitung und den Schaltplan

    Nur was knattert und stinkt, mir Freude bringt :biggrin:

  • Ich verstehe nicht ganz warum du einen DC-DC wandler nimmst, hast du keine Ladespulen an deinem Stator? Wäre effizienter und einfacher die zu verwenden, über Gleichrichter den Kondensator zu laden, und mit einem Thyristor zu entladen. Du kannst stattdessen auch Vespa Zündspulen nehmen, die haben normalerweise keine integrierte Zündverstellung und können ganz einfach mit einem Arduino-Ausgang getriggert werden.


    Der Optokoppler ist auch unnötiger Aufwand, nimm einfach einen Vorwiderstand, 5V Z-Diode, und einen kleinen Entstörkondensator. Meine Kolbignition in der finalen Version war kaum größer als ein Nano, inkl Gleichrichter für alte Wechselstrom-Elektrik ohne Batterie.


    Tabellarische Zündwinkel müssten am einfachsten und prozessortechnisch am schnellsten sein, hab es auch so gelöst. Kann dann zB alle 250 Umdrehungen einen eigenen Zündwinkel angeben, ist halt viel Tipperei wenn ich eine Kurve komplett ändern möchte, aber das mache ich ja nicht jeden Tag.


    Lg

  • Das sollte eine Universale DC CDI werden, in weiser Voraussicht, das die AC Ladespule an meiner Chongqing Shineray eines Tages flöten geht und ich dann zu faul zum wickeln sein werde :face_with_tears_of_joy: .


    Ja das mit dem Optokoppler stimmt, der ist nicht notwendig und andere Adruino Basierte CDI Systeme funktionieren auch mit einer Z Diode, Kondensator und einem Transistor als Filterung/entkopplung, ich bin da halt auf Grund meiner Erfahrungen geprägt und will keine Kabel vom Kabelbaum direkt am Mikrocontroller haben und mag die Optokoppler Lösung einfach :face_savoring_food: weil sie so einfach ist.


    Bei käuflichen CDI`s generiert die Bediensoftware die Tabelle und speichert sie beim hochladen der Kurve im EEPROM des Prozessors ab, das ist natürlich Optimal


    Mit der Tabelle an meiner CDI läuft das zur Zeit so: nach dem Anschalten wird aus den Rohdaten der Zündkurve (Drehzahl und Zündwinkel) ein Array vom Prozessor berechnet und im Arbeitsspeicher abgelegt.


    Ein Binary search sucht anhand der aktuellen µS Periode in der Tabelle nach den passenden werten, findet er nix wird die Verzögerung nach dem letzten bekannten Wert berechnet.



    Blöderweise wird jede Tabellenspalte des Array in festen 1000 µS schritten berechnet, also in niedrigen Drehzahlen hab ich eine hohe Auflösung in honen Drehzahlen nahezu keine Auflösung (12.000 rpm sind gerade mal 5000 µS pro Umdrehung ) , zwischen den Tabellenspalten wird linear interpoliert, diese Interpolation klappt wieder so gut, da man von der geringen Auflösung obenrum nichts mitbekommt


    bei einem 4 Takter spielt die Musik zwischen 1.000 und 3.000 dafür reicht die Auflösung ( die Chongqing ist so einer)

    bei einem 2 Takter spielt die Musik nach 11.000, da ist es zur zeit noch schwer eine brauchbare Kurve zu erstellen


    Entweder ich hinterlege eine feste Tabelle in den Code, die dann einmalig aufwändig für den Fahrzeugtyp getippt werden muss (wobei bereits 40 zeilen ausreichen würden die mit Copy and Paste schnell getippt sind) ,

    oder ich verändere noch die Art und weise, wie das Array berechnet wird um oberhalb 9.000 rpm mehr Auflösung zu bekommen.

    Nur was knattert und stinkt, mir Freude bringt :biggrin:

  • Verstehe, universell ist ein Wandler natürlich besser.


    Müsste man dann die Zündwicklung nicht kurzschließen? Hatte mal was gelesen dass der Rotor weniger Widerstan leistet wenn die Spulen kurgeschlossen statt offen sind.


    Guck dir das Kolbignition Video nochmal an, da müsste auch zu sehen sein wie die Tabelle ca aussieht. Bei 250er Schritten braucht man keine Interpolation, ich rechne die Drehzahl aus, und sage Zündverzögerung = tabelle[drehzahzal/250]. Wenn das array zb 100 Einträge hat, läufts bis 25000upm, so passen dann mehrere Zündkurven auf den Nano. Halte die Leitungen kurz und lass alles Unnötige weg, Angst die Eingänge zu zerstören brauchst du nicht haben wenn du eine Z-Diode benutzt und den Vorwiderstand richtig berechnest (kannst bei schwachen Pickups auch weglassen). Wirst sehen, weniger Bauteile bzw Leiterbahnen und du kannst es sogar nahe der Zündspule montieren.


    Viel Erfolg ✌️

  • Update:


    Die CDI konnte ich radikal mit 2x 100Volt Z-dioden am Ausgang des DC/DC Wandlers stabilisieren (mehr als 200Volt kommen jetzt nicht mehr raus). Läuft ganz gut. Jetzt geht es weiter in eine andere Richtung



    Ich habe an der schlecht funktionierenden Schaltung mit dem Mega2560 den Thyristor durch einen IGBT ersetzt. Die Schaltung funktioniert wesentlich stabiler nur erwärmt sich der IGBT etwas mehr als der Thyristor. Der Impuls an der Zündspule ist nach wie vor 10ųS lang und hat 180V, so wie beim Thyristor. Sieht so aus als werde ich bei der Hardware einen neuen Weg gehen und die funktionierende Thyristorzündung mit dem 328P Prozessor erstmal bei seite legen, mit dem Mega 2560 und dem IGBT weiter machen und danach einen neuen Prototypen mit dem 328P/Arduino Nano und IGBT bauen. Ein Update vom Schaltplan mache ich dann erst, wenn ich was stabiles gefunden habe. (da ändert sich jetzt zuviel dran)


    Der Mega2560 hat inzwischen mehr Verdrahtete Bauteile mit Heißkleber an der Platine geklebt als auf der Platine verlötet. :face_with_tears_of_joy:

    Nur was knattert und stinkt, mir Freude bringt :biggrin:

  • Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    Schmeiß den Mega weit weg, zu störungsanfällig mit den langen Leiterbahnen. Nimm einen Nano, einen Inverter (hätte bei Interesse noch welche da, die sind spitze) und einen Mosfet, fertig ist die Zündung.

    Wiegt nur ein paar Gramm und kann beliebig lange/oft (Multispark etc) zünden.


    Lg

  • Geile und einfache sache, mit einstellbarer Brenndauer. Sehr coole Idee.



    Ich bleibe erstmal bei meiner klassichen CDI.

    Der Mega fliegt dann natürlich raus, nur hab ich jetzt einmal die Platine gelötet und jetzt wird sie zum Spielen mit IGBT's genutzt.


    So ganz verkehrt bin ich nicht unterwegs:


    Zündimpuls Zündspule Original CDI:


    Zündimpuls Zündspule Nano CDI mit Thyristor:



    Zündimpuls Mega CDI mit IGBT:


    Nur was knattert und stinkt, mir Freude bringt :biggrin:

  • Hast du auch ein Oszi vom Pickupsignal?

    Wenn du Lust hast, könntest du ein paar Eingangsschaltungen für mich testen, hab leider keine Aprilia mehr. Sollte sich mit 2-3 Bauteilen ausgehen, du kannst es dann für deine Schaltung benutzen. Bräuchte dazu nur Infos wie der Pickup verkabelt ist (eine Seite bereits auf Masse oder werden beide Anschlüsse herausgeführt), sowie Oszi bei verschiedenen Drehzahlen.


    Lg