Skip to content

TheCodeGeek-PPE/ancel-tester

 
 

Repository files navigation

Ancel Battery Analyzer Connection Utility Script (ABACUS)

The Ancel BA101 lead-acid Battery Tester is an easy-to-use and versatile lead-acid battery tester for car, UPS or other similar batteries. The tester has a mini-USB serial output port, which can be used to log and report the measured test data. Unfortunately, the software it comes with is proprietary, closed source, runs only on Windows, and cannot be downloaded without making an account on the Ancel website. I've also found that the application is riddled with malware: https://www.virustotal.com/gui/file/cd8099a0cead0a39b92f72bd584ac6d99bc8f902dcbfa5987bf160bdecdd94d9

This repo builds on ancel-tester written by SilverGreen93, which proposes a platform agnostic python3 script which connects to a serial port, receives the data from the Ancel BA101 Battery Tester and displays it in the terminal so that it can be logged and/or printed as needed. It has been included for reference. He did the hard part, so give him some credit.

This app will detect active COM ports on the computer, simplifying COM port selection.

It can be run directly on Windows and Linux (not tested on Linux).

Read the Ancel BA101 manual here: Ancel_BA101_User_manual.pdf

Official Ancel product page: https://www.ancel.com/products/ancel-ba101

Requirements

  • Python 3 installed
  • Python 3 serial library: pip install pyserial
  • Python 3 customtkinter library: pip install customtkinter

How to use

  1. Connect Ancel BA101 via USB cable to PC.
  2. Execute the Python script ancel_data_print_app.py and select the COM port from the combobox.
  3. Click Connect. The script will wait for data to be received.
  4. On the Ancel BA101 tester, go to Print Data and press Enter.
  5. The most recent battery test data will be transmitted via serial and displayed in the Window. Copy the output and paste it into a text file for printing. Close the program as you would any other, or click Connect to reconnect to the BA101.

Example:

image

Planned Improvements

  • Print Function - Print directly from within the app.
  • Data Selection - Select which data to collect (and display).

Serial data format specification

The data format specification was not provided by Ancel, but was manually reverse engineered. Some values might be not right.

Offset Raw data example Decoded data example Meaning
0 E6 7C - Initial marker (?)
2 1A - ??
3 00 GOOD Battery status
00: GOOD
01: GOOD, RECHARGE
02: BAD, REPLACE
03: REPLACE
04: CHARGE & RETEST
4 05 14 1300 Battery voltage x 0.01V
6 00 C3 195 Measured amps
8 06 1D 1565 Internal resistance x 0.01mΩ
10 00 64 100 Health percentage
12 00 64 100 Charge percentage
14 00 87 135 Rated amps (A)
16 0A CA Selected measuring standard
01: CCA
02: DIN
03: JIS
04: EN
05: IEC
06: GB
07: SAE
08: MCA
09: BCI
0A: CA
17 01 2C 300 Cranking time (ms)
19 01 NORMAL Cranking status
01: NORMAL
02: LOW
20 03 E8 1000 Cranking voltage x 0.01V
22 05 AA 1450 Unloaded voltage x 0.01V
24 05 6E 1390 Loaded voltage x 0.01V
26 00 0C 12 Ripple (mV)
28 01 LOW Charging status
00: NO OUTPUT
01: LOW
02: NORMAL
03: HIGH
29 FE 7F - Final marker (?)

About

Ancel BA101 Battery Tester software

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%