Code Monkey home page Code Monkey logo

electronicload-control-xy-fz35's Introduction

XY-FZ25 & XY-FZ35 Electronic Load Control Program

This program controls "Electronic Load" devices XY-FZ25 and XY-FZ35, sold on different webshops, mainly from Asia. Most of them provide detailed instruction manuals as well. In folder Doc you find some specs.

A programmable electronic load emulates DC or AC resistance loads required to perform functional tests on batteries, all sorts of power supplies, solar cells, technical equipment, etc. There are many other useful scenarios. In the simplest case an electronic load just sinks current (absorbes power). The amount of current can be set and the load tries to keep it stable even when the applied voltage changes.

The XY-FZ25 is limited to 4A/25W and the XY-FZ35 to 5A/35W. That doesn't sound much but really is enough for most cases. I use the combination program + electronic load mainly for battery/accumulator discharge tests and solar power cell tests every now and then.

⚡ The Control Program

The program "Electronic Load" in folder Program does display live readings in a chart. Furthermore it can:

  • save charts as data file (.eld), bitmap file (*.bmp) or csv file (*.csv)
  • print charts
  • load previously saved charts (*.eld data files), which gives you the easy ability to compare the various test results later on

If you associate *.eld files with this program you only need to double click them to see saved charts.

For more pics have a look at folder Doc. The program was tested and runs on Win8.1/Win10/Win11.

github

You find some real world charts (*.eld) in folder Program. Load them into the program and have a look at them.

🛠️ Operational settings

The program lets you set various operational parameters. The most important of course is the

  • Maximum Load Current

Additionally the load will monitor various definable parameters and trigger an alarm plus turn itself off if required:

  • LVP...Low Voltage Protection: When the load voltage drops below a set limit. This is important for discharge tests in order to protect the accumulator/battery.
  • OAH...Maximum Discharge Capacity: When the load reaches a defined accumulated discharge capacity limit (in Ah). This feature too is for protecting the accumulator/battery when doing discharge tests.
  • OHP...Maximum Discharge Time: When the runtime reaches a set timespan. Important for tests that need to run for hours or even days.

Changing those values can be done either via the programs menu (Settings) or by clicking with the mouse on the value in the main dialog. The respective dialog will then show up.

Mouse clicks on the left chart axis will change its scale. This can also be done via menu of course.

❗ Important

Don't forget to set the correct hardware version of the device before controlling it (Settings->Hardware Version->25W/35W) !

ℹ️ Installation

Depending on your Windows architecture copy the 32bit or 64bit version of the executable into a program folder and that's basically it.

In case you get a windows error message trying to run the program (like "mfc14xx.dll missing" or similar) depending on your Windows installation you additionally need to install the Microsoft Visual C++ Redistributables 2022 (x86/x64) or higher. Momentarily (02/2024) they are available from here.

🦺 XY-FZ25 & XY-FZ35 Integrated Overload Protection

The devices have different self protection mechanisms built in and will turn off when triggered:

  • OVP...Over Voltage Protection: When the load voltage gets higher than the set OVP voltage limit.
  • OCP...Over Current Protection: When the load current gets higher than the set OCP current limit.
  • OPP...Over Power Protection: When the power it absorbes gets greater than the set OPP power limit.

Pressing CTRL+L will retrieve the actual protection limits from the device and show them in the program window (top left section), provided the device is properly connected.

If reading limits is not possible a warning is displayed. Same when sending limits to the device hasn't been successful or the device didn't answer as expected. In all error cases the values in section "Protection Limits" will stay at zero.

Please note:
Some alarms (OPP, OAH, OHP) can't be cleared via serial communication. In such cases the On/Off Button on the device itself must be pressed to end the alarm and get the device operational again. Message Boxes will tell you if that's the case.

ℹ️ Wiring

The devices provide a possibility to communicate via serial port (9600,8,N,1) with TTL-level (3.3V !). They accept operating instructions and send status messages if requested.

This program uses this option to control the devices. For that you only need a cheap USB-TTL converter module (mostly with IC CP210x/CH340/FTDI232) between your Laptop/PC and device.

github

