Help analyzing this BJT LED driver circuit
Looks like a terrible example circuit.

Just taking them at their word, at \$100\:\textrm{mA}\$, the LED is going to drop more than \$2\:\textrm{V}\$ already. The \$14\:\Omega\$ resistor will drop another \$1.4\:\textrm{V}\$. That's \$3.4\:\textrm{V}\$ (and more) and the transistors aren't even accounted for, yet.

The 2N2219 is being driven as part of a Darlington (part inside the IC, part outside), so the net drop must be at least two \$V_{BE}\$, plus a little for the internal resistor. At \$100\:\textrm{mA}\$ out the emitter, call it at least \$1.5\:\textrm{V}\$ there. (I don't see a high side boost circuit for the internal BJT base drive in their block diagram.) And the 2N6034 is a Darlington. So it doesn't saturate, either, and will require a \$V_{CE}\approx 1.5-2.0\:\textrm{V}\$ (The guarantee at \$I_C=2\:\textrm{A}\$ and \$I_B=8\:\textrm{mA}\$ seems to be \$V_{CE}= 2.0\:\textrm{V}\$ -- see this datasheet.)

They got one thing right. You can expect to achieve \$\beta\approx 100\$ in the 2N2219, since it's \$V_{CE}&gt;1\:\textrm{V}\$. And the 2N6034, being a Darlington, can also achieve \$\beta\approx 100\$, too.

But there's no headroom left over from \$3.3\:\textrm{V}\$ after you subtract away the transistor drops. I don't know why it would work as the diagram says it can. (You'd probably need a \$6\:\textrm{V}\$ rail to make that thing work at their max pulsed current rating.)



Regarding your own use, keep in mind that since you will likely be multiplexing the LEDs, you will want to multiply up the drive current. If you are multiplexing x4, for example, then a \$20\:\textrm{mA}\$ continuous equivalent becomes an \$80\:\textrm{mA}\$ pulsed drive to operate the LED at 25% duty cycle. So your \$V_F=2\:\textrm{V}\$ probably isn't right and must be adjusted upwards a bit and also accounted for.