How would one invert several current sinking digital outputs?

Thread Starter


Joined Feb 4, 2018
Hello everyone, I have a nifty USB LED control board (phidgets 1032 board). I want to use this board to control a set of higher power led modules, 20 of them to be exact. The phidgets board is really neat; current control on each output from ~ 1-80ma per output, duty cycle/pwm options, and voltages of 1.7-5V. Really great if you're powering some small LED modules..

My intended usage of this board was to drive a handful of uln2003a chips, Darlington array transistors. You may have seen this packaged nicely on little pcbs with terminals ready to go, mainly used for Arduino stepper motor projects and the like. Each chip has 7 channels that you can stepup low power outputs to some useful power.....These uln2003 chips can handle the 12v 150ma load I need to, all while hopefully maintaining the pwm and brightness control of the original output..

The problem is this. I got the phidgets board and erroneously assumed the digital ouputs would source the selected voltage, switching the positive side..No! The whole board has common +Vcc. The outputs switch the negative side..This throws a wrench in things!

The uln2003a chip won't work here as it has a common ground and each of it's 7 input channels are +.

- I could use relays but I would lose the pwm and brightness control. Not a option

- I could use a PNP transistor to invert the signal? Or some other method? I preferred having the packaging all on pcbs when I thought I could just plug the uln2003 boards into the outputs. Is there a nice neat way to invert signals.....Like 20 of them? Haha.

My goal is to keep this as clean and simple as possible so trying to keep total components to a minimum. Thanks for the long read and helpful replies

Thread Starter


Joined Feb 4, 2018
Thanks Dodgydave.

I saw similar Ic's but couldn't fully understand if it would work in my case.
Because the microcontroller switches the (-) terminal, how would I wire the hex inverter? Wouldn't any 'output' state result in a low level being fed to inverter? The phidgets output is either closed/off (low signal), or ground/sinking(low signal).

How can I wire the inverter to pickup these ''sinking" outputs?

This was why I was thinking a PNP transistor to feed the uln2003...

I'm sure I'm missing something, fairly new to all of this. Thanks for your help


Joined Dec 2, 2017
You might try using pull up resistors at the ULN2003 inputs.

When the phidgets goes low, it should turn off the ULN2003 outputs, then when it goes off (high) the pull up resistors should turn on the ULN2003 outputs.

It's tricky because the ULN2003 has very high gain.