I made a mistake in my post, the mosfets are driven by the MM5451 which are current sinks, so I suppose that would mean using the compliment TIP125? I am using the MM5451 as it is a serial port driven latching chip that uses 3 O/I pins to drive 35 channels.
Oh, I should have caught that - my bad.
Well, yes and no. A PNP device on the 12V (or 24V) line should not have its base connected to a line that switches between 0V and +5V, as it'd be on all the time.
A PNP is on when the base is around ~0.7V (~1.4V for Darlingtons) lower than the emitter.
I don't have room for TO-220s as the pcb is only 81 x 53mm with 12mm headroom, has other components and connectors for the LEDS, which is why I was looking at the SMT Mosfets.
You don't have room??
You live in an extremely small apartment or what? (I bet your toothbrush is foldable then
Any reason you cannot have twice the PCB area... Or ten times that?
First you design the circuit, then you find out what area it takes with a reasonable component placement and only then you select a box for it.
If there's not enough room for something, somebody screwed up the line of decisions (like when a foolish designer placed an LED a very inaccessible place in a telephone from a world renowned Danish HiFi manufacturer *coughB&Ocough* making a heck of a strain on the engineers that had to redesign the entire electronics layout)
Is there an alternative?
Allways (except with death and taxes).
You could use MOSFETs or BjTs as you like, as long as they're connected the right way.
You need to run the MM5451 off +5V (it can run off +4.5V to +12V) to keep it working with the Arduino. To go from a sink going from +5V to 0V, to a 12V (24V) driven device, you need a small signal transistor to invert the output.
Something like this:
Or... Use a P-ch MOSFET or a PNP Darlington with a zener diode in the input like this: