This is the original implementation of a Makita diagnostic dongle (called ArduinoOBI) that connects a Makita LTX battery to a PC. It uses the original Open Battery Information resources and runs on Arduino UNO/Arduino Nano.

This YouTube video explains how to build the adapter and provides free 3D printing files for a matching enclosure.
Overview
The original ArduinoOBI was the first adapter capable of querying Makita LTX batteries and also unlocking batteries that the BMS has locked.
It is based on the extensive reverse‑engineering work by Martin Jansson and uses an Arduino Nano to bridge the Makita LTX 1‑Wire interface to a PC over USB.
PC Software
The Arduino only performs signal translation; all higher‑level processing is handled by the Python‑based PC application OpenBatteryInformation.exe.

The PC software provides a convenient way to manage Makita LTX batteries. However, offloading the processing to a PC application introduces several limitations:
- Not portable – Requires a PC/laptop connection.
- OS compatibility – Limited to supported operating systems.
- Security – False malware warnings when downloading/running the executable.
Because the executable is simply a wrapper around a Python script, you can alternatively download and run the Python script directly. Once running, it offers a very convenient way to inspect Makita LTX batteries in a lab environment.
The Arduino Nano’s limited memory and performance made a separate PC software necessary. Derived projects ported the firmware to much more powerful ESP32 microcontrollers, delivering truly portable solutions with integrated front end.
Building Adapter
To build the adapter that connects to your PC, only a handful of low‑cost parts are required:
-
Arduino Nano clone:
A low‑cost Arduino Nano‑compatible board (around €1.50) works fine, yet you can also use an original Arduino UNO or Nano of course.
-
Connector cable:
Use a Makita charger replacement connector cable to interface cleanly with the battery.
-
Other items:
You need two 4.7 kΩ resistors and a spade connector, keeping the total hardware cost to under €5.
Step‑By‑Step Instructions
Rather than repeating the complete build process here, follow the original instructions and/or watch this YouTube video.
Wiring Makita Connector
While the source instructions are mostly great, they do not clearly illustrate the orientation and wiring of the yellow connector. To clarify, here is the pin assignment:

The two active pins connect to Arduino Nano GPIOs D6 and D8:
| GPIO | Connect to |
|---|---|
D6 |
1-Wire |
D8 |
Enable |



Pull‑Up Resistors
Both D6 and D8 must be pulled up to 5V using 4.7 kΩ resistors to meet the 1‑Wire electrical requirements. When soldering, ensure the resistor leads cannot short to nearby components or tracks on the Arduino board.
Ground Connection
The Arduino GND pin needs to be connected to the Makita battery - terminal to share a common reference for the 1‑Wire interface. A crimped spade connector, as demonstrated in the YouTube build video, is a practical way to attach to the battery terminal.
Using ArduinoOBI
Using ArduinoOBI is straightforward: connect the Arduino to your PC via USB, then slide ArduinoOBI onto your Makita LTX battery.

On your PC, start OpenBatteryInformation.exe.
Windows Defender may classify this download as malware (even though the project is open source and community‑audited). In that case, some guides suggest temporarily disabling Windows Security Realtime Protection to run the executable, but using the pure Python version is safer from a security perspective.

In the application window:
- In the two drop‑down boxes at the top left, select Makita LXT and Arduino OBI.
- In the Select Port list, choose the COM port assigned to your Arduino.
- Click Connect.
- In the top‑center section, click Read battery model and Read battery data to populate all details in the list below.
Unlocking Battery
Occasionally, the internal BMS will lock a battery, making it unusable.
While lockouts often indicate legitimate issues such as cell defects, overload events, or other safety‑critical faults, there are also many reports of otherwise healthy batteries being locked purely by software. In such cases, you can click Clear Errors in the software to attempt to unlock the battery.
Proceed entirely at your own risk: overriding a safety lock on a damaged battery can lead to overheating or fire.
Compiling Firmware
The reference documentation uses the Arduino IDE to compile and upload the firmware to an Arduino Nano or UNO.
If you prefer PlatformIO, you can either download the ready‑to‑build PlatformIO ArduinoOBI project or follow the manual steps below.
The steps below assume you are already familiar with PlatformIO and VS Code.
Manually Creating PlatformIO Project
In PlatformIO, create a new project and select your target microcontroller. Once the project is created, adjust it in the file explorer:
-
Open
platform.iniand review the auto‑generated settings. For an Arduino Nano Clone, use:[env:nano_old] platform = atmelavr board = nanoatmega328 framework = arduino upload_speed = 57600 - In your browser, open Arduino OBI/main.cpp and copy the complete source code.
- In VS Code, open
src\main.cppand replace its contents with the copied source. - In the VS Code Explorer, right‑click
lib→ New Folder and name itOneWire2. - In your browser, navigate to
ArduinoOBI/lib/OneWirewhere you findOneWire2.cppandOneWire2.h. - Open
OneWire2.cpp, copy the source, then in VS Code createOneWire2.cppinside theOneWire2folder (exact file name and casing) and paste the code. Save the file. - Repeat the previous step for
OneWire2.h. - In the Explorer, right‑click the
OneWire2folder → New Folder and name itutil. - In your browser, navigate to
ArduinoOBI/lib/OneWire/util, which containsOneWire_direct_gpio.handOneWire_direct_regtype.h. - Copy
OneWire_direct_gpio.h, then in VS Code create a file with the same name underOneWire2/util, paste the contents, and save. - Repeat for
OneWire_direct_regtype.h.
Now everything is in place; in PlatformIO, choose Upload to build and flash the firmware onto your microcontroller.
Materials
- ArduinoOBI (platformio):
Complete sample project, ready to be built in platformio: download and unpack this zip, then in VSCode chooseFile / Open Folder.
Slow Website?
This website is very fast, and pages should appear instantly. If this site is slow for you, then your routing may be messed up, and this issue does not only affect done.land, but potentially a few other websites and downloads as well. Here are simple steps to speed up your Internet experience and fix issues with slow websites and downloads..
Comments
Please do leave comments below. I am using utteran.ce, an open-source and ad-free light-weight commenting system.
Here is how your comments are stored
Whenever you leave a comment, a new github issue is created on your behalf.
-
All comments become trackable issues in the Github Issues section, and I (and you) can follow up on them.
-
There is no third-party provider, no disrupting ads, and everything remains transparent inside github.
Github Users Yes, Spammers No
To keep spammers out and comments attributable, all you do is log in using your (free) github account and grant utteranc.es the permission to submit issues on your behalf.
If you don’t have a github account yet, go get yourself one - it’s free and simple.
If for any reason you do not feel comfortable with letting the commenting system submit issues for you, then visit Github Issues directly, i.e. by clicking the red button Submit Issue at the bottom of each page, and submit your issue manually. You control everything.
Discussions
For chit-chat and quick questions, feel free to visit and participate in Discussions. They work much like classic forums or bulletin boards. Just keep in mind: your valued input isn’t equally well trackable there.
(content created Dec 16, 2025)