Previously, my display multiplexer flashed one column at a time, where one column consisted of 7 LED's. Each LED would have had about 20 mA going through it, which comes to a total of 140 mA flowing at a time. 140 mA is too much current to draw from the PIC16F887 overall, which is why I had highside drivers for the rows. The column took the current of all 7 LED's so naturally I had a lowside driver to sink the 140 mA. In order to get rid of the highside drivers for the rows and also the lowside driver for the columns, I've decided to flash each LED one at a time. Altogether I have one hundred LED's on my board, but even when the game is maxed out there'll be a maximum of 57 LED's lit at a time. So here's my latest schematic: http://freepdfhosting.com/uploads/312c70b68a.pdf (It's high resolution, you can zoom in) And here's some points about it: * 100 nF capacitors across the Vdd and Gnd pins of the 887. Do I need a cap across the battery? * 100 ohm resistor in series with the piezo speaker; will this be enough to protect from "kick back"? * I've got 7 push buttons, but 6 of them don't have pull-up resistors because Port B has internal pull-up's. The last button, PB6, has a pull-up resistor because it goes to a pin on Port C which hasn't got an internal pull-up. I'm using a 1 kilohm resistor for the pull-up; is this a good value? Is it good enough for the pull-up resistor to go to 3 V instead of 5 V? * The resistor pack for the LED's consists of 50 ohm resistors in order to put 20 mA through a 2 V LED when the supply voltage is 3 V. * I haven't got an RC circuit on Vpp; I'm going to use the PIC's internal pull-up instead. Will this be OK for normal usage of the device and also for when I'm debugging it? I'm using the internal oscillators on the 887, which means I'll be running it at either 4 MHz or 8 MHz. In the datasheet for the 887, there's a graph of permissible values for Vdd versus clock speeds. It seems that Vdd can be brought as low as 2 V if the clock speed is below 8 MHz, so I shouldn't have a problem with a 3 V supply, and also hopefully I won't have a problem as the battery voltages drop as they deplete. One thing I've just been wondering about though... as the batteries deplete and as the supply voltage drops from 3 V, will this have a major effect on my LED's? It seems to me that so long as the supply voltage doesn't drop below the forward voltage of the LED's, I won't see a *major* drop in LED brightness. Using 50 ohm current-limiting resistors for the LED's, I'll have 20 mA flowing when the batteries are 3 V, and if the batteries were 2.5 volts, I'd have 10 mA flowing. When maxed out, my display multiplexer will consist of 57 separate stages. I had my doubts on whether the 887 would be fast enough to pull off 57 stages without flicker, but I've been assured that it's up for the task. What I'm concerned about though is the brightness of the display... so I'm thinking I should get "high intensity" LED's or whatever they're called. So basically I'm looking for a three-pin, bi-colour/tri-colour LED with the following characteristics: * High intensity, very bright * Neither of the internal LEDs' forward voltages is greater than about 2 V. * The current through them for highly luminous light is less than 25 mA. * Common cathode My supplier is Farnell here in Ireland, but I'm having trouble using their finder yokie for finding the right LED's. Anyone know a good site where I can easily enter the above data and narrow the search down? (I've tried Digikey but didn't have much luck) And now just a couple of questions about running the PIC at less than 5 V: * If I'm running the PIC at 3 V, then what value must I have on an input pin for it to be read as HIGH? Is 3 V enough? * If I'm running the PIC at 3 V, will kind of voltage will I get on an output pin when it's high? Will I get near enough 3 V? Or will I get more like 3 V - diode drop, i.e. about 2.3 V? -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist