Mein Treiber:
Vorerst habe ich mich auf die 2,8A Version konzentriert, noch ist es ja lange dunkel.
Basis ist das 501C Board mit 4,7 bzw. 19,1kOhm Widerständen, der ehemalige Kai „V1“ Treiber, welcher aber bei zahlreichen Onlinehändlern noch zu haben ist.
Von der Shiningbeam Variante würde ich eher abraten, die zusätzliche Verbindung zwischen Pin 3&4 des Tinys muss erst entlötet werden, damit der Clip greift. Wenn das nicht absolut perfekt durchgeführt wird, gibt das Kontaktschwierigkeiten.
Bevor jemand fragt: Der KAI V2 geht gar nicht, dort ist ein anderer Controller verbaut, der mit Bascom nicht programmiert werden kann.
Im Frühjahr oder Sommer habe ich vor, mich den kleineren (1-1,4A) Versionen zu widmen.
Die aktuelle Version läuft absolut stabil und scheint, soweit man dies nach „nur“ ein paar hundert Stunden Testzeit und rund einem Dutzend Treibern bislang beurteilen kann, inzwischen komplett bugfrei zu sein.
Ich hab mich für 5 Stufen entschlossen, sehr maßgeschneidert.
Das halte ich schon für vergleichsweise viel, i.d.R. sollte man mit maximal 4 Modes auskommen.
Da meine regelmäßigen Spaziergänge relativ lang sind, wollte ich die Möglichkeit haben, bei geplanter "Laufzeit" das Maximum aus der Lampe herausholen zu können ohne die Zellen wechseln zu müssen.
Mein Treiber startet auf Max, das ist eine Frage der Philosophie.
Wenn ich schnell Licht brauche, dann brauche ich es hell.
Wenn ich lediglich ein Gefunzel benötige, habe ich in der Regel vergleichsweise alle Zeit der Welt.
Die von mir gewählten Stufen sind ca. 2800/2100/1400/500/60mA
Wie gesagt Geschmacksache, am besten orientiert man sich bei der Auswahl an vorhandenen Lieblingslampen.
Bei nicht allzu massiven Hosts hat die 2,8A Max Stufe ein Burst Mode.
Nach bei mir 6 Minuten schaltet die Lampe herunter auf 2,4A.
Das ist moderat, kaum wahrnehmbar, entspannt die thermische Situation etwas und spart Strom
Mode Reset Intervall:
Etwas knifflig dort den idealen Wert zu finden.
Der Tiny kann in der Konfiguration keine Ausschaltzeiten messen, sondern nur die Einschaltzeit.
Modewechsel und ausschalten ist für ihn das gleiche.
Daher die Krücke mit der Einschaltzeit.
Wenn die Lampe X ms eingeschaltet war, ist die nächste Stufe wieder die 1.
Ein langes Intervall ermöglicht es einem "in Ruhe" zu evaluieren ob die Stufe passt.
Andererseits muß die Lampe aber dann auch mindestens so lange eingeschaltet bleiben, damit beim nächsten Start die Lampe auch wieder bei der 1. Stufe beginnt.
Schwierig ist die Entscheidung insbesondere in Verbindung mit einem Forward Clicky, der einen allzu gerne verleitet, auch mal nur ganz kurz aufzuleuchten, bzw. der evtl. auch mal versehentlich nur kurz angetippt wird.
Persönlich habe ich mich mit der Zeit vom Intervall her immer weiter heruntergearbeitet.
Da es ja eh Modi nach Maß sind, kennt man mit der Zeit seine Modes so gut, daß man im Vornherein eigentlich schon immer weiß, z.B. "Hier brauche ich die 2. Stufe".
Persönlich würde ich sagen: Je geringer die Anzahl der Modes desto geringer die Qual der Wahl.
Folglich würde ich dann eher zu einer kürzeren Intervallzeit neigen.
Für meine 5 Modes bin ich momentan bei 750ms, Tendenz eher nach unten.
500ms würde ich z.B. für eine 3 Mode Variante vorschlagen, das ist auch rsfyfys Standardwert.
Von der Frequenz her habe ich mich für eine Variante mit rund 4,6kHz entschieden.
(Für Cracks: Bei voller Tiny Taktung von 9,6mHz, ADC Frequenz 75mHz)
Dies erwies sich bei mir in zahllosen Tests mit Abstand als bester Kompromiß zwischen hoher PWM Frequenz und recht zuverlässigen ADC Werten für die Akkuwarnung.
Die PWM Frequenz ist jenseits der Wahrnehmungsgrenze und die Genauigkeit der ermittelten Spannungswerte der Zelle sind funktional.
Akkuwarnung:
Ganz klar das absolute Highlight des Treibers.
Im höchsten Maße ist der Treiber hiermit idiotensicher und sorgt dafür, daß bei Bedarf die volle Kapazität des Akkus guten Gewissens ausgeschöpft werden kann, ohne daß man sich Sorgen um die Zelle machen müßte.
Eine rechtzeitige Vorwarnung sorgt dafür, daß man nicht spontan im Dunkeln steht, etwas, was man in manchen Situationen ganz und gar nicht gebrauchen kann.
Die Notabschaltung garantiert, daß der Treiber auch in einem unbeaufsichtigtem Moment dem Leuchten rechtzeitig ein Ende setzt bzw. gibt dem Anwender ein letztes Signal, daß es höchste Zeit ist, die Energiequelle oder Lampe zu wechseln.
Auch hier wird es nicht schlagartig dunkel, sondern die Lampe dimmt gemächlich jeweils eine Stufe herunter bis 0 (und der Treiber schaltet sich ab).
Kaum irgendeine Serienlampe hat überhaupt eine Akkuwarnung, wer die folgenden Zeilen durchhält, weiß auch warum
Der Spaß ist wahnsinnig diffizil.
Hauptproblem ist (das kann man auch in der vorhergehenden Posts lesen), daß die Spannungswerte, die der Tiny im PWM Modus errechtet, teilweise erheblich vom tatsächlichen Wert abweichen. Volle Pulle, ohne PWM kommt der Chip jedoch auf die korrekten Werte.
Daher lag mein erstes Augenmerk darauf, eine Konfiguration zu finden, bei der die Abweichungen nicht sonderlich ins Gewicht fallen.
Pauschal kann man sagen: Je höher die PWM Frequenz, desto mehr driften die Werte auseinander.
Ebenso gilt: Je höher die Ströme (Restspannung der Zelle, Vf des Emitters) desto größer die Abweichung.
Dieses Phänomen ist von Treiber zu Treiber sehr unterschiedlich.
Einerseits scheinen die Abweichungen in Abhängigkeit mit der tatsächlichen Tiny Frequenz zu stehen. Die +/- 5% sind dann schon erheblich.
Zum anderen scheint auch die Qualität der Boards (oder der Verlötungen?) eine erhebliche Rolle zu spielen. Rsfyfy hatte mir gegenüber mal erwähnt, daß das Board quasi als Antenne für die Störsignale fungiert.
Ich habe gerade einen neuen Riegel Treiber angebrochen, bei diesem Scheinen die Abweichungen deutlich geringer auszufallen, wie bei allen bisherigen Exemplaren
Fazit:
Eine XR-E mit ihrer hohen Vf und max. 1000mA macht kaum Probleme, da sollten auch 19kHz noch recht problemlos gehen.
Beim anderen Extrem, einer XM-L und 2,8A sieht die Sache ganz anders aus.
Dort haben sich die oben bereits erwähnten Werte bewährt.
Die 4,6mHz packt der Tiny noch ohne große ADC Ausreißer solange man ihn auf voller Taktung laufen läßt. Die relativ träg eingestellte ADC Frequenz verhindert zudem noch etwas übernervöse Ausrutscher.
Soweit erst mal zu den Grundeinstellungen.
Kommen wir nun zu den
Schwellwerten:
Das ist natürlich Geschmacksache oder vielleicht sogar eine Philosophiefrage.
Es ist der ewige Spagat zwischen voller Ausnutzung der Kapazität und Zellschonung.
Zudem muß man immer noch die Eigenart des Treibers im Hinterkopf behalten, daß bei zu hoher Restspannung die ADC Werte weiter auseinanderdriften.
Des weiteren muß man sich entscheiden, wie groß die Zeitspanne zwischen Warnung und Notabschaltung sein sollte.
Das macht die Sache erst recht nicht einfacher...
Hier kommen dann noch ein Haufen anderer Variablen ins Spiel.
Wichtigster ist die Zelle: Wer sich mit der Materie vertraut gemacht hat und sich die Kurven einiger Tests zu Gemüte führt, wird feststellen, daß die Spannungskurven sehr unterschiedlich ausfallen.
Hochkapazitätszellen (2900mAh aufwärts) haben eine weitaus flachere Spannungskurve.
Die Zeitspanne zwischen Warnung und Abschaltung kann daher erheblich variieren, die Warnung erfolgt signifikant früher oder später.
Auf weitere Faktoren wie Höhe der Leistung, Emitter Vf, Teil- vs. Vollgeladene Zelle entleeren, Temperatur, Zellenalter, etc. gehe ich jetzt nicht ein, sie beeinflussen das Ergebnis aber durchaus und wurden bei meinen Tests natürlich soweit machbar berücksichtigt.
Man kann sich jetzt entweder seinen Treiber auf eine Lieblingszelle maßschneidern, das wäre aber zu einfach

