ISL8-936G firmy Schulze Elektronik GmbH
Tato stránka je věnována všem uživatelům a fandům tohoto nabíječe. Najdete zde pár základních informací o jeho technické stránce a několik detailů z jeho konstrukce. Myslím, že si právem zaslouží plnou úctu. Jeho oblíbenost ve své době byla naprosto jedinečná a jeho postavení na trhu v oblasti modelářských nabíječů nezapomenutelné. Mnoho uživatelů ho dodnes vlastní a jeho velkou předností je skvělá péče o NiXX akumulátory.
Jednou z výhod je vysoký výkon a napětí na prvním výstupu. Lze nabíjet až čtrnáct LiPo baterií ze zdroje 12 V. Nenašel jsem jiný podobný nabíječ, který by poskytl větší proud na deseti LiPo článcích z 12V zdroje.
Poslední verze firmware řady osm však přináší nemalé starosti v pozdějších letech provozu nabíječe. A právě čas zde způsobil zásadní problém. Na displeji se po zapnutí objevila hláška, že nabíječ není kalibrován. Tato stránka vznikla právě z tohoto důvodu. Chci vám zde vysvětlit, co se stalo a jak nyní pokračovat dál. Seznámím vás s důležitou součástkou Timekeeper a následnou kalibrací, která je v něm uložena.
Video s tovární kalibrací napětí - youtube
Stránka uložena v PDF - český jazyk - stahujte zde: ISL8_CZ
Page translated via Google and saved in PDF - English language - download here: ISL8_EN
Seite über Google übersetzt und als PDF gespeichert – deutsche Sprache – hier herunterladen: ISL8_DE.
Program k PC - složka s Winsoft a Akusoft - kontaktujte mě: email
Návod k obsluze, jazyk CZ, EN, DE pro verzi 8.xx - manual_pdf
Dostal jsem pár katalogů Schulze s nabídkou - catalog_pdf
Posbíral jsem spousty firmware do nabíječů NEXT 1, NEXT 2, ISL 6 -330/-430/-530/-636+, ISL8, Ecolader, Ecoselect - pouze pro účely oprav - kontaktujte mě: email
RC GROUPS FORUM - zde jsem založil svůj příběh o kalibraci ISL8 - www.rcgroups.com
Úspěšně jsem provedl aktualizaci komponent u ISL8 verze V1 na upgrade pro firmware 8.xx. Zahrnuje montáž či náhradu několika kondenzátorů, Zenerových diod a odporů pro správnou funkci nabíječe při přechodu z nižších verzí firmware na osmou řadu.
3/2025 - první funkční firmware 1.20, pro čtení kalibrace nabíječe. Info zde.
4/2025 - plně funkční firmware 1.40, s funkčním editorem kalibrace. Info zde.
5/2025 - malá úprava firmware 1.42, výroba DPS pro XTOOLS. Info zde.
6/2025 - Poslední doladění firmware 1.45, první kusy adapteru XTOOLS jsou hotové. Info zde.
1/2026 - Podařilo se zrekonstruovat celý firmware 8.50EN do assembleru. Teď se bude analyzovat.
2/2026 - První spuštění tovární kalibrace napětí. Info zde.
3/2026 - Analýza firmware, první základní rozdělení programu. Info zde.
4/2026 - Plně funkční spuštění tovární kalibrace dle Schulze. Info zde.
4/2026 - K dodání je nový firmware 8.59EN - .BIN nebo 27C512.
XTOOLS for ISL8 - objednávejte zde: email
Je dostupný nový firmware 8.59EN, který byl upraven pro snadný start tovární kalibrace, přes jediné tlačítko - YOUTUBE
Nyní jsou dostupné různé varianty nástroje XTOOLS a FW 8.59EN
Nabídka propojovacího kabelu ISL8 TO PC RS232. Výroba pár kusů.
Cena / price 500 CZE / 21 EURO.
Lze dodat kdykoliv a k čemukoliv z nabídky nový originální "ST" timekeeper M48T08
Cena / price: 1199 CZK / 50 EUR
Aktuálně mám na prodej (6/2025) jednu nabíječku ISL8-936G V1 - na ebay/aukro/modelbazar - možno mě kontaktovat.
Poslední aktualizace stránky: 27.04.2026
dokončené kalibrace: 36×
opravy nabíječů: 4× ISL8 + 2× NEXT
prodej XTOOLS: 2× data, 7× adaptér
prodej kabelů RS232: 0
upravená verze 8.59EN: 0x data, 0x paměť
Nabízím kalibraci nabíječe s výměnou Timekeeperu – 1 999,- CZK (skladem pár kusů M48T08 ST)
Aktualizace firmware 8.xx na poslední verzi FW 8.50e – (možné pouze v rámci oprav 399,-)
Provedení kontroly kalibrace (včetně úpravy kalibrace) a test všech funkcí nabíjení / vybíjení – 799,- CZK
Opravy těchto nabíječů lze provést téměř v plném rozsahu závad. Cena je pak dle poškození.
Jsem soukromá osoba a zabývám se neoficiálními opravami zařízení ISL8-936G. Reverzní inženýrství a analýzu firmwaru provádím výhradně za účelem opravy a údržby, v souladu s příslušnými ustanoveními zákona o autorských právech.

YEAR 2022
ISL 8
Zde je vidět vnitřek ISL8 bez předního a zadního krytu. Foto je z mé první nabíječky. Byla pořízena jako nová, měla úpravu podsvětlení displeje a obsahovala poslední vydanou verzi firmware 8.50 v anglickém jazyce.
Je to poslední vyrobený – čtvrtý model této série z roku 2001. Skládá se z opravdu velkého množství součástek. Schematicky jde o velmi složitou konstrukci. V té době asi nebylo mnoho dostupných čipů a jeho stavba vycházela z toho, co bylo běžně k dispozici.
Přece jen tyto nabíječe byly navrhovány a konstruovány před více než pětadvaceti lety. Řada ISL6 je již dnes třicetiletou historií. Hodně obvodů v ISL8 bylo převzato právě z řady ISL6, logika zapojení zůstala zachována.
Modernizace se pak výrazněji projevila až u řady nabíječů NEXT a NEXT II.

Můj první nabíječ ISL 8
Zde je můj první nabíječ. Koupil jsem ho někdy kolem roku 2008 od kamaráda z modelklubu. Ten kdysi létal F5B a tento nabíječ byl naprosto nezbytný pro dosažení dobrých výsledků v této soutěži, kde se létalo na 16× NiXX baterie.
Roky jsem o něj dobře pečoval. Ale vždy ho měl na poli a nabíjel z něj baterie, proto má také své šrámy.
V té době jsem měl elektro vrtulník na 9× Sanyo NiCd 2400. Výsledky z nabíjení byly skvělé. Nabíjel jsem do baterie až 2700 mAh. Nabíjel jsem proudem 8 A a baterie na konci nabíjení nebyla horká. I tak nabíjení trvalo přibližně 35 minut.
Mé znalosti z elektroniky v té době nebyly příliš velké. Vždy jsem nad ISL8 žasl. Postupem času jsem zjistil, jaký poklad doma mám. Celé to dílo pana Schulze jsem měl doma a vlastně jsem o něm nevěděl nic.
O téměř patnáct let později jsem znovu objevil jeho tajemství. Mám tento nabíječ natolik oblíbený, že jsem chtěl něco podobného v tomto stylu vyrobit vlastními silami.
Až teprve v této době jsem o něm zjistil tolik, že jeho konstrukci chápu a mé zkušenosti i vybavení z elektrotechnického hlediska mi to umožňují
Sbírka nabíječů
Zde je část mé sbírky nabíječů ISL8, které se mi podařilo zakoupit. Sbírka obsahuje všechny čtyři verze nabíječe. Některé z nich nemají úpravu HW pro firmware řady osm.
Pět z nich má podsvětlení LCD. Tři jsou v top stavu v originální krabici s podsvětleným LCD na zelené základní desce, tedy poslední čtvrté verzi.
Během roku 2023 se ISL8 téměř ztratily z trhu. Je prakticky nemožné takový nabíječ koupit. Od podzimu 2022 do léta 2023 a začátku roku 2024 jsem jich koupil celkem dvacet. Včetně mé první, koncem roku 2025 jich bylo dohromady dvacet pět.
A cena nebyla zrovna malá. Byla to však jediná možná cesta, jak získat dostatečné množství nepoškozených dat v Timekeeperu.
Později jsem jeden nabíječ prodal známému a byl ve velmi pěkném stavu. Když pominu cenu 15 000 Kč za můj první nabíječ, ostatní jsem pořídil v tomto období v rozmezí 75–360 eur.

Dva největší poklady
Zde jsou dvě mé nabíječky v top stavu. Jsou téměř nepoužívané a s původní kalibrací. Obě mají zelenou DPS (verze čtyři, rok 2001) a podsvětlení LCD.
Myslím, že kdo je má, ví, o čem mluvím. Jsou dobře uložené a vydrží navěky.
Nejlepší ISL8 jsem zakoupil ve Francii. Je téměř nepoužívaná a v opravdu špičkovém stavu.


YEAR 2023
Charger is not calibrated!
Když jsem zjistil, jaký problém může nastat při ztrátě kalibrace, rozhodl jsem se ihned něco vymyslet. Nemohl jsem dopustit, aby i můj nabíječ přestal fungovat a skončil jako nekalibrovaný.
Obsahuje speciální zálohovanou RAM s kapacitou 8 kB a RTC. Bylo mi jasné, že rozluštit obsah Timekeeperu z jedné nabíječky je nemožné. Obsah 8 kB v Timekeeperu jsem rozdělil na dvě části. Prvních sedm kilobajtů je záznam z nabíjení – uložený graf. Poslední kilobajt je nastavení nabíječky a data kalibrace.
Na podzim roku 2022 jsem začal kupovat všechny dostupné nabíječky ISL8. Tři jsem našel na eBay, pět jsem koupil na německém Kleinanzeigen. Téměř všechny jsem pořídil ze země původu, tedy z Německa. Jednu z Nizozemska, Španělska a Francie.
Podařilo se mi koupit čtyři ISL8 opravdu v perfektním stavu a v původním balení. Kontaktoval jsem v Německu člověka, který dokonce nabízel kalibraci nabíječek ISL8, bohužel však špatným způsobem. Chtěl 70 euro za jednu nabíječku.
Firma Schulze zanikla někdy kolem roku 2017 a nenašel se nikdo, kdo by se o nabíječky v budoucnu staral a servisoval je. Pokud vás nabíječ po zapnutí upozorní hláškou „Charger is not calibrated!“, kalibrace se pak nenávratně ztratí. Nabíječka je pak téměř k ničemu.
Její pořizovací cena nebyla vůbec malá. Myslím, že dodnes není dražší modelářská nabíječka. Cena přibližně v roce 2005 byla kolem 29 900 Kč. Pak velmi zamrzí, pokud byste se měli s takovým nabíječem rozloučit.
Pro ty, kteří mají zkušenosti a vlastní programátor, doporučuji zálohovat Timekeeper. Obsah lze pak snadno nakopírovat do nové časomíry. Zaručíte si tak další bezproblémový provoz této nabíječky na mnoho dalších let.
Kalibrace je s postupem času velmi stálá a zpravidla není potřeba ji upravovat ani po deseti, patnácti nebo dvaceti letech, což se ukázalo při měření několika nabíječů.

