DxCore icon indicating copy to clipboard operation
DxCore copied to clipboard

Update to Avrdude 8.0

Open MCUdude opened this issue 3 years ago • 22 comments

Avrdude ~7.0~ ~7.1~ ~7.2~ ~7.3~ 8.0 is a huge improvement over 6.3 and brings lots of new features and bug fixes. Arduino now provides "flavored builds" with statically linked libraries, so boards like Curiosity Nano will work on any OS. You can pull the binaries straight from Github.

Here are a few good ones:

  • Support for SerialUPDI. It would be interesting to hear what you think of the implementation.
  • Support for arbitrary board rates on macOS. Now 230400 baud is not the upper limit anymore.
  • Support for lots of new and fast baud rates for the jtag2updi programmer
  • WinUSB driver support for Windows. This means that there's no need for Zadig anymore. Programmers like USBasp and USBtinyISP will just work with Windows.
  • Support for the Micronucleus bootloader
  • A bunch of new targets supported (including AVR-DD, AVR-EA, AVR-EB, AVR-DU)

https://github.com/arduino/avrdude-packing

MCUdude avatar Aug 19 '22 20:08 MCUdude

For reference, here's my boards manager file:

https://github.com/MCUdude/MegaCoreX/blob/1d4bebc755392f0e7fb2b5749adb5645c728ab92/package_MCUdude_MegaCoreX_index.json#L649-L698

MCUdude avatar Aug 20 '22 09:08 MCUdude

Hello,

where should Windows users get the 7.0 binary from? :wink: I know the new version only from the current avr-gcc from ZakKemble. From its package I have taken me the files. https://blog.zakkemble.net/avr-gcc-builds/

mikrocoder avatar Aug 20 '22 16:08 mikrocoder

Avrdude 7 will not be in 1.5.0, but will be added in a 1.5.x version - the time and effort of testing a new version of an upload tool that I am deemphasizing because of its exemplification of the kitchenskinkism antipattern, and which I'd love to phase out entirely is impossible to justify until a working release with full DD support and the latest hardware serial enhancement is available and peoele aren't screaming that it's broken. ATTinyCore 2.0.0 however will most certainly want this, as it does not use any other upload tool.

SpenceKonde avatar Aug 21 '22 02:08 SpenceKonde

but here again half of the information is missing. Where should Windows users get the 7.0 binary from? 😉

Eh, no? I provided a link to the repository where all major OSes' binaries are hosted.

But here you go: https://github.com/arduino/avrdude-packing/releases/tag/7.0-arduino.3

MCUdude avatar Aug 21 '22 07:08 MCUdude

In the first link it does not go on for me. The further path /release/tag/... I do not see. Your last link works. Thank you.

mikrocoder avatar Aug 21 '22 19:08 mikrocoder

For those who are more adventurous, you can try the Windows binary mentioned in this thread. I have tested it with DxCore, megaTinyCore and MegaCoreX. It is based on avrdude git main (with many fixes over 7.0 release).

  • https://github.com/arduino/avrdude-packing/issues/15#issuecomment-1295147283

I have also built Linux and macOS binaries here (32 bitLinux x86, 64bit macOS x86_64).

  • https://github.com/avrdudes/avrdude/issues/1159

mcuee avatar Oct 30 '22 05:10 mcuee

You can also try the binaries here. I need to use the 64bit Linux binary under 64bit Linux (no 32bit compatibility layer installed). https://github.com/mcuee/avrdude-packing/actions/runs/3354027563

More discussions here.

  • https://github.com/avrdudes/avrdude/issues/1162

mcuee avatar Oct 30 '22 06:10 mcuee

I have published avrdude git main snapshot binaries (Linux, macOS and Windows) here for those who are interested to try. git main will lead to 7.1 release. https://github.com/mcuee/avrdude-packing/releases

mcuee avatar Nov 25 '22 05:11 mcuee

