Unsure whether "Super Red" (AlGaInP, 660nm, 200mcd) + "Green" (GaP/GaP, 570nm, 195mcd) or "Ultra Red" (AlGaInP, 660nm, 320mcd) + "Ultra Green" (AlGaInP, 574nm, 250mcd) will provide the better yellow when mixing? Tried finding an online comparison of different LED phosphors (with pictures) but failed. Also unsure whether black or grey background will look better behind the dark grey acrylic I plan to cover the display with. On one hand the grey is more similar to the (unlit) diffused lenses, so should result in a more uniform appearance - on the other it may lead to more light scattering behind the acrylic and lower contrast...
I don't think you can answer that without sampling them. Its certainly going to be easier than futzing around with a calibrated light source, two prisms and a bunch of lenses and filters on an optics bench to match the spectrum.
I'd also look at BL-M07A881EG-XX, "Orange" (GaAsP/GaP, 635nm, 190mcd) + "Green" (GaP/GaP, 570nm, 195mcd) as, if you can stand the orange rather than red, its a lot more likely to give a nice yellow. Personally I'd sample it and your 'Ultra' contender in the black face variant and the other one in grey face. Any that don't make the cut can be used in early development at the burning LEDs stage.
<Using basic primary colour names for brevity from here on>
The A (column anode) matrixes would be well suited to (approximate) 1/16 multiplexing by column position within each matrix driving them all simultaneously with different row data with a string of TPIC6C595 chips or better the TPIC6B595 - same chip, but a continuous current rating of 150mA per output instead of 100mA to better match the matrix's peak pulse If current rating. As the current will be set by the row resistors of each individual matrix, it will be in a fixed ratio for red and green determined by the supply voltage minus their respective Vf so you'll need to trim the intensities of Red and Green by varying their relative duty cycle while maintaining the same total on time per column. If you want independent yellow brightness and colour balance control, that can be achieved by outputting a second string of row data during each colour's on time, sending R&~G during the red on time to reduce its contribution to the yellow by the time remaining till the next anode change, and G&~R during green to similarly reduce it.
The result will be the ability to independently dial in red, gren and yellow intensities and select the yellow's red/green colour balance without the need for complex hardware.
Its going to be somewhat of a brute for supply current. Pushing it to the limits with all LEDs on with both R and G at max brightness and no compensation for the resulting combined yellow, each column draws a bit under
# 150mA x8 during its ON time That's 1.2A per matrix for a hefty 9.6A total at a voltage TBD by pulse testing. A buck converter from a higher voltage is definitely called for. Let's suppose it ends up needing 5V. Bucking from 12V at 85% efficiency would halve that to 4.8A in - still a PITA but not so bad. Bucking from 19V gets it down to a reasonable 3A in, which is easy and cheap to provide from a second hand laptop supply. The *AVERAGE* current in normal operation with non inverted text is going to be far under that 9.6A, but depending on how close to the 150mA Ab.s Max. pulse If limit you *NEED* to push it to to get the required brightness, the peak current during multiplexing would still be nearly that high
@. (Pathological case with normal text, a string of all letter 'H' on 8x8 matrix.) If your supply cant deliver that, it's riding on its output bulk decoupling during the peaks, which is likely to result in unwanted brightness fluctuations of verticals with respect to other parts of each character and possible colour shifts of yellow verticals. Due to the much lower average demand, you can almost certainly get away with a buck converter module from EBAY with a 10A ''chinesium' rating. However, if you go down that route, you'll need a TL431 + hefty TRIAC crowbar to save your matrix and drivers if the buck module's pass MOSFET fails. The loss of multiplexing protection circuit I mentioned earlier can drive a small current into the module's control chip's feedback pin to fool it into dropping its output voltage or alternatively if you'd rather a hard shutdown, fire the crowbar or activate the module control chip's inhibit pin.
To determine the matrix supply voltage and row resistors, you are going to need to do pulse testing. Take a P-MOSFET that can handle >1.2A and drive it from the output of a 555 set up to provide a 1/15 duty cycle low going pulse at about 1KHz, Power the 555 from a 12V fixed voltage. Take one matrix, and eight 33R 1/4W resistors and connect all the rows via individual resistors to ground. Jumper ONE column anode (R or G) to the MOSFET drain. Put a good sized decoupling cap on the MOSFET soource and feed it from a variable supply ramping it up slowly from below 2V till you get the desired brightness staying under 150mA pulse current (which if the resistors are accurate is a 4.95V pulse measured at a row anode on your scope). If you want to fiddle with testing the yellow colour balance, grab another 555 and MOSFET, set it up to be triggered sequentially by the end (rising edge) of the 1/15 duty cycle 555 pulse, and to produce a variable with low going pulse to gate the second MOSET. Then with one drain connected to R and the other to G anodes (same column for yellow, adjacent columns for red vs green brightnesses), you can vary the second one's on time to balance colours without changing the common supply voltage. You can also try the effect of different row resistors.
Allowing an abs max 5ma per TPIC6B595 from the same logic 5V rail as the MCU and 10mA for the decode to 16 outputs for the P-MOSFETs, that's 50mA @5V above what the Arduino or Atmega needs, so a linear regulator could handle it dropping from 19V with about a watt of dissipation. If an Arduino is used, the linear regulator could drop to 8V Vin and let its onboard regulator provide the 5V logic supply, and if you are going bare ATmega, or if you want to run the Arduino at 5V rather than off Vin, you'd simply drop to 5V for the MCU and logic directly.
# How close to 150mA you can go depends on how much voltage you drop across the row current limiting resistors to reduce the importance of the difference between red and green Vf voltages.
@ Because you are going to have to pulse up to 9.6A through the MOSFETs, and there is the possibility you'll need over 6V LED supply, there's a fair chance you'll need 16x proper gate drivers or at least a level shifter with active pullups if the 74HC138 outputs cant provide enough drive. A cheap option here would be a CD4515 4000 series CMOS 4:16 decoder (active low) in place of both 74HC138 chips, powered from the LED supply, with its limited output drive (1mA) increased by a complimentary push-pull emitter follower pair on each output to give around 100mA gate drive. Between 5V and 7V LED supply it wouldn't need any level shifting. Above and below that it would, but with only five input lines to shift that could easily be handled by a CD4504 hex level shifter. As you can see - its a tossup between 2x 16 pin 74HC138 chips + 4x quad MOSFET drivers, or 1x 16 pin CD4504, 1x 24 pin 4515 and 16 pairs of jellybean PNPs *AND* NPNs or at best dual complimentary paired (PNP + NPN) in SOT23-6 or similar.