As mentioned in my previous post, the accuracy was not that great, and because of that, I decided to try resistors with better tolerance. My RS order has arrived:
One of the components in the box was some 0.05% resistors.
I measured it using my 6000 count multimeter and I have to say, all of them are spot on to the same value, I am impressed! I used to 5% resistor all my life and seeing the consistent readings make me excited. B-)
I know it is expensive, don't worry, I do plan to test the cheaper 0.1% resistors later.
Fitting the smd 0603 on the donut board can be tricky, so I just soldered some wires to make it easier to prototype.
Unfortunately, I accidentally break two of them :(
I also added an RC snubber to reduce the high frequency ringing on the half-bridge with the hope that it will reduce some of the EMI emissions.
I also had to clean all of the flux residues on the board because I found that it is slightly electrically conductive.
The result? The balancing voltage is now within 0.3% (that is less than 10mv for 4.2V lipo cell).
I believe the error is coming from the non-ideal properties of the opamp (such as input voltage/current offsets, etc).
At first, I was skeptical if the opamp can handle the accuracy that I needed, now, I am glad because the cheap LM358 is still usable for this low tolerance project.
I hope to find an equally cheap better opamp than LM358, but, I failed to find one yet. Any tips guys?
I think I am getting closer to the end now. The next step would be to make a pcb for it.