SharkLab
grafický program pro nabíječky Shark

nově upravený pro podporu nabíječek e-Station BC6 Dual Power



   Po delší době váhání jsem se rozhodl, že si pořídím novou nabíječku akumulátorů. Volba padla na nabíječku Shark 20, Je za relativně přijatelnou cenu, lze k ní přikoupit balancer PB-5, případně teplotní čidlo. Co mne lákalo nejvíce, byla možnost komunikace s počítačem a nechat si tak zobrazit nabíjecí/vybíjecí charakteristiky akumulátoru. Jestli to skutečně byla správná volba nevím. Posuďte sami.

   Nemilým překvapením byla skutečnost, že teplotní čidlo, které se normálně připojuje do nabíječky a v případě použití balanceru se přepojuje k balanceru (protože na jeho místo přijde komunikační kabel), v nové verzi již není kam připojit. Konektor prostě chybí. že bych se špatně informoval před koupí? Nikoli. Na Internetu dodavatel, tedy firma Pelikán, tvrdí (ještě měsíc po mém upozornění), že teplotní čidlo se použít dá. Ve stažených manuálech, všude, kromě manuálu k výrobku. To je ale trochu pozdě.

   Druhým zklamáním pak byl ovládací program. Ten se připojí pomocí USB kabelu, který si zákazník musí koupit k programu. Hned při prvním nabíjení jsem si všiml, že udaný proud na displeji nabíječky nesouhlasí s indexem na Y se proudu. Ne hned tak o málo ale asi o 20%. Jenom proud, ostatní údaje byli správné. Mezi další nectnosti patřilo to, že jsem během asi 5 nabíjení nikdy nedostal celou křivku. Program prostě bez varování skončil. Zkoušel jsem instalovat program na jiné dva počítače, ale výsledek byl stejný.

   Nezbylo než se pusti do vývoje vlastního programu. Po večerech za zhruba 2 týdny byla hotova první verze programu. Tady je.

náhled programu



   Co umí první verze na rozdíl od orinálního programu?
Co bude umět další verze
Download programu SharkLab. (poslední data z 14. července 2007, 8:52:57)
Driver pro Vista, W7 a 8 (11.10.2013)

Historie programu, seznam opravených chyb a nové funkce.

Čas od času, jakmile budu mít novější verzi, dám ji na WEB. Pokud Vás program zaujme, můžete se občas podívat, jestli je tu nová verze. Bude-li o program zájem předělám tyhle stránky aby vypadaly více k světu. Některá z příštích verzí by mohla sama upozornit, že je připravena nová verze.
Budu rád za jakékoli připomínky, nápady atd.

   Jak tedy nabíječka komunikuje s počítačem?
   Snadno.
   V počítači je nainstalován SW "bridge" mezi USB a virtuálním sériovým portem. Na rychlosti 9600Bd je vysílán zhruba každou vteřinu blok dat. Blok začíná údajem 0x7D a končí 0x7F. Všechny údaje mezi mají nastavem nejvyšší bit. Tím se dá snadno zjistit počátek bloku a měřené údaje pak nikdy nelze se začátkem bloku splést. Údaje jsou přnášeny po jednotlivém znaku nebo po dvojicích. Jedná-li se o dvojici znaků, pak nižší (dříve vyslaný) obsahuje hodnotu před desetinou čárkou, vyšší znak (vyslaný později) pak hodnotu za destinnou čárkou.

    Popis struktury je následující:
