Driver programowalny Nanjg 105 by alienth - nowe wersje!

co i jak zrobiłem...
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Driver programowalny Nanjg 105 by alienth - nowe wersje!

Post autor: alienth »

Witam.

Dokonałem dwóch modyfikacji poniższego sterownika.
Wersja v2 i wersja v2.1. Bazą opisu jest wersja poprzednia (poniższa).
Na końcu tego tematu opisze zmiany w nowych wersjach.



Kilku użytkowników tego forum posiada już własne projekty czy modyfikacje klasycznego sterownika Nanjg 105 tak bardzo przez nas lubianego i stosowanego.
Postanowiłem zatem dołączyć przynajmniej oficjalnie do tego grona :mrgreen:

W zasadzie nie ma tu nic odkrywczego, wszystko bądź prawie wszystko już było w tej czy innej formie. Będzie to po prostu moje spojrzenie na temat prostego drivera, który z założenia miał być prosty i poniekąd intuicyjny a dodatkowo by posiadał najpotrzebniejsze rzeczy.
Oczywiście z racji małej pamięci Attiny13 nie znajdziecie tam tyle funkcjonalności co w driverze Grega czy Bociana, zresztą nie takie były założenia by stworzyć kolejny kombajn do wszystkiego :wink:

Podstawowe dane:
Baza to klasyczny Nanjg105 8x AMC7135 i jego krótka charakterystyka:
- maksymalny prąd podawany na diodę w zależności od wersji AMC 2,8A lub 3A
- stabilizacja prądu diody do około 80% pojemności ogniwa (zależne od kondycji ogniwa)
- średnica 17mm, czyli w większości przypadków standard
- ochrona przed odwrotną polaryzacją
- napięcie zasilania od 2,8V do 4,5V

Charakterystyka:
- sterowanie łącznikiem latarki tzw. krótkimi klikami (wciśnięcie łącznika do połowy) poniżej 0,5s, które generują chwilowy spadek napięcia zasilania na układzie (łącznik typu reverse)
- dla użytkownika dostępne są 2 banki trybów po 4 tryby w każdym
- każdy z trybów można zaprogramować mając do wyboru 13 możliwych poziomów jasności
- sterowanie dwustronne w pełnej pętli tzw. up/down
- dostępne stroboskopy taktyczny 12,5Hz, rowerowy 3Hz, BEACON 0,5Hz
- możliwość włączenia lub wyłączenia pamięci trybu osobno dla każdego z banku trybów
- ochrona ogniwa przed nadmiernym rozładowaniem poniżej około 2,9V
- zabezpieczenie termiczne latarki przed uszkodzeniem elektroniki (55*-60*)

Podstawowe kliki:
1 klik - następny tryb świecenia w pętli (z ostatniego przeskakujemy do pierwszego)
2 klik - poprzedni tryb świecenia w pętli ( z pierwszego wskakujemy na ostatni)
3 klik - stroboskop taktyczny 12,5Hz o 100% mocy
4 klik - stroboskop rowerowy o mocy aktualnego trybu z którego został wywołany z wyjątkiem trybu 100% w którym uruchamia się BEACON
6 klik - procedura programowania aktualnego trybu (opisana poniżej)
8 klik - przełączanie aktualnego banku trybu
10 klik - włączenie/wyłączenie pamięci trybów dla aktualnego banku trybów

Programowanie aktualnego trybu
Tę opcje starałem się jak najbardziej uprościć i stwierdziłem, że wykorzystam tutaj genialny pomysł użytkownika Elsora
Wybieramy tryb który chcemy zaprogramować, wykonujemy 6 klik, latarka mrugnie 3x po czym ustawi pierwszy poziom z palety 13 dostępnych poziomów świecenia. W tym momencie wykonując 1 klik lub 2 klik (tak jak zostało to opisane wyżej) przełączamy się po poziomach jasności mając czas na dokładne oszacowanie czy obecny poziom światła jest dla nas wystarczający. Jest to bardzo pomocne i wielce wygodne w stosunku do wyświetlania wszystkich poziomów w pętli czasowej, gdyż nie działamy pod presją czasu i możemy na spokojnie testować dany poziom jasności. Gdy akceptujemy dany tryb wykonujemy 3 klik, latarka mrugnie 3x i kończy procedurę programowania wybranego trybu
Gdy latarka znajduje się w trybie programowania będzie nas o tym informować przygasając jeden raz na 5 sekund