oder aber man versucht die Quadratur des Kreises, ich denke dies ist mir recht gut gelungen
Vorgaben meinerseits waren:
-Fokus auf Akkus mit einer hohen Spannungskurve, schlicht und ergreifend, weil dies die idealen Zellen mit Linearreglern sind, da der Output bedeutend länger Konstant bleibt.
Die üblichen Markenzellen bis 2600mAh fallen in diesen Bereich.
Dennoch auch ein möglichst sinnvolles Intervall auch bei Verwendung aller erdenklichen anderen Akkus, von Lithium-Mangan (IMR) Zellen bis hin zu den 3100er Langläufern.
-Gute 5 Minuten Intervall (ohne herunterfahren) habe ich dabei angepeilt. Das sollte in der Regel reichen, um in eine Situation zu kommen in der man in Ruhe den Akku wechseln kann.
Eine deutlich frühere Warnung wollte ich vermeiden. Das schafft nur zur Unzeit Unruhe oder aber man gewöhnt sich dermaßen an die Warnung, daß man den Wechsel verpennen würde, täte nicht die Notabschaltung greifen.
Meine Werte sehen momentan so aus:
Warnung bei gut 3Volt, Notabschaltung bei gut 2,9Volt.
(Auf Max - ohne PWM - erfolgt die Warnung etwas früher)
Bei einer hohen Spannungskurve einer Zelle entspricht dies einem Intervall von rund 7 Minuten.
Bei extremen "flachen" Langläufern verlängert sich das Intervall auf für mich noch vertretbare ca. 12-15 Minuten.
Die Warnung bei 3V liegt im sattgrünen Bereich.
In der Regel, wenn man den Treiber nicht gerade testet, wird man dann ja auch recht zeitgleich die Energieversorgung wechseln.
Auch bei gut 2,9V ist noch reichlich Luft, man sollte jedoch bedenken, daß der Herunterdimm-Vorgang auch noch etwas an der Kapazität nagt.
Was ich sagen will: Wer auf das regelmäßige auskosten der Herunterdimm-Show verzichten kann, tut auf Dauer seinen Akkus auch noch ein ganz klein wenig was gutes.
Eigentlich unnötig zu erwähnen, aber geschützte Akkus mit einer Schutzschaltung die bereits bei ca. 3V greift, sind mit diesen Werten kaum sinnvoll zu gebrauchen.
Meine Werte wurden durch unzählige (und unendliche) Tests in Theorie und Praxis mit einer großen Variation bei der Hardware überprüft.
(Disclaimer: Irgendeine Haftung meinerseits läßt sich aber daraus selbstredend nicht ableiten)
Auf allen Stufen von Mid bis Max führen sie zum gewünschten Erfolg.
Vorsorglich möchte ich hier nochmals explizit darauf hinweisen:
Auf Low Stufen (ich sag mal aus dem Bauch heraus, spätestens 2-stellige mA Werte und drunter) funktioniert keinerlei Akkuwarnung !!! – und auch keine Schutzschaltung in der Zelle.
Bei derart geringen Strömen nähert sich die Spannung unter Last gefährlich der Leerlaufspannung und dann ist jeder Schwellwert noch zu viiiiiiel hoch.
Dies nur vorsorglich.
Es gibt immer noch Experten die meinen, Laufzeitweltrekorde ohne nachzuladen mit einer Zelle aufstellen zu müssen und sich dann über ach so miese Zellen ärgern.
Im Zweifel nachladen! Der beste Akkuschutz ist immer noch Brain 1.0
Keine einzige Zelle hat bei mir wegen zu häufigem laden den Geist aufgegeben.
Fatal sind für Zellen überladen und zu tiefes entladen. Folgen durch „zu häufiges“ laden sind vernachlässigbar.
In diesem Zusammenhang ist auch noch zu erwähnen:
Die Toleranzen der Treiber sind leider recht erheblich, die Obigen Werte stellen in etwa den Durchschnitt dar. Mit leichten Toleranzen nach oben und unten muß man rechnen, diese sind aber in der Praxis vernachlässigbar und eher akademischer Natur.
Wer es ganz perfekt haben möchte kann selbstverständlich jeden Treiber einzeln ausmessen und die Werte feintunen

In sehr seltenen Fällen gibt es aber Ausrutscher, bei denen sich die einzelnen Toleranzen nicht gegenseitig nivellieren, sondern addieren. Wie gesagt, dies ist ausgesprochen selten, mir ist erst ein problematischer Treiber untergekommen.
In dem Fall muß man die Abweichung dann halt ggf. für beide Werte parallel korrigieren.
Was mir da noch aufgefallen ist:
Beim Feintuning der ADC Werte passiert offenbar bei der Änderung um einen Zähler manchmal gar nichts, dann wieder Mal macht das Ergebnis einen kleinen Sprung.
Keine Ahnung woran das liegt. PWM Mittelung? Irgendein interner Multiplikator?
Es spielt auch keine wesentliche Rolle, die Werte lassen sich noch ausreichend genau einstellen, daher nur zur Info.
Noch Fragen?

Sonst fange ich mal mit dem Tutorial an.
Die Aktuelle Version des Treibers findet sich im Anhang.
So wie sie ist, läßt sie sich in jedem beliebigen Editor öffnen.
Wer sie direkt in Bascom laden möchte, entfernt einfach die 2. .TXT Endung.