Pages

Sunday, 13 August 2017

Lead acid batteries - Measurement of internal resistance - Code

While working on a small hardware modification to improve the resolution of measurements it occurred to me that displaying an internal resistance of 0.2 ohms as 200 was easier to read than 2. I updated the code over on  Hackaday

Debugging a change like this is so easy with Forth, especially when a simple x100 instruction fails because the 16 bit integer maths overflows.

Regards
Richard

ps the hardware mod worked a treat giving a fourfold improvement in resolution. I'll describe it shortly once I've finished the soldering. It might even mean that no modifications to the board are required!

Saturday, 12 August 2017

Lead acid batteries - Measurement of internal resistance - Schematic

Once you have modified the W1209 board here is the schematic for the overall project as it stands today.


Regards
Richard VK6TT

Friday, 11 August 2017

Lead acid batteries - Measurement of internal resistance

Hams, listen up. With our short arm deep pockets mentality this is going to really appeal to you. This project takes a cheap assembly, $2 delivered, from China and turns it into a test fixture for measuring the internal resistance of small lead acid batteries.The project as it stands works very well. However, I've already thought of ways to improve it which I will incorporate in due course and report on.

There were two motivating reasons for this project. The first, and a long standing one, was to measure the internal resistance of lead acid batteries to see if some of the rejuvenate, repair or restore ideas I had come across had any objective merit. As a ham I have plenty of small lead acid batteries which I only require occasionally. I periodically float charge them and occasionally I have had to dispose of one via the recycling depot after cells have gone open or short circuit. Recently I began playing with a pulse conditioning circuit and initial measurements of internal resistance suggested there was some lowering of the internal resistance. But manually setting up a test jig and then remembering to take measurements has been a problem for someone so easily distracted.

So I was looking for a way to automate the entire measurement, conditioning and charging process to firmly establish if there was any benefit in pulse conditioning these batteries. Then I stumbled across the project at eForth for cheap STM8S gadgets • Hackaday.io which is one of the most exciting ideas I have seen in recent times. The thought of taking a $2 board, replacing the firmware, and doing something entirely different with it just thrills me. The more I use these gadgets the more ham applications I see.

This project uses the W1209 thermostat board, readily available for under $2. Delivered. Hams, listen up. What I did was make a few small modification to the board:
  1. remove the 20k smd resistor next to the sensor connector,
  2. throw the sensor in the junk box,
  3. add a 10k resistor across the sensor connector (underneath if a smd resistor or remove the connector if using a through hole resistor)
  4. add a 30k resistor (or two 15k resistors in series) from the upper terminal of the sensor connector to the +12v rail.
Then I built a 1A constant current load from a 5v regulator and two 10 ohm resistors. You probably have those in your junk box ready for a project like this.

At present my board works as follows:
  • after connection to the battery  I hit the "+" key to run the measurement routine. It takes about 1 second and in that time it reads the battery voltage 32 times, summing the result, activates the relay which increase the current drawn by 1 amp and takes a further 32 measurements of the battery voltage summing those results, releases the relay then saves these two sums into eeprom
  • I then hit the "set" key  and the display shows me the average of the open circuit voltage, the loaded battery voltage, and the calculated internal resistance.
  • If I hit the "-" key the run counter is reset to zero.
The current partially discharge battery I tested this project on had a beginning voltage of 12.8V, a loaded voltage of 12.5V, and an internal resistance of 0.2 ohms.  Why not 0.3 ohms? That's the result of scaled integer maths. The 0.2 ohms is the correct answer. e.g. 12.81 - 12.59 = 0.22. But the display only shows voltage truncated to 0.1v.


My longer term goal is a test fixture that repeats daily a charge of the battery, measure the internal resistance, then applies the pulse conditioning until it is time to start the cycle over again. Then once every 8 weeks I can either dump the data back to the PC by reading the eeprom, or read the data via the display for whatever run I chose.

Over a series of posts I will cover the initial Forth code and subsequent improvements, the circuit for the 1A constant current load, how everything is wired up and eventually the further modifications to improve the resolution.

In the meantime here is what you need to do. Firstly, read the hackaday link above for background information. I really like the programmable power supply. I can see several of those going onto my workbench in due course. The team behind this Forth project need a big thank you for doing such a great job.

If you decide to give Forth a try, and I strongly encourage you to do so,  your shopping list is:
  • a few of the W1209 modules, pictured below, 
  • the programming dongle,
  • and a serial interface (USB dongle or MAX232 based device) if you don't already have one.
You'll never touch arduino again and probably end up running amforth or something similar on those those arduino boards like I do.

I will post working copies of my firmware if you simply want to flash the board and not learn Forth. And if all you want is a pre-programmed modified board then you best contact me.