Dostępne poziomy jasności
tryb | prąd diody [%]

MOON | 0,035
1 | 0,5
2 | 1
3 | 2
4 | 4
5 | 9
6 | 15
7 | 25
8 | 36
9 | 48
10 | 62
11 | 78
12 | 100
Zmiana aktualnego banku trybów
Tutaj sprawa jest prosta, wykonujemy 8 klik, latarka mrugnie 4x, przełączy się na drugi bank trybów i ustawi pierwszy tryb świecenia. Przykładowo mamy dwa tryby EDC i rower. Będąc w trybach EDC po wykonaniu 8 kliku przełączamy się na rowerowy i na odwrót - będąc w rowerowym przełączamy się na EDC.
Z racji tego, że są tylko dwa banki trybów wykorzystujemy tylko jedną sekwencję klików - prostsze rozwiązanie niż osobne sekwencje dla każdego banku trybów.

Włączenie/wyłączenie pamięci trybów dla aktualnego banku trybów
Dokładna analogia tego co powyżej. Będąc w trybach np EDC wykonujemy 10 klik, latarka mrugnie 5x i przestawi opcję pamięci trybów. Jeśli była włączona to ją wyłączy i na odwrót - jeśli była wyłączona to ją włączy.

Ochrona ogniwa przed nadmiernym rozładowaniem
Klasyczne podejście. Procesor stale bada napięcie zasilania i w momencie jego spadku poniżej około 2,9V-3V redukuje PWM o połowę zapobiegając niekontrolowanemu rozładowaniu ogniwa. Ostatnim wyświetlanym poziomem jasności jest MOON, po którym latarka wyłączy się i procesor przejdzie w stan uśpienia.

Zabezpieczenie termiczne
Realizowane na zewnętrznym czujniku temperatury ma za zadanie chronić elektronikę latarki. Przy osiągnięciu temp. około 55*60* sterownik płynnie obniża prąd do poziomu, który pozwoli na stabilizację temperatury układu sterowania. Przy wychłodzeniu się głowicy latarki następuje płynne zwiększanie mocy. Z racji tego, że jest to zabezpieczenie elektroniki, która znosi więcej niż ludzka ręka, głowica latarki może się nagrzewać nawet do około 60*. Ma to jednak miejsce w totalnym bezruchu np na stole. Podczas normalnego użytkowania EDC/Rower zabezpieczenie praktycznie się nie włącza.


Na koniec coś od siebie. Oprogramowanie tworzyłem trochę pod swoje upodobania,
które poniżej opiszę.

Dlaczego dwa banki trybów?
Bo jeden to za mało, a więcej się sensownie nie zmieściło :mrgreen:
Tak na poważnie. Klasycznie zazwyczaj używa się latarki jako EDC i Rowerową - mamy więc to co najczęściej potrzebujemy.

Dlaczego tylko po 4 tryby? (bo więcej się nie zmieściło? :lol: Taaaaa... )
Z doświadczenia wiem, że więcej jak 4 przydaje się gdy mamy predefiniowane stroboskopy jako pozycje w bankach trybów, tutaj są one wywoływane niezależnie więc takiej potrzeby nie ma. Z kolei 3 tryby to może być mało, gdy ktoś chce używać trybu MOON. Poza tym 4 tryby to wartość optymalna na rower ;-)

Pamięć trybów on/off
Tutaj są różne szkoły. Od zawsze jak pamiętam większość użytkowników chciała mieć pamięć trybów. Powstaje pytanie - po co? Wg mnie przydaje się to na rowerze w EDC niekoniecznie. Chociażby z tego powodu, że mając pod ręką EDC chciałbym mieć pewność jak się ona zachowa przy każdym włączeniu. Dajmy na to wieczorem na podwórku przeganiałem złodzieja i miałem tryb 100% i tak latarkę wyłączyłem. W nocy chcę przyświecić idąc do ubikacji i oczy mam wypalone :mrgreen:

Proste rozwiązanie, wyłączyć pamięć trybów. Programujemy tak:
1 tryb - poziom np 2 lub 3 (nie za jasno, ale już dużo widać i nie oślepia, w sam raz na tryb podstawowy)
2 tryb - 100% mocy
3 tryb - np 36% mocy
4 tryb - MOON