typedef struct _shark_Rx_ {
   char           startChar;              // 0x7B
   unsigned char  b_v_type       : 1,     // LiPol type 0 - 3.7V 1 - 3.6V
                  a2             : 1,
                  b_safetyTimer  : 1,     // 1 - safety timer ON (safetyTimer je nastavena hodnota)
                  a4             : 1,
                  b_keyBeep      : 1,     // 1 - ON
                  b_buzzer       : 1,     // 1 - ON
                  b3             : 1,
                  b_capcut       : 1;     // 1 - capacity cut-off ON 
                                          // (capacityCutOff je nastavena hodnota)
   char           NiCd_sensDpeak;         // NiCd Sensitivity D.peak [mv] 04 - default
   char           NiMH_sensDpeak;         // NiMH Sensitivity D.peak [mv] 04 - default
   char           temp_cutOFF;            // teplota pro ukonceni prace
   char           wasteTime;              // prodleva mezi nabijecim a vybijecim cyklem
   char           backLight;              // podsvetleni v %
   char           inputPowerLow;          // minimalni vstupni napeti
   char           chargeState;            // 0xX0 = vybijeni , 0xX1 = nabijeni
                                          // X je priznak cyklickeho nabijeni/vybijeni
   char           NiCd_chargeCurrent;     // nastaveny nabijeci proud
   char           NiCd_dischargeCurrent;  // nastaveny vybijeci proud 
   char           NiCd_cycleOrder;        // 0 - DSCH>CHG, 1 - CHG>DSCH
   char           NiCd_cycle;             // NiCd cycle
   char           NiMH_chargeCurrent;     // nastaveny  nabijeci proud
   char           NiMH_dischargeCurrent;  // nastaveny vybijeci proud 
   char           NiMH_cycleOrder;        // 0 - DSCH>CHG, 1 - CHG>DSCH
   char           NiMH_cycle;             // NiMH cycle
   char           LiPol_chargeCurrent;    // nstaveny  nabijeci proud
   char           numCellCH;              // pocet LiPol clanku pri nabijeni
   char           LiPol_dischargeCurrent; // nastaveny vybijeci proud
   char           numCellDCH;             // pocet LiPol clanku pri vybijeni
   char           Pb_chargeCurrent;       // nstaveny  nabijeci proud
   char           Pb_chargeVoltage;       // 1 - 2.0V 2 - 4.0V ...
   char           pgmSelect;              // vyber programu
   char           runState;               // 0 - neprobiha nabijeni ani vybijeni
   char           __X4;                   // 0
   char           NiMH_dischEnd;          // NiMH - napeti pro ukonceni vybijeni
   char           __X5;                   // 0
   char           NiCd_dischEnd;          // NiCd - napeti pro ukonceni vybijeni
   char           safetyTimer    [2];
   char           capacityCutOff [2]; 
   char           current        [2];     // nabijeci proud pres baterii (mereny)
   char           packVoltage    [2];     // celkove napeti vsech clanku
   char           temperature    [2];
   char           __X7           [2];     // 0 0
   char           inpVoltage     [2];
   char           capacity       [2];
   char           cell_01        [2];     // napeti clanku  1
   char           cell_02        [2];     // napeti clanku  2
   char           cell_03        [2];     // napeti clanku  3
   char           cell_04        [2];     // napeti clanku  4
   char           cell_05        [2];     // napeti clanku  5
   char           cell_06        [2];     // napeti clanku  6
   char           cell_07        [2];     // napeti clanku  7
   char           cell_08        [2];     // napeti clanku  8
   char           cell_09        [2];     // napeti clanku  9
   char           cell_10        [2];     // napeti clanku 10
   char           cell_11        [2];     // napeti clanku 11
   char           cell_12        [2];     // napeti clanku 12
   char           runTime        [2];
   char           napeti         [2];     // ???
   char           N2             [2];
   char           lastChar;               // 0x7D
} RX_DATA;

Nabíječka e-Station BC6 Dual Power

Motto : Konečně někdo přišel na to, že "6" je sudé, slušně dělitelné číslo.

Když se rozhlédnu po modelářských prodejnách v sekci LiPol baterií, vidím prakticky samé dvou a tříčlánky. Sám nepoužívám jiné. Většinou mám tříčlánky. Snad každý potvrdí, že se nevyplácí, s ohledem na životnost, nabíjet je proudem větším než 1C. Já je nabíjím tak 0.8C. Jakmile jdu létat jsou to vybité minimálně 4 trojčlánky. Jeden kus je nabit tak za 80-100 minut, takže je mohu použít tak nejdříve po 6-8 hodinách.

Nabíječka Shark 20 umí pouze 5 článků, Shark 30 už umí 6 článků, jenomže dlouho se nevyráběl balancer pro 6 článků. Nově prodávaná nabíječka MC6 můj problém vyřešila. Mohu v ní totiž nabíjet dva tříčlánky naráz. Jen se musí správně nastrkat do dodaných konektorů. Pokud ale používáte své vlastní konektory, jako já, je možno vyrobit nabíjecí "kolejnici" kam mohu nastrkat téměř libovolné kombinace do součtu šesti článků.

originální díl


nový díl zdola nový díl zhora


V čem je tedy tato nabíječka jiná než nabíječky Shark?

A v čem je horší?

Výrobce se konečně trochu zamyslel a změnil uspořádání displeje. Všechny napětí LiPol článků připojených přes integrovaný balancer jsou zobrazeny v jednom okně. Nemusí se tedy složitě přepínat po dvojicích. Údaj o nabíjecím čase je teď s přesností na vteřinu.
Vše má ale malý háček. Komunikační protokol některé nové udaje neobsahuje. Už od počátku mi chyběla v protokolu identifikace typu nabíječky. Pro SharkLab i originální e-Station je to sice jednodušší, ale některé údaje pak prostě chybí.

