The Perl Advent Calendar needs more articles for 2022. Submit your idea today!
Revision history for Device-AVR-UPDI

0.12    2022-10-04
         * Have `verify` command calculate the actual offset byte where verify
         * Updated for TEst::ExpectAndCheck::Future v0.04

0.11    2022-07-13
         * Updates for Object::Pad 0.57
            + Use `:does` attribute rather than `does` subkeyword
         * Use Commandable for ARGV handling - gives automatic help, better
           parse support, generally nicer

0.10    2021-08-25
         * Fix some (harmless) warnings that would otherwise become apparent
           after Object::Pad RT139027 bugfix
         * Use ADJUSTPARAMS from Object::Pad 0.51
         * Set :strict(params)

0.09    2021-07-17
         * Support multiple commands to avr-updi; useful for writing
           flash+EEPROM in a single command
         * Convert to using Object::Pad
         * Much faster write performance, by disabling per-byte responses
           during sending
         * No need to reset chip after reading fuses
         * Reset chip only once after all write operations are done

         * Better support for AVR Dx chips by using 24bit addressing
         * Handle sparse .hex files by filling in holes with 0xFF

        With thanks to Spence Konde ( for much
        assistance with AVR Dx chip bugfixing and suggestions on performance

0.08    2021-03-18
         * Add DEBUG output for read_sib
         * Documentation updates

         * Fix for split-read conditions on UART
         * Declare run-time depends on IO::Termios, even though unit tests
           don't actually use it

0.07    2021-03-05
         * Support the NVM controller in the AVR DA and DB families
         * Rebuild with latest AVR-Dx ATDF files
            + Adds support for AVR{32,64,128}DA and AVR{32,64,128}DB series
              of chips
         * Added `read-sib` command
         * Extra debug printing if UPDI_DEBUG is set to 2

         * Support writing the fuse at index 0

0.06    2020-11-25
         * Remember to pack t/lib/ into MANIFEST

0.05    2020-11-25
         * Rebuild with latest ATtiny ATDF files
            + Adds support for ATtiny 2-series chips
            + Fixes erroneous TCD0CFG fuse for ATtiny160x chips
         * Syntax fix for length($_) on older perls
         * Use Test::ExpectAndCheck instead of Test::EasyMock

0.04    2020-11-17
         * Display named fuse fields on `read-fuses` command
         * Allow setting named fuse fields symbolically on `write-fuses`
         * Print progress output to STDERR
         * `write-eeprom` needs to use NVMCTRL_CMD_ERWP

0.03    2020-02-04 17:42
         * Sleep 100msec after opening serial port in case of 12V pulse
         * Allow override of baud rate
         * Don't attempt 230400 baud as it seems too unreliable on most UART

0.02    2019-11-07 22:06:13
         * Move commands into one big wrapper script
         * Support reading both flash and EEPROM
         * Support raw binary files

0.01    2019-06-02 22:11:13
        First version, released on an unsuspecting world.