[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #61624] [Feature request] Serial/UART UPDI programmers

From: Dawid Buchwald
Subject: [bug #61624] [Feature request] Serial/UART UPDI programmers
Date: Wed, 15 Dec 2021 09:14:18 -0500 (EST)
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36

Follow-up Comment #24, bug #61624 (project avrdude):

Let me start with reply, followed by status update.

> Makes me wonder why they didn't just come up with one mode to rule them all,
instead of three.

I suppose this is because they are in process of finalising the design? I have
no idea, but I would rather expect even more versions in future. This,
unfortunately, means that further changes to the UPDI code will be required at
some point.

> If it turns out that the fuses and safe mode business is a deep rabbit hole

After some more investigation I concluded that there are actually different
scenarios where Safemode is disabled, so I would really leave that for now.

*Not that short update*

So I managed to implement lockbits handling, turned out pretty easy to do. It
works, I spent few hours scratching my head and trying to figure out how to
unlock the device.

I have also tested potential change to avrdude.conf, related to AVR Dx family
EEPROM page size - it works nicely with my programmer and size 0x20, but I'm a
bit afraid it might not work with other programmers, so I won't change that.
The only reason to play with this value is the efficiency of EEPROM write - it
takes over a minute with 1-byte pages (there's huge overhead on UPDI
communication) compared to ten seconds in 32-byte page mode.

Thing is - safety first. I don't write to EEPROM outside of my tests, so maybe
better to leave it be.

So yeah, all the memories listed in AVRDUDE.CONF can be accessed now. Fuses
can be configured, flash and EEPROM written, entire chip locked and unlocked.
Error handling has been somewhat improved, AVRDUDE can now recover from

You can fetch latest version (revision 1522) to play with it, but it's not
final, so consider carefully whether it's worth your time.

What I'm planning to do next is to do yet another refactoring. I don't like
current model of error handling (inherited from pymcuprog) and I need to look
into some weirder scenarios (like: lock the chip and upload flash with forced
chip erase - it will work, but only the second time).

I'm also still waiting for all the tinyAVR chips. With the global shortage I
had to order them abroad, and it's literally the worst time during the year to
do it, so I will probably wait a bit longer. Good thing is I got all the types
(0/1/2 as well as the mega ones).


Reply to this item at:


  Message sent via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]