ℹ️ Revision history

  • 2019/05: V1.0.0, Initial version, built with MS Visual Studio 2019.
  • 2019/10: V1.0.5, Some bugfixing to catch all alarms properly.
  • 2022/02: V1.1.0, Export chart to *.csv added. 7-digit display for load status added. VS2022.
  • 2022/03: V1.2.0, Error messages improved.
  • 2024/02: V1.3.1, A nasty 2-digit COM error fixed. Load current can now be set to 0.00A which is helpful for monitoring only. Option to display LVP voltage in chart added. Horizontal scrolling on event list box activated.
  • 2024/02: V1.3.2, If the voltage drops from above LVP straight down to 0.00V then the load unexpectedly stays on and does not report a LVP alarm. This is now detected and the load is then instructed to switch off. This scenario can happen if the battery has been disconnected manually or the internal battery BMS turned the battery output off before the decreasing battery voltage hit the set LVP level.
  • 2024/03: V1.4.0, New settings option will request the system to stay awake and not enter sleep mode while load is switched ON. This will not work on all systems though, esp. not on systems with active "modern standby" feature (e.g. newer laptops) while running on battery. You actually have to try it out on your particular machine before you can rely on it.

☺️ Postscript

If you run into trouble with this program or have suggestions how to improve it, feel free to contact me.

electronicload-control-xy-fz35's People

Contributors

yellobyte avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

electronicload-control-xy-fz35's Issues

Halt logging when LVP activated

Your software works great. Thanks! It would be excellent if it stopped updating the display once the LVP threshold is reached. At present when I discharge a battery, and the battery internal BMS turns the battery output off, the software keeps on logging zero voltage and the Ah capacity gets reset too. When doing a discharge test at the 20-hour rate it it painful to watch and save at the exact moment the LVP is reached (or scan through the CSV file to find the battery shutoff readings). It looks like the XY-FZ35 module does turn off the load when LVP is triggered, but does not send a LVP triggered message so you will probably have to compare the LVP setting to the battery voltage and halt when battery voltage is below LVP setting.

Source code?

Hi,

do you have any intentions in sharing the source code of this project? This would be great in order to make a Linux version of this.

Windows 11 Error opening port

Hi, when I choose the com port I get the error "Error opening port" Even the LEDs not blinking on the USB TTL adapter, but with PuTTY communication is working "When I type something I got a response (failed)"

Fz35 Serial Commands query :)

Hi there,
firstly huge thanks for making a front-end for this device. I want to use some part of your code in my own little py file. but I don't understand the diff between the start and read commands even tho I have gone over its manual. plus at times I don't receive anything in the output. here I mean I don't read anything . after writing start or read commands. My code works usually for simple reading and writing but I am still having some doubts about these commands as I want to record data from it in a csv and for some longer period of time with some breaks in between :D
Would you be kind enough in sharing your email or any other source of contact where I can share my code with you and get some assistance if you don't mind?

Thanks a lot and kind regards,

Option to control load ON/OFF separately.

I have been looking for a module to monitor battery voltage. On the XY-FZ35, there are commands 'start' and 'stop', and commands 'on' and 'off', so if the load is set to 'off' and the 'start' is sent, your program could be used as a monitor, and with a charger connected, a charge curve could be generated. How about providing a button or check box for the load on/off, and a separate start/stop button to start the process of generating a curve?

Parameters

I am currently working on a school project that involves reading data from an Electronic Load XY-F25 using an FTDI232. I need to read the data with a Python code so I can put it into a database. I've confirmed that the connection is functioning well, as your program is working. However, I'm curious about the specific parameters you use to retrieve all the information. Do you have a datasheet available, or could you assist me in gaining a better understanding of these parameters?

Your help would be greatly appreciated. Looking forward to hearing from you soon.

Error initializing device!

Hi,
I bought a XY-FZ35, for testing my batteries.
Your application is fantastic, so I install it and run, but when I trial to connect serial port COM11, click on test button, appear major time "Communication error on COM11. Device did not answer!" and some time "Communication with device on COM11was successfull".
When test is ok, click on "Turn Load on" button and appear this message "Error initializing device!".
If I use "Termite" on COM11, the device answer my request, and I can see value Volt, Ampere etc.
How can I fix it? Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.