burning fuses with PlatformIO and pyupdi programmer #417
Unanswered
cpainchaud
asked this question in
Q&A
Replies: 2 comments 2 replies
-
Sorry, I don't know anything about platformio, that page was written by @MCUdude who did a lot of the work to get this on platform IO. My god, it seems like all my users are on platform IO...... I also haven't used pyupdi in ages - next megatinycore release will include new version of the pyupdi-like upload tool (it's a wrapper around pymcuprog modified for performance) |
Beta Was this translation helpful? Give feedback.
2 replies
-
Doesnrt the same thing happen with avrdude in verbose mode in that case?
If so it's a bug with the IDE that should be reported to the Arduino
developers. If not it is a bug with the progress bar we display which I
will refer to the python guru who made that. The real magic part that does
stuff is the Microchiop pymcuprog tool which can't practically be
interfaced directly to the Arduino IDE. Quentin wrote the code that acts as
that bridge and did all the non-verbose output modes (the latest version
core version gunned the verbose mode being enablable because it was too
verbose), and I really couldn't do that myself. I don't know python very
well. So this would be his department. I'm the one who has deeper
understanding of UPDI protocol and sis watching everything in the 'scope
and using that to improve the performance.
How long did it take to upload? (based on the timestamps it prints out) I
get 4 seconds including verify for a 32k full flash hex file for a 3216 or
s3217 - the bottle neck is the write speed - not the block transfer where
it transmits a page of data, but all the setup, which has a lot of round
trips, which are very costly. On Dx-series where the pages are 512b, 345600
baud is 24k/s and the theoretical maximum speed that the hardware can write
it's flash at is 28.My final round of optimizations exceeded my wildest
dreams. (at 460800 we need to actually slow them down by chunking the
writes to prevent it from outrunning the chip's ability to write - though
with the one adapter I tried that on (because it didnt do 345600 or
anything else between 256 and 406.8), the write speed was no faster....
buit the read speed (unconstrained by that) hit 32k/s!.
And yes, you read that correctly, tinyAVR can be written faster than
Dx.-series. On the other hand, Dx-series is written a word at a time, while
for tinyAVR you have to do a whole page.
…On Thu, May 13, 2021 at 10:05 AM Willem43T ***@***.***> wrote:
Just upgraded to megaTinyCore version 2.3.2. I noticed the pyupdi 460800
baud option and tried it. Wow, the fastest I have ever been able to upload.
Thanks for that option.
I think the upload speed is now limited by the screen update rate (??).
Maybe you should change the upload status to a more compact format. I used
it in IDE 2 and, unlike IDE1 where the status is displayed in a progressing
single line, IDE 2 shows new lines for each step.
Willem.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#417 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABTXEW376GINODGWLCT5DLTTNPMCTANCNFSM44RBTJ3A>
.
--
____________
Spence Konde
Azzy’S Electronics
New products! Check them out at tindie.com/stores/DrAzzy
GitHub: github.com/SpenceKonde
ATTinyCore <https://github.com/SpenceKonde/ATTinyCore>: Arduino support for
all pre-2016 tinyAVR with >2k flash!
megaTinyCore <https://github.com/SpenceKonde/megaTinyCore>: Arduino support
for all post-2016 tinyAVR parts!
DxCore <https://github.com/SpenceKonde/DxCore>: Arduino support for the AVR
Dx-series parts, the latest and greatest from Microchip!
Contact: ***@***.***
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi!
So I got everything working almost, I am still missing the part where I can burn fuses. Unfortunately this page is only telling about firmware update (which is great already). https://github.com/SpenceKonde/megaTinyCore/blob/master/PlatformIO.md
I tried to adapt the logic to burn fuses but may be I am lacking the right ENV variable which holds the fuses values.
Beta Was this translation helpful? Give feedback.
All reactions