BUCHARĆŻv MAKITA BMS UNLOCKER (OBI) je malĂ© zaĆĂzenĂ postavenĂ© na Äipu ESP32, kterĂ© se pĆipojĂ na datovĂ© kontakty baterie Makita LXT (18V / 14,4V) a pĆeÄte z jejĂ vnitĆnĂ elektroniky (BMS) diagnostickĂĄ data. Ta ti pak ukĂĄĆŸe na webovĂ© strĂĄnce v prohlĂĆŸeÄi â v poÄĂtaÄi i v mobilu.
UmĂ pĆeÄĂst: napÄtĂ jednotlivĂœch ÄlĂĄnkĆŻ, celkovĂ© napÄtĂ paketu, teploty, poÄet nabĂjecĂch cyklĆŻ, odhad stavu nabitĂ, chybovĂ© a ochrannĂ© kĂłdy, stav zĂĄmku a zdravĂ baterie. U starĆĄĂch âzamÄenĂœchâ bateriĂ (nabĂjeÄka je odmĂtĂĄ nabĂjet) umĂ bezpeÄnÄ opravit vnitĆnĂ stav a odemknout je.
BUCHAR's MAKITA BMS UNLOCKER (OBI) is a small ESP32-based device that connects to the data contacts of a Makita LXT battery (18V / 14.4V) and reads diagnostic data from its internal electronics (BMS). It then shows the data in a web page in your browser â on a computer or phone.
It reads: individual cell voltages, total pack voltage, temperatures, charge cycle count, estimated state of charge, error and protection codes, lock state and battery health. On older âlockedâ batteries (the charger refuses to charge them) it can safely repair the internal state and unlock them.
| SouÄĂĄstkaPart | DetailDetail |
|---|---|
| MikrokontrolĂ©rMicrocontroller | ESP32-C3 SuperMini (doporuÄeno, malĂœ)(recommended, tiny) neboor ESP32 DevKit / Mini |
| RezistoryResistors | 4à 4,7 kΩ (pull-up dat, aktivace tranzistoru)(data pull-up, transistor drive) |
| TranzistorTransistor | NPN BC547 neboor N-MOSFET 2N7000 (pin ENABLE)(ENABLE pin) |
| KonektorConnector | 3D-tiĆĄtÄnĂœ adaptĂ©r nebo plochĂ© svorky na kontakty baterie3D-printed adapter or flat clamps for the battery contacts |
| NapĂĄjenĂPower | USB neboor 5V step-down z bateriefrom the battery |
| SignĂĄlSignal | ESP32 DevKit / Mini | ESP32-C3 SuperMini | PoznĂĄmkaNote |
|---|---|---|---|
| DATA (1-Wire) | GPIO4 | GPIO3 | pull-up 4,7 kΩ na 3,3 V4.7 kΩ pull-up to 3.3 V |
| ENABLE | GPIO5 | GPIO4 | bĂĄze NPN pĆes 4,7 kΩNPN base via 4.7 kΩ |
| GND | GND | GND | spojit se zĂĄpornĂœm pĂłlem baterie (Bâ)connect to battery negative (Bâ) |
NejjednoduĆĄĆĄĂ cesta: na makita.znouze.eu klikni na âNahrĂĄt firmwareâ, vyber typ desky a pĆipoj ESP32 pĆes USB. VĆĄe probÄhne pĆĂmo v prohlĂĆŸeÄi (Chrome nebo Edge na poÄĂtaÄi).
PokroÄilĂĄ cesta pĆes PlatformIO:
pio run -e esp32-c3-supermini
pio run -e esp32-c3-supermini -t uploadfs # web rozhranĂ
pio run -e esp32-c3-supermini -t upload -t monitor
Easiest way: on makita.znouze.eu click âUpload firmwareâ, pick your board type and connect the ESP32 via USB. Everything runs right in the browser (Chrome or Edge on a computer).
Advanced way via PlatformIO:
pio run -e esp32-c3-supermini
pio run -e esp32-c3-supermini -t uploadfs # web interface
pio run -e esp32-c3-supermini -t upload -t monitor
MĂĄĆĄ tĆi moĆŸnosti:
http://makita.local â plnĂ© rozhranĂ s ĆŸivĂœmi grafy.MAKITA-OBI (heslo makita1234) a otevĆi http://192.168.4.1.You have three options:
http://makita.local â full interface with live charts.MAKITA-OBI (password makita1234) and open http://192.168.4.1.Po kliknutĂ na Skenovat probÄhne trojitĂ© ovÄĆenĂ pĆĂtomnosti (proti âduchĆŻmâ â faleĆĄnĂ© detekci) a pĆeÄtou se statickĂĄ i dynamickĂĄ data:
After clicking Scan, a triple presence check runs (against âghostsâ â false detection) and static and dynamic data are read:
NabĂjeÄka Makita reĂĄlnÄ kontroluje jen tĆi vÄci: jeden âzĂĄmkovĂœâ pĆŻlbajt (nybble 34) a dva kontrolnĂ souÄty (CS0 a CS2). OdemknutĂ tedy znamenĂĄ: vynulovat zĂĄmkovĂœ pĆŻlbajt, pĆepoÄĂtat souÄty a bezpeÄnÄ zapsat zpÄt. Historie, cykly ani identita baterie se nemÄnĂ.
The Makita charger really checks only three things: one âlockâ nybble (nybble 34) and two checksums (CS0 and CS2). Unlocking therefore means: zero the lock nybble, recalculate the checksums and safely write it back. The battery's history, cycles and identity are left unchanged.
ZrcadlovĂĄ funkce k odemknutĂ: zapĂĆĄe nenulovĂœ zĂĄmkovĂœ pĆŻlbajt s platnĂœmi souÄty, takĆŸe nabĂjeÄka baterii odmĂtne nabĂjet. PouĆŸĂvĂĄ stejnĂœ mechanismus jako odemknutĂ, takĆŸe tvĆŻj vlastnĂ nĂĄstroj ji spolehlivÄ vrĂĄtĂ zpÄt. HodĂ se jako imobilizĂ©r proti krĂĄdeĆŸi.
The mirror function of unlocking: it writes a non-zero lock nybble with valid checksums, so the charger refuses to charge the battery. It uses the same mechanism as unlocking, so your own tool reliably reverses it. Useful as an anti-theft immobilizer.
Data (tzv. rĂĄmec) jsou uloĆŸena v internĂ flash/data-flash pamÄti pĆĂmo v mikrokontrolĂ©ru BMS â ne v samostatnĂ© vymÄnitelnĂ© EEPROM. NapĆ. BL1830 mĂĄ Äip MC68HC908JK3E se 4 KB internĂ zabezpeÄenĂ© FLASH (chrĂĄnÄnĂ© heslem).
| Model | ĆĂdicĂ ÄipController chip | PamÄĆ„Memory |
|---|---|---|
| BL1850B / BL1860B | LIPW015 (STM32L051) | internĂ data-flash MCUinternal MCU data-flash |
| BL1460A | LIPW014 (STM32L051) | internĂ data-flash MCUinternal MCU data-flash |
| BL1830 (starĆĄĂolder) | MC68HC908JK3E | 4 KB internĂ zabezpeÄenĂĄ FLASH4 KB internal secured FLASH |
The data (the âframeâ) is stored in the internal flash/data-flash of the BMS microcontroller itself â not in a separate replaceable EEPROM. For example, the BL1830 uses the MC68HC908JK3E chip with 4 KB of internal secured FLASH (password-protected).
Baterie typu 5 (deska F0513 / Renesas RL78) majĂ vlastnĂ sadu ÄtecĂch pĆĂkazĆŻ. NĂĄstroj bezpeÄnÄ pĆeÄte napÄtĂ ÄlĂĄnkĆŻ a teplotu (jen ÄtenĂ, ĆŸĂĄdnĂœ zĂĄpis).
Type 5 batteries (F0513 / Renesas RL78 board) have their own set of read commands. The tool safely reads cell voltages and temperature (read-only, no writing).
| Rodina / deskaFamily / board | PĆĂkladyExamples | PoznĂĄmkaNote |
|---|---|---|
| STANDARD (0xF1, ânew familyâ) | BL1830B, BL1840B, BL1850B-D, BL1860B, BL1460A | plnĂĄ podpora (ÄtenĂ, diagnostika, odemykĂĄnĂ)full support (read, diagnostics, unlock) |
| STANDARD (0x50, starĆĄĂolder) | BL1815N, BL1840 (bez Bno B) | ÄtenĂ; nÄkterĂĄ pole chybĂ (oÄekĂĄvanĂ©)read; some fields absent (expected) |
| F0513 (typ 5, RL78type 5, RL78) | LIPW017 a pĆĂbuznĂ©and related | ÄtenĂ napÄtĂ/teploty, read-onlyvoltage/temp read, read-only |
| NeznaÄkovĂ© / neznĂĄmĂ©Aftermarket / unknown | â | fallback reĆŸim â ukĂĄĆŸe, co jde pĆeÄĂstfallback mode â shows whatever can be read |
| ProblĂ©mProblem | ĆeĆĄenĂFix |
|---|---|
| Baterie neodpovĂdĂĄBattery not responding | Zkontroluj GND na Bâ, pull-up 4,7 kΩ na DATA, sprĂĄvnĂœ pin dle typu desky.Check GND to Bâ, 4.7 kΩ pull-up on DATA, correct pin for the board type. |
| makita.local nefungujemakita.local doesn't work | PouĆŸij IP z routeru, nebo AP reĆŸim (192.168.4.1).Use the IP from your router, or AP mode (192.168.4.1). |
| FlashovĂĄnĂ nejdeFlashing fails | MusĂ bĂœt HTTPS a Chrome/Edge na PC. Zkontroluj USB kabel (datovĂœ, ne jen nabĂjecĂ).Needs HTTPS and Chrome/Edge on PC. Check the USB cable (data, not charge-only). |
| Po odemÄenĂ stĂĄle nenabĂjĂStill won't charge after unlock | Zkontroluj napÄtĂ a poĆadĂ ÄlĂĄnkĆŻ; nÄkterĂ© revize nemajĂ znĂĄmou opravu.Check cell voltage and order; some revisions have no known fix. |
| Model nerozpoznĂĄnModel not recognized | Fallback reĆŸim ukĂĄĆŸe syrovĂĄ data; mĆŻĆŸe jĂt o neznaÄkovou desku bez protokolu.Fallback mode shows raw data; may be an aftermarket board with no protocol. |
| BMS | Battery Management System â elektronika v baterii, kterĂĄ hlĂdĂĄ ÄlĂĄnky.Battery Management System â the electronics in the battery that watches the cells. |
| 1-Wire | JednovodiÄovĂĄ sbÄrnice, po kterĂ© se komunikuje s BMS.Single-wire bus used to talk to the BMS. |
| RĂĄmecFrame | 32bajtovĂœ blok dat uloĆŸenĂœ v BMS (identita, zdravĂ, zĂĄmek, souÄty).32-byte data block stored in the BMS (identity, health, lock, checksums). |
| Nybble | PĆŻlbajt (4 bity). ZĂĄmek baterie je jeden konkrĂ©tnĂ nybble (Ä. 34).Half a byte (4 bits). The battery lock is one specific nybble (no. 34). |
| SOC / SOH | Stav nabitĂ / stav zdravĂ baterie.State of Charge / State of Health. |
| mDNS | UmoĆŸĆuje adresu makita.local mĂsto IP.Enables the makita.local address instead of an IP. |
Projekt stavĂ na veĆejnĂ©m reverznĂm inĆŸenĂœrstvĂ komunity. VlastnĂ implementace, inspirovĂĄno tÄmito projekty:
The project builds on the community's public reverse engineering. Original implementation, inspired by these projects: