SpenceKonde/ATTinyCore

Add support for ATtiny20

Closed this issue · 1 comments

Hi,

thanks a lot for your amazing work here.
Would it be possible to add support for the ATtiny20 ? The WLCSP package makes it extremely compelling in space saving applications…

thanks

I have clarified the unsupported parts section of the documents to make clear that the ATtiny20 is one of the reduced core AVRs, and as such is not a good match to Arduino - arduino, in order to gain the ease of migration across so many parts inevitably has to impose some overhead. I think the solution that the author of that core came to (which I consider to be too much work, not enough reward) involved making sure all the most common commands required that the arguments to the functions (like, digitalWrite and stuff) be constant - so like digitalWrite ends up being a macro and there's no actual function body left in the executable - rather than digitalWrite(1,HIGH) calling digitalWrite which determines that pin 1 is bit 1 in port A and

The AVRrc instruction set loses half the general purpose working registers, (there's no r0 through r15, only r16-r31), every moderately complicated instruction takes more cycles to execute, max memory is miniscule. and Microchip has made it clear where they're directing AVR development, and it isn't towards AVRrc.

You actuallly willingly solder WLCSP?! That's a first, somone willingly soldering one of those....

People look at me like I just stepped out of a flying saucer or something if I mention that I solder the 3x3mm QFN 20's by hand

And wait up one second here, I just looked at the tiny20 datasheet drawings section, the WLCSP is the same size as the QFN20, 3mm x 3mm. Except that the QFN20 has 4 more pins... And if you accept a QFN20 you can get a much fancier part in there, like a 3226, and I'd take soldering a QFN20 over a ball-array-mess like that any day. At least with QFNs when you screw up you can see where the screwup is and try to fix it....

But in any case, no, there is no way in hell I'm going to do this. Even if I thought this was a good use of my time to develop (I feel strongly that it is not), I don't have the time for such a large project anyway - and it is a very large project indeed, because to get a result that would be acceptable (at least by my standards), you'd need to start fresh, because the resources are so constrained that every tradeoff must be revisited. everything would need to be re written with the goal of size, usability would suffer greatly, and all that effort for a group of chips that appears to have failed in the marketplace.