1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Firmware für NANJG 105c Treiber

Dieses Thema im Forum "Modding" wurde erstellt von LegolasGT, 1. Oktober 2013.

  1. LegolasGT

    LegolasGT Erleuchteter

    Hi,

    ich habe letzens meine erste Lampe mit Nanjg 105c Treiber bekommen, da mir aber einige Dinge nicht gefallen haben und ein attiny13 verbaut ist, kann man diesen ja relativ leicht umprogrammieren.

    Konkret hat mir nicht gefallen das der Treiber nicht im niedrigsten Modus startet wenn man die Lampe einschaltet und das die Abschaltspannung etwas zu niedrig ist.


    Dabei ist folgendes herausgekommen:

    - ca. 3Millionen Schaltzyklen durch gute Ausnutzung des EEproms
    -Treiber schaltet eine Stufe runter, und fängt nicht einfach an zu blinken wenn der Akku fast leer ist
    -Abschaltspannung ca. 3V
    -Beim einschalten startet der Treiber immer in Low
    - Mode Reihenfolge: 0.5%-5%-40%-100% mit der Besonderheit das nach der höchsten Stufe nicht die 0.5% wieder kommen, sondern die 5% Stufe. Die 0.5% Stufe wird so nur beim direkten einschalten erreicht
    - Stromverbauch in der 0.5% Stufe nur etwa 2mA, also ca. 2Monate Laufzeit


    Damit der Treiber weiß wann die Lampe ganz aus war oder nur kurz, muss man noch einen Widerstand und Kondensator auf den Treiber löten.
    Ich habe einen 10uF Kondensator im 0805 Gehäuse verwendet und einen 200kOhm Widerstand im 0603 Gehäuse. Als Widerstand geht sicher auch einer im 0805 Gehäuse, hatte aber gerade nichts anderes da. Die beiden werden auf die mittleren beiden Sterne parallel verlötet(siehe Bild).

    Und so funktioniert das: Sobald die Lampe eingeschaltet wird, misst der Controller ob der Kondensator aufgeladen ist, damit weiß er ob er in die niedrigste Stufe schalten muss, oder eine Stufe weiter. Danach wird der Kondensator aufgeladen. Wenn die Lampe mal länger ausgeschaltet war, ist der Kondensator durch den Widerstand entladen.

    Fuse Bits: Low : 0x69, High : 0xFD

    Mfg Dominic
     

    Anhänge:

    Basti, Frickelfreak, Dark Laser und 5 andere Flashys haben sich hierfür bedankt.
  2. Wild

    Wild Flashaholic*

    zum ThruNite-Shop
    Ich frage jetzt einfach mal direkt:

    Mit welchem equipment lädst du deine IC's ? Bzw. was wäre eine Grundausstattung?
     
  3. LegolasGT

    LegolasGT Erleuchteter

    Zum flashen benutze ich einen mySmart USB light.
    Um den Programmer mit dem attiny zu verbinden, nehme ich dünnen Kupferlackdraht (für einfachere Methoden bin ich offen).

    Joa, sonst braucht man eig nur noch einen Lötkolben mit recht dünner Spitze.

    Die Software um neue Programme zu schreiben und zum flashen gibts kostenlos im Internet.
     
  4. Bagno

    Bagno Flashaholic**

    Miboxer.com
    Hallo Dominic,

    wenn Du an weiterer Firmware für die 105c-Reihe interessiert bist, schau mal beim Dr.Jones (auch User hier im TLF) nach:

    DrJones' Custom Firmware Drivers

    Viele User hier sind sehr zufrieden mit den Programmiermöglichkeiten der Firmware von ihm (auch ich) :thumbsup:

    Aber bedenke, nur für den privaten Gebrauch bestimmt!!

    Gruß

    Sven
     
  5. LegolasGT

    LegolasGT Erleuchteter

    Hi,

    danke, aber wenn ich das richtig verstehe starten diese Treiber nicht immer auf low, und das wollte ich gerade. Deshalb habe ich ja meine eigene Software geschrieben, so gefällt es mir am besten :D
     
  6. the_holodoc

    the_holodoc Flashaholic**

    Die Art des Memory ist bei lucidrv und lupodrv von DrJones programmierbar:

    MfG Frederick
     
  7. LegolasGT

    LegolasGT Erleuchteter

    Skilhunt Taschenlampen
    Ich glaube wir reden hier etwas aneinander vorbei, vllt hätte ich das auch deutlicher schreiben sollen.

    Mein Treiber startet automatisch auf low, sobald die Lampe länger als ca. 1 Sekunde aus war, egal in welcher Stufe man vorher war.
    Das macht der Treiber von DrJones' nicht, oder? Sonst ist der Treiber von DrJones echt Klasse, mit den vielen Anpassungsmöglichlkeiten.
     
  8. 9x6

    9x6 Flashaholic**

    Doch, das geht, einfach mehrere Stufen programmieren, z.B. low, mid1, mid2, high und jedes memory ausschalten. Ich habe das bei meinem roten Drop-In so ähnlich gemacht, allerdings nehme ich short-cycle memory, d.h. ich bin immer auf der zuletzt verwendeten Stufe, aber ein Klick und ich bin auf low. Wenn man Memory ausschaltet, startet man immer auf der ersten Stufe, und die kann ja low sein.

    Gruß Jörg
     
    #8 9x6, 2. Oktober 2013
    Zuletzt bearbeitet: 2. Oktober 2013
  9. fritz15

    fritz15 Flashaholic**

    Hallo,

    der Unterschied besteht darin, dass die ganzen Firmwares, die ohne Memory kursieren bisher nach dem folgenden Prinzip geschrieben wurden:
    Sobald die Lampe länger als x.y Sekunden an ist, ist der nächste Modus, den man erhält automatisch der erste.
    Man misst also wie lange die Lampe an war.

    Diese Firmware funktioniert genau anders herum:
    Durch den Kondensator misst man, wie lange die Lampe aus war. Und wenn die Lampe dann länger als x.y Sekunden aus war ist der nächste Modus den man erhält automatisch der erste.

    Also zwei komplett unterschiedliche Funktionsweisen.
    Ich finde es klasse, dass es Dominic ermöglicht hat mit einfachen Mitteln die "Aus"-Zeit der Treiber zu messen, was bisher mit den Mitteln eines Attiny13 nicht möglich war.
    Das dürfte einige neue Möglichkeiten eröffnen!

    @Dominic, springt dein Treiber auch auf Modus 1 zurück, wenn man die Lampe länger als x.y Sekunden an lässt oder nur, wenn sie ausgeschaltet wurde?

    Falls du vorhast öfters Treiber zu programmieren kannst du dir auch Gedanken über die Anschaffung einer solchen Klammer Gedanken machen:
    3M 8 Way SOIC Test Clip - SOIC Clips / ISP Leads - 3M 8 WAY SOIC TEST CLIP - C.U.S

    MfG
     
    LegolasGT hat sich hierfür bedankt.
  10. 9x6

    9x6 Flashaholic**

    Outdoor Forum
    Auch nach mehrmaligem Lesen verstehe ich das nicht. Ich habe hier eine nicht von mir umgebaute Balder BD1 mit forward-clicky ohne memory mit high, mid, low. Wenn ich den clicky schnell hintereinander leicht antippe, komme ich auf die weiteren Stufen. Wenn ich den clicky lange leicht gedrückt halte (nicht durchdrücke), dann kurz loslasse und dann gleich wieder drücke, komme ich auch auf die weiteren Stufen. Wenn ich den clicky längere Zeit leicht gedrückt halte und dann länger als 1 Sekunde loslasse, komme ich danach wieder auf die 1.Stufe.

    Offensichtlich berücksichtigt dieser Treiber doch die Auszeit: Länger aus, dann Stufe 1, kürzer aus, dann nächste Stufe.

    Gruß Jörg
     
  11. LegolasGT

    LegolasGT Erleuchteter

    @ fritz15, genau so funktioniert mein Treiber.

    Nein, der Treiber springt nur auf Modus 1 zurück, wenn die Lampe länger als x Sekunden aus war. Wenn man direkt auf Modus 1 will, kann man auch den Clicky einfach ca. 1 Sekunde leicht drücken, und ist automatisch in Modus 1.

    Kann aber auch noch eine andere Version schreiben, die das gewünschte Verhalten hat, sollte kein Problem sein.

    Der Test Clip ist ja genial, muss ich mir demnächst mal zulegen, danke.

    @Jörg, ja, die Balder scheint das genauso zu machen wie mein Treiber. Und genauso macht das die Firmware von DrJones auch?
     
  12. 9x6

    9x6 Flashaholic**

    Ich habe jetzt NANJG101AK1, custom firmware lucidrv in meinem roten Drop-In umprogrammiert, etwas anders ist es schon: Ohne memory startet die Lampe immer in der 1.Stufe. Wenn eine gewählte Stufe eine Weile an war, bewirkt auch eine kurze Unterbrechung Sprung zur ersten Stufe. Das ist nicht genau das, was der Treiber der Balder macht, der würde bei einer kurzen Unterbrechung zur nächsten Stufe schalten.

    Gruß Jörg
     
  13. DrJones

    DrJones Flashaholic*

    Nein, meine Firmware hat kein "off-time memory", weil sie für Treiber ohne Hardware-Modifikation konzipiert ist.

    Schön, mal wieder etwas frischer Wind in der Firmware-Ecke :)
     
  14. LegolasGT

    LegolasGT Erleuchteter

    @ Jörg, danke für deinen Versuch, damit wäre das ja dann auch geklärt.

    @DrJones, ja, das ist der Vorteil bei deiner Firmware, man braucht keine Hardware Modifikationen.

    Ich finde die Firmware ist eines der wichtigsten sachen an Taschenlampen, das ist bei mir oft der Aussschlag, ob mir eine Lampe gefällt oder nicht.
     
  15. DrJones

    DrJones Flashaholic*

    Olight Shop
    Geht mir auch so - wobei mir heutzutage bei einer Lampe die UI selbst eigentlich nicht mehr wichtig ist, sondern, ob ich einen NANJG reintauschen kann :)
    Nur wenige Lampen, die ich benutze, haben noch die original-UI.
     
  16. muellihenry

    muellihenry Flashaholic**

    Moin's,

    aus aktuellem Anlass muß ich diesen Thread noch mal vor holen. Ich habe versucht die geänderte Software und Hardware von " LegolasGT " auf meinen Nanjg105c zu übernehmen, aber irgendwie klappt das nicht. Um den Modus zu wechseln muß ich immer fürchterlich schnell drücken :confused: auchso passt alles nicht. Hardware habe ich vor dem Flashen aufgelötet, ich weiß nicht ob das so richtig war, und Fuse Bits habe ich nur die angegebenen geändert, die anderen habe ich bei behalten. Habe schon mehrere geflasht aber der will irgendwie nicht.
    Wäre über eine Erläuterung sehr erfreut :D vielleicht kann sich der Thread Ersteller noch mal äußern.

    Gruß, Gerd
     
  17. LegolasGT

    LegolasGT Erleuchteter

    Hey,

    schön das mein Programm wohl immer noch gelegentlich genutzt wird ;)

    Um dir wirklich helfen zu können brauche ich noch ein paar Informationen:

    Was passt alles nicht?

    Du hast also nur die Low und high fuses geflasht?, das wäre richtig, die anderen haben keine Einfluss auf die Funktion.
    Die lockbits hast du aber gelöscht?, gehe ich aber jetzt mal von aus, sonst könnte man ihn nicht programmieren.

    Du hast schon mehrere mit dieser Firmware geflasht und dieser eine geht nicht?



    Noch eine Frage:

    Der Kondensator sitzt auch an den richtigen Pins?, kann ja durchaus sein das die Platine geändert wurde. Das wäre PB4(Pin 3) und PB0(Pin 5).

    Wenn alles nicht hilft bräuchte ich eine genaue Fehlerbeschreibung, sonst ist es sehr schwer aus der Ferne zu helfen.

    Gruß Dominic
     
    muellihenry hat sich hierfür bedankt.
  18. muellihenry

    muellihenry Flashaholic**

    Hallo Dominic,

    schön daß du dich meiner annimmst ;)

    Also zu erstens:

    manchmal schaltet er weiter in einen anderen Modus, manchmal nicht. Ein anderes mal schaltet er gleich zwei stufen weiter, es gibt quasi kein System in der Sache.

    zu zweitens:

    Ich benutze das Programm extreme Burner, und habe als erstes wie immer den Chip gelöscht. Bei den Fuse Bits/Settings wusste ich eben nicht was ich machen soll. Die scheinen nicht mit gelöscht worden zu sein, und jetzt wusste ich nicht welche Werte schon geschrieben worden sind, nach dem Flashen :confused:

    [​IMG]

    Und hier wusste ich eben nicht was genau ich einstellen muß bzw. wo die Häkchen hin müssen...

    zu drittens:

    Nein, nicht mit deiner Firmware, waren alles andere und hat auch immer funktioniert.
    Ich muß sagen daß ich das auch nicht schon ewig mache, habe mich auch erst mal einlesen müssen.
    Ob die Platine geändert wurde weiß ich jetzt nicht, habe gerade keine zur Hand. Vielleicht wäre eine genaue Reihenfolge zum Flashvorgang für mich nützlich.

    Gruß, Gerd
     

    Anhänge:

    #18 muellihenry, 14. Juli 2015
    Zuletzt von einem Moderator bearbeitet: 10. Januar 2016
  19. muellihenry

    muellihenry Flashaholic**

    Hallöle,

    ich habe heute noch mal einen Versuch gemacht und geschaut ob die Beinchen des Attiny anders belegt sind, die Beine passen so wie es sein soll. Dann habe ich wieder den Attiny gelöscht (Chip Erase) Als nächstes habe ich deine geänderte Firmware in das Programm geladen und die Fuse Bits low und High geändert. Jetzt habe ich den Attiny geflasht, ohne Fehlermeldung. Dann habe ich den Treiber getestet, vorhanden waren drei Stufen, Low, Med, High und ließen sich auch durchschalten wie es sein soll. Dann habe ich den Mod mit dem C und dem Widerstand durchgeführt, hinzu kam jetzt noch ein Moonlight.
    Taster wieder betätigt ML nochmal ML nochmal ML :mad:
    Dann habe ich schnell, aber wirklich schnell hinter einander gedrückt und es änderte sich dann auch die Stufe, aber halt nicht wie gewünscht.

    Hier noch mal ein paar Screenshots nach dem Flashen von Flash, EEPROM und den Fuse Bits Settings

    [​IMG]

    [​IMG]

    [​IMG]

    Vielleicht erkennst du ja an den Werten ob was nicht passt.

    Gruß, Gerd
     

    Anhänge:

    #19 muellihenry, 15. Juli 2015
    Zuletzt von einem Moderator bearbeitet: 10. Januar 2016
  20. LegolasGT

    LegolasGT Erleuchteter

    Moin,

    Ok, das sieht schonmal gut aus. Wenn du einmal einen Chip Erase durchgeführt hast, reicht das. Das dient in erster Linie nur um die Lockbits zu löschen(diese verhindern sonst ein beschreiben).
    Danach kannst du die Low/High Fuse flashen, die bleiben dann auch erhalten. Um dann die Firmware zu aktualisieren musst du nur den Flashbereich neu beschreiben(Flashen).
    Eeprom brauchst du garnicht beschreiben.

    Welche werte für C und R hast du genommen?
    Nach dem ganz schnellen drücken bist du also in einer anderen aber nicht in der richtigen Stufe gelandet?

    Ist ein Stützkondensator für den Microcontroller auf der Platine vorhanden?
    Sonst sieht soweit alles gut aus.


    Wenn die Werte von C und R stimmen, kannst du noch versuchen die Schaltschwelle im Code, zur Entscheidung ob moonlight oder nicht, zu verändern:

    Code:
    void Stufe_hoch() {
    	
    	if(Stufe >= max_Stufe) Stufe = 2;
    	else Stufe++;
    	if (max_Stufe == 1) Stufe = 1;
    	
    	if (ADC_Ergebnis < 300) {
    		
    		max_Stufe = 4;
    		Stufe = 1;
    	}	
    	
    	Stufe_aktualisieren();
    	schreibe_Eeprom();
    }
    Dafür müsstest du nur die Zahl hinter ADC_Ergebnis etwas kleiner als 300 machen. Musst du einfach mal ein wenig experimentieren.

    Sonst fehlen mir gerade die Ideen was nicht stimmen könnte.


    Gruß Dominic
     
  21. muellihenry

    muellihenry Flashaholic**

    Hallöle,

    der Widerstand hat 200K und der Kondensator hat 10uF, wie von dir angegeben. Übrigens sieht es heute schon viel besser aus :D der ADC_Ergebnis Wert war genau der richtige Ansatzpunkt!
    Ich habe noch gestern das Source File im AVR Studio bearbeitet. Habe den Wert erst auf 288 gesetzt, keine Wirkung. Dann habe ich ihn auf 254 gesetzt, erste Ansätze waren zu erkennen. Ich dachte mir machst erst mal einen größeren Schritt und bin auf 128 gegangen und da lies sich alles wunderbar durch schalten.
    Allerdings war ich noch nicht mit der Zeit zufrieden daß die Lampe nicht in ML schaltet. Jetzt habe ich den Wert noch mal auf 64 gesetzt, was soll ich sagen, absolut perfekt :thumbsup:
    Also der jetzige wert ist aber von den 300 schon ganz schön entfernt, wundert mich daß die 300 bei dir gefunzt haben.

    Ich danke dir auf jeden Fall für deine Hilffe :)

    Gruß, Gerd
     
  22. LegolasGT

    LegolasGT Erleuchteter

    Hey,

    freut mich das es jetzt funktioniert.

    Der niedrige ADC Wert ist wirklich etwas seltsam, hat bei mir damals alles wunderbar funktioniert.
    Naja, hauptsache es funktioniert, viel Spaß damit.

    Gruß Dominic
     
    muellihenry hat sich hierfür bedankt.
  23. Wede

    Wede

    Servus LegolasGT!

    Hol jetzt auch diesen etwas älteren Thread hervor.
    Nachdem sich bei mir mittlerweile einige defekte Lampen mit E-Switch angesammelt haben
    bin ich beim Versuch, neue Treiber einzubauen.
    Nach vielen Stunden lesen in Foren hab ich mich dazu entschlossen, Nanjg Treiber selber flashen zu versuchen.
    Hab auch schon zwei 105C Treiber erfolgreich mit der Baton 20 Firmware von Toykeeper beschrieben.

    Nachdem mir allerdings das Olight UI nicht 100%ig passt bin ich beim Suchen nach Alternativen auf deine SW gestoßen.
    Nun zur Frage:
    Ist es möglich, deine SW auf einen 105D zu schreiben? R und C würde ich an Pin 3 und 5 anlöten.
    Da ich mit einem IC-Clip arbeite will ich schon vor dem Löten wissen, ob das prinzipiell funktioniert.

    Ohne Lötarbeiten schaltet deine Firmware einfach immer alle Modi durch?

    Danke,
    Wede
     
  24. muellihenry

    muellihenry Flashaholic**

    Die ist aber so wie sie ist nicht für E Switch gedacht, sondern für Clicky. Wenn du den R und C unterbringst, geht auch der 105D. Ich wurde zwar nicht gefragt, antworte aber mal. ;)
     
  25. Wede

    Wede

    Danke!
    Das hab ich im Eifer des Gefechts doch glatt übersehen.
    Dann muß ich wohl weitersuchen oder mich mit dem Olight - gerampe anfreunden.

    Oder versuchen, eine SW umzustricken.
    Denn nachdem ich Programmierkenntnisse = 0 besitze wird alles andere schwierig bis unlösbar.

    Danke,
    Wede
     
Die Seite wird geladen...