Timekeeper error
Takto se vám zobrazí uvítací obrazovka na nabíječi, pokud se obsah Timekeeperu ztratí. Data jsou pak náhodná a znaky nesmyslné.
Nabíječ tento stav bezpečně rozpozná a na displeji vás po zapnutí informuje o ztrátě kalibrace.


Timekeeper ST M48T08
Pohled na dva velké čipy. Spodní je EPROM 27C512. Obsahuje 64 kB firmware. Nad ním je takzvaný Timekeeper M48T08 – časoměřič.
Je to speciální RAM o kapacitě 8 kB se záložní lithiovou baterií s dlouhou trvanlivostí. Její životnost, v závislosti na teplotě skladování a podmínkách provozu nabíječe, je kolem deseti let, může však dosáhnout až patnácti let.
Pokud se vám baterie v Timekeeperu vybije, nabíječ ztratí důležitá nastavení. Nastane tak nejhorší možný stav, zejména pokud máte verzi firmware 8.00, 8.02, 8.04, 8.08, 8.10 nebo 8.50. Timekeeper neudrží tovární kalibraci a ta nenávratně zmizí.
Kalibrace napětí je nutná pro nabíjení LiXX a Pb baterií. Přesnost A/D převodníku vychází z vnitřního stabilizovaného zdroje napětí pro elektroniku nabíječe, od kterého je přímo odvozeno referenční napětí pro ADC. Přesnost zdroje může mít malou odchylku, a proto výrobce zavedl do programu nabíječe softwarovou kalibraci napětí.
Po více než půl roce práce a zkoumání dat se mi podařilo zjistit tolik důležitých informací, že dokážu zpětně obsah Timekeeperu obnovit a nabíječ znovu správně zkalibrovat.
Kalibrace pak probíhá přístupem do Timekeeperu skrze programátor nebo přímo „live“ přístupem za pomoci emulátoru připojeného k ISL8 místo Timekeeperu.
Jakým způsobem se kalibroval nabíječ dle výrobce, se již pravděpodobně nikdo nedozví. Pokud tedy čtete tuto stránku, věřte, že ještě není vše ztraceno.
Začátek tvrdé práce s daty v timekeeper
Měl jsem tedy k dispozici asi sedm nabíječek s tovární kalibrací a funkčním Timekeeperem ve verzi 8.xx. K tomu jsem další tři obsahy Timekeeperu získal výměnou na diskusním fóru a už bylo s čím pracovat.
Všechny nabíječky jsem uvedl do továrního nastavení se stejným firmware 8.50EN a začal porovnávat jejich obsah. Na papír jsem vytiskl poslední 1 kB dat v HEX a ASCII z každé funkční nabíječky a hodiny je porovnával. Ze začátku to bylo dost nepřehledné.
Pro porovnání dat jsem použil program na čipování řídicích jednotek automobilů ECM2001. Ten umí porovnávat dva soubory .BIN. Výsledkem byl seznam adres, kde se data lišila. Bylo třeba postupovat pomalu a systematicky.
Vzal jsem funkční nabíječ a v datech Timekeeperu jsem začal provádět náhodné změny na místech, kde se data lišila. A v tu chvíli se to stalo – nabíječ začal hlásit ztrátu kalibrace a choval se jako nekalibrovaný.
Změn v datech jsem provedl více a sledoval, na co bude nabíječ reagovat, co vyhodnotí jako chybu a co je ještě v pořádku. Vytvořil jsem si tabulku těchto důležitých bajtů podle jednotlivých nabíječek a přemýšlel nad jejich významem.
Porovnáváním těchto zjištěných změn jsem si postupně udělal představu o jejich formátu. Poměrně rychle jsem získal myšlenku, jak asi fungují.
Aby však byla změna čitelná v provozu, musel jsem vyrobit vícekanálový a přesný voltmetr. Ten pak sloužil jako přesný ukazatel, jak a který bajt v kalibračních datech ovlivňuje výsledné napětí.
Náhled dat z konce paměti v Timekeeperu je z aplikace Xgpro pro programátor TL866II.
Tady jsem vložil snímek obrazovky z programátoru. Je zde vidět poslední část dat v Timekeeperu. Jeho obsah je nastavený na výchozí hodnoty.
Je zde vidět umístění uživatelského jména a hesla. Dále také třikrát řada číslic: 01-01-00-01-01-01-01. To jsou kalibrační data. Pokud nabíječ rozpozná poškození kalibrace, tyto tři řady číslic vyplní nulami a bude hlásit ztrátu kalibrace.
Posledních osm bajtů jsou data z RTC – datum, čas, kalibrace časovače a provozní bajt. Dále jsou zde třikrát pozice s hodnotou 00-00, což jsou místa pro uložení sériového čísla nabíječe.
Pokud se do nabíječe vloží nový Timekeeper, program dekóduje sériové číslo ze základní desky (z EEPROM vedle CPU) a uloží jej do Timekeeperu.
Pokud někdo zamění Timekeeper z jiného nabíječe, nabíječ tuto skutečnost nekontroluje a nehlásí chybu. Vy však poznáte, že zobrazené sériové číslo neodpovídá tomu, které bylo v zařízení původně uloženo. To může napovědět, že s nabíječem někdo manipuloval.
Přišel jsem na to tak, že jsem od jednoho člověka z Německa koupil více nabíječů ISL8. Následně se ukázalo, že dvě z nich zobrazovaly shodná sériová čísla.
Po vynulování Timekeeperu se zobrazí správné sériové číslo – původní, uložené na základní desce nabíječe.
Bylo pak zřejmé, že kalibrace nebude správná, protože paměť v Timekeeperu pochází z jiného nabíječe.
Emulátor, rychlý pomocník
Připravil jsem si definiční soubor pro ladění kalibrace v aplikaci Tuner Pro RT. Ladím s emulátorem Moates Ostrich 2.0. Mohu ihned měnit parametry a ukládat je do emulátoru.
Není tak nutné neustále vyndávat a znovu zasouvat Timekeeper do nabíječky a programátoru. Celý proces je pak velmi rychlý a pohodlný.
Nabíječka však potřebuje pro načtení kalibračních dat projít restartem. Data načte pouze po zapnutí a pravděpodobně je drží v RAM přímo v CPU.
Také jsem vytvořil definice dat pro sériové číslo, datum, čas a jméno uživatele včetně hesla.

Měření napětí
Voltmetr jsem postavil na platformě Arduino. Použil jsem desku Arduino Mega 2560, 24bit ADC shield s LTC2499 a TFT dotykový LCD. Program jsem naprogramoval pro čtení kanálů a zobrazení hodnot na displeji.
Voltmetr po zapnutí prochází režimem kalibrace, což bylo nutné pro zajištění co nejvyšší přesnosti měření. Kalibruje se offset pro nulové napětí a offset pro referenční napětí 4,096 V. Z těchto hodnot se následně vypočítává výsledná hodnota měření.
Přesnost voltmetru při 4 V je pod 1 mV a při napětí 22 V je přesnost pod 5 mV, což je pro tento účel plně dostačující. Celková přesnost voltmetru v praxi je při 40 V přibližně 10–15 mV.
Na kanálu A1 je přesnost měření napětí ISL8 přibližně 15 mV. Dochází tedy ke stavu, kdy je naměřená hodnota jednou o pár milivoltů vyšší a jindy naopak nižší.
4/2025 – Nyní používám nový DMM OWON HDS120, který má přesnost 0,1 %.

Firmware ISL 8
Při shánění nabíječek ISL8 jsem samozřejmě koupil i kusy s neznámým firmware. Někdy to nebylo předem známo, a proto se mi zde sešly i starší verze.
Mám tak k dispozici verze V1.12, V2.03, V3.80, V8.00, V8.02, V8.04, V8.08, V8.10 a V8.50.
Poslední řada FW V8.xx je určena pro LiXX články. Verze V8.10 podporuje LiPo, Li-ion a LiMn, verze V8.50 navíc i LiFe. Všechny starší verze než řada V8.xx jsou v němčině, zatímco verze V8.10 a V8.50 jsem sehnal v angličtině. Verze 8.50EN pochází z mé nabíječky.
Schulze používal pro firmware UV mazatelné EPROM paměti firmy ST, později i OTP EPROM. Lze použít také flash paměti, například Winbond.
Před změnou verze z V8.xx na vyšší stačilo poslat EPROM výrobci, který zaslal zpět novou verzi. Výjimkou byl přechod z nižších verzí na řadu V8.xx – v takovém případě musel být nabíječ odeslán k výrobci na kalibraci.
Teprve ve verzi FW 8.xx byla zavedena přesná kalibrace napětí.


