Arduino core for ATtiny 1634, 828, x313, x4, x41, x5, x61, x7 and x8
Quick fix to get Micronucleus working on Windows again, because it was broken there, Let me know if this has caused any issues.
This fixes the path to the binaries, and no longer tries to use the old "launcher", and the windows files have been repackaged as .zip files, because the .tar.bz2 files, no matter how I nested the folders before tar-ing, came out wrong. Zip worked fine, and I was getting sick and tired of this crap.
It has become apparent that the changes I'm currently developing are quite substantial - and I've decided to release the changes currently checked into master as a 1.5.0 Interim version, as it has been faaaar too long since I did a release, and there are far too many small and medium improvements and fixes that you all are missing out on if you're using the board manager releases. I'd also like to make sure I get bug reports on the stuff going into 1.5.0 (I'm sure I've written some bugs), so it will be fixed for next release!
Before we go any farther, I want to give a huge thank you to @yumkam and @cburstedde for the great enhancements they contributed! Yumkam's pseudo-fast digital I/O improvements are a great middle-ground between Fast Digital I/O (which can't be done automatically without breaking compatibility, since stuff depends on them not being near-instantaneous - but that is not a universal free pass for slow, inefficient digital I/O. ) and the agonizingly slow stock implementations. @cburstedde's improvements are less visible, but no less important: millis() and micros() drift is now essentially as accurate as the clock, on all frequencies, even the wacky ones! These are probably two of the most visible changes in the release - and all I had to do is merge them :-) Also, a lot of people have worked to get the Micronucleus usb upload tool rebuilt and available for all Arduino supported platforms; this should address issues installing via board manager on ARM platforms (which previously didn't have a Micronucleus tool) - big thanks to them as well; I certainly am not qualified to deal with software that runs on a desktop machine - if I can't address all of it's ram with 16 bits, programming it is above my pay grade :-) Beyond that, I'm just gonna copy-paste the changelog:
In the short time since 1.4,0 was released, some serious regressions were discovered: Changes made very late in the development cycle inadvertantly broke all time keeping (millis, micros, and delay) on the ATtiny x61, x41, 1634, and 828 (in different ways - the 861's millis timer simply never got turned on, while the others had interrupts disabled, which apparently causes micros() to behave bizarrely, which in turn leads to delay, which relies on it, passing by lightning fast.
Some users with the MH-ET tiny88 board also tried upgrading the bootloader and discovered the one I packed with the core was non-functional (in my defense, I just used the files that were in common circulation in the micronucleus packages - I shouldn't have assumed that just because they were in a bunch of repos around the internet, that they actually work! D+ and D- were swapped. Rebuilt the bootloader, and in the process, also did all the t88 bootloader building planned for micronucleus, so it now has a set of bootloaders with various entry methods. I came up with what I think is a really clever way of keeping the most convenient entry mode, reset, from bricking the board: You try to read the reset pin. If it's a 0, it could be disabled and LOW, but if it's a 1, you know it is both enabled and the pin is high. Hence the "rescue" procedure if you put this new version of the external reset entry mode on a reset-disabled board is just to apply power with reset tied to Vcc, then put a more appropriate bootloader version on.
1.4.1 fixes these serious issues, and all users - especially those on 1.4.0 - are encouraged to upgrade.
This is the version for board manager install
In the short time since 1.4,0 was released, some serious regressions were discovered: Changes made very late in the development cycle inadvertantly broke all time keeping (millis, micros, and delay) on the ATtiny x61, x41, 1634, and 828 (in different ways - the 861's millis timer simply never got turned on, while the others had interrupts disabled, which apparently causes micros() to behave bizarrely, which in turn leads to delay, which relies on it, passing by lightning fast.
Some users with the MH-ET tiny88 board also tried upgrading the bootloader and discovered the one I packed with the core was non-functional (in my defense, I just used the files that were in common circulation in the micronucleus packages - I shouldn't have assumed that just because they were in a bunch of repos around the internet, that they actually work! D+ and D- were swapped. Rebuilt the bootloader, and in the process, also did all the t88 bootloader building planned for micronucleus, so it now has a set of bootloaders with various entry methods. I came up with what I think is a really clever way of keeping the most convenient entry mode, reset, from bricking the board: You try to read the reset pin. If it's a 0, it could be disabled and LOW, but if it's a 1, you know it is both enabled and the pin is high. Hence the "rescue" procedure if you put this new version of the external reset entry mode on a reset-disabled board is just to apply power with reset tied to Vcc, then put a more appropriate bootloader version on.
1.4.1 fixes these serious issues, and all users - especially those on 1.4.0 - are encouraged to upgrade.
This is the version for manual installation.
This release introduces the long-awaited, oft-requested support for the Micronucleus VUSB bootloader! When installed through board manager, (manual installs require having already installed micronucleus-using package through board manager), you can now upload to those USB ATtiny85 "Digispark", ATtiny167 "Digispark Pro", ATtiny841 "Nanite", ATtiny88 "MH Tiny" and ATtiny84 boards! This has been a huge update - and there's much more planned to further enhance this functionality. You can also load the Micronucleus bootloader onto these using an ISP programmer, or upgrade the bootloader to the version included with ATTinyCore via USB. All the usual ATTinyCore features and options are available too (provided they make sense)!
This also introduces improvements to the bootloaders for the 841, 441, 828, and 1634 that should help alleviate the issues with the the internal oscillator's voltage dependence, and the >4.5v version no longer requires a different bootloader, and achieves approximately 8 MHz by nudging OSCCAL down, instead of by compiling for a slightly faster clock speed. Adventurous users of the ATtiny841 can now crank the internal oscillator all the way up to approximately 16MHz - some parts can juuuust barely make it - but so far all the ones I've tested were able to do it. There are some significant caveats to this (beyond the fact that we can't guarantee that we actually got right on 16MHz - it's not tuned... serial receiving and transmission won't work while writing the EEPROM).
Finally, we have a MASSIVE backlog of small (and not-so-small) fixes:
There is also more to come for ATTinyCore - a long overdue migration of the four parts that currently use the "tinymodern" core to the main core is coming, there are a number of optimizations to reduce flash usage in the works, plus the "fast digital I/O" functions. The USB libraries to support the micronucleus boards acting as keyboards, mice, and serial ports is coming, as is a suite of new micronucleus bootloader binaries with support for all the entry conditions that look useful, including combinations of them.
Further in the future, you can expect micronucleus bootloader support for all the parts that don't have it, along with hardware from my Tindie store to use it with! Take it for a spin, see what I broke in the process, and report them to me so I can unbreak them in 1.4.1 :-)
This is the version for manual installation.
This release introduces the long-awaited, oft-requested support for the Micronucleus VUSB bootloader! When installed through board manager, (manual installs require having already installed micronucleus-using package through board manager), you can now upload to those USB ATtiny85 "Digispark", ATtiny167 "Digispark Pro", ATtiny841 "Nanite", ATtiny88 "MH Tiny" and ATtiny84 boards! This has been a huge update - and there's much more planned to further enhance this functionality. You can also load the Micronucleus bootloader onto these using an ISP programmer, or upgrade the bootloader to the version included with ATTinyCore via USB. All the usual ATTinyCore features and options are available too (provided they make sense)!
This also introduces improvements to the bootloaders for the 841, 441, 828, and 1634 that should help alleviate the issues with the the internal oscillator's voltage dependence, and the >4.5v version no longer requires a different bootloader, and achieves approximately 8 MHz by nudging OSCCAL down, instead of by compiling for a slightly faster clock speed. Adventurous users of the ATtiny841 can now crank the internal oscillator all the way up to approximately 16MHz - some parts can juuuust barely make it - but so far all the ones I've tested were able to do it. There are some significant caveats to this (beyond the fact that we can't guarantee that we actually got right on 16MHz - it's not tuned... serial receiving and transmission won't work while writing the EEPROM).
Finally, we have a MASSIVE backlog of small (and not-so-small) fixes:
There is also more to come for ATTinyCore - a long overdue migration of the four parts that currently use the "tinymodern" core to the main core is coming, there are a number of optimizations to reduce flash usage in the works, plus the "fast digital I/O" functions. The USB libraries to support the micronucleus boards acting as keyboards, mice, and serial ports is coming, as is a suite of new micronucleus bootloader binaries with support for all the entry conditions that look useful, including combinations of them.
Further in the future, you can expect micronucleus bootloader support for all the parts that don't have it, along with hardware from my Tindie store to use it with! Take it for a spin, see what I broke in the process, and report them to me so I can unbreak them in 1.4.1 :-)
This is the version for board manager installation.
This release adds a few requested features, streamlines the burn bootloader process (which may also fix an issue encountered with some programmers that mishandle the reset line between programming operations). All users are encouraged to update to this version. It will be available for board manager later tonight. The full list of changes is:
As always report any problems through the Github Issues system - enjoy! This is the version for board manager installation.
This release adds a few requested features, streamlines the burn bootloader process (which may also fix an issue encountered with some programmers that mishandle the reset line between programming operations). All users are encouraged to update to this version. It will be available for board manager later tonight. The full list of changes is:
As always report any problems through the Github Issues system - enjoy! This is the version for manual installation.
This version remedies several problems introduced by 1.3.0 that prevent compiling sketches for x5 and x61 optiboot boards, and with the Servo_ATTinyCore library (which would only build for a small number of boards). All users are encouraged to upgrade.
This is the board manager version.
This version remedies several problems introduced by 1.3.0 that prevent compiling sketches for x5 and x61 optiboot boards, and with the Servo_ATTinyCore library (which would only build for a small number of boards). All users are encouraged to upgrade.
This is the manual installation version.