If it was obtainable, it controls four 5x7 displays. vs (MPC21018 + 5 NPN transistors + 5 base resistors + 5 current limit resistors) x 4, plus larger board to put it all on, plus debug time for wiring errors, plus increased coding time, vs $13 and some I2C commands, possibly using a library.
For me, the part count, wiring errors, and coding time are preferable. For one thing, the learning is kind of the point here, not the finished product. So the route that causes more learning is the better one.
Number 2, one of my guiding principles is BOM cost. My goal in Arduino is to understand the world of my EE colleagues (I am a software engineer). We make consumer electronics. These guys will sacrifice pretty much anything for pennies in BOM cost, *particularly* 'coding time'

So paying extra money to make things easy goes against that goal.
Here's what I would do: get a part like 74AC299 from Newark (I just bought 20 in DIPs for 56 cents each) to drive the anodes, and something with more current sink capability like a ULN2003 on arduino outputs to pull the cathodes low. Then put a bunch of them in parallel, make a 25x7 display.
Looking at the ULN2003 and trying to understand it, there are a few things I am wondering...
- In my case, could I use it instead of the transistors to control the columns?
- Does it work like a set of PNP transistors? Or NPN? Or totally unlike that?
- Does it still need base resistors?
With the 25x7 setup you described, if you're controlling them through Arduino pins that tells me you don't have 5 of them. Do you connect ALL the rows together then? In that case, you do have to sink 500mA, right? Because each light is 20ma * 25.
And yeah the custom digits are awesome! Now I'm wondering if I should just do that