Działamy:
włączamy latarkę, z racji braku pamięci trybu uruchomi nam zawsze tryb pierwszy. Mamy dość jasno do chodzenia po podwórku świecąc pod nogi.
Chcemy 100% mocy wystarczy jeden klik
Chcemy iść w nocy do toalety i chcemy jeszcze ciemniej, po włączeniu szybki dwuklik i mamy MOON (przeskakujemy w pętli z pierwszego do ostatniego)
Jak widać mamy szybki dostęp do podstawowego trybu i 2 skrajnych zaraz po włączeniu lampki. To oczywiście tylko propozycja, każdy może programować jak chce :)

Stroboskopy - dlaczego tak a nie inaczej
Pierwszy STROBO TAKTYCZNE.
Podstawowe pytanie do czego to ma służyć? Do dezorientacji i odstraszania zwierząt bądź napastników(bez broni palnej bądź miotanej :mrgreen:). Dlatego jest ustawiony na stałe 100% i pod 3 klikiem, by można go szybko wywołać z dowolnego trybu i jasności.

Rowerowy 3Hz regulowany.
Jeśli jeździmy dużo na rowerze ze stroboskopem sygnalizującym nasze położenie to optymalnym rozwiązaniem jest możliwość dostosowania jego mocy do otoczenia.
Należy pamiętać, że uruchamia się zawsze o mocy aktualnego trybu z wyjątkiem 100%

BEACON tylko 100%
Ten tryb ma za zadanie sygnalizować w nocy nasze położenie więc nie widzę tutaj potrzeby mieć możliwości zmiany jego mocy. Tryb 100% jest optymalny. Jeden krótki błysk co 2s w nocy widać naprawdę z bardzo daleka - testowane :-)

Stroboskopy nie są zapamiętywane po wyłączeniu latarki (brak zasilania powyżej 0,5s)


Zabezpieczenie termiczne
Bo lepiej mieć jak nie mieć :mrgreen:


Na koniec. Nie ma tu nic odkrywczego. Jest to zlepek różnych rozwiązań ułożonych w jedną całość jako moje podejście do tematu.

--------------------------------------------------------------------------------------------------------

Wersja v2

Dodano pomiar napięcia ogniwa.
Funkcję wywołujemy 5-cio klikiem.
Ilość błysków informuje nas o napięciu ogniwa (mierzone pod obciążeniem)

Kod: Zaznacz cały

5 błysków - napięcie powyżej 3,8V
4 błyski - napięcie powyżej 3,6V
3 błyski - napięcie powyżej 3,4V
2 błyski - napięcie powyżej 3,2V
1 błysk - napięcie powyżej 3V
Oczywiście nie jest to typowy woltomierz. Są to wartości zawsze przybliżone.
Wynika to z odchyleń/toleracji wartości pewnych elementów/stałych w procesorze dopuszczalnych przez producenta.


Zmianie uległ sposób przełączania pamięci trybów.
Teraz by wyłączyć/włączyć pamięć ostatniego trybu w danym banku trybów należy
wywołać opcję programowania (6cio klik w dowolnym trybie) po czym po 3 błyskach należy wyłączyć latarkę.
Pamieć trybu została zmieniona.
Poprzednia funkcjonalność 10cio kliku jest nieaktywna


Wersja v2.1
W tej opcji dodano identyczną funkcjonalność zgodnie z opisem wersji v2.
Zmiana obejmuje usunięcie jednego banku trybów, oraz pamięć trybu wyłączamy/włączamy 8mio klikiem (poprzednio był 10cio klik)
Pozostaje 5 trybów z możliwością dostosowania ich ilości. Czyli możemy zaprogramować latarkę tak by miała np 2 tryby,4 tryby itp.

Zmiany dokonujemy wywołując 7mio klik, przy czym każde wywołanie tej funkcji dodaje nam jeden dodatkowy tryb do obecnej ilości. Gdy mamy już 5 aktywnych trybów latarka ustawia tylko jeden aktywny. Ilość zaprogramowanych trybów latarka sygnalizuje błyskami,
Np. mamy aktywne 3 tryby, wykonujemy 7mio klik, latarka mrugnie 4x i mamy aktywne 4 tryby świecenia.

Powyższe wersje powstały by zapełnić pewną powstałą lukę w funkcjonalności
prostego drivera opartego na AtTiny13. Z racji jego skromnej pojemności na kod programowy mamy do wyboru 3 wersje funkcjonalności by każdy mógł znaleźć coś dla siebie.





