Summary: Using a very cheap op-map ($US0.16 in true volume) and a few relatively cheap parts and an (internal to uP) comparator an Analog to Digital conveter with 9+ bits accuracy is achieved. Better accuracy will be achieveable with longer conversion times. The technique is slow but cheap to implement. Must be time to stop playing with this. Results keep getting better. Many things that people say don't seem to be true! Latest trial uses 2 transistors to act as current sources to drive the integrating capacitor. Here's some shocking ASCII art (I hope)(I can see it - YMMV) ______________________ Vcc | | R R R R Re-hi | | | E PIC Output --.-RRR--.---B Q1 - PNP | C | | Rin | -------------RRRR--- <-- Vinput | | | | Rbi-lo C | .-RRR--.---B Q2 --- Cint | E NPN --- | | | R R Re-lo | Rbg-lo R R | | | | ------------------------------------- Gnd Q1 and Q2 act as current sources. PIC output swings fully high/low When eg Hi Q1 is turned off. Q1 is turned on by Rbi-lo and Rbg-lo divider. V at Q2 base is Rbg/(Rbi+Rbg) * Vcc (PIC out) so V at emitter is 0.6v less or so and Current through Q2 is this voltage across Re-lo. This current is sunk out of Cint. When PIC output is low Q2 conducts and sources current into Cint. Vinput will sink/source current into Cint. The voltage on Cint is sensed by a comparator and the PIC drives the output pin hi/lo as required to keep capacitor at switching point. I'm actually using a Z8 :-) at present but was using a PIC and will do so again later. Vin is driven by a LM324 in my case and must be a low impedance point. With Cint = 1 uF Rin = 4K7 R Re-lo = 2K7 R bg-lo = 5K6 Rbi-lo= 18k and othe rvalues mirrored I am getting 9 to 10 bits of accuracy (11 in places) with 2048 counts across an input voltage range of about 0.8 to 2.8 volts.