Linux software for ZKE TECH EBC-A05 and EBC-A10H... - Page 1
Forum section: electronics / projects

author: MBY
author_rank: Regular Contributor
timestamp: February 25, 2021, 03:55:33 am
content: (I'm unsure if this is the right sub forum, but I hope the mods can move the thread if not.)The ZKE, ZKE-TECH or ZKETECH electronic loads are cheap and very useful battery chargers and testers. They can operate stand alone, but is more versatile when connected to a computer. The proprietary Windows software provided by ZKETECH is not too bad, but have some flaws and missing functions. The main one, of course, is that it's only for Windows.I've used the A05 for many years and recently upgraded to a A10H in order to test some Lead acid batteries. One shortcoming is that the user doesn't have much control of the "rules" for end charge, such as a current cut off and some Lead acid batteries (especially if they have bad cells) never stops accepting charge and are just boiling away and the end-of-charge limits (that is preset to 50 or 60 mA by the device) is never reached.I decided to write my own software, for Linux, and add some features I felt was missing.This is my first release on github, and I don't have much experience with writing release notes and documentation for public projects, so be kind to me!If you're just interested in running the thing, you need two files. The executable and its companion ".init" file, that is for auto-generating a .conf file for the users setting:https://github.com/JOGAsoft/EBC-controller/releases/tag/v0.1(Linux, 64-bits)If you're interested in the source code, you can check it out here:https://github.com/JOGAsoft/EBC-controllerThe project is sparsely commented and documented and probably have a shitload of bugs and inconveniences, but at least it's a start. The program probably works with other loads/battery testers from ZKETECH as well. If you're willing to test it on a new device, I'm happy to see what can be done to make it work.Edit: It's written in Free Pascal/Lazarus and there is nothing preventing anyone to compile it for Windows or OSX. The only thing needed is to look at the serial connection routine and adjusting it to fit with the nomenclature of Windows (eg. "COM1" instead of "/dev/ttyS1", etc). It may work directly by just entering the device in the device connection edit.

author: wflynn
author_rank: Newbie
timestamp: May 02, 2023, 07:01:00 pm
content: Hey - I was hoping you might share the communication protocol for this thing. I am trying to do the same thing, but on a bigger scale. Rather than figure out the protocol on my own, you've already done it so maybe you'll share? I know - it's in your code. But I'm not a pascal guy so it's a bit tough reading it.

author: masme
author_rank: Newbie
timestamp: June 09, 2023, 01:14:31 pm
content: Hey thank you very much for all,I've been be able to follow your instructions and install and execute the sw in Linux. I'm not an expert in the sw code and my question is a little bit complex (for me) ... I would like to be able to acquire in a shorter time interval than the 2 seconds/point as offered by the original program. Do you think it possible or not?

author: ardiehl
author_rank: Newbie
timestamp: October 02, 2023, 06:38:59 pm
content: i'm currently working on supporting the A20 and A40, somewhat works already -https://github.com/ardiehl/EBC-controllerHowever, the EBC [A20,A40] only sends the status every 2 seconds so i dont see any way to change that.

author: ardiehl
author_rank: Newbie
timestamp: October 28, 2023, 08:00:30 pm
content: first release for Linux and Windows available, changes:A20/A40 supportedSyntax checking and highlighting for step filesMore error checkingBugs fixedAuto log file namingAuto save step file logCharge/Discharge profiles from conf-file only (can be limited by charger)Help for shortcutsFixed tab orders... and morehttps://github.com/ardiehl/EBC-controller/releases

author: TJM
author_rank: Newbie
timestamp: December 15, 2023, 10:50:23 pm
content: Hello,Recently I bought two EBC-A10H units which are going to be used mostly for charging 12V lead acid batteries, as I use them in rotation for alarm systems on my remote property where I don't have electricity. Since I had problems with the software supplied with devices, after a quick google search I found this thread and tried EBC-controller v2.16. It mostly works as expected on Windows 10, with just very minor GUI glitches, sometimes the buttons get stuck when fooling around with start/stop or running and stopping stepfile.One feature I couldn't get to work however, is stepfile, which could come in handy as every now and then I run charge-discharge-charge to estimate the overall condition of battery.For charging step, I use c_cccv mode, for example:c_cccv cells=1 volt=14.40V curr=0.60A cuta=0.05Aevery time the charging starts, it stops after around 1 second. Could this be a bug, or am I doing something wrong ?Anyway, thanks a lot for a great piece of software.

author: jefffay
author_rank: Newbie
timestamp: December 16, 2023, 03:28:49 pm
content: Thanks for sharing your work. Is it possible to change the values of both the axis? I'd like to display the voltage from 3v - 4.2v....

author: drelectron
author_rank: Newbie
timestamp: February 05, 2024, 05:19:04 pm
content: Has anyone here determined the configuration settings or "init" file for the ZKE Tech ZBD-A20H dis-charger only model? I have two of these and would like to use them with the "Linux and Windows" software mentioned above to characterize the 12 volt LiFePO4 batteries in my off-grid power system.Thanks,Dave

author: staibisser
author_rank: Newbie
timestamp: February 23, 2024, 06:04:28 pm
content: Communication protocol would be interesting, a way to find out? I have 4 EBC/EBX devices and would like to do more with them.Thanks for Inputstaibisser

author: sstepane
author_rank: Regular Contributor
timestamp: March 29, 2024, 11:02:49 am
content: Hi,Using these devices daily for old batteries checks. My only complain to the original software is that it does not have any capability of command-line interface at least or a thermometer input as it is vital to see battery temperature for faulting batteries. And, otherwise, quite significant piece of characterisation of battery state...Otherwise - in my opinion, original software is quite ok for the task.

author: wflynn
author_rank: Newbie
timestamp: August 01, 2024, 01:50:24 pm
content: Any chance you have some info on the protocol? It seems several people here would benefit from it.

author: MBY
author_rank: Regular Contributor
timestamp: October 20, 2024, 08:24:06 pm
content: Quote from: wflynn on August 01, 2024, 01:50:24 pm(Sorry for the late reply, the project has stalled and I haven't looked into it for quite some time).I used the two attached resources and lots of testing to decode the protocol. The PDF is in Russian and I don't speak Russian but did some manual and google translate to figure it out. But I can't find my translation anywhere. This and the code in Pascal on github is the only thing I got unfortunately. Hope it helps somewhat!

author: forhire
author_rank: Newbie
timestamp: December 30, 2024, 05:41:28 am
content: Ardiehl, I have installed your fork on Linux Mint running Lazarus 3.0. When loading the project I get the error:Unable to find the component class "TJLabelIntegerEdit". in settings.pas. I installed jujiboUtils hoping to correct the issue without any luck. This results in the Parameters section of the Settings to be greyed out. See the attached screenshots. Any ideas how to fix this error?Also, what does the "dVdA Int. Time(s)" setting do? I'm not sure what dVdA represents. Is it delta voltage integral time?I'm hoping to use this with my A40.Thanks

author: forhire
author_rank: Newbie
timestamp: December 31, 2024, 04:00:06 am
content: I replaced the jujibo TJLabelInteger references in settings.pas and setting.lfm with Spin TSpinEdit. I now have it compiling without errors. I'll do a pull request to share my edits once tested.I still do not understand the "dVdA Int. Time(s)" label meaning.

author: MarkMLl
author_rank: Frequent Contributor
timestamp: January 25, 2025, 10:16:09 am
content: Attached is Google Translate's rendition of the Russian protocol document, which really isn't too bad.I was taking a look at the data transferred by an EBD-M05 yesterday and can report that it's broadly in line with the other models in the range, except that the only implemented role is a constant-current discharge. I might modify some software I knocked together for the Shunda TEC-06 to support it, but please don't anybody hold their breath.Updated: an important detail is that even though the various messages look the same, there might be a device ID byte in the transferred data (byte 17 of the 19-byte data packet). In the case of the EBD-M05 this is 0x19.MarkMLlhttps://github.com/MarkMLl/shunda_tec06

author: theHWcave
author_rank: Regular Contributor
timestamp: September 15, 2025, 08:40:13 pm
content: As useful as the Russian document and its translation are, there are a few significant errors and omissions that had me banging my headOn the checksum, it says that the 0xFA and 0xF8 bytes"may"be ignored as they "do not affect the result" Not so, they MUST be ignored during the calculation because they do affect the result if included. The operation needed by the way is XOR and if I had thought this thru, it is obvious that 0xFA xor 0xF8 is not 0x00The following is based on my unit, a EBD-A20H which is reporting device id 0x13While the measured voltage and current values are in 1 mV and 1 mA resolution, the set values for voltage and current limits are in 10mV and 10mA. For CP mode, the current limit is replaced by watts in W, i.e. the value 5 = 5 Watt. The time limit is send in full minutes, e.g the value 10 = 10 minutesin CC mode, the returned data is either in a 0x0a message while CC is active or 0x00 if it has stopped.in CP mode, the returned data is either in a 0x0b message, while CP is active or 0x01 if it has stopped.Although the display can be set to show mWh, the reported data in the messages seems always to be mAh (in 1mAh units)Hope this helps someone.I have written a linux command line utility in Python that controls the EBD-A20H and logs the data in a CSV file. Although working well enough for me, it is a bit crude to publish it as is. If there is interest, I may tidy the code up and post it on Github