How to redesign a circuit to use a current sinking IC rather than a current sourcing IC

They are the same thing excluding the output. The active low is exactly the same as the active high with an inverted input on all pins.

I have a few app's with servos, this would require I put an inverter on each path or changed out my servos. With info for your servo I might be able to help more but I doubt this change is worth it.

I took a look through your site, I have enjoyed it both times I have visited it, but I did not find more hardware information, if I missed anything, I apologize. -Max Murphy


The '238 have only one of eight outputs logic high, sourcing current, the rest of the pins will be logic low, sinking current. The '138 is precisely the opposite, one of eight pins can be low, sinking current, the rest will be high, sourcing current.

To "invert" the function of the '138, you could use eight PNP transistors with the bases each tied to an output of the '138 with a resistor, the emitters all connected to +5 and the collectors each connected to one of your servo connectors. Or use a bunch of inverters (74HCT04 or octal 74HCT240) to change the sense of the outputs.

Your choice of 1 of 8 decoders will limit what you can do with your servos, as your circuit can only activate one output at a time. Max speed of any one servo will be limited by the number of servos that you want active. If you wanted all 64 channels on, for example, they would all be running at at average of 1/64th speed.

The PCF8575C is very handy for expanding digital IO using serial I2C protocol from devices like Arduino. You could run 64 servos using 2 pins on the Arduino and 4 PCF8575Cs. This would give you more flexibility in setting your PWM duty cycles.