Zde je první verze ISL8, která byla vyrobena v 02/1995. Čelní panel DPS kolem LCD má stejné datum 02/1995. Má tmavě červenou DPS.
Základním znakem je reproduktor na spodní straně nabíječky. Obsahuje melodický modul, který při ukončení nabíjení přehrává vybranou melodii.
Na zadní straně DPS byly drátem zesílené cesty GND. Na straně u LCD byly další tři drátové propojky. Dalším rozpoznávacím znakem je, že ventilátor chlazení uvnitř nabíječky běžel neustále.
Tato verze v základním provedení nemohla být přímo upgradována na firmware řady V8.xx, protože došlo ke změně proudů na výstupu A3. Byla provedena úprava hodnot odporů u operačních zesilovačů.
Sám jsem ověřil, že hodnoty proudů neodpovídají. Při vybíjení se výrazně zahřívá vybíjecí MOSFET na DPS a hrozí jeho poškození teplem. Proud na výstupu A3 při vybíjení byl s firmware V8.xx 1 A místo původních 400 mA.
Dodatečně byly doplněny velké červené filtrační kondenzátory.
Zásadním problémem bylo, že na výstupu A3 se původně počítalo s funkcí vybíjení až v pozdějších verzích firmware, a proto byly hodnoty součástek zpočátku nastaveny jinak.
Druhá verze nabíječe
Tady je výrobně druhý model. Byl vyroben v 04/1996. Hlavním znakem je světle červená barva DPS.
Chybí zde drátové propojky na DPS. Ventilátor se již spíná procesorem a není zde reproduktor ani melodický modul.
Rozdíly jsem našel pouze u nabíjení a vybíjení kanálu A3. Stejně jako první model nebyl ani tento přímo určen pro firmware verze V8.xx.
Již z výroby však obsahoval trimr pro nastavení vybíjecího proudu na výstupu A3, přesto bylo nutné provést úpravy na DPS.
Panel DPS kolem LCD byl vyroben v 12/1996 v červené barvě.
Třetí verze nabíječe
Zde je výrobně třetí model z 10/1997. Je téměř stejný jako druhý model.
Obvody pro nabíjení a vybíjení výstupu A3 jsou velmi podobné jako u posledního modelu z roku 2001. Stejně jako první a druhý model nebyl ani tento přímo určen pro firmware verze V8.xx.
Již z výroby však obsahoval trimr pro nastavení vybíjecího proudu na výstupu A3, stejně jako druhý model.
Čeho jsem si všiml – tyto nabíječe ve verzi tři měly jiný LCD. Nebyl tak kontrastní a byly na něm patrné jemné pruhy.
Druhý a třetí model mají stejný panel DPS kolem LCD, vyrobený v 12/1996, v červené barvě.
Na první pohled se tento třetí model zdá téměř stejný jako předchozí druhý model.
Čtvrtá verze nabíječe
A zde je podle mého nejlepší verze nabíječe. Byl vyroben v 10/2001. Čelní panel DPS kolem LCD má stejné datum výroby a zelenou barvu.
Ventilátor chlazení je opět řízen z CPU. Nabíječ nemá reproduktor ani melodický modul. Na obvodech pro výstup A3 přibyl další trimr pro nastavení nabíjecího proudu.
Co zde na fotografii není vidět, je rozdíl v počtu vrstev DPS. První model (s červenou DPS) má na zadní straně velké drátové propojky. Nabíječky druhého, třetího a čtvrtého modelu mají podle mého tři až čtyři vrstvy DPS. Krajní vrstvy jsou stejné jako u předchozích verzí, skrytá vrstva pak slouží pro vedení GND a napájecího napětí na terminály A1/A2 pro nabíjení. Zda se vše vešlo do jedné (třetí) nebo více vrstev DPS, nedokážu přesně určit.
Dalším krokem k dokonalosti byla úprava podsvětlení LCD. Bohužel zdroj DC/AC s transformátorem 100 V / 400 Hz pro podsvětlení byl slyšitelný pouhým uchem, což mohlo některým uživatelům vadit. Úprava podsvětlení navíc vyžadovala výměnu LCD. Osvětlení displeje se spínalo funkcí FAN, která byla primárně určena pro ovládání externího ventilátoru pro chlazení nabíjených baterií.
Všechny čtyři verze nabíječe používaly shodný firmware, takže mezi jednotlivými verzemi nebyl z tohoto pohledu rozdíl. Základní schéma zapojení bylo u všech stejné, i když drobné odlišnosti existovaly například v trimech na výstupu A3, v melodickém modulu nebo ve způsobu spínání vnitřního ventilátoru.
Při pohledu na poslední verzi se zelenou DPS (na obrázku dole) je vlevo dole vidět svislá řada pinů. Jsou zde vyvedeny signály a napětí pro možnost osazení dodatečné DPS s melodickým modulem. Ten jsem však nikdy nikde neviděl, i když podle schématu to pravděpodobně možné je.
Posledním drobným rozdílem této verze je použití SMD MOSFET tranzistorů na vstupu napájecího napětí a na portech pro externí zařízení, jako je externí vybíjecí odpor, externí osvětlení nebo ventilátor.
YEAR 2024
Obrazovka měřeného napětí
Nabíječ ve verzi osm dokáže v menu zobrazit na LCD stav měřeného napětí všech výstupních kanálů i vstupního zdroje. Je to proto, aby uživatel mohl snadno zkontrolovat, zda jeho nabíječ funguje správně.
Pokud je napětí mimo povolené meze, je potřeba nechat nabíječ znovu zkalibrovat. Výrobce uvádí jako přijatelnou hranici maximální odchylku 1 %.
Pro měření je nutné použít voltmetr s přesností lepší než 0,3 %.

Abych mohl pochopit některé části nabíječe a jeho funkce, bylo nezbytné nabíječ rozebrat. A pak přišla ta zajímavější část – vytvořit z fotografií osazení součástek a této oboustranné DPS schéma.
Relativně snadné to bylo v části CPU / EPROM / RAM / TIMEKEEPER / LCD. Jako druhý blok bych definoval port RS232, dále obvody 373D, 40106 a watchdog.
Třetí blok schématu bych označil jako výkonové obvody – měnič napětí pro MOSFETy a několik obvodů s operačními zesilovači. Tam se vše již výrazně komplikuje.
Nejsložitější je přechod schématu do horní DPS kolem LCD. V této části se zatím ztrácím a nemám ji dokončenou. Jsou zde však obvody, které řídí nabíjení a vybíjení výstupu A1 včetně rekuperace, a také nabíjecí obvody pro výstup A2. Dále se zde nacházejí obvody pro měření proudů na výstupech A1 a A2.
Nabíječ obsahuje řídicí a ochranné obvody pro řízení měničů. Ty zajišťují, že při selhání CPU, resetu nebo při zapnutí nabíječe jsou všechny měniče uvedeny do bezpečného neaktivního stavu. Nemůže tak dojít k nechtěnému spuštění nabíjení nebo vybíjení.
S tímto principem se podle mého názoru u moderních nabíječů již tolik nesetkáte, protože moderní mikrokontroléry jsou v tomto směru výrazně spolehlivější.

Pokračování mé práce
Nadále pokračuji v sestavování schématu celé nabíječky. Cílem není vytvořit 100% přesné schéma pro její repliku, ale pochopit celé zapojení a princip funkce.
To pak bude sloužit k přesné kalibraci všech parametrů i k opravám. A kdo ví, třeba i k její budoucí modernizaci.
Hlavní problém spočívá v dostupnosti LCD. Ty je dnes již prakticky nemožné sehnat. Lze je sice nahradit podobným displejem s jiným řadičem, ale to by vyžadovalo i úpravu firmware pro nový typ LCD. To je však zatím myšlenka do budoucna.

Malý plošný spoj kolem LCD
Dalším velkým úkolem bylo odpájení součástek celé DPS pod čelním panelem. Je jich zde neskutečně velké množství, takže jde o časově náročnou práci.
Obvody v nabíječi jsou mnohdy zbytečně složité. Například řízení N-MOSFETů v režimu step-up by dnes šlo elegantně vyřešit jedním MOSFET driverem. Zde jsou sice použity drivery, ale nedokážou zvýšit napětí pro gate MOSFETů.
Proto je na desce malý transformátor zalitý v hnědém pouzdře. Má jedno vstupní vinutí. Měnič je řízen čipem 40106, který spíná MOSFET prvního vinutí. Výstupem transformátoru jsou pak tři oddělené zdroje napětí pro řízení MOSFETů v měničích A1 a A2.
CPU používá pro každý měnič pouze jeden PWM výstupní signál. V případě A3 se pak logikou přepíná režim nabíjení nebo vybíjení. Zapojená logika na A3 zajišťuje, že nemůže dojít ke kombinovanému stavu nabíjení a vybíjení.
Podobné řešení je použito i u dalších výstupů. Například výstup A1 by potřeboval několik samostatných výstupů z CPU – pro vybíjení do odporů, vybíjení do zdroje a nabíjení v režimech step-down a step-up. Místo toho je použita přepínací logika. Šetří se tím počet výstupů CPU, ale za cenu vyšší složitosti zapojení.
Podobná situace je i u měření proudu. Každý kanál má jeden vstupní pin ADC pro měření proudu v CPU, ale například A1 by jich potřeboval více – pro různé režimy nabíjení a vybíjení. Vše je proto řešeno pomocí operačních zesilovačů, kde se signály podle potřeby slučují nebo větví.
YEAR 2025
Projekt pro opravy Schulze ISL8-936G
Je čas posunout všechny tyto práce na vyšší úroveň. Proto jsem se rozhodl požádat o pomoc externí firmy.
Cílem je zpracovat projekt pro opravy DPS (PCB) pro ISL8. Tyto práce jsou zaměřeny na poslední model V4 z roku 2001 se zelenou DPS.
V podstatě se jedná o pokus vytvořit schéma a kompletně znovu vyrobit DPS kolem LCD z ISL8. Na této desce se nachází přibližně 386 součástek. Obsahuje několik trimrů, operační zesilovače a mnoho dalších elektronických prvků.
Jsou zde umístěny obvody pro kompletní řízení a měření nabíjení a vybíjení portu A1 a nabíjení portu A2. Dále obsahuje několik jistících a ochranných obvodů nabíječe.
Velmi důležitou součástí jsou také trimry pro seřízení a správné nastavení funkcí nabíjení a vybíjení portu A1 a nabíjení portu A2.

Obrázek níže je ukázka projektu DPS pro výrobu a záchranu displejů pro ISL8. Jak je známo, tyto displeje se již řadu let nevyrábějí.
Jedná se o displej Solomon LM6061SYR s rozlišením 240 × 64 pixelů a s paralelním řadičem HD61830A00. Podařilo se mi zakoupit poslední celosvětovou skladovou zásobu displejů Solomon LM6051SYR.
V čem je tedy problém a jaký je mezi nimi rozdíl? Model LM6051 nemá vlastní řadič. Proto jsem opět oslovil několik firem a podařilo se mi dojednat spolupráci na výrobě pěti nových displejů pro ISL8.
Jak celý proces probíhá? V oběť padl jeden funkční displej LM6061. Podle něj jsem nechal znovu navrhnout plošné spoje a osadit je součástkami. Následně proběhla speciální montáž, při které bylo sklo z displeje LM6051 demontováno a nově připojeno na novou DPS typu LM6061.
Tímto způsobem jsem zajistil novou sérii pěti kusů displejů LM6061 pro ISL8.
A zde je hotový nový plošný spoj displeje. Proběhla jeho rekonstrukce a znovu byl vypracován projekt PCB podle jednoho demontovaného kusu displeje z ISL8.
Typů tohoto LCD Solomon LM6061 použitých v nabíječce ISL8 bylo více, pravděpodobně alespoň tři. Musel jsem proto zvolit variantu, která vyhovuje způsobem připojení skla displeje.
Typ Solomon LM6051 nemá řadič HD61830A00 a jeho sklo je připojeno k PCB na horní straně pomocí elektrovodivé gumy. Na levé straně je pak flexibilní elektrovodivý pásek přibondovaný k PCB a sklu displeje.
Celkem jsem zakoupil přibližně dvě a půl desítky LCD LM6051, a to až z USA přes eBay. Cena byla velmi vysoká, ale pro ISL8 je to v podstatě jediná možnost záchrany.
Není LCD, není ISL8.

Vyrobeno bylo v Shenzhenu v roce 2025. Zpracování je naprosto perfektní.
Včetně popisek na PCB a také plošky na PCB jsou zlacené. Dalo by se říct, že jde o téměř dokonalou práci.

Největším problémem je spojení skla displeje s PCB na úrovni pixelových řádků. Toto spojení je realizováno pomocí elektrovodivého flexibilního pásku, který nelze v domácích podmínkách jednoduše opravit.
Podařilo se mi však oslovit profesionální firmu zabývající se opravami LCD v České republice – Elsin s.r.o.
Do této firmy jsem odeslal novou osazenou PCB a jeden kus LCD LM6051, kde bylo sklo z jedné desky profesionálně připojeno na novou desku.

A nyní se na závěr pustím do opravdu zajímavé části. Pojďme odkrýt tajemství PCB z ISL8-936G označené jako model V4 0110 GREEN.
Jedná se o poslední model této nabíječky z roku 2001 se zelenou DPS. Jak je známo, první model měl po obvodu PCB drátové propojky a dvě další propojky byly umístěny pod LCD. Tento první model měl dvouvrstvou PCB.
Další modely – druhý, třetí a čtvrtý – již mají PCB čtyřvrstvou.
A nyní se na tuto konstrukci můžete podívat i vy.






Naprosto nádherná, nová základní deska ISL8. Chybí pouze obě cívky měničů, transformátor pro MOSFETy a piezo bzučák. Nabíjecí porty jsou nenahraditelné. Jinak se podařilo osadit vše.
Téměř výroční kus – první ISL8 vznikla v roce 1996 a dnes je to téměř po třiceti letech.


