Mike said:
I think you could improve display brightness significantly at minimal cost or trouble while maintaining that 'simple' tutorial value.
The pin "sink" spec limits your row driver pins to 25-ma no matter how many column LEDs are turned on. Consider adding a 160-ma NPN driver to each row pin to utilize the full 20-ma "source" capability of your column pins.
Better yet, scan common anode rows with 200-ma PNP drivers and take advantage of the 25-ma sinking capability of each column pin.
Well, this has sparked some lively debate!
OK, I'll explain further.
My original plan was to use source and sink drivers in order to push more current through the LED's - and the original circuit I started drawing incorporated that - but I thought it was getting a little away from the 'simple' philosophy of the tutorials.
While doing mental calculations of suitable resistor values I realised it's quite plausible using just the PIC to drive the displays, so I dropped the drivers and increased the values of the current limiting resistors to 150 ohms.
Due to the modular nature of my tutorials, a further thought was to optionally add driver boards between the PIC and the display - I was thinking of two seperate boards, a 'sink' board and a 'source' board - both of which could also be used for other purposes (again reinforcing the modular nature of the boards).
BTW, I've just assembled a quick program that puts all the LED's ON, and measured the battery current - it was only 62mA? - which seems rather low?, but the LED's seem plenty bright enough. This was on my meter at work, I wonder is the current ranges aren't reading properly? - it very rarely gets used on current, I'll measure again with my meter at home.
As for LED brightness, the scrolling numbers tutorial is clearly visible across the full length of the workshop - about 40 feet.