2.4.0 - SerialUPDI compatibility fixes, oscillator tuning, and much more!
megaTinyCore 2.4.0 is FINALLY HERE!!!
This brings what is hoped will be a major improvement in compatibility of SerialUPDI (except in turbo mode - turbo mode is slowed significantly by those improvements; turbo mode is not expected to work on all adapters or under all conditions, but rather to offer the absolute highest performance, with the expectation that the user will take care to provide optimum conditions)
We also see some exciting new features:
- Tuned Internal Oscillator - see the tuning document for more information, this gives a route to overclocking these parts without using an external clock, as well as, on Optiboot configurations, running at 16 MHz when the bootloader was burned at 20 MHz and vise versa. Running the tuning sketch first is strongly recommended. The 2-series parts, at 5v and room temperature will often run at 32 MHz from the internal oscillator (after cranking the calibration way the hell up)! Under similar conditions, 0/1-series parts can sometimes run stabily at 30 MHz from internal, and 24 or 25 MHz should be no problem at all. Obviously, the operating temperature range will be more limited when overclocked in this way (and the internal oscillator can never push the parts quite as far as an external clock can). Be sure to read the tuning documentation if you're interested in using this functionality.
- New advanced digital I/O functions: openDrain(), openDrainFast() and pinConfigure (first introduced on DxCore) are now available. The first two just provide a wrapper around writing to the direction bit instead of the output bit, allowing it to be used as an "open drain" output, which is very useful for interacting with devices running at a lower voltage, while pinConfigure() provides a single function to set (or leave unchanged) every parameter of the specified pin.
- Early version of Event.h - however, my initial work with it showed that there are still serious features needed to make this particularly useful. We're getting there though.
- C++ 17 support and support for libraries that insist on providing only precompiled source code.
There's also a HUGE number of minor and major bugfixes in here this release. Truly too many to list - the changelog is not complete, and even that runs to over 30 bullet-points.
We also now have better CI testing to catch any future problems which result in failures to compile, and look forward to improving this testing further.