I added one more charging mode: CAPACITY, i.e. charge a fixed amount of capacity into the battery.
I also worked on a new PCB for it:
It fixes some bugs and include some improvements to the original layout.
I am not going to order the new PCB just yet, I will be running test for some time first
It is a computer controlled charger, i.e. you need a computer to control the charger. It do not use 5V from the USB connection.
The 4 terminal battery holder is to get the best possible voltage measurements. You could short the sense and current terminals at the charger and use any battery holder (Like a old charger with electronic removed), but the voltage measurement would not be as precise.
So the list is:
PCB with Arduino and other parts.
Battery holder, preferable 4 terminal.
12V plug pack or other stabilized 12V supply…
Computer to control the charger.
And I would recommend putting the PCB into a box.
It was not designed as a general purpose charger, but it more in the test equipment category.
It would be possible to make another program and connect a display and some buttons to the hardware instead, but I do not really see much idea in it with this hardware.
Not much update on this project yet, I have been testing and need to test some more.
For testing I made a setup with the charger and a discharger that is controlled from scripting. This way I can just start the test and come back a few days later to see the result.
One result I got on charging eneloops at 1A with -dv/dt terminations was this:
What is most interesting is the consistency between the 3 runs and it looks very good.
Getting 1920mAh from a eneloop also sounds good. The cell is a fairly new cell (½ year old) and has been used for my general charger testing.
One of the charge curves. As can be seen the charger also logs temperature and I get a low temperature raise at the end (good).
I got me a 3D printer, this means the project will include a 3D printed enclosure.
One of my first prints was this test here, but I moved on to my own designs. This needed some serious work, because I have never used a 3D design program before, but some work with FreeCad got me this:
The box is parametric controlled from a spreadsheet in FreeCad, I can make it in any size and place the mounting holes as I want (This gave a lot of issues with how FreeCad works or is it bugs in it, but I have worked around that now).
The idea is to use it as base for project boxes, i.e. for each project I can add the required holes and other features before printing it.
The small box above was just for testing and was fairly fast to print. It is never going to be used for a project.
I use the charger circuit board and have ordered the new PCB.
A lot of small modifications: A light filtering on the ADC inputs, protection for wrongly connected temperature sensor, diode to avoid back feeding an unpowered charger (It will still back feed a little through the ADC), a few changed connections and adjustment of some footprints and placement.
With a 3D printer I could also make a frame for it, it makes it much safer to test near near wires, metal battery holders etc.
I had already designed the frame with parameter control, i.e. I only had to type in the distance between the screw holes and print it.
But I was a bit too fast, I forgot a connector for the temperature sensor. I will probably use a stereo mini jack for that.
But with the box I could do some temperature test.
Two termocouplers into the hole for the led and into a box with computer interface.
One coupler is place at the top above the hot spot, the other is placed below the inductor (It is the hottest part).
First a 1A test with NiMH. The temperature 40°C at the box, it is made of PLA that can handle up to about 50°C
It is warmer at the inductor, but that is no problem or maybe I need to check the box below the inductor?
Lets try maximum charger current, i.e. 1.5A. The box gets very close to maximum allowable temperature.
My options are: Adding some went holes in the box or require a more heat resistance material for the box when using 1.5A charge current.
I could also wait for a inductor with slightly thicker copper windings, it might stay cooler.
Another small issue, I had planned on using a 5mm smart (neopixel) led as indicator, but it do not have the colors in the same sequence as the WS2812 I use on the circuit board. I could just change the program, but I do not like the two LEDS showing different colors. I will probably modify the box to use the small WS2812 breakout board (It is the 2812 version, not the 2811 version as marked on the board).
Man alive! This thing is really coming together. It has to be one of the cleanest looking DIYs I’ve seen at this point. How are you getting your graphs? Copy serial output to Excel?
Something like that. The thermocoupler box* can give the same type of listing as the charger. When saved to a file I have a program that uses JFreeChart to make the charts (I gave up on Excel for charts long time ago).
*This is another of my projects, it is finished and a articles with gerbers and software is written, but I have not published it yet. There was a few snags during the design and making of that box.
The charger can be used directly from a serial terminal, but I do not plan on it and have written some software to control it. It is done in Java, this means it will work on Windows, MAC and Linux.
Initial screen for connecting to the charger or loading a old csv file for analysis.
The charge control screen, the number of parameters to enter will change depending on selected mode.
The battery I test here is a old eneloop that at one time was used for my charger tests, bet was retired a few years ago.
It is possible to see the log in numeric format
The data can be reduced in a couple of ways.
Adjusting the practical aspects of the charger, i.e. calibrating and setting a few configuration items.
It includes the software and a couple of charge logfiles (CSV). All actual hardware control will be disabled, because no hardware is connected.
It is possible to look around in the software, load the logfile and play with the chart and table display.
It is the exact same version software that I use at the moment, I have neither added or removed anything for this demo version. I have tested that it starts on Windows and Linux.
To use/test it a working Java version 1.8 or newer must be installed.