The line marked "PWM" is not actually a PWM signal. It's just a regular high/low and starts off low, comparator disabled, DIO is high-Z. First,

1) DIO goes high & charges the cap for 500uS. So now Vcap = ~0.025v. Then

2) DIO goes high-Z, the comparator is enabled & PWM goes high long enough for the comparator to sense the voltage, then

3) comparator disables, PWM goes low

While the PWM was high, the drain voltage is

Vdrain = Icoil * Rds (0.033ohm). Suppose Icoil = 3A, then Vdrain = .099v

The comparator voltage then is

Vcomparator = Vdrain(~.099v) + .7 + Vcap (0.025v)

If Vcomparator(~0.824v) < Internal Bandgap Voltage (1.12v), then repeat at step 1 and increment Vcap by 0.025v

Eventually (after incrementing Vcap 13 times) Vcomparator > 1.12v, at which point i'll know that Vdrain = 1.12 - (.025 * 13) - .7 = 0.095v so

Icoil = 0.095 / 0.033 = ~2.88A which is close enough for my purposes.

My question is, is there any other way to rough measure Icoil with fewer components? I'm using 2 Rs, 1 cap & 1 diode. My circuit board is so damn tiny i'm having trouble fitting those 4 components.