The saga of my Arduino=>SAMSUNG SSED HNM-05SS62T VFD interface continues:
I didn't find any MPSA42 transistors, but I did find 450 of PIHER 2N4287, which are minature NPNs good for 45V Vceo, 50mA Ic, with HFE in the range 150-600 which should do nicely as the high side VFD drivers. The anodes are getting 100K pullups, which should give me 1.5mA drive for 1V drop across the base pullup resistor, and when pulled low, pass 0.33mA to the ULN2803 collector. The grids would probably work with the same, but I was short of 100K 1/8W resistors so decided to try a much lower value - 22K which should give 6.8mA drive for 1V base resistor drop. The ULN2803 will be sinking 1.36mA to drive those. All have small signal silicon diodes base-emitter, k to b so the ULN2803 can pull the load down hard.
The HT rail is from a AM1S-0524SZ 1W 5V:24V isolated DC-DC converter stacked on top of the 5V rail to give me 30V. That should give me up to 42mA with 78% efficiency - a lot better than I could have cobbled together quickly and in a fraction of the breadboard area. The filament needs 60mA @ 1.5V, and to get started I'll be running it on DC
so with a 60R series resistor as the 5V supply I am planning to use runs a little on the high side. The resistor goes between one end of the filament and ground so the centre of the filament will be sitting up at approx 4.25V to give me some negative bias when a grid or anode is pulled low to get a proper cutoff.
Next job is to hook up all the VFD pins and the ULN2803 chips to the 12 high side drivers I've assembled and do a static test hard-wiring the ULN2803 inputs to light up various segment patterns, before I start hooking up the shift registers and Arduino.
I need to look at designing a 'Joule thief' style boost circuit for the HT which hopefully will be able to feed the filament from another winding - if I can get away with only three simple windings on a ferrite ring that will be great. If it only produces just enough HT current for all segments lit, then I stabilise it with a 33V Zener, the filament drive should remain fairly constant.
Edit: The hardware is up and running - I tied the shift and store clocks together and clocked in random garbage by simply bringing my finger near the floating input wire (Joys of CMOS ) Tying Din high blanked the display when I clocked it, tying it low lit everything and letting it float displayed random garbage.
The DC-DC converter was running a little warm, so I increased the digit grid base resistors to 150K - that's a little high so I need to find some more 100K sub-miniature resistors. That part of the breadboard is a little crowded - I've got 12 transistors, 12 diodes and 12 resistors in 18 contact strips, it would be 4 less except that each driver needs two holes in the HT rail, so I really don't want to use normal 1/4W parts.
The Arduino in its little plastic protective frame is 'stapled' down with a heavy wire through each mounting hole and is hooked to the 74HC595 chain using its hardware SPI port.
Now to write some software . . .