- Field-upgradeable: I'll probably make a header for ICSP pins, a header at the edge of the box, and a ribbon cable connecting the two. My plan is to key it by making a 2x4 grid (ICSP is 2x3) and blocking one of the pins. That would stop a user from plugging this in backwards.
You could probably just use a custom connector that uses 2mm or 1.50mm 1.27mm between pins instead of 2.54mm , or one that comes with keyed shroud. This way user will be unlikely to plug any cable it finds around yet could still solder some wires in the holes if you don't populate the connector.
For example, look at JST ZH :
https://www.digikey.com/product-detail/en/jst-sales-america-inc/B6B-ZR(LF)(SN)/455-1661-ND/926568You can buy ready made cables cheaply as well (for example ZH series is compatible with the ZR series cables) :
https://www.digikey.com/product-detail/en/jst-sales-america-inc/A06ZR06ZR28H51B/455-3035-ND/6009411- Quasi-modular: I'm looking to offer several different builds of the base unit. I _think_ the way to go about doing this is to build a "base" PCB with header pins and use corresponding headers on the expansion boards and ribbon cables.
In that case you may want to look into a microcontroller with pins that can be rearranged for specific purposes for better/easier layout.
- 5V->3.3V conversion: this is a USB device. I'm looking at using an LD111733 with appropriate capacitors to run the components off of 3.3V.
Do more research and pick some regulator that is more flexible and isn't so picky about what capacitors you use. For example LD1117 and 1117 series in general is known for requiring capacitors with esr above some threshold on the output (electrolytic capacitors are often suggested). Just spend a couple more cents on a ldo that can work fine with basic ceramic capacitors, or you could just use a micro that can work fine with 5v.
- Decoupling caps on every IC: I've several ICs. The Atmel, a 74HC14 (for hardware debounce), a MAX7219 to drive LCD displays. I've effectively read that you want decoupling caps on every IC, and I'll eat the extra $0.30 in parts (it's a pretty niche device, so it'll be a short-run kind of thing where if I sell 100 units, that will far exceed my expectations). Is this a good move?
You could do a sort of semi-hardware debouncing by just using a RC filter on each button. Pick resistor and ceramic capacitor in such a way that it takes a few ns/ms for the voltage to raise/go down enough to hit the micro's threshold and switch from LO to HIGH or the other way
See
https://learn.digilentinc.com/Documents/258 or
http://www.eng.utah.edu/~cs5780/debouncing.pdfCeramic capacitors and ceramic resistors you buy in rolls of 2500-5000 and they're pennies. , certainly cheaper than a whole separate IC which would also require power and consume power constantly.. and if space is an issue you could even go with resistor networks for such purpose.
This semi-hardware debouncing plus some minimal filtering in the micro could be enough to save you the need for an extra debouncing chip.
max7219 is a LED digit display, not a LCD driver as far as i'm aware. I'd say stay away from Maxim parts as they're way too expensive and you may have surprises like not being able to buy them in quantity you want, or you may have to wait long times for them.
Genuine ICs are also expensive at around 9$ a piece, or around 6$ if you buy 100.
It's just a stupid 8 x 8 led driver, with the only plus that you just send it 8 digits and it does the conversion from digits to segments and does that multiplexing thing turning on segments.
In the amount of space this chip would use you could literally use a 1-2$ 16-24 .. even 32 channel led driver and - if you want to reproduce this chip's functionality - you can have a 8-10-12 pin micro that just receives the digits from your main micro , determines which segments need to be turned on or off for each digit, and shifts the data into the led driver and also does the multiplexing thing
ex
1.85$ per 100 for 24 channel driver :
https://www.digikey.com/product-detail/en/issi-integrated-silicon-solution-inc/IS31FL3737-QFLS4-TR/706-1511-1-ND/62019821.65$ per 100 for 24 channels :
https://www.digikey.com/product-detail/en/stmicroelectronics/LED2472GQTR/497-14236-1-ND/45522281.18$ per 100 for 16 channels :
https://www.digikey.com/product-detail/en/texas-instruments/TLC5929DBQR/296-28974-1-ND/2682903For prototyping you could just as well hit digikey, farnell, mouser etc you won't be bankrupt by spending a few dollars more ordering small quantities.