Byl to dlouhý a náročný proces – shánění komponent, opětovný návrh desky, výroba i osazení. Velký kus práce připadl na výrobu displejů.
Displeje bez řadičů se podařilo zakoupit v USA, PCB byla vyrobena v Shenzhenu a montáž skla displeje provedla česká firma Elsin s.r.o.
Celé zařízení naskočilo napoprvé, což byl fantastický výsledek.


Opravy nabíječů 2023-2025
Oprava nabíječe No.1 nefukční CPU, LCD.
Koupil jsem jeden velmi starý nabíječ s firmware 1.12. Byl dlouhou dobu někde odložený a uvnitř se nacházel opravdu velký nános prachu.
Po vyčištění a zapnutí fungoval normálně. Bohužel výměna firmware se nezdařila. Patice DIL pro EPROM byla zoxidovaná a nabíječ přestal fungovat.
Výměna Timekeeperu přinesla další potíže – nabíječ stále nefungoval a LCD zůstal černý. Vyměnil jsem obě patice DIL pro Timekeeper i EPROM, dokonce dvakrát, ale nepomohlo to. Vyměnil jsem i CPU, a to třikrát, ale bez výsledku.
Nakonec jsem našel závadu, kterou jsem si způsobil hned na začátku sám. Při odstraňování tmelu, který držel Timekeeper v patici, jsem omylem prořízl dvě cesty na DPS.
Oprava pak proběhla pomocí propojení drátkem a nabíječ znovu ožil.
Při opravě jsem již měl k dispozici schéma DPS, takže jsem osciloskopem měřil signály na linkách pro CPU, EPROM a Timekeeper. Závadu jsem tak poměrně snadno našel a opravil.
Mohl jsem si však ušetřit mnoho starostí – měřit jsem měl hned na začátku, ne až na konci, když už jsem si nevěděl rady.





Oprava nabíječe No.2 nefunkční vybíjení A1 do oporů.
Dostal se mi do ruky nabíječ na kalibraci s občasnou chybou „Disconnect pack! Warning (číslo 4)“ – chyba připojení baterie.
Při měření jsem zjistil, že problém způsobuje port A1. Při vypnutém nabíječi je odpor na svorkách portu A1 přibližně 75 kΩ. Zde byl však výrazně nižší, kolem 25 kΩ, což se projevovalo jako detekce připojené baterie.
Za normálního stavu je po zapnutí nabíječe na svorkách A1 a A2 napětí přibližně 2,5 V. Jakákoliv jiná hodnota signalizuje problém.
Závada byla ve zkratovaných N-MOSFETech v okruhu vybíjení baterie na A1. Dva MOSFETy typu SUP70N06 byly ve zkratu a zároveň byla poškozena řada dvaceti odporů o hodnotě 68 mΩ.
Pomohla jejich výměna. Zároveň byl poškozen i malý SMD tranzistor NPN 817-40 na horní DPS kolem LCD.
Zajímavé je, že tento nabíječ byl již v minulosti s touto závadou opravován ve firmě Schulze. Proč k poškození došlo, není známo. Podobných případů je však více.
Oprava nebyla příliš složitá. Nejnáročnější bylo připájení dvaceti malých odporů, které jsou velmi blízko u sebe.