Gratulacje dla tego, kto dotrwał do końca :lol:
Ostatnio zmieniony środa 29 kwie 2015, 20:00 przez alienth, łącznie zmieniany 2 razy.
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
GanzConrad
Posty: 879
Rejestracja: wtorek 14 paź 2014, 20:44
Lokalizacja: Słupsk

Post autor: GanzConrad »

jak zrealizowałeś zabezpieczenie termiczne? termistor na wolnym adc?
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Post autor: alienth »

GanzConrad, zgadza się.
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
Awatar użytkownika
marmez
Posty: 2879
Rejestracja: sobota 08 sty 2011, 19:19
Lokalizacja: Szczecin
Kontakt:

Post autor: marmez »

Sterownik przetestowany przeze mnie. Klikanie (wykrywanie klików), wyłączenie/włączanie wszystko działa bardzo miło, bez jakiś wpadek, że za wolno, czy za szybko klikam (co się zdarzało w innych nowych oprogramowaniach).

Wszystko działa jak należy. Nie słyszałem piszczenia, ani nie widziałem PWMu :)

Dla mnie 4-klikowy stroboskop jest bardziej przydatny, niż te 3-klikowy... zamieniłbym kolejnością, ale to wielkiego problemu nie robi.

Jak coś jeszcze w praktyce zauważę, to dopiszę.

Ogólnie nieporównywalnie fajniejszy sterownik niż standardowy Nanjg. :)

Pozdrawiam.
Tekst podpisu:
Podpis - dozwolona ilość znaków: 255
Awatar użytkownika
vin324pl
Posty: 1000
Rejestracja: czwartek 14 lis 2013, 10:27
Lokalizacja: Myślenice

Post autor: vin324pl »

Świetny pomysł, bardzo intuicyjne programowanie, jest wszystko to co naprawdę potrzeba ;)

Jeden z najlepszych sterowników w swojej kategorii, szczebel wyżej tylko te z ciętymi ścieżkami, ale to już inny zakres cenowy zupełnie, inny procek i sporo zabawy.

GRATULACJE
Zestaw rowerowy:
Światła mijania/drogi publiczne - L2P 2,8A noctigon + daszek/ s2+ 3*xpl optyka owalna
Światła drogowe/teren - C8 3*xp-l 4,2A ledil 35mm
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Post autor: alienth »

Doszły dwie nowe wersje. Opis w pierwszym poście.
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
Awatar użytkownika
pietros
Posty: 1612
Rejestracja: niedziela 09 cze 2013, 19:39
Lokalizacja: Grudziądz

Post autor: pietros »

Mam pierwszą wersję tego sterownika, i co mogę powiedzieć, to prostota i funkcjonalność. Bez zbędnych bajerów, intuicyjna obsługa, do nauczenia po jednym przeczytaniu instrukcji.
Szczerze polecam wszystkim niezdecydowanym.
marmez pisze:Dla mnie 4-klikowy stroboskop jest bardziej przydatny, niż te 3-klikowy... zamieniłbym kolejnością, ale to wielkiego problemu nie robi.
+1 :ok:
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Post autor: alienth »

pietros, dzięki za opinię :)
marmez pisze:Dla mnie 4-klikowy stroboskop jest bardziej przydatny, niż te 3-klikowy... zamieniłbym kolejnością, ale to wielkiego problemu nie robi.
Powody dla których stroboskop taktyczny jest umieszczony po 3 klikiem jest opisany w pierwszym poście. Stroboskop taktyczno-obronny w sytuacjach kryzysowych szybciej i wygodniej jest wywołać 3 klikiem niż 4 klikiem.
Oczywiście jeżeli ktoś chce tę opcję zamienić wystarczy to zakomunikować przy zamówieniu.
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
Awatar użytkownika
pietros
Posty: 1612
Rejestracja: niedziela 09 cze 2013, 19:39
Lokalizacja: Grudziądz

Post autor: pietros »

Moje spostrzeżenia i pytania po kilku dniach zabawy sterownikiem:
1. Czy dałoby się zrobić niższy tryb moon?
2. Czy tryb moon bazuje na niższej częstotliwości PWM? Przy patrzeniu na poruszającą się latarkę jestem w stanie zauważyć migotanie - nie przeszkadza mi to, pytam z ciekawości.
3. Chcąc szybko włączyć latarkę i od razu zejść tryb niżej (szybka sekwencja: pełny klik-pół klik-pół klik)włączany jest tryb wyższy, tak jakby jedno z pół-kliknięć nie było rozpoznane.
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Post autor: alienth »

