ESR meter with Arduino

Hi Baravantan,
To answer your last question, yes, I have measured what seem to be good values in the milliOhm range. I have a 100mOhm precision resistor and have measured many capacitors with what appears to be reasonable and repeatable results.
I took a quick look at your code and all appears to be OK with the actual calcESR routine. I didn't look at your PCB layout so I can't say more than that in my proto-board build I used the schematic exactly as in the original post EXCEPT that I used a 10microFarad cap and a 110Ohm resistor in the pulse circuit (47micro and 100 Ohm in the original).
I did notice in testing that the whole thing is very sensitive to the declared supply voltage and the value of this resistor. And I noticed in your code the following...

double Vin_LO = 4700; // milliVolts
uint16_t Rs_LO = 110; // Ohms

Are you actually using a 110 Ohm resistor? And is your supply voltage really only 4,7 V? Unless these (and the Vref voltage) are well defined, the calculation can be very non-linear.
Anyway, hope this helps.

photo.JPG