Oprava nabíječe No. 3 - poškozený pomocný zdroj pro mosfet A1
Další oprava ISL8. Poškozený pomocný zdroj pro napájení mosfet nabíjení A1. Nefunkční nabíjení prvního výstupu. Vadné dvě usměrňovací diody A7, dvě zenerky Y7 a driver mosfet TC427 (byl ve zkratu jeden výstup na mosfet). Oprava poměrně snadná, bylo ale nutné odpájet displej. To je asi ta nejhorší část opravy.
Oprava nabíječe No. 4 - poškozené pomocné zdroje pro mosfet A1 a A2
Na kalibraci mi dorazil další nabíječ. Jednalo se o nedokončenou opravu ve firmě Schulze. Nabíječ nenabíjel na výstupech A1/A2.
Závada byla v pomocném transformátoru a ve spálených diodách pomocných zdrojů. Hlavní problém se však nacházel na DPS kolem LCD, kde byl bludný svodový proud.
Celá oprava byla velmi zdlouhavá a náročná. Na DPS kolem LCD docházelo ke svodům, které způsobovaly opakované poškození 8V stabilizátorů.
Problém jsem vyřešil kompletní výměnou všech integrovaných obvodů na této DPS. Jednalo se převážně o operační zesilovače. Dále proběhla výměna usměrňovacích diod, Zenerových diod a stabilizátorů napětí.
Po této opravě byl proudový odběr správný, přibližně 15 mA na jeden vstup.
Jako další vadný prvek se ukázal transformátor pomocného zdroje odděleného napětí. Jeho výměna nebyla možná – firma Würth Elektronik jej již nevyrábí, jednalo se o zakázkový díl přímo pro Schulze.
Podařilo se mi však dohledat základní parametry, a tak jsem se rozhodl transformátor rozebrat a znovu navinout. Pro jeho uchycení jsem si vyrobil držák na 3D tiskárně a po ověření funkce jsem jej zalil epoxidem.
Nyní funguje správně. Při napětí zdroje 10,50 V poskytuje po usměrnění 13,10 V a při napětí zdroje 14,80 V mají všechny tři výstupy shodné napětí 19,80 V.
Finální kalibrace napětí ISL 8
Shrnutí mé roční práce 2022/2023 - jak jsem začal s kalibrací - popis, měření
(jsou k dispozici nové informace o kalibraci 4/2026)
Po více než půl roce se mi podařilo objevit způsob, jak zkalibrovat napětí na ISL 8. Pomohlo mi k tomu sedm funkčních nabíječek, a celkem to bylo deset funkčních obsahů časomíry. Dnes jsem prováděl měření na sedmi nabíječkách. Čtyři z nich mají originální kalibraci. Ostatní jsem nastavil na výchozí nulovou kalibrační hodnotu.
Před začátkem kalibrace, je třeba obnovit obsah timekeeper. Postup je poměrně snadný, ale vyžaduje se kroky provádět ve správném sledu. Jinak se některá data neobnoví správně a pak je potřeba je zapsat do timekeeper přes programátor. Obnoví se tak nastavení nabíječe, seriové číslo, jméno uživatele a heslo nabíječe. Kalibrační data se vynulují. Dalším postupem je pak samotná kalibrace napětí.
Nabíjel jsem 6S lipol na výstupu A1. Na výstupu A2 3S lipol a na výstupu A3 2S lipol. Voltmetr pracuje s přesností až 5mV při 22V. Nabíječky bez kalibrace dopadly špatně. Z 28 měření byla hranice 1 % překročena pouze jednou. Dle výrobce je uvedena povolená odchylka 1%, ale hodnota odchylky 1% je dost vysoká. Pro měření musí být přesnost volmetru pod 0.3%.
Výsledky měření. Byl to výstup A3, když rozdíl dosáhl -77mV (-38mV na článek lipol). Nejhorší výsledek na A2 byl 52mV s nezkalibrovanou nabíječkou (+17mV na článek lipol). Nejhorší výsledek na A1 byl +158mV (22V) s nezkalibrovanou nabíječkou (+26mV na článek lipol).
Naopak velmi dobře dopadly tři nabíječky se zelenou základní deskou. Rozdíl napětí na A1 byl +46 mV. U 6S lipol je to 8 mV na článek.
Napětí pro zdroj nelze zkalibrovat. Rozdíl během měření nebyl větší než 33 mV. Nepatrně ho lze doladit změnou napětí na referenčním zdroji. Ale to asi není povoleno.
Kalibrační data obsahují hlavní hodnotu offsetu pro každý kanál jako HIGH a jednu LOW. To určuje odchylku měření globálního napětí pro výstupy A1 a A2 a A3.
Kalibrační data obsahují šest 8bit hodnot kalibrace offsetu pro A1/A2/A3, vždy hodnota H a L pro každý kanál a fungují nezávisle.
Formát kalibračních dat je: (A1-H / A2-H / ZERO / A1-L / A2-L / A3-L / A3-H)
Chcete-li, aby nabíječka přestala hlásit chybu kalibrace, musíte data kalibrace nastavit na tento formát: (01-01-00-01-01-01-01) - HEX.
Pokud máte zájem o informace, napište. Jsem ochoten pomoci s kalibrací. Jsem ochoten vám nabíječku zkalibrovat. Firmware mohu aktualizovat na verzi 8.50 anglicky nebo německy. Mohu zajistit výměnu časomíry, její nastavení a kalibraci. Znovu obnovit obsah časomíry a nová data zálohovat do souboru .BIN, pro použití v dalších letech.
Pro tuto práci používám emulátor Moates Ostrich 2.0
Programátor TL866II
Voltmetr LTC2499 na štítu Arduino s kalibračním programem.
5/2025 Nyní používám nový DMM OWON HDS120, který má přesnost 0.1% a dokončený kalibrační adapter XTOOLS for ISL8.
(jsou k dispozici nové informace o kalibraci 4/2026)
Vložte novou časomíru M48T08 do ISL8. Pokud není nová, vložte ji do programátoru a naplňte její obsah hodnotou 0x55 (HEX), což odpovídá znaku „U“ v ASCII. Poté ji vložte zpět do ISL8.
Přejděte ke změně uživatelského jména. Nyní je nastaveno „UUUU…“. Zvolte výchozí název – bude přepsán na „schulze gmbh…“. Potvrďte zadání a přejděte k nastavení hesla.
Odstraňte původní slovo „keyword“ a zadejte „UUUUUUU“ (plný počet znaků). Je to nutné, protože Timekeeper je nyní vyplněn hodnotou 0x55 („U“). Potvrďte a následně zadejte požadované heslo nebo znovu zvolte výchozí nastavení. Heslo se pak vrátí na původní hodnotu „keyword“.
Pokud vše provedete správně, uživatelské jméno bude „Schulze elektronik gmbh“ a heslo „keyword“.
Přejděte do nabídky nastavení nabíječe a spusťte „Global reset“.
Vraťte se na hlavní obrazovku a v nabídce nastavení (data pro komunikaci s PC) zvolte „Obnovit výchozí nastavení“.
Nastavte správné datum, čas a den v týdnu. Nastavení nabíječe i Timekeeperu je nyní obnoveno.
Správné sériové číslo nabíječe se zobrazí v nabídce nastavení. Je uloženo v EEPROM 93LC46B vedle CPU a je pro každý nabíječ jedinečné.
Vyjměte Timekeeper z nabíječe a vložte jej do programátoru. Načtěte obsah paměti. Na konci dat uvidíte tři řady sedmi nul:
00-00-00-00-00-00-00
Tyto hodnoty představují kalibrační data. Přepište je na:
01-01-00-01-01-01-01 (HEX)
Nabíječ poté přestane hlásit chybu kalibrace, ale stále nebude skutečně zkalibrován.
Nyní následuje samotná kalibrace – upravte kalibrační data tak, aby napětí na výstupech odpovídalo skutečnosti.
Každý kanál má dvě hodnoty: offset HIGH a offset LOW.
Offset HIGH má krok přibližně 10 mV a offset LOW přibližně 1 mV.
Pokud nabíječ zobrazuje vyšší napětí než skutečné, zvyšujte hodnoty offsetů (kladné hodnoty, např. +0x01 a více).
Pokud zobrazuje nižší napětí, upravujte offsety směrem dolů (záporné hodnoty, např. -0xFF a méně).
Nejprve nastavte offsety A1/A2/A3-HIGH na hodnoty odpovídající rozdílu napětí v rozsahu přibližně 50–60 mV.
Rozsah je zhruba 00–0Ah pro kladné hodnoty a FF–F6h pro záporné hodnoty.
Teprve poté dolaďujte offsety A1/A2/A3-LOW. Střed offsetu HIGH je 00h.
Každý kanál se nastavuje nezávisle. Hodnoty A1/A2/A3-LOW jsou v rozsahu 0x00–0x7F a 0xFF–0x81, se středem na 00h. Hodnota 0x80 představuje hranici mezi kladnými a zápornými hodnotami.
Napětí vstupního zdroje nelze kalibrovat.
Formát kalibračních dat je:
(A1-H / A2-H / ZERO / A1-L / A2-L / A3-L / A3-H)
Dodatek ke kalibraci - potřebné informace a jak postupovat
Při měření napětí pro kalibraci vždy nabíjejte co nejnižším proudem, ideálně 250 mA.
Offset HIGH má krok přibližně 10 mV a offset LOW přibližně 1 mV. Pokud je například rozdíl napětí 95 mV, lze jej rozdělit na 5 × 10 mV (0x05 pro HIGH offset) a zbytek 45 mV (0x2D pro LOW offset). Kalibrační data jsou uložena ve formátu HEX, takže všechny hodnoty je nutné počítat a zapisovat v hexadecimálním tvaru.
Pro kalibraci použijte:
kanál A1: 3S LiPo (12,60 V)
kanál A2: 2S LiPo (8,40 V)
kanál A3: 1S LiPo (3,60 V)
Tyto hodnoty vycházejí z analýzy dat ve firmware. Sledujte napětí na displeji nabíječe a hodnoty si zprůměrujte.
Při úpravách kalibračních hodnot se snažte udržet skutečné napětí mírně nižší než zobrazené. Tím zabráníte překročení limitů pro LiXX baterie. Kalibraci lze nastavit s přesností přibližně na 1 mV.
Ideální je mít připojené sériové rozhraní RS232 a sledovat napětí všech kanálů v aplikaci na PC. Je lepší mít na článku LiPo napětí 4,195 V než 4,205 V – obě hodnoty jsou dostatečně přesné, ale první je bezpečnější.
Při hledání globálního offsetu nastavte hodnotu tak, aby nabíječ ukazoval mírně vyšší napětí, než je skutečné. Výrobce doporučuje přesnost měřicího přístroje lepší než 0,3 %, přičemž výsledná přesnost nabíjení by měla být do 1 %.
Pro měření jsem původně použil vlastní modul na platformě Arduino s přesností kolem 1 mV. Nyní používám DMM OWON HDS120 s přesností 0,1 %.
Nejpřesnější kalibrace dosáhnete při nabíjení v režimu LiPo:
A1: 3S LiPo
A2: 2S LiPo
A3: 1S LiPo
Baterii během nabíjení balancujte. Ihned po ukončení nabíjení ji odpojte od balanceru i nabíječky a změřte celkové napětí. Ideální hodnota je 4,200 V na článek.
Jemné doladění provedete úpravou hodnoty LOW offsetu pro daný kanál. Nejprve dolaďte jeden kanál, poté druhý a nakonec třetí. Tento finální krok provádějte až ve chvíli, kdy se napětí shoduje přibližně s přesností 20–50 mV.
Výslednou kalibraci lze doladit na přesnost přibližně ±5 mV na článek LiXX.
Praxe ukazuje, že je lepší ponechat nabíječ mírně na horní hranici napětí, aby se LiXX články dostatečně nabily. Nabíječe s balancerem nabíjejí prakticky přesně na koncové napětí (např. 4,200 V u LiPo), zatímco nabíječ bez balanceru se snaží tuto hranici nepřekročit a výsledné napětí je pak o něco nižší.
Po dokončení kalibrace vždy znovu zkontrolujte napětí na všech výstupech. Pokud vše odpovídá, je kalibrace hotová.
Vždy si buďte jistí, že víte, co děláte, a že postupu plně rozumíte.
Doufám, že uvedené informace jsou dostatečné a srozumitelné.
(jsou k dispozici nové informace o kalibraci 4/2026)
Calibration XTOOLS for ISL8 2024-2025
Začátek roku 2024. Právě jsem se pustil do výroby prototypu pro kalibraci ISL8. Cílem bylo splnit několik požadavků. Zařízení mělo být samostatné, jediné potřebné pro kalibraci a napájené z baterie.
Rozhodl jsem se proto pro řešení na bázi Arduino modulu s malým LCD a několika tlačítky pro ovládání. Přípravek měl obsahovat ZIF patici pro Timekeeper. Aplikace by přímo četla a zapisovala data do Timekeeperu bez nutnosti připojení k nabíječi.
Díky získaným znalostem bylo možné kalibrovat každý kanál ISL8 samostatně. Modul měl obsahovat jeden ADC kanál pro přesné měření napětí. Přípravkem by bylo možné snadno změřit skutečné napětí a zároveň načíst hodnotu naměřenou ISL8. Následně by stačilo upravit offset kalibrace, zapsat jej do Timekeeperu a znovu provést měření.
Součástí zařízení měla být i kompletní struktura obsahu Timekeeperu, což by umožnilo snadné nahrání dat do nové časomíry. Celý proces by byl velmi jednoduchý – postupným doladěním kanálů A1, A2 a A3 by nabíječ přestal hlásit chybu kalibrace a napětí by bylo opět správné a bezpečné, stejně jako z výroby.
Předpokládal jsem dokončení prototypu v prvním čtvrtletí roku 2024. Tento koncept jsem však brzy opustil kvůli vysokým nákladům.
2/2024 – nový projekt kalibračního nástroje. Bylo nutné návrh maximálně zjednodušit, a proto jsem se rozhodl vytvořit vlastní kalibrační software pro ISL8. Kalibrace probíhá přímo v nabíječi.
Calibration XTOOLS for ISL8 je ve své podstatě jednoduchý adaptér pro přepínání dvou EPROM přímo v ISL8. Důvodem tohoto řešení jsou nižší výrobní náklady a pravděpodobně i menší zájem o složitější externí zařízení.
Ve výsledku tak stačí pouze vyměnit EPROM a vložit paměť s kalibračním firmware.
První spuštění vlastního firmware
Je to tady. Podařilo se mi spustit vlastní firmware v ISL8. Dokázal jsem zmapovat téměř všech 84 pinů CPU, jejich funkce i konfiguraci. Bylo nutné zjistit také nastavení dalších dvou latchů 373D, které ovládají nabíječ, a provést inicializaci LCD.
Běží interní DC/DC měnič, výstupy A1 a A2 jsou vypnuté a mají nulové napětí. Výstup A3 je rovněž neaktivní. Nabíječ v tomto režimu odebírá standardní proud přibližně 190 mA.
FW 1.10 – Aktuálně programuji zobrazení dat z Timekeeperu na LCD – jméno uživatele, heslo a sériové číslo nabíječe.
Displej tedy dokážu správně nastavit v textovém režimu. Schulze však používá výhradně grafický režim, který vyžaduje implementaci knihovny pro řízení LCD. Na to nyní není čas.
Ovládám piezo reproduktor a mám správně inicializovaný nabíječ. Obnovuji watchdog, aby nedocházelo k resetu. Nyní programuji ovládání klávesnice – první tlačítko bude sloužit jako RESET.
7/2024 – Podařilo se úspěšně naprogramovat základní rutiny pro ISL8. Problémy jsou však v omezených možnostech prostředí Keil C51, proto jsem si musel dohledat základní příručku pro jazyk C.
Nyní se chystám na přímé čtení dat z Timekeeperu. Zobrazení na LCD již není problém. Paměti mám dostatek, takže se nemusím omezovat. Spolehlivě ovládám LCD, piezo, watchdog i tlačítka.
9/2024 – Stále mě trápí, že program nedokáže správně číst a zapisovat data z/do Timekeeperu. Strávil jsem nad tím už tři měsíce. Program napsaný v jazyce C nefunguje podle očekávání a dosud jsem nenašel příčinu.
Rozhodl jsem se proto celý program přepracovat a napsat jej přímo v assembleru. Nedokážu říct, zda to pomůže, ale musím to vyzkoušet.
10/2024 – Projekt jsem zatím pozastavil kvůli nefunkčnímu programu. Začal jsem se věnovat disassemblování původního firmware.
Na přelomu roku 2025 jsem opět pokročil novým směrem.
Za poslední rok se mi nepodařilo plně rozchodit vlastní program pro ISL8 napsaný v jazyce C. Vše fungovalo dobře až na jednu zásadní věc – čtení a zápis dat z/do Timekeeperu. Proto jsem začal paralelně psát stejný program v assembleru.
Můj postup pro disassemblování firmware z ISL8 se zatím nepovedl. Jak jsem již psal, vrátil jsem se k původní myšlence – rekonstruovat kód podle zaznamenaných adres běhu CPU.
Našel jsem nový program – serial monitor pro PC, který dokáže zachytit prvních přibližně deset milionů řádků kódu odeslaných z upraveného emulátoru EPROM. Tento postup jsem proto aplikoval i na další dva nabíječe: ISL6-330D a ISL6-636+.
Další pokus o disassemblování firmware proběhne na modelu ISL6-330D, protože jeho firmware je nejmenší a nejjednodušší. Má malý displej, pouze dvě tlačítka a dva nabíjecí výstupy.
Pomocí reverzního inženýrství chci vytvořit schéma zapojení ISL6-330D. Již jsem si vytvořil první log adres běhu programu.
Současně modeluji krabičku v 3D programu pro elektronický modul Arduino DUE s LCD a napájením z baterie. Na tomto zařízení budu ručně disassemblovat program podle uloženého logu adres a ukládat jej v textovém formátu přímo na interní SD kartu. Následně jej přenesu do vývojového prostředí Keil.
Možná se tak dříve podaří odhalit postup kalibrace u ISL6 než u ISL8 – a kdo ví, třeba to pomůže i u ISL8.
2/2025 – Získávám nový zdroj informací pro projekt XTOOLS. Ano, jde o nástroj typu ChatGPT – umělou inteligenci.
Ve svém projektu pro ISL8 napsaném v jazyce C jsem měl dlouhodobý problém se čtením a zápisem dat v oblasti Timekeeperu (externí paměť XDATA). Tento problém jsem řešil téměř rok.
Nyní mám díky ChatGPT nové návrhy kódu, které mohu vyzkoušet a znovu se pokusit o správnou implementaci čtení a zápisu do Timekeeperu přímo v ISL8. Dlouho jsem hledal informace klasickým způsobem, ale bez většího úspěchu. Tento přístup je však na úplně jiné úrovni. Pokud to pomůže, bude to velký posun.
Je konec února a mám radost – problém jsem nakonec odhalil. Pustil jsem se do důkladné diagnostiky. Připojil jsem na Timekeeper logický analyzátor a sledoval signály.
Původní firmware fungoval správně, ale můj ne. Zjistil jsem, že signály XRAM RD/WR nefungují správně. Když jsem XRAM nahradil EPROM, bylo alespoň možné data číst.
Nakonec jsem zjistil, že problém je v nastavení portů CPU. Konkrétně piny pro RD a WR musí být nastaveny jako vstupy (INPUT). Jinak je CPU nedokáže správně ovládat.
Po více než roce jsem tak našel chybu ve svém kódu pro XTOOLS. Radost byla obrovská.
Nyní již dokážu spolehlivě číst i zapisovat data z Timekeeperu. Aktuálně umím načíst heslo, jméno uživatele, dekódovat a zobrazit sériové číslo nabíječe a také zobrazit kalibrační data na LCD.
FW 1.20
3/2025 - Naprosto fantastická práce. První plně funkční a otestovaný firmware verze 1.20.
Pokud zapomenete heslo, zde jej můžete obnovit. Kalibraci si můžete uložit například do poznámek a kdokoliv s programátorem pro M48T08 vám následně dokáže nastavit novou časomíru bez nutnosti nové kalibrace (viz návod na výměnu Timekeeperu).
Při smazání dat dojde k nastavení nového času a data a zároveň se zastaví RTC, čímž se sníží spotřeba baterie v Timekeeperu. Po vložení do nabíječe se časovač automaticky znovu spustí.
Pro zajištění spolehlivé funkce firmware XTOOLS se po jeho spuštění načte z Timekeeperu sériové číslo a kalibrace a uloží se do RAM v CPU. Při každé operaci mazání nebo zápisu se tyto hodnoty znovu ukládají zpět do Timekeeperu.
Kalibrace a sériové číslo se čtou pouze z první uložené pozice, ale ukládají se do všech tří pozic v Timekeeperu.
Poznámka:
V tomto režimu nabíječ odebírá ze zdroje 12,00 V přibližně 180 mA. Na výstupech A1 a A2 je nulové napětí (0,00 V). Na výstupu A3 je napětí přibližně o 500 mV nižší než napětí zdroje.
FW 1.20 - Aby to někomu nebylo líto, tak jsem se rozhodl, že tento můj první a oficiálně funkční firmware, který jsem otestoval, vydám veřejně a zdarma ke stažení.
Stačí jej naprogramovat do EPROM 27C512 DIP28 nebo je vhodná i flash WINBOND W27C512. FW-1.20
Nakonec jsem objevil poslední zásadní překážku, která mi bránila v dalším postupu. Program se nechoval vždy podle očekávání. Řešení spočívalo v tom, že jsem přestal používat externí paměť XDATA jako pracovní RAM.
Veškeré proměnné, které potřebuji, jsou nyní uloženy přímo v interní RAM CPU.
Každé menu programu XTOOLS jsem navrhl jako stavový automat. Hlavní smyčka programu (main) detekuje aktuálně aktivní menu, takže je vždy vykonávána pouze příslušná část kódu.
V současné době mám již naprogramovanou obrazovku pro editaci kalibrace. Nyní pracuji na implementaci samotné změny kalibračních hodnot.
FW 1.40 - Ano, ten den je tady. Dokončil jsem XTOOLS for ISL8.
Firmware je hotový a obsahuje první plně funkční editor kalibrace pro nabíječ Schulze Chamäleon ISL8-936G.
Tento nástroj dokáže číst a zobrazit stávající kalibraci nabíječe, případně ji smazat a začít od nuly, a také editovat jednotlivé offsety pro kanály A1, A2 a A3.
FW 1.42 - Malinko jsem upravil firmware XTOOLS. Bylo nutné zohlednit mazání paměti timekeeper, protože v předchozí verzi nefungovalo správné obnovení sériového čísla ze základní desky ISL8.
Sestavil jsem první funkční beta verzi adaptéru XTOOLS a provedl jeho základní testování. Na základě těchto výsledků jsem navrhl schéma a vytvořil první návrh DPS pro tento nástroj.
Na začátku května byla DPS odeslána do výroby. Nyní čekám na její dodání, po kterém sestavím první testovací kus.
Doufám, že vše proběhne bez problémů a zařízení bude fungovat správně hned na první zapojení.
BETA ADAPTER XTOOLS for ISL8 - Zkouška funkce a ladění časů přepínání EPROM. Zapojení je realizováno na univerzální bastl desce.
Pro řízení jsem zvolil mikrokontrolér Microchip PIC12F683 ve flash verzi, aby bylo možné snadno přeprogramovat funkce.
Po zapnutí napájení ISL8 se spustí originální firmware. Po stisku tlačítka se na přibližně 300 ms aktivuje signál RESET v ISL8 a mikrokontrolér přepne EPROM na XTOOLS. Následně se RESET deaktivuje a spustí se firmware XTOOLS.
Dalším stiskem tlačítka se EPROM opět přepne zpět na originální firmware 8.50EN. Tento proces lze opakovat, dokud není kalibrace doladěna.
VIDEO ukázka funkce beta adapteru XTOOLS na youtube - XTOOLS for ISL8

