I was able to create a custom 3rd party hardware configuration in the Arduino IDE, based on the ATtiny Core from SpenceKonde, more info here. The original uses AVRDUDE to upload the sketches, but I was able to change it to Micronucleus instead. Most common Micronucleus configurations are supported now in this new board manager:
- ATtiny84a, used for my other project, the board for wearables
- ATtiny85, original Digispark
- ATtiny167, Digispark pro
- ATtiny841, Wattuino (even smaller than the ATtiny84a board in this project)
There are some advantages of using the ATtiny Core over the original Digispark hardware configuration in the Arduino IDE (which I used for the initial development) as follows:
- More library support, for example FastLED compiles without issues with the ATtiny core
- Link Time Optimization, makes the sketch smaller, so you will end up with a little bit more space on the ATtiny. I compiled a sketch without LTO and it resulted as follows: Sketch uses 4278 bytes (64%) of program storage space, and after enabling LTO: Sketch uses 3870 bytes (58%) of program storage space. Maximum is 6658 bytes.
I have Digispark pro, a LilyPad ATTINY85 (same as digispark) and the ATtiny84a which I can use to test 3 of the 4 configurations shown above. After it all works well I can complete the board manager, and I will create a JSON file so that everybody can start using this in the board manager as well.