Now avrdude 7.1 is released (https://github.com/avrdudes/avrdude/releases/tag/v7.1) and on linux (Mint/Ubuntu 64bit) it compiles flawlessly.

pcfreak1201 avatar Jan 10 '23 07:01 pcfreak1201

For DxCore, it is probably better to wait a bit for the release from https://github.com/arduino/avrdude-packing project.

For those who want to try the 7.1 release binaries for Linux and macOS, you can check out my repo here (only for testing purpose). https://github.com/mcuee/avrdude/releases/tag/v7.1

mcuee avatar Jan 10 '23 07:01 mcuee

For DxCore, it is probably better to wait a bit for the release from https://github.com/arduino/avrdude-packing project.

@MCUdude and @SpenceKonde

Here it is. https://github.com/arduino/avrdude-packing/releases/tag/7.1-arduino.1

mcuee avatar Jan 10 '23 12:01 mcuee

@SpenceKonde

Some changes may be required before you switched to avrdude 7.1 release.

Reference: https://github.com/MCUdude/MegaCoreX/commit/09f3a6e04f6ab9b83063260bb43053c122c7e512 https://github.com/MCUdude/MegaCoreX/commit/be87c765ca7d66d3d7e927834b50860937ef0602

mcuee avatar Jan 10 '23 12:01 mcuee

Note - my current plan here is to use AVRdude 7.x for non-SerialUPDI uploads only, leaving me with control over the serialUPDI portion. We need to keep the python environment anyway so that several future planned tools i'm working on can be supported, namely a cleanup pass on the exported assembly listings to get rid of the avr-objdump's propensity to express locatioms in the data space as offsets from landmarks in the program space and vice-versa (which is at best useless), and to reformat the map to make it human readable (truncating long function names is the big one here - because the long synthetic function names that end up in the memory map deform the column structure and make the whole mess unreadable to humans, and correct the inconsistent column break marks, which made it unreadable to most generic parsers, making it hard to import into any civilized tool to further analyze.

SpenceKonde avatar Jan 14 '23 20:01 SpenceKonde

@mcuee

Here it is. https://github.com/arduino/avrdude-packing/releases/tag/7.1-arduino.1

Hi,

What is different about the "Arduino package" again compared to the Official Release? https://github.com/avrdudes/avrdude/releases

mikrocoder avatar Jan 15 '23 17:01 mikrocoder

What is different about the "Arduino package" again compared to the Official Release? https://github.com/avrdudes/avrdude/releases

"Official" binaries are built with dynamically linked libraries. This means that the computer needs to have a set of libraries installed for Avrdude to work. The Arduino release uses static linkage, libraries are bundled and built into the Avrdude binary. Great if you just want Avrdude to work on a computer, and you don't really care about libraries, like for instance when a user installed a 3rd party Arduino core that uses Avrdude.

MCUdude avatar Jan 15 '23 17:01 MCUdude

Thanks.

mikrocoder avatar Jan 15 '23 18:01 mikrocoder

@SpenceKonde

Binary release from Arduino avrdude-packing project. https://github.com/arduino/avrdude-packing/releases/tag/7.1-arduino.1

As for platform defintions, minor changes will be required, for example, Curiosity Nano programmer is now called pkobn_updi. Ref: https://github.com/MCUdude/MegaCoreX/blob/master/megaavr/programmers.txt

Reference: https://github.com/MCUdude/MegaCoreX/commit/be87c765ca7d66d3d7e927834b50860937ef0602#diff-4f98f14cf12c5bc1ea8d0ccb8b42f777537bcb1ccbb7b16efeed9a083efc5cf3

@MCUdude may be able to give more details if you run into questions.

mcuee avatar Mar 16 '23 11:03 mcuee

As soon as a 7.2 release is available we will upgrade to v 7.2.

SpenceKonde avatar Jun 24 '23 09:06 SpenceKonde

avrdude 7.2 has been released. https://github.com/avrdudes/avrdude/releases/tag/v7.2

For Windows you can use the official binary above.

For Linux and macOS, you may want to test using my build. https://github.com/mcuee/avrdude/releases/tag/v7.2

Or you may want to wait for the Arduino-packing project. https://github.com/arduino/avrdude-packing

mcuee avatar Jul 20 '23 13:07 mcuee

Arduino avrdude-packing project has released their version of Arduino 7.2, which should be suitable for the usage here. https://github.com/arduino/avrdude-packing/releases/tag/7.2-arduino.1

mcuee avatar Oct 05 '23 14:10 mcuee

avrdude 7.3 has been released. https://github.com/avrdudes/avrdude/releases/tag/v7.3

mcuee avatar Feb 16 '24 03:02 mcuee