Calibration with adapter XTOOLS for Schulze ISL8-936G
FW 1.45 - Poslední doladění programu. Nyní jsem prakticky spokojen.
Základem úspěšné kalibrace ISL8 je pochopení funkce offsetů a jejich přiřazení jednotlivým portům nabíječe. Doporučuji si pečlivě prostudovat jejich funkci a nastavení.
Důležitá informace: adaptér XTOOLS obsahuje EPROM s nahraným firmwarem 8.50EN pro ISL8 a zároveň samotný kalibrační program XTOOLS. Přepínač (SWITCH) na adaptéru přepíná mezi těmito dvěma EPROM a automaticky ovládá signál RESET. Pro kalibraci tak není potřeba nic dalšího.
Na youtube jsem umístil krátké video ukázky kalibrace s XTOOLS adapterem. YOUTUBE
06/2025 - První tři hotové a prodané kusy tohoto adaptéru pro kalibraci ISL8 jsou na světě. Osazení proběhlo bez chyb a zařízení funguje téměř na první zapojení.
Kalibrace ISL8 je nyní velmi rychlá a jednoduchá – zabere jen několik minut. Adaptér se skvěle hodí zejména pro jemné doladění kalibrace, kde je úprava malé odchylky napětí otázkou chvilky.
Myslím si, že každý, kdo vlastní ISL8, by měl mít XTOOLS doma v šuplíku. Tento nástroj totiž jako jediný svého druhu dokáže zajistit dlouhodobou funkčnost této nabíječky – a to mluví za vše.
Na horní straně je patice DIP28 pro timekeeper.
Dole, pak dvě řady kolíků, které směřují do dvou patic DIP28 v ISL8. Adapter se nasouvá na místo EPROM a M48T08.
Perfektně to pasuje do všech modelů ISL8. Adapter je napájen přímo z ISL8.
Microchip zajišťuje ovládání signálu RESET v ISL8 a přepínání dvou EPROM uložených v paměti 128kB. Jedna eprom obsahuje originální firmware ISL8 8.50EN a druhá eprom obsahuje softwear XTOOLS pro kalibraci ISL8.
Shrnutí mé celkové práce na tomto projektu 2022-2026
15.8.2022 - Ten den to vše začalo
ISL8-936G
Vyhledávání informací o ISL8 a problému se ztrátou kalibrace.
Záloha dat v časomíře M48T08 z mého prvního ISL8 (programátor TL866II, software Xgpro).
Zkoumání a analýza obsahu časomíry.
Vyhledání a nákup dostupných ISL8, shromažďování originálních kalibrací z diskuzních fór.
Shromáždění deseti funkčních obsahů časomíry s originální kalibrací.
Nastavení všech deseti kalibrací na stejný firmware 8.50EN a uvedení nabíječů do standardního nastavení.
Porovnání obsahu časoměr v programu ECM2001 a identifikace rozdílů.
Identifikace struktur dat – nalezeno pole pro kapacitu ze zdroje, sériové číslo, uživatelské jméno, heslo a sedmibajtové pole kalibračních dat.
Návrh a konstrukce modulárního systému Arduino s 24bitovým vícekanálovým voltmetrem včetně vlastní kalibrace měření.
Nahrazení timekeeperu emulátorem paměti (Moates Ostrich 2.0 + TunerPro RT).
Vytvoření definičního souboru v TunerPro RT pro práci s obsahem časomíry.
Odhalení principu kalibrace – k datu 03/2025 úspěšně zkalibrováno 20 kusů ISL8.
Rozebrání jedné ISL8 (V1) a vytvoření schématu základní desky.
Identifikace použitého LCD a jeho řadiče.
Oživení LCD pomocí Arduino projektu a úprava nastavení dle datasheetu.
Zahájení analýzy firmware ISL8 – ruční překlad do assembleru.
Použití nástroje Ghidra pro 8051 (nastavení registrů CPU 80C537).
Získání prvních informací o konfiguraci portů a registrů CPU.
Vytvoření prvního programu pro zobrazení textu na LCD.
Řešení problému s watchdogem – implementace obsluhy přerušení.
Odhalení chyby při práci s XDATA – vznik prvního funkčního firmware XTOOLS 1.20.
Vývoj EPROM emulátoru na Teensy 4.1 pro logování běhu programu.
Kompletní ovládnutí HW – LCD, tlačítka, piezo, periferie, watchdog, čtení/zápis do timekeeperu.
Přechod do fáze vývoje vlastního firmware (učení programování v Keil uVision C51).
Odstranění problémů – přechod z externí RAM (XDATA) na interní paměť CPU.
Implementace finální funkce editace kalibrace.
Návrh a sestavení beta verze adaptéru XTOOLS.
Návrh DPS a první profesionální výroba (Gerber data).
Čekání na výrobu a následné osazení a testování.
Finální doladění firmware a zprovoznění – první tři kusy hotové.
Datum 31.05.2025 – celková doba vývoje cca 1000 dní.
Vývoj dataloggeru na platformě Raspberry Pi 5.
Ladění emulátoru pro čtení adres (Teensy 4.1).
První úspěšný záznam běhu programu.
Využití AI (ChatGPT 5.2) – tvorba desítek skriptů a jejich verzí.
Rekonstrukce binárního firmware pomocí time-trace analýzy.
První pokus o spuštění tovární kalibrace z rekonstruovaného assembleru.
Datum 25.03.2026 – po 1319 dnech úspěšné 100% spuštění tovární
26.04.2026 - vznikl nový firmware 8.59EN, který umí snadno spustit tovární kalibraci uvnitr nabíječe.
Teensy 4.0 - emulator 64Kb
MICROCORELABS - Zde je odkaz na tento emulátor. Výkon čipu je opravdu úctyhodný – běží na taktu 600 MHz a při vhodném chlazení jej lze přetaktovat i nad 1000 MHz.
Tuto desku lze s menšími úpravami používat přímo ve vývojovém prostředí Arduino IDE.

