Replies: 8 comments 10 replies
-
I will say this is a good idea. Fuse is important (https://microchipdeveloper.com/8avr:avrfuses). I use the online fuse calculator quite a bit myself and they do not support new PDI/UPDI parts well. Online tool may still be good, I think github can be the host. But a command line GUI or even proper GUI (using QT or things like that) will be good as well. |
Beta Was this translation helpful? Give feedback.
-
Online AVR fuse calculator sites:
PC apps? (seems no longer available, from palmavr project) Mobile apps: Android version (never tried this myself) Someone has actually developed a command line fuse calculator under Linux as per his comment here. |
Beta Was this translation helpful? Give feedback.
-
Interestingly I found a per based application called exactly avr-fuse.. Looks quite cool to use as per the description.
|
Beta Was this translation helpful? Give feedback.
-
Basically, I'd not see this as "core competency" of AVRDUDE. How about starting a real GUI, and then make it part of that? After all, the entire idea of separating the AVRDUDE library backend was since I always felt that all those AVRDUDE GUIs that just wrap around the commandline tool (which was never intended to be machine-usable) are a poor idea from the beginning, so a better interface between the core engine and the UI is needed. |
Beta Was this translation helpful? Give feedback.
-
I don't so much mind that I have to use a tool outside avrdude to deal with fuses but that the whole workflow is complex, even with fuse calculators (which at least save me the trouble of looking up the data sheet). A new tool avrfuses: yes, that might scrape the atdf files and replace online tools. Good, probably still outside AVRDUDE, and will be useful. If this endeavour is meant to be part of the AVRDUDE project then we could ask the questions
Here one example problem: I want to change the level of the brown-out detection of a connected part in the terminal. Now, this is a really hard problem to crack from a human-computer interaction point of view. Ideally, the user could write in the terminal
And be done with it. No fuse calculator needed. Bliss. No bits, bytes and fuse names to deal with. Different parts have different names for the brown-out voltage level and different values, too. There needs to be a functionality that shows the properties of the fuses. How to get there? It's indispensable to scrape the ATDF files for this. It would be necessary/cool/convenient to turn this into avrdude.conf properties. Once that hurdle is taken, a new command could be
These symbolic values come straight from the ATDF files. With increasingly more verbosity this could look like:
or
Again, the strings come straight from ATDF. Over time, the users can contribute cleaned-up versions in avrdude.conf. OK, assuming we have
Again, these values come straight from ATDF. With that, it would be possible to fairly easily carry out functional programming as in
That might be fun. I have no idea how libavrdude could implement above with modular functions. Ideas on a postcard, please :) |
Beta Was this translation helpful? Give feedback.
-
Or the data structures are secretly tucked away in the C source of avrlibdude. This is going to happen for vector bootloaders where some messages will want to print the symbolic vector name (as it is in the target's datasheet). The file avrintel.c holds these names for known MCUs without bothering I have always viewed mcu configuration bits in fuses as logic memory on a bitfield level, and I would be perfectly happy to have definitions (in avrdude.conf or libavrdude data structures) expressing |
Beta Was this translation helpful? Give feedback.
-
That can be done with a I still think a world in which you don't need a fuse calculator (b/c the programming tool allows to set/read the logic parameters ( BTW, such a |
Beta Was this translation helpful? Give feedback.
-
AVRDUDE has made good progress with respect to its knowledge about fuses. There is the Hence, closing the dicsussion as resolved. |
Beta Was this translation helpful? Give feedback.
-
I'm amazed at how far Avrdude has come ever since the project was moved to Github. Bugs are being discovered and squashed almost every day, and new and awesome features are being added almost weekly. When I check my mail in the morning, there are usually at least 5+ unread Avrdude-related emails from Github. I absolutely love this project and it's a joy and an honor to be a contributor. And special thanks to @stefanrueger and @mcuee for being so enthusiastic, responsive, positive, and productive. My time is quite limited due to having two kids under three, but I try my best to help out with testing and tracking down bugs that require special hardware.
Avrdude is already the ultimate command line tool for programming AVRs, and there's virtually no tool out there that can compete. I use Avrdude for everything AVR related (well, except for writing and compiling code), but there's one feature I still have to use Microchip Studio or an online tool for, and that is figuring out fuse bits. Fuse bits are an essential part of the hardware aspect of the AVR, and can really be a pain to figure out, since older AVR datasheets may be hard to navigate in, due to the lack of a table of contents. The online fuse calculator also relies on someone hosting it. It also lacks all chips UPDI and PDI programming interface.
This is just a wild idea, and nothing else. Imagine a new tool (
avrfuse
?) or an extension to the Avrdude terminal where one can either pass fuse bits to show what they represent or use an interactive editor to "create" the correct fuse bits for a particular use case, just like you can with Microchip Studio. I have no idea how something like this can even be accomplished, but my first thought was a GUI-like interface that looks like ncurses. It would obviously have to scrape the appropriate atdf files pulled from one or more "packs". I'm sure something like this could be a useful addition to the open-source AVR toolchain!I'd like to hear your ideas and thoughts as well!
Beta Was this translation helpful? Give feedback.
All reactions