Repository navigation
Releases: TheRepairforge/PocketOBI
Release list
PocketOBI v2.7.1: Japanese review, finer readings
A native-speaker review of the Japanese, and finer readings.
Changed
- Japanese reviewed by a native speaker: more natural, more precise wording throughout (for example 製造番号 for the serial number, 定格容量 for the rated capacity, 製造日 / 組立日 for the dates, タッチ in the touch hints), the temperature shown with ℃, and the charge count as 充電回数 127. Thanks to @k-suzuki959 for the review (#35)!
- Finer readings, in every build: cell voltages to 3 decimals (cell bars, Health, Debug), pack voltage to 2 decimals on the home tile, temperatures to 0.1 degree.
Added
- One build switch per Asian language (
ENABLE_JA,ENABLE_KO,ENABLE_ZH,ENABLE_ZH_TW) for those who build from source: leave a language out for a smaller image. The Asia images below still carry them all.
No change to the reading, the verdicts or the PC bridge: the PackScope companion app needs no update.
Known issue
Flashing a .bin by hand at 0x0 resets the saved settings (language, screen flip, touch calibration). The web flasher keeps them unless you tick "Erase device". After a manual flash, set them again (on a touch board: Tools > Settings > Calibrate touch).
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Asia: English / Japanese / Korean / Vietnamese / Chinese (Simplified and Traditional) |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.7.1-esp32-c3.bin |
PocketOBI-v2.7.1-esp32-c3-asia.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.7.1-cyd.bin |
PocketOBI-v2.7.1-cyd-asia.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.7.1-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
| ES3C28P (ESP32-S3, capacitive touch) | PocketOBI-v2.7.1-es3c28p.bin (+ Vietnamese) |
build from source |
Easiest: the web flasher, from Chrome or Edge, nothing to install. Or by hand: each .bin is a merged image (bootloader + partitions + app), flashed at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.7.1-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.7.1-cyd.bin
esptool --chip esp32s3 write_flash 0x0 PocketOBI-v2.7.1-es3c28p.binIf a CYD flash stops halfway ("chip stopped responding"), add --baud 115200. If the ES3C28P is not detected, hold BOOT, press RESET, then release BOOT. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt).
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.7.0: Traditional Chinese
Traditional Chinese in the Asia build.
Added
- Traditional Chinese in the Asia build (Settings > Language > TW), with Taiwan character forms, translated by a Taiwanese user (#38). Thanks to @yukonx for the translation! The "Connecting..." banner was added after the spreadsheet used for the translation, so its wording (連接中...) is ours and provisional: corrections welcome.
Only the Asia build changes; the other builds are the same as v2.6.0 apart from the version number. No change to the reading, the verdicts or the PC bridge: the PackScope companion app needs no update.
Known issue
Flashing a .bin by hand at 0x0 resets the saved settings (language, screen flip, touch calibration). The web flasher keeps them unless you tick "Erase device". After a manual flash, set them again (on a touch board: Tools > Settings > Calibrate touch).
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Asia: English / Japanese / Korean / Vietnamese / Chinese (Simplified and Traditional) |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.7.0-esp32-c3.bin |
PocketOBI-v2.7.0-esp32-c3-asia.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.7.0-cyd.bin |
PocketOBI-v2.7.0-cyd-asia.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.7.0-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
| ES3C28P (ESP32-S3, capacitive touch) | PocketOBI-v2.7.0-es3c28p.bin (+ Vietnamese) |
build from source |
Easiest: the web flasher, from Chrome or Edge, nothing to install. Or by hand: each .bin is a merged image (bootloader + partitions + app), flashed at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.7.0-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.7.0-cyd.bin
esptool --chip esp32s3 write_flash 0x0 PocketOBI-v2.7.0-es3c28p.binIf a CYD flash stops halfway ("chip stopped responding"), add --baud 115200. If the ES3C28P is not detected, hold BOOT, press RESET, then release BOOT. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt).
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.6.0: ES3C28P board and Simplified Chinese
A third board, the ES3C28P (ESP32-S3 with a capacitive touch screen), and Simplified Chinese in the Asia build.
Added
- ES3C28P board. The LCDWiki ES3C28P, a 2.8" ESP32-S3 board with an ILI9341V screen and FT6336G capacitive touch, now has its own build. Same screens and logic as the CYD, driven by touch, with Settings > Calibrate if taps land off target. Languages: English, French, German, Spanish and Vietnamese. The board has a LiPo charger and a battery socket, so it can run from a small cell instead of a USB cable. The pack lead takes two of the board's sockets: DATA and ENABLE from Expand, 3.3 V and GND from I2C, with 470 Ω pull-ups. Wiring in the README. Thanks to the tester of discussion #22, who brought this board up and tested every early build.
- Simplified Chinese in the Asia build (Settings > Language > ZH), translated by a Chinese user (#29). Thanks to @wu3266089-collab for the translation! The "Connecting..." banner was added after the translation, so its Chinese wording is ours and provisional: corrections welcome.
No change to the reading, the verdicts or the PC bridge: the PackScope companion app needs no update.
Known issue
Flashing a .bin by hand at 0x0 resets the saved settings (language, screen flip, touch calibration). The web flasher keeps them unless you tick "Erase device". After a manual flash, set them again (on a touch board: Tools > Settings > Calibrate touch).
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Asia: English / Japanese / Korean / Vietnamese / Chinese |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.6.0-esp32-c3.bin |
PocketOBI-v2.6.0-esp32-c3-asia.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.6.0-cyd.bin |
PocketOBI-v2.6.0-cyd-asia.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.6.0-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
| ES3C28P (ESP32-S3, capacitive touch) | PocketOBI-v2.6.0-es3c28p.bin (+ Vietnamese) |
build from source |
Easiest: the web flasher, from Chrome or Edge, nothing to install. Or by hand: each .bin is a merged image (bootloader + partitions + app), flashed at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.6.0-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.6.0-cyd.bin
esptool --chip esp32s3 write_flash 0x0 PocketOBI-v2.6.0-es3c28p.binIf a CYD flash stops halfway ("chip stopped responding"), add --baud 115200. If the ES3C28P is not detected, hold BOOT, press RESET, then release BOOT. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt).
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.5.2: Connecting... banner, cleaner messages
A small update: the screen no longer looks frozen while a pack is read, and the short messages are easier to read.
Added
- "Connecting..." while the pack is read (#33). Opening Battery or Repair, refreshing the battery page, and the error-reset and debug reads in Tools now show a yellow "Connecting..." banner until the pack has answered. A read takes a few seconds, and the screen used to sit still during that time. In every language of both builds. Thanks to @scp38 for the contribution.
Changed
- Short messages ("LEDs ON", "Nothing to repair", "Fix hardware first", ...) now use the same font as the rest of the interface instead of the enlarged pixel font.
No change to the reading, the verdicts or the PC bridge: the PackScope companion app needs no update.
Build
Release images are now built by the project's CI with tools/release_bins.sh, which you can also run yourself. The PlatformIO platform is pinned to espressif32@7.1.3 (Arduino core 2.0.17), the one every release so far was built on.
Known issue
Flashing a .bin by hand at 0x0 resets the saved settings (language, screen flip, CYD touch calibration). The web flasher keeps them unless you tick "Erase device". After a manual flash, set them again (on the CYD: Tools > Settings > Calibrate touch).
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Asia: English / Japanese / Korean / Vietnamese |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.5.2-esp32-c3.bin |
PocketOBI-v2.5.2-esp32-c3-asia.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.5.2-cyd.bin |
PocketOBI-v2.5.2-cyd-asia.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.5.2-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
Easiest: the web flasher, from Chrome or Edge, nothing to install. Or by hand: each .bin is a merged image (bootloader + partitions + app), flashed at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.5.2-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.5.2-cyd.binIf a CYD flash stops halfway ("chip stopped responding"), add --baud 115200. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt).
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.5.1: 14.4 V packs (read-only), honest unlock on older packs
A small update: 14.4 V LXT packs are read properly, and the unlock screen is honest about the oldest Makita BMS generation.
Added
- 14.4 V LXT packs (BL14xx), read-only (#28). These 4-cell packs fit the same connector and answer like an 18 V pack, but they report a fifth cell at 0 V. Until now a healthy BL1415N read as a broken sense wire and HARDWARE FIX. A pack whose model starts with
BL14is now read as 4 cells: four cell bars, type "LXT 14.4V", and the checks and the verdict on four cells. Unlock and error reset are not offered on these packs because they have not been validated; a charger lock shows as LOCKED with "not supported". A pack whose model can't be read is still treated as 5 cells.
Changed
- Unlock confirm, older (F0513) packs. When a pack is read through the F0513 cell path, the confirm screen now shows a yellow caveat: the unlock is not validated on this generation, and the pack may still read as locked afterwards. The button stays available, so you can still try. Newer packs are unchanged.
Mirrored in the PackScope companion app, version 1.0.4.
Known issue
Flashing a .bin by hand at 0x0 resets the saved settings (language, screen flip, CYD touch calibration). The web flasher keeps them unless you tick "Erase device". After a manual flash, set them again (on the CYD: Tools > Settings > Calibrate touch).
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Asia: English / Japanese / Korean / Vietnamese |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.5.1-esp32-c3.bin |
PocketOBI-v2.5.1-esp32-c3-asia.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.5.1-cyd.bin |
PocketOBI-v2.5.1-cyd-asia.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.5.1-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
Easiest: the web flasher, from Chrome or Edge, nothing to install. Or by hand: each .bin is a merged image (bootloader + partitions + app), flashed at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.5.1-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.5.1-cyd.binIf a CYD flash stops halfway ("chip stopped responding"), add --baud 115200. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt).
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.5.0: new interface, and an Asia build in Japanese, Korean and Vietnamese
PocketOBI v2.5.0: new interface, and an Asia build in Japanese, Korean and Vietnamese
A redesigned interface on every screen, a new Asia build, safer touch confirms on the CYD, and honest results when a read goes wrong. There was no 2.4.0 release: its work ships here.
New
- New interface on every screen. One shared set of components (status card, value tiles, check rows, before/after cards). Every screen has a footer that says what the controls do, and results use a clear status word (UNLOCKED, STILL LOCKED, CLEARED, UNCHANGED, NOT RE-READ, NO RESPONSE...) with a one-line explanation under it.
- Asia build: English + Japanese + Korean + Vietnamese. It replaces the Japanese build (
-asiafiles, they were-ja). French, German and Spanish stay in the standard build.- Korean is a first draft that no native speaker has reviewed yet. If you read Korean, the review pack is in discussion #26.
- Vietnamese was translated by a Vietnamese user (thank you!), without accents since the device fonts have none.
- Battery pages: status and PACK / TEMP tiles above the cells; without a pack the pages keep their layout and show
--. - Repair: the diagnosis lists what was checked, the confirm screen says what the write does, a progress card follows the unlock steps, and the result shows the state before and after.
- Tools has two pages: device tools, then the pack actions marked WRITE.
Fixed
- CYD: a tap anywhere on "Unlock pack?" or "Reset error?" ran the write. Only the Unlock / Reset button confirms now.
- A corrupted read is no longer shown as a battery fault (#16): a cell above 5 V or a pack above 22 V is reported as a comm error (usually wiring or pull-ups).
- Reset error: when the re-read after the reset failed, the screen said UNCHANGED. It now says NOT RE-READ.
- An older (F0513) pack read after a newer one showed the previous pack's assembly date.
- With no pack connected, the read gives up sooner.
Known issue
Flashing a .bin by hand at 0x0 resets the saved settings (language, screen flip, CYD touch calibration). The web flasher keeps them unless you tick "Erase device". After a manual flash, set them again (on the CYD: Tools > Settings > Calibrate touch).
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Asia: English / Japanese / Korean / Vietnamese |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.5.0-esp32-c3.bin |
PocketOBI-v2.5.0-esp32-c3-asia.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.5.0-cyd.bin |
PocketOBI-v2.5.0-cyd-asia.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.5.0-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
Easiest: the web flasher, from Chrome or Edge, nothing to install. Or by hand: each .bin is a merged image (bootloader + partitions + app), flashed at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.5.0-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.5.0-cyd.binIf a CYD flash stops halfway ("chip stopped responding"), add --baud 115200. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt).
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.3.1 — CYD boards with an ILI9341 screen
PocketOBI v2.3.1 — CYD boards with an ILI9341 screen
Fixed
- Mirrored image on some dual-USB CYDs (#18). Some of these boards are fitted with an ILI9341 display chip instead of the ST7789. The firmware ran, but the picture was mirrored and red/blue were swapped (the teal title bar looked olive green). There is now a dedicated build for them: flash
PocketOBI-v2.3.1-cyd-ili9341.bin, or set#define CYD_ILI9341 1in yourboard_local.h, or build withpio run -e cyd-ili9341. Then run Settings > Calibrate touch once so taps land where you see them. The plain CYD build is unchanged. - Two harmless compiler warnings in
OneWire2.cpp.
Thanks to stampeder for the clear reports and for testing the fix on his board.
Full changelog: CHANGELOG.md.
Which file do I flash?
| Hardware | English / French / German / Spanish | Japanese |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.3.1-esp32-c3.bin |
PocketOBI-v2.3.1-esp32-c3-ja.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.3.1-cyd.bin |
PocketOBI-v2.3.1-cyd-ja.bin |
| CYD with an ILI9341 screen (mirrored image on the plain CYD build) | PocketOBI-v2.3.1-cyd-ili9341.bin |
build from source with CYD_ILI9341 |
Each .bin is a merged image (bootloader + partitions + app): flash it at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.3.1-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.3.1-cyd.binOlder esptool versions are called esptool.py. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt) for tools that want them.
Not sure which CYD screen you have? Flash the plain cyd build first: if the text reads right to left, use the cyd-ili9341 one. The CYD guide has the details.
Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.3.0 - Japanese build, new logo, prebuilt binaries
PocketOBI v2.3.0 — Japanese build, new logo, ready-to-flash binaries
PocketOBI now speaks Japanese on every screen, wears its new logo, and from this release on every version ships prebuilt binaries for each board: no toolchain needed to get started.
What's new
- Japanese build (日本語) — the whole UI in Japanese (Settings > Language > JA), on both the ESP32-C3 and the CYD. Debug, PC Bridge and About stay in English.
- New PocketOBI logo on the splash and About screens.
- CYD touch-calibration screen translated (FR/DE/ES/JA).
- Prebuilt binaries attached below, one per board and language, with checksums.
tools/hostsim— compiles the real firmware for your PC and saves every screen as an image, per language and board. Check a translation without a board.- Under the hood: the firmware source is split into modules (same behaviour, easier to read and extend).
Full changelog: CHANGELOG.md.
日本語 — help wanted
The Japanese text is a first draft that no native speaker has reviewed. Expect stiff phrasing and some wrong repair vocabulary. If you read Japanese, and especially if you repair power-tool batteries, your corrections are the most useful contribution you can make. All the text is in one file, strings_ja.h, with the English next to each line. Open a translation issue or a pull request; no build needed. Details: docs/TRANSLATING.md.
German and Spanish are first drafts too: the review page https://therepairforge.github.io/translate/ shows every screen and opens a prefilled issue for each string. Contributors are thanked in the release notes.
Which file do I flash?
| Hardware | English / French / German / Spanish | Japanese |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (reference) | PocketOBI-v2.3.0-esp32-c3.bin |
PocketOBI-v2.3.0-esp32-c3-ja.bin |
| CYD ESP32-2432S028R (touch) | PocketOBI-v2.3.0-cyd.bin |
PocketOBI-v2.3.0-cyd-ja.bin |
Each .bin is a merged image (bootloader + partitions + app): flash it at address 0x0.
pip install esptool
esptool --chip esp32c3 write_flash 0x0 PocketOBI-v2.3.0-esp32-c3.bin
esptool --chip esp32 write_flash 0x0 PocketOBI-v2.3.0-cyd.binOlder esptool versions are called esptool.py. SHA-256 checksums are in SHA256SUMS.txt. The *-parts.zip files hold the separate images and their offsets (OFFSETS.txt) for tools that want them.
Or build from source: pio run -e esp32-c3 / cyd / esp32-c3-ja / cyd-ja, or the Arduino IDE (see README, Build & flash).
Reminder
The CYD is an alternative board, bench-validated end to end; the ESP32-C3 remains the reference product. CYD wiring: README, Alternative board: CYD, and the step-by-step CYD guide. Never connect the pack's B+ (18 V) to the ESP32.
PocketOBI v2.2.0: CYD support
PocketOBI now also runs on the CYD (ESP32-2432S028R, the "Cheap Yellow Display"), with a touch UI. Same firmware, same screens and features, selected at build time.
Which build for which board
| Your board | PlatformIO | Arduino IDE |
|---|---|---|
| ESP32-C3 SuperMini + ST7789 + EC11 encoder (the PocketOBI carrier PCB) | pio run -e esp32-c3 -t upload |
Board: ESP32C3 Dev Module, USB CDC On Boot: Enabled |
| CYD ESP32-2432S028R (dual-USB / ST7789 revision) | pio run -e cyd -t upload |
Board: ESP32 Dev Module, plus a board_local.h with #define POCKETOBI_BOARD BOARD_CYD, plus the XPT2046_Touchscreen library (v1.4) |
The two builds are not interchangeable: a C3 build will not run on a CYD, and vice versa. CYD wiring (CN1 header: DATA on IO22, ENABLE on IO27) is in the README.
About the CYD build
The CYD build works end to end on my bench (touch UI, calibration, reading a real pack over CN1), but it has had much less testing than the ESP32-C3, which stays the reference build. CYD boards also vary between batches. If something looks off on yours, please open an issue with your board revision and a serial log.
Also in this release: the 2.1.1 fix (false "suspect hardware" verdict on healthy BL1850B packs) is included.
Licensed PolyForm Noncommercial 1.0.0.
v2.1.1
Fixed
False "suspect hardware" verdict on healthy BL1850B packs.
The on-device Debug screen showed "Latched: YES" and the verdict read SUSPECT on packs that are balanced, unlocked and working normally. The low-level BMS marker this relied on turned out to be a constant that these packs always carry, not a stored fault, so the tool was flagging good packs.
The marker no longer affects the verdict. A genuinely locked pack is still detected by its charger lock, and the Debug screen now shows the raw marker bytes for reference.
Reported via #13 — thanks to everyone who sent in readings.