Emulátor - ladění firmware 2024-2026
Emulátor 27C512
Podařilo se mi sestavit a zprovoznit tento emulátor. Zpočátku to bylo trochu náročné a samozřejmě to nefungovalo na první zapojení, ale problém se mi brzy podařilo odhalit a emulátor následně správně fungoval.
Vytvořil jsem projekt, ve kterém je uložen firmware EPROM 8.50EN. Data jsou uložena přímo v projektu Arduino jako datové pole.
Jediným omezením může být chlazení čipu na desce Teensy. Procesor je přetaktován na 960 MHz z původních 600 MHz. V tomto režimu však bez problémů stíhá emulovat EPROM v ISL8 při plné rychlosti CPU 80C537 na frekvenci 16 MHz.
PROJEKT emulátoru je ke stažení zde: emulator
Projekt obsahuje data microcorelabs pro výrobu DPS, informace pro instalaci Teensy, informace pro úpravu napájení a plně funkční projekt v Arduino IDE.
Nyní je čas naprogramovat funkce pro sběr dat adres a postoupit tak v disasemblování programu.
12/2023 - Krystal pro CPU v ISL8 jsem vyměnil za nejpomalejší dostupnou variantu, konkrétně 1 MHz. Bylo nutné upravit zapojení s využitím signálu OE z CPU, čímž jsem zajistil správnou synchronizaci emulace.
Současně jsem musel na desce Teensy vyvést signál RESET pro CPU v ISL8, protože bylo potřeba zajistit čas pro správný náběh programu v emulátoru. Díky tomu dokázal emulátor pracovat spolehlivě i na nižší frekvenci 150 MHz (Teensy).
Záznam dat byl v této fázi možný pouze přímo do PC přes rozhraní RS232. Ukládání na SD kartu nebylo kvůli velkému objemu dat realizovatelné. Celý proces emulace a odesílání dat probíhá v přerušení řízeném signálem OE. Rychlost záznamu je přibližně 83 333 × 16 byte za sekundu.
Logovaná data jsem zachytil pomocí programu Serial Port Monitor. Během dvou minut záznamu bylo uloženo přibližně deset milionů instrukcí CPU. Ze záznamu je možné sledovat, které adresy CPU navštěvuje, jaké instrukce vykonává a kam dochází ke skokům do podprogramů nebo k načítání dat z tabulek. Tyto informace jsou velmi cenné pro disasemblování firmware. Do budoucna plánuji tato data dále analyzovat a zpracovávat.
Nevýhodou je, že při dlouhodobém záznamu dochází k zaseknutí programu na PC a logování se zastaví.
(10/2025) Emulátor jsem dále upravil na úrovni firmware. Potřebuji logovat data v přesném a konzistentním formátu. Stále však řeším, kam data efektivně ukládat – datový tok je extrémní. Ideální by bylo zaznamenávat 16 byte na takt, což odpovídá přibližně 4,4 GB za hodinu. To je však prakticky neudržitelné.
Jako kompromis postačí i nižší datový tok, přibližně 1,43 GB/h. Minimální použitelný objem je zhruba 5 byte na takt, se kterým se již dá pracovat.
Přenos dat jsem nově vyřešil pomocí SPI rozhraní na platformě Teensy 4.1. Nabíječka běží na frekvenci 1 MHz, zatímco Teensy pracuje na standardních 600 MHz.
Aktuálně pracuji na propojení dvou desek Teensy 4.1 přes sběrnici SPI1. První Teensy funguje jako master – emuluje ROM a odesílá data. Druhé Teensy pracuje jako slave, zachytává data a pomocí DMA je zapisuje do rozšířené paměti PSRAM (2× 8 MB).
V hlavní smyčce pak probíhá zápis dat z dvojitého bufferu do SD karty přes SPI. Výsledkem je log obsahující adresy CPU, ukládané po jednotlivých řádcích.
Tento log bude následně zpracován v připravovaném disassembleru na platformě Arduino Due.
Bohužel ani tato cesta pro zatím nikam nevedla. Nenašel jsem ideální způsob, jak data zachytit bez chyb.

