Home > Blog > Blog

ULN2003A Pinout Guide — 7-Channel Darlington Driver, DIP-16 & SOIC-16

2026/8/14 14:59:24

ULN2003A Pinout Guide — 7-Channel Darlington Driver, DIP-16 & SOIC-16 | ICMASS

The ULN2003A is a seven-channel Darlington transistor array that turns weak logic pins into 500mA open-collector switches. Pins 1–7 are the inputs, pins 10–16 the outputs, and pins 8 and 9 — ground and COM — are the two that get wired wrong.

Here's the trap we keep flagging (2025–2026): the repair threads keep showing the same two failures — COM left floating so relays click with no clamp protection, and boards that "work" with the ground pin disconnected. The EEVblog thread is titled exactly that: works when not grounded.

ULN2003A — DIP-16 / SOIC-16, top view ULN2003A 7-channel Darlington array 1 · IN12 · IN2 3 · IN34 · IN4 5 · IN56 · IN6 7 · IN7 8 · GND 16 · OUT115 · OUT2 14 · OUT313 · OUT4 12 · OUT511 · OUT6 10 · OUT7 9 · COM Each input drives the output opposite it: pin 1 → pin 16, pin 7 → pin 10. Notch up, pin 1 top-left, counting counter-clockwise.
Inputs down the left, outputs down the right — the datasheet puts them opposite each other so traces run straight across the board.

ULN2003A Pinout and Pin Functions

PinNameTypeDescription
1–7IN1–IN7 (1B–7B)Input2.7kΩ series base resistor per channel, built for direct 5V TTL/CMOS drive. Logic high turns the channel on.
8GND (E)PowerCommon emitter of all seven Darlingtons. Joins the logic ground and the load-supply ground.
9COMClampCommon cathode of the seven freewheeling diodes. Tie to the positive rail of the load supply.
10–16OUT1–OUT7 (7C–1C)OutputOpen collectors: 500mA each, 50V max. Pin 16 = OUT1 (driven by pin 1); pin 10 = OUT7 (driven by pin 7).

Two things the pin table hides. First, the channels mirror: input 1 sits on pin 1 and its output on pin 16, input 7 on pin 7 and its output on pin 10. Second, the outputs invert: a logic high sinks the output low.

Typical Application: One Channel, One Relay

One channel switching a relay load supply +12V COM (pin 9) relay coil OUT1 (pin 16) ULN2003A channel 1 · Darlington + 2.7kΩ MCU pin IN1 (pin 1) GND (pin 8) +12V → coil → OUT1 → GND when IN1 is high. Flyback: coil → COM diode → +12V rail.
The COM diode is why the part survives inductive loads — but only if pin 9 actually reaches the load's positive rail.

The COM pin only matters with inductive loads. Tie it to the positive supply rail of whatever you're switching — +12V for relays, +5V for a 28BYJ-48 — and the internal freewheeling diodes catch the coil's kickback.

Leave COM floating and the diodes have no path home; the spike lands on the output pin instead. The Parallax forum puts it plainly: the COM pin must sit on the supply side of the load.

Pin 8 is the whole part's return. The EEVblog thread "works when not grounded" shows why floating it fails: the pin rises through the output path and the Darlington half-conducts — passing bench tests, failing in the field. Solder it to both grounds.

Ratings and Rules That Keep It Alive

The ratings are easy to misread. 500mA is per channel (600mA peak per ST), and 50V is the output ceiling. The real limit is thermal: at 350mA the saturation drop is about 1.2V, so one channel burns 0.42W — fine. All seven? Almost 3W in one 16-pin package.

3.3V logic drives it, with margin you can read off the datasheet. The on-state input voltage is 2.4V at 200mA of collector current and 3.0V at 300mA — both under 3.3V — and the input pulls about 0.93mA. That's why ESP32 tutorials and Pi builds run 28BYJ-48 boards from GPIO.

Inputs need no resistors. The 2.7kΩ base resistor is inside the silicon; an MCU pin connects straight to IN1. That built-in resistor is also why a 12V PLC output needs nothing added — the input draws 1–1.45mA at 12V per the datasheet.

Parallel for inrush, not precision. The ST datasheet lists paralleled outputs among the features, and the solenoid thread on Electrical Engineering Stack Exchange asks exactly this for coil inrush. Sharing is uneven — saturation drops differ between channels — so parallel for peak headroom, not continuous doubling.

