@Digistump
On Prescaler and 16mhz crystals:Actually I pulled that idea of using the cpu prescaler to conform to power specs out of the air. I am 95% sure it'd be totally fine and within the spirit of the spec if not the exacting language of it, but it maybe wise to shoot off an email to atmel to confirm. I believe the clock speed issue is this: Each time the CPU steps forward (one full clock transition) a whole tonne of transistors collapse their state, with much of the CPU die becoming effectively a short circuit for a tiny moment. As soon as the chip settles it uses effectively no power at all until the next step forward. This is why attiny require those really low value tiny capacitors right near the power pins - to provide this massive surge of power for some tiny fraction of a nanosecond, and then charge back up for the remainder of the time, giving the overall average power usage of 2ma or whatever. The capacitors are supposed to be as close to VCC and GND as possible to eliminate as much inductance from the wiring as possible, improving the ability to send these sudden jolts of power in to the chip. I think at lower voltages the internal resistance of the chip isn't able to reliably power the entire die at higher clock speeds, so bits can get out of sync and then everything goes horribly wrong. The CPU prescaler would insulate the vast majority of the chip from this higher speed, so the power usage would be almost identical to just using an 8mhz crystal.
The reason I'm so confident it'll be perfectly okay is that all the CKDIV8 fuse does is initialize the CLKPR register to some number other than 0 before jumping to reset vector on power up. This fuse is intended as a way to use the chip at lower voltages than those required for the internal 8mhz oscillator - but the oscillator still runs at 8mhz regardless of everything (except OSCCAL register...)! So atmel are kind of sort of already telling people to use clock prescaler to work around low power requirements.
On Through Holes for zenners:I don't get what these through holes are for. I can kind of see the usefulness of having through holes for choosing between 5v and 3.3v on the regulator for your usual protoboard spark that you may reuse for prototyping a bunch of different projects, but for the zenners as well? It seems to me that there are only ever two reasons to disconnect the zenners:
- Your computer hates the capacitance added by the zenners, and is 5v tollerant, so disconnecting them perversely makes the digispark more reliable with your specific computer in this wacky edge case. (hehe, get it? edge case? like edge transition? nevermind..)
- You're running your digispark at over 3.6v (e.g. 5v) and you want to never use the USB port again (or your computer is 5v tollerant like most modern Mac's seem to be) and you want to save every scrap of power you can and the power wasted by the zenners is a problem for you.
In the first case, why would you want to be frequently changing this mode enough to have through holes and jumpers? And in the second case, exactly the same question again? For the majority case just leave the zenners always connected and they wont waste any power when the spark is running on 3.3v and they'll do their job when you set the regulator to 5v.
I strongly oppose making the PCB even half a millimeter bigger for something which doesn't seem to be actually useful. The whole point of the digispark is to be small! I would be perfectly happy not having through holes even for the regulator 3.3v/5v selection, unless it just so happens that your board layout leaves you with spare space to play with. I'd be fine with soldering a couple of wires on to the little surface mount jumper pads and connecting a switch for my prototype board spark. I'd much rather that than having a board be 0.1mm longer. Smallness is so important!
On reset pin fuse:I'm 99.99999% sure there is no way for an attiny to program it's own fuses. There is no register for the reset pin, so it cannot be changed at runtime. If there is an option in the IDE to set if the reset pin to do GPIO or ISP functionality, it must work by the user plugging a high voltage serial programmer in to their computer, which the software uses in the usual way to change the fuse. The only other solution I can think of is faking it with a bootloader that hooks the reset pin via pinchange register and then implements the ISP upload protocol and pretends to be the AVR obaying the programmer, but that'd be so stupid! micronucleus USB upload go way faster than any of my ISP programmers anyway, and the bootloader still wouldn't be able to make all the progmem available for usage, and you couldn't change any fuses either. Believe me I have looked for this miracle fuse self programming mode again and again. I wish it was a thing you could do. I would be all over that thing!
On the reset pin thing though, keep in mind that I am biased because I love Micronucleus. I invented it explicitly so I could use that elusive reset pin on my attiny85's without danger. It is my fluffy and I will love it and feed it and call it george. I love my reset pin and none of you can take it away from me!!! To me, it seems like a crime to let a reset pin go to waste when we now have this glorious magical technology! All bow before the regal might of Micronucleus!