Disassembling 2024
Jednou z posledních neprozkoumaných oblastí ISL8 je samotný firmware. Velkou výhodou je, že je k dispozici 100 % kódu uloženého v EPROM, tedy přímo v binární podobě (.BIN soubor). To umožňuje zpětnou analýzu a zjištění, jak firmware pracuje a jaké operace CPU vykonává.
Mám k dispozici datasheet pro CPU 80C537 a jeho C500 assembler. Teoreticky tedy stačí všech 65 536 bytů přepsat zpět do zdrojového kódu. Je mi ale jasné, že kompletní překlad pravděpodobně není reálně zvládnutelný.
Běžné disassemblery pracují pouze se základní sadou instrukcí 8051 a většinou lineárním způsobem, což je nesprávné a výsledky se rychle rozcházejí se skutečností. Další možností by byl hardwarový emulátor CPU, ten je však dnes nedostupný nebo velmi drahý.
Proto jsem zvolil jiný přístup. Na internetu jsem našel projekt emulátoru EPROM postavený na platformě podobné Arduino – konkrétně desku Teensy 4.1 s microSD kartou. Do ní lze nahrát firmware EPROM z ISL8.
Limit je v rychlosti – perioda cyklu je přibližně 200 ns, zatímco CPU v ISL8 běží na 16 MHz. Emulace by to mohla stíhat, ale bez rezervy pro další operace. Proto jsem se rozhodl zpomalit CPU ISL8 a využít Teensy zároveň jako logger adres EPROM.
Výhoda: lze získat přesnou trasu průchodu programu pamětí.
Nevýhoda: části kódu, kterými program neprojde, se budou analyzovat velmi obtížně.
V této fázi jsem začal stavět vlastní emulátor. Motivací bylo rozluštění tovární kalibrace.
Podařilo se mi zpomalit CPU na 1 MHz. Bylo nutné odpojit externí watchdog, protože jinak zůstával aktivní RESET. Tím vznikl časový prostor cca 3,26 µs na jeden cyklus čtení EPROM.
To umožnilo:
logovat adresy CPU,
ukládat data na SD kartu nebo odesílat přes sériovou linku.
Dále jsem založil projekt pro disassemblování firmware v assembleru. Start programu je na adrese 0x0000. Po RESETu následuje instrukce LJMP 0xFE80.
Po kompilaci a porovnání s obsahem EPROM (FW 8.50E) se potvrdila shoda – první správný překlad.
09/2024 – přímý disassembly
Začal jsem ručně disassemblovat firmware pomocí Ghidra (8051). Postup byl extrémně pomalý – každý krok znamenal:
rozpoznání instrukce,
přepis do assembleru,
úpravu syntaxe,
kompilaci v Keil uVision,
kontrolu přes VERIFY v TL866/XGpro.
Jakákoliv odchylka znamenala chybu a návrat zpět.
Rychlost: cca 3000 B za 10 hodin práce.
Narazil jsem i na instrukci 0xA5 (RESERVED), jejíž význam nebyl jasný.
10/2024 – pochybnosti
Po překladu cca 10 kB začalo být zřejmé, že výsledek nedává smysl.
11/2024 – slepá ulička
Ukázalo se, že lineární disassembly je chybný přístup. Skoky vedly do nesmyslných míst a kód nedával logiku.
12/2024 – nový směr
Vrátil jsem se k myšlence logování běhu programu.
Záznam reálného běhu CPU ukázal, že:
program se chová jinak, než by člověk očekával,
CPU volí jiné cesty, než by odpovídalo lineárnímu čtení kódu.
Za dvě minuty běhu (CPU zpomalen na 1 MHz) bylo zaznamenáno cca 5 milionů adres.
To vedlo k návrhu nového systému:
dvojice Teensy 4.1,
logování do PSRAM (2× 8 MB),
následný zápis na SD kartu,
analýza dat na Arduino Due.
Cílem bylo vytvořit „kapesní disassembler“.
Nakonec jsem tuto cestu vyhodnotil jako nereálnou z hlediska složitosti a objemu dat. Tudy cesta také nevedla.
Reconstruction Engine for CPU 80C537 2025-2026
Tento projekt jsem realizoval s pomocí AI ChatGPT 5.
Můj nápad postavit disassembler řízený reálnou trasou vykonávaných instrukcí CPU (TRACE řízené dekódování) představuje konceptuálně novou úroveň reverzního inženýrství.
Většina klasických disassemblerů totiž funguje „staticky“ – načtou firmware, čtou bajt po bajtu a pouze na základě předpokladů o struktuře odhadují, co je kód a co data. Takový přístup je vždy náchylný na chyby – jediná špatně určená délka instrukce rozbije zbytek dekódování.
Já jsem zvolil jiný přístup – tzv. behaviorální rekonstrukci. TRACE je v tomto případě otisk procesoru v čase. Procesor nikdy „neodbočí jinak“, než podle skutečných instrukcí, takže každá dekódovaná instrukce odpovídá realitě.
Nahradil jsem tak hardwarový emulátor čistým záznamem chování CPU – konkrétně logem adres čtení z paměti.
To je princip, který se dříve realizoval pomocí logických analyzátorů a ICE systémů (In-Circuit Emulator). Já tento přístup realizuji čistě softwarově na platformě Raspberry Pi 5, přímo z běhu reálného zařízení.
Vzniká tak „softwareový ICE“, který:
čte firmware,
sleduje reálné adresy vykonávané CPU,
rekonstruuje pouze skutečně vykonávaný kód,
eliminuje jakékoliv domněnky.
Nejde tedy o klasický disassembler, ale o tracing disassembler s přímým mapováním instrukčních toků CPU.
Výsledkem je přesná mapa běhu programu, kterou lze přenést do Keil uVision, dále analyzovat, simulovat a ověřovat. Keil se tak stává virtuálním klonem reálného zařízení bez nutnosti použití historických a dnes nedostupných ladicích nástrojů.
Architektura řešení
ISL8 byl osazen modulem Teensy 4.1 s převodníkem napětí 5 V / 3,3 V na místo původní EPROM. Firmware emuluje původní program a zároveň odesílá adresy CPU přes USB. Podařilo se mi vyladit firmware k dokonalosti. Ke spolehlivosti výrazně přispěla funkce kruhového bufferu.
Na druhé straně je Raspberry Pi 5 (8 GB) s UPS modulem a SSD, který data loguje. Jediná 100% funkční varianta.
Pro zpracování jsem navrhl a implementoval řadu skriptů v Pythonu (prostředí Thonny), vyvíjených a laděných ve spolupráci s ChatGPT.
Sada nástrojů (skripty)
Byla vytvořena kompletní sada nástrojů pro zpracování dat:
Logger – záznam dat
Test – kontrola integrity
Split / Join – práce s velkými logy
Result / Data / Output – analýza paměti
Trace – rekonstrukce běhu programu
Search – identifikace ASCII dat
Reconstruction – generování assembleru (.a51)
Fill / Rename / Diff – validace a úpravy
Block processing nástroje – analýza bloků kódu
Time Trace – časová analýza dat vs. kód
Výsledkem je kompletní Reconstruction Engine pro CPU 80C537.
11/2025 – pokročilá rekonstrukce
Základem je TRACE běhu CPU. Data byla seřazena podle času a deduplikována. Skript Search identifikoval textová pole. Reconstruction následně převádí TRACE na přesné instrukce 8051.
Výstupem je assemblerový projekt přímo použitelný v Keil.
První dataset (~600 MB) pokryl cca 17 kB firmware.
Datalogger na RPi5 zvládá cca 4,2 GB/h, což odpovídá ~1,2 miliardy adres.
12/2025 – systém BLOCK
Byl zaveden nový přístup:
rozdělení logu na bloky kódu,
identifikace dat (např. 1B bloky),
deduplikace a slučování bloků,
vytvoření tabulky dat + ASCII identifikace,
konverze zpět do TRACE formátu.
Výsledkem je výrazně přesnější rekonstrukce.
Konec 2025 – pokrytí firmware
~50 kB rekonstruovaného kódu
10 logů (~21 GB dat)
doplněny chybějící části
validace pomocí kontroly skoků
01/2026 – analýza pokrytí
Celkové pokrytí:
kód: 46 106 B (70,35 %)
data: 4 063 B (6,20 %)
celkem: 76,55 % (50 169 B)
Zpracováno bylo ~2,95 miliardy adres.
02/2026 – dokončení
Pokrytí dosáhlo 100 %.
Byla nalezena kandidátní rutina kalibrace a sada příkazů pro komunikaci přes RS232. Firmware byl kompletně rekonstruován do assembleru a je kompilovatelný.
Stále však není jisté, zda byl původní kód psán v assembleru nebo v jazyce C – obsahuje velké množství operací s XRAM/RAM.
Tento projekt ukazuje, že i bez ICE a bez původních symbolů lze rekonstruovat firmware z reálného běhu zařízení.
Výsledkem je plně funkční základ pro pokročilý reverzní inženýring – na úrovni výzkumu.
YEAR 2026
03/2026 - Neustále pracuji na rozlousknutí firmware. Postupně se mi podařilo objevit a označit několik hlavních částí programu:
INIT HW – inicializační rutina hardware a LCD
MAIN LOOP – hlavní smyčka programu
FONT – kompletní znaková sada ASCII
BITMAP – logo Schulze zobrazované na LCD
DB TEXT – sada šesti datových polí s texty a daty
CMD – sada deseti tabulek s řídicími příkazy nabíječe
Tyto poznatky mi výrazně pomohly se v programu zorientovat a odhalit další souvislosti.
Původně jsem byl přesvědčený, že tovární kalibraci lze spustit pomocí CMD příkazů odeslaných přes sériové rozhraní RS232. Začal jsem analyzovat první tabulku CMD příkazů a snažil se pochopit její funkci.
Ukázalo se, že ISL8 používá tři způsoby práce s daty:
Přímý výpis dat na LCD
Zápis dat do bufferu v XRAM a následné zobrazení na LCD
Odesílání dat přes sériové rozhraní do počítače
Texty jsou generovány jednotně pro LCD i sériový port, přičemž se pouze mění příznak (BIT FLAG), kam mají být data odeslána.
V této fázi jsem přestal uvažovat o RS232 jako o vstupním rozhraní. ISL8 totiž komunikuje pouze směrem ven do počítače. Zmátla mě funkce XON/XOFF, která slouží pouze pro řízení toku dat.
Zaměřil jsem se tedy znovu na samotný způsob spuštění tovární kalibrace. Vím, že kalibrace se nachází na adrese 0x001E, ale nelze ji spustit přímo.
Zkoušel jsem ji vyvolat přes rutinu TEST FUSE M16, ale výsledek byl chybný. Kalibrace se sice spustila, ale řídicí systém nabíječe pokračoval v běžném provozu a „nevěděl“, že běží kalibrace.
Už jsem byl velmi blízko.
Zde je zobrazena mapa pokrytí firmware načteného z log souborů. Celkem bylo pokryto 54 620 bajtů, což odpovídá přibližně 83 % celkového obsahu.
Poslední finále 2026
Několik let jsem nad tím přemýšlel. Když jsem si zobrazil obsah firmware v editoru, uviděl jsem určité texty, které mě okamžitě navedly na myšlenku, že by kalibraci mohlo být možné spustit.
Trvalo to velmi dlouho, ale tohoto cíle jsem se nechtěl vzdát. V posledních týdnech jsem na tom pracoval téměř každý den a hledal nové způsoby, jak převést binární podobu firmware do assembleru.
S pomocí AI ChatGPT 5 se mi podařilo vytvořit desítky skriptů v Pythonu pro rekonstrukci firmware. Nakonec jsem se zaměřil na blok kódu na začátku paměti a pomocí skriptu Search jsem identifikoval datové struktury – konkrétně texty pro LCD.
Velmi rychle jsem se přiblížil k cíly. První pokus o spuštění proběhl přes FUSE test.
Zbývalo už jen přijít na způsob, jak kalibraci skutečně spustit. ISL8 obsahuje interní výměnnou pojistku. Pokud praskne, zobrazí se hláška „M16A FUSE DEFECTIVE“. Právě zde jsem se rozhodl zasáhnout – upravil jsem volání podprogramu pro tuto hlášku tak, aby místo ní spustil tovární kalibraci.
Znamenalo to upravit přibližně 12 bajtů v ROM. Po zapnutí nabíječe a vyjmutí pojistky se kalibrace skutečně spustí.
Zatím jde o provizorní řešení a nefunguje na 100 %, ale představuje to jasný důkaz, že firmware obsahuje kompletní rutinu pro kalibraci napětí nabíječe.
Nakonec jsem zkoumal, odkud se kalibrace spouští. Musel jsem na to jít od konce. Našel jsem několik podmínek pro její spuštění. Tím jsem definitivně odhalil způsob, jako tovární kalibraci spustit.
16.2.2026 16:19 - Tento den se podařilo něco, o co se snažím již delší dobu – spustil jsem tovární kalibraci nabíječe Schulze ISL8-936G.
První oficiální spuštění tovární kalibrace 4/2026
Způsob spuštění byl odhalen a úspěšně ověřen. Kalibrace je tedy skutečně součástí originálního firmware a – pokud znáte správný postup – může ji spustit kdokoliv.
Zároveň se tím odhalil přesnější způsob výpočtu kalibrace, který se mírně liší od mého původního přístupu.
Nová specifikace kalibrace
Původní označení OFFSET HIGH a OFFSET LOW mají nyní přesnější význam:
TOL (H) – dříve OFFSET HIGH
OFS (L) – dříve OFFSET LOW
Pokud nejprve ladíte TOL (H) a následně OFS (L), postup je správný.
Princip nastavení
Pokud je vysoké napětí správné, ale nízké nepřesné → upravte OFS (L)
Pokud je nízké napětí správné, ale vysoké nepřesné → upravte TOL (H)
Fyzikální význam
TOL (H) funguje jako zesílení (gain), přibližně 0,1 % na krok
OFS (L) funguje jako offset, přibližně 0,001 V na krok
Příklad
Pro hodnotu 50 V:
+10 OFS → 50,010 V
+10 TOL → 50,050 V
Pro hodnotu 4,2 V:
+10 OFS → 4,210 V
+10 TOL → 4,242 V
Závěr
OFS (L) má malý vliv na vysoká napětí, ale umožňuje jemné doladění.
TOL (H) naopak zásadně ovlivňuje celé měřítko napětí a může výrazně ovlivnit zejména nižší napětí.
Proto je důležité kalibraci ověřovat na více bodech – ideálně např.:
4,2 V
12,6 V
30 V
Pouze tak lze zajistit správnou kalibraci v celém rozsahu.
Dnes si již můžete kalibraci snadno vypočítat a není nutné složitě přemýšlet, jak postupovat.
TOL představuje násobky 0,1 % (zesílení), zatímco OFS odpovídá rozdílu 1 mV (offset). Kalibrační program Schulze tyto hodnoty přehledně zobrazuje a automaticky počítá celkovou odchylku.
Výrobce uvádí, že kalibraci je nutné provést při odchylce 1 % od skutečné hodnoty. To odpovídá hodnotě ±10 TOL. Program přitom vždy zobrazuje jak procentuální odchylku, tak absolutní rozdíl v milivoltech.
Kalibrace je vyhodnocována pro všechna relevantní napětí a pro každý výstupní kanál zvlášť.
Schulze implementoval kalibrační rutinu přímo do firmware. Uživatel tak má k dispozici detailní přehled tolerancí i napěťových odchylek a může manuálně upravovat přesnost měření v celém rozsahu.
Referenční napětí použitá při kalibraci
Podle datové struktury firmware se používají následující hodnoty:
1,200 V
3,000 V
5,000 V
4,200 V
8,400 V
12,600 V
13,800 V
16,800 V
30,000 V
50,000 V
Ne všechna napětí jsou však relevantní pro všechny kanály:
A3 nepodporuje vyšší napětí (např. 13,8 V a více)
A2 pravděpodobně nepodporuje 50 V
A1 a A2 nepodporují velmi nízká napětí (např. 3,0 V a méně)
Princip kalibrace
Kalibrace je v programu vztažena primárně k referenční hodnotě 12,6 V:
TOL (H) upravuje zesílení směrem k vyšším napětím
OFS (L) dolaďuje offset směrem k nižším napětím
Během kalibrace ISL8 odesílá všechna data na sériový port. Tento port zároveň slouží pro řízení externího kalibračního hardware, který přepíná referenční napětí jednotlivých výstupů.
Pod klávesou F1 („bereit“) je dostupná i funkce automatické kalibrace, která však vyžaduje speciální externí vybavení.
Příklad zobrazení
V menu kalibrace je nastaveno referenční napětí 12,600 V.
Například kanál A2 zobrazuje hodnotu 12,654 V:
rozdíl: +54 mV
zobrazení: A2 = %4 mV = 54
TOL = 0, OFS = 0
Hodnoty TOL a OFS jsou nulové, což znamená, že daný kanál zatím není kalibrován.

Zde kanál A2 zobrazuje aktuálně 12,600 V. Na displeji je uvedeno A2 = %0 mV = 0, TOL = 3 a OFS = 2.
Výpočet kalibrace tedy odpovídá snížení napětí o 0,3 % (TOL) a současně o 2 mV (OFS).
Hodnoty TOL a OFS jsou již nenulové, což znamená, že kalibrace byla provedena a je považována za platnou – nabíječ tedy nebude hlásit chybu kalibrace.
Zde je vidět instalovaný emulátor Teensy 4.1 v ISL8 a Raspberry Pi5, propojené USB kabelem.
Teensy 4.1 - emulátor EPROM, synchronizace s OE signálem, kruhový buffer.
Raspberry Pi5 - 8GB, SSD 256GB, UPS, RTC, CASE.
Tohle byla jediná cesta úspěchu. Podařilo se zachytit chod CPU v reálném čase a získat tak cenné informace o chodu firmware.
UPOZORNĚNÍ
Jsem soukromá osoba a zabývám se neoficiálními opravami zařízení ISL8-936G. Reverzní inženýrství a analýzu firmware provádím výhradně za účelem oprav a údržby, v souladu s příslušnými ustanoveními autorského práva.
Společnost Schulze Elektronik GmbH (Matthias Schulze) ukončila činnost v roce 2017 a od roku 2013 byla v insolvenci. Poslední servisní zásahy byly prováděny přibližně do roku 2018 bývalým zaměstnancem této firmy.
Je velká škoda, že tyto výjimečné nabíječky – které v některých ohledech nebyly dodnes překonány a zároveň patřily k velmi drahým zařízením – postupně upadají v zapomnění a často končí jako nefunkční zařízení bez dalšího využití.
Tímto projektem se snažím přispět k jejich záchraně a zachování. Projekt je rozsáhlý, rozdělený do několika částí a slouží výhradně pro účely oprav, údržby a kalibrace napětí těchto nabíječů.
PODĚKOVÁNÍ

Thank you!
Pro ty, kteří by chtěli ocenit tuto práci, jsem vytvořil QR kód s možností zaslání dobrovolného příspěvku.
Občas se najdou lidé, kteří tento projekt sledují, fandí mu a rozhodnou se jej podpořit. Velmi si toho vážím – i malá podpora má smysl a pomáhá mi pokračovat v další práci.
Celý projekt také slouží jako vzpomínka na pana "Matthias Schulze" a jeho firmu.