Nemám nabíječku dlouho a tak musím ještě některé parametry proměřit, zda zobrazované údaje odpovídají skutečnosti. Trochu by mne zajímalo, jak principiálně funguje integrovaný balancer. Ty externí od Sharka jsou autonomní a během nabíjecího či vybíjecího cyklu srovnávají napětí tak, že článek s nejvyšším napětím vybíjí maximálním proudem 500mA. Tím ale nemůže souhlasit hodnota dodaného či odebraného náboje. Integrovaný balancer tuto problematiku může řešit a "přepustit" tak proud z nejvíce nabitého článku do článků ostatních. Firma Atmel na to dělá dokonce speciální procesor.



balancování 2x tříčlánek


Prvotní vybalancování dvou různě vybitých tříčlánků provede nabíječka za velice krátkou dobu. Zobrazené hodnoty odpovídají skutečným změřeným hodnotám měřeným na servisním konektoru přesným voltmetrem.
Trochu jiným způsobem pracuje BC6 než Shark 20/30 při druhé fázi nabíjení - konstantní napětí, snižující se proud. Zatímco software v nabíječče Shark postupně snižoval proud, BC6 proud snižuje trochu rychleji, ale snižování prokládá zcela jistě měřením. Když proud sníží příliš mnoho, vrátí se a proud přidá. Tím vlastně proud kolísá. Dochází tak k efektivnějšímu a rychlejšímu dobíjení.

Upravil jsem program SharkLab pro tuto nabíječku.

Množí se dotazy na zapojení teplotního senzoru.

V obou nabíječkách je použit obvod LM35. Napojen je na servo konektor. Propojení ukazuje následující tabulka.

servo LM35
signal Vs (levá nožička)
+5V Vout(prostřední nožička)
zem GND (pravá nožička)



Historie programu SharkLab


verze 1.1.1.135 14. července 2007, 8:52:57
- vyšší rozsah informačních sloupců LiPol článkú (3.60V - 4.25V) doplněný popisem hodnoty
- čítač ve spodní liště - levý dvoklik ho vynuluje
- zobrazení údajú středu kříže v grafu při pohybu myši (zmáčklé pravé tlačítko)
- změna předdefinovaných barev LiPol článků - první trojice fialový, druhá trojice oranžový odstín)

verze 1.1.1.124 15. června 2007, 12:02:47
- zrychlený skok na začátek a konec nazoomovaného grafu (tlačítka HOME, END)
- progresivní posun zoomu pri drzeni tlacitka (LEFT, RIGHT)
- seznam a aktivace oken v menu

verze 1.1.1.110 10. června 2007, 17:31:25
- podpora nabíječek BC6 Dual Power
- automatické počítání indexů os Y (u velkých kapacit a nízkých nedochází k přepisu hodnot přes sebe)
- počet sledovaných LiPol článků je rozšířen na 6 (vhodné pro BC6 a balancer PB-6)
- drobné, mě známé, chyby a nepřesnosti
- je třeba uložit novou konfiguraci z menu "Nastavení-Konfigurace"

verze 1.0.1.267 16. března 2007, 18:22:56
- volitelné přednastavení zobrazených křivek (Menu-Nastavení-Konfigurace)
- detekce počtu LiPol článků při nastavení AUTO. Pouze ve spojení se zapnutým balancerem

verze 1.0.1.251 25.října 2006,  18:50:53
- volitelná šířka čáry grafu (Menu-Nastavení-Konfigurace)

verze 1.0.1.201 5. října 2006, 22:24:01
- odstraněna chyba, která způsobila, že se nespustilo načítání dat do okna.

verze 1.0.1.198 2. října 2006, 21:42:40
- přidán údaj času do informačního průhledného okna
- fix při čtení dat, kdy někdy došlo k přetečení paměti

verze 1.0.1.118  18:47 10.9.2006
- oprava detekce procesu při vybíjení v cyklu
- možnost zobrazení dotazu při ukončení programu

verze 1.0.1.75  7:06 14.8.2006
- možnost zvětšit graf (zoom)
- barevné zobrazení stupně nabití LiPol článků
- odstraněna chyba ve vytížení procesoru

verze ze dne 8.8.2006 23:44
- odstraněna chyba v zobrazení počtu nabíjených a vybíjených článků
- dvoujazyčná verze

Na čem pracuji

- zatím nic nového

Fotografie nabíječky je převzata z propagačních materiálů firmy RCM Pelikán.