pietros pisze:Moje spostrzeżenia i pytania po kilku dniach zabawy sterownikiem:
1. Czy dałoby się zrobić niższy tryb moon?
2. Czy tryb moon bazuje na niższej częstotliwości PWM? Przy patrzeniu na poruszającą się latarkę jestem w stanie zauważyć migotanie - nie przeszkadza mi to, pytam z ciekawości.
3. Chcąc szybko włączyć latarkę i od razu zejść tryb niżej (szybka sekwencja: pełny klik-pół klik-pół klik)włączany jest tryb wyższy, tak jakby jedno z pół-kliknięć nie było rozpoznane.
Ad.1
Niższy stabilny tryb moon nie jest możliwy do osiągnięcia bez mechanicznej ingerencji w driver (dzielenie wysterowania AMC)

Ad.2
Tak, PWM jest obniżony w celu uzyskania możliwie najniższej jasności przy zachowaniu stabilności trybu. Musisz mieć bardzo wyczulony wzrok lub bardzo się starać by to zauważyć :)

Ad.3
To co opisujesz występuje tylko przy wyłączonej pamięci trybu. Jest to podyktowane sposobem rozpoznawania krótkich klików (brak dodatkowego kondensatora)
Należy pamiętać by po włączeniu latarka świeciła minimum 0,5s przed wykonaniem klika.

Powyższe jest wynikiem pewnych kompromisów, które narzuca konstrukcja drivera i bardzo mała pojemność na kod procesora - niestety tylko 1kB.
Myślę, że największym pozytywem jest niska cena i stosunkowo dużo funkcjonalności w małym A13
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
rambolbambol
Posty: 40
Rejestracja: czwartek 02 sty 2014, 13:53
Lokalizacja: Bydgoszcz

Post autor: rambolbambol »

Genialny system sterowania latarką! Od dawna szukałem sterownika takiego, jaki jest w wersji 2.1.

Jaka jest realna różnica pomiedzy wesją 2.8A a 3.04A? Chciałbym go użyć do sterowania latarką z 3 x XP-G2. Wydaje mi się, że różnica jest niewielka. O ile będzie jaśniej i krócej świecić będzie latarka z wersją 3,04A?
Awatar użytkownika
pietros
Posty: 1612
Rejestracja: niedziela 09 cze 2013, 19:39
Lokalizacja: Grudziądz

Post autor: pietros »

Mając do bezpośredniego porównania dwie identyczne latarki, jedną 2,8A i drugą 3,04A nie będziesz w stanie zauważyć różnicy.
Awatar użytkownika
alienth
Posty: 270
Rejestracja: poniedziałek 08 paź 2012, 19:10
Lokalizacja: Rzeszów

Post autor: alienth »

rambolbambol, różnica w ilości światła nie jest duża. Będzie nieznacznie jaśniej. W tym zakresie może to być, strzelam 50-60 lumenów dla modułu 3xXP-G2. Co do akumulatora to przy założeniu pojemności typowych na stan obecny 2.6 - 3Ah teoretycznie latarka powinna poświecić około 5-7% czasu krócej. Realnie tego nie odczujesz bo wcześniej zmienisz akumulator na "świeży" :)
Moje sterowniki:
AHE+ v1
KHE
v201 / v211
rambolbambol
Posty: 40
Rejestracja: czwartek 02 sty 2014, 13:53
Lokalizacja: Bydgoszcz

Post autor: rambolbambol »

To trochę inaczej...
Przy jakim amperażu 3 diody XP-G2 uzyskają najwyższą sprawność?

Na host, na optykę, na driver i na latarkomistrza jestem już zdecydowany ... to jest ostateczne pytanie, na które brak mi odpowiedzi: Ile amperów brać, aby sprawnie świecić?
ptja
Posty: 2414
Rejestracja: poniedziałek 31 gru 2012, 12:44
Lokalizacja: Łódź

Post autor: ptja »

rambolbambol pisze:To trochę inaczej...
Przy jakim amperażu 3 diody XP-G2 uzyskają najwyższą sprawność?
Zerknij do noty katalogowej, ale w skrócie: przy małym.
--
pozdrawiam,
Jarek Andrzejewski
ODPOWIEDZ