Saturation drop across one channel (typ, TI datasheet)

at 100mA
0.9V
at 200mA
1.0V
at 350mA
1.2V

A Darlington always drops about a volt — the price of its 1000× gain. It keeps climbing past 350mA on the datasheet curve.

Heat per channel = drop × current

100mA × 0.9V
0.09W
200mA × 1.0V
0.20W
350mA × 1.2V
0.42W

All seven channels at 350mA ≈ 2.9W — the 16-pin package cannot shed that. The 500mA spec is per channel, not per package.

Frequently Asked Questions

Q1: What is the ULN2003A pinout?

A: Pins 1–7 are inputs IN1–IN7, pin 8 is ground, pin 9 is COM, and pins 10–16 are outputs OUT7–OUT1. Inputs sit opposite their outputs: IN1 (pin 1) drives OUT1 (pin 16), IN7 (pin 7) drives OUT7 (pin 10).

Q2: Do I have to connect the COM pin (pin 9)?

A: Yes for inductive loads — tie COM to the positive rail of the load supply (+12V for relays). That rail is the return path for the seven built-in freewheeling diodes. The Arduino Forum relay thread says it straight: if the relays share one supply, connect COM to that supply. The Parallax forum's version: COM must sit on the supply side of the load. Leave it floating and the coil's kickback has nowhere to go but the output pin.

Q3: Why does my ULN2003A work when the ground pin isn't connected?

A: It doesn't really work — the floating ground pin rises through the conducting channel and the part half-conducts. That's exactly the behaviour in the EEVblog thread "Strange ULN2003A behaviour - works when not grounded?!" Wire pin 8 to both the logic ground and the load-supply ground; a "works on the bench" board fails in the field.

Q4: Can I drive the ULN2003A from 3.3V logic (ESP32, Raspberry Pi)?

A: Yes — the datasheet's on-state input voltage is 2.4V at 200mA and 3.0V at 300mA, both below 3.3V, and the input draws about 0.93mA. That's why ESP32 tutorials and Pi builds run 28BYJ-48 boards from GPIO; toward 300mA the margin gets thin, so check the load.

Q5: Is the ULN2003A inverting?

A: Yes — the outputs are open-collector inverters: a logic high at the input sinks the output low and completes the load circuit to ground. The All About Circuits thread frames it as negative logic: "a 1 on the base = a 0 on the collector." Design around it, don't fight it.

Q6: Can I parallel two outputs to switch more current?

A: Yes for peaks — the ST datasheet lists paralleled outputs as a feature, and the solenoid thread on Electrical Engineering Stack Exchange asks exactly this for coil inrush. Sharing is uneven because saturation drops differ between channels, so parallel for surge headroom, not a precise doubling of continuous current.

Q7: What is the difference between the ULN2003A and the ULN2803A?

A: Channels and pins — the 2003A is seven channels in a 16-pin body, the 2803A eight channels in an 18-pin body. Electrically they're the same family: 500mA and 50V per channel, the same 2.7kΩ inputs, same COM-diode scheme. Pick by channel count.

Q8: Why does my 28BYJ-48 stepper buzz instead of turning?

A: Check the phase order first — the usual wiring is IN1-blue, IN2-pink, IN3-yellow, IN4-orange. Then check the library: guides note the built-in Arduino Stepper library doesn't suit the ULN2003 board's half-step sequence; use the four-step sequence or AccelStepper. A buzz is almost always wrong sequence, not a dead part.

Subscribe to IC-MAX!
Contact Name
*Email
Featured PartsMore
LNK304DN-TL
LNK304DN-TL Power Integrations
LNK304GN-TL
LNK304GN-TL Power Integrations
LNK304DG-TL
LNK304DG-TL Power Integrations
TNY277PN
TNY277PN Power Integrations
TNY276PN
TNY276PN Power Integrations
TNY278PN
TNY278PN Power Integrations
TNY278GN-TL
TNY278GN-TL Power Integrations
TNY280GN-TL
TNY280GN-TL Power Integrations
TOP266KG-TL
TOP266KG-TL Power Integrations
TOP258PN
TOP258PN Power Integrations
TOP253PN
TOP253PN Power Integrations
TOP253PNAU
TOP253PNAU Power Integrations
index: 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
ICMASS.COM

HOME

ICMASS.COM

PRODUCT

ICMASS.COM

PHONE

ICMASS.COM

USER