zakkemble / avrdudess Goto Github PK
View Code? Open in Web Editor NEWA GUI for AVRDUDE
Home Page: https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/
License: GNU General Public License v3.0
A GUI for AVRDUDE
Home Page: https://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/
License: GNU General Public License v3.0
In case someone is interested here the script that I did to remove Mono icon from docky.
#!/bin/bash
for ((var = 0; var < 5; var++)); do
if((var == 0)); then
nohup mono avrdudess.exe --runtime=4 > program.out &
fi
sleep 1
xprop -name "AVRDUDESS 2.8 (avrdude version 6.3)" -f WM_CLASS 8s -set WM_CLASS "avrdudessicone"
done
Add StartupWMClass=avrdudessicone
to .desktop file.
Adjust window title AVRDUDESS 2.8 (avrdude version 6.3)
if needed.
I'm using binaries since setup-AVRDUDESS-2.8.exe
doesn't not work for me.
@zkemble can you add a StartupWMClass
to your script please?
When avrdude is ran it is not passed a conf location (-C argument), so it uses the default location instead of the avrdude.conf that AVRDUDESS has been configured to use. Add option to pass conf location to avrdude.
Request to add ATmega328PB to included AVRDUDE config.
Below is the modified ATmega328 config that includes this chip.
Ref - https://github.com/watterott/ATmega328PB-Testing/blob/master/hardware/atmega328pb/avr/tools/avrdude.conf
#------------------------------------------------------------
# ATmega328
#------------------------------------------------------------
part
id = "m328";
desc = "ATmega328";
has_debugwire = yes;
flash_instr = 0xB6, 0x01, 0x11;
eeprom_instr = 0xBD, 0xF2, 0xBD, 0xE1, 0xBB, 0xCF, 0xB4, 0x00,
0xBE, 0x01, 0xB6, 0x01, 0xBC, 0x00, 0xBB, 0xBF,
0x99, 0xF9, 0xBB, 0xAF;
stk500_devcode = 0x86;
# avr910_devcode = 0x;
signature = 0x1e 0x95 0x14;
pagel = 0xd7;
bs2 = 0xc2;
chip_erase_delay = 9000;
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
"x x x x x x x x x x x x x x x x";
timeout = 200;
stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 1;
pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
hventerstabdelay = 100;
progmodedelay = 0;
latchcycles = 5;
togglevtg = 1;
poweroffdelay = 15;
resetdelayms = 1;
resetdelayus = 0;
hvleavestabdelay = 15;
resetdelay = 15;
chiperasepulsewidth = 0;
chiperasepolltimeout = 10;
programfusepulsewidth = 0;
programfusepolltimeout = 5;
programlockpulsewidth = 0;
programlockpolltimeout = 5;
ocdrev = 1;
memory "eeprom"
paged = no;
page_size = 4;
size = 1024;
min_write_delay = 3600;
max_write_delay = 3600;
readback_p1 = 0xff;
readback_p2 = 0xff;
read = " 1 0 1 0 0 0 0 0",
" 0 0 0 x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 1 1 0 0 0 0 0 0",
" 0 0 0 x x x a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_lo = " 1 1 0 0 0 0 0 1",
" 0 0 0 0 0 0 0 0",
" 0 0 0 0 0 0 a1 a0",
" i i i i i i i i";
writepage = " 1 1 0 0 0 0 1 0",
" 0 0 x x x x a9 a8",
" a7 a6 a5 a4 a3 a2 0 0",
" x x x x x x x x";
mode = 0x41;
delay = 20;
blocksize = 4;
readsize = 256;
;
memory "flash"
paged = yes;
size = 32768;
page_size = 128;
num_pages = 256;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0xff;
readback_p2 = 0xff;
read_lo = " 0 0 1 0 0 0 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
read_hi = " 0 0 1 0 1 0 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
loadpage_lo = " 0 1 0 0 0 0 0 0",
" 0 0 0 x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_hi = " 0 1 0 0 1 0 0 0",
" 0 0 0 x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
writepage = " 0 1 0 0 1 1 0 0",
" 0 0 a13 a12 a11 a10 a9 a8",
" a7 a6 x x x x x x",
" x x x x x x x x";
mode = 0x41;
delay = 6;
blocksize = 128;
readsize = 256;
;
memory "lfuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
"x x x x x x x x i i i i i i i i";
;
memory "hfuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
"x x x x x x x x i i i i i i i i";
;
memory "efuse"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x x x x x x i i i";
;
memory "lock"
size = 1;
min_write_delay = 4500;
max_write_delay = 4500;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x o o o o o o o o";
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
"x x x x x x x x 1 1 i i i i i i";
;
memory "calibration"
size = 1;
read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
"x x x x x x a1 a0 o o o o o o o o";
;
;
part parent "m328"
id = "m328p";
desc = "ATmega328P";
signature = 0x1e 0x95 0x0F;
ocdrev = 1;
;
part parent "m328"
id = "m328pb";
desc = "ATmega328PB";
signature = 0x1e 0x95 0x16;
ocdrev = 1;
;
Hi,
I am using ATTINY 1626 and am unable to set fuses because they have not been defined. I added the signature to the XML file but that hard part still remains. Is there a document anywhere that explains how to update "bits.xml" file to add support for other chips?
<mcu signature="1e9429" name="attiny1626">
<high>BODLEVEL0,BODLEVEL1,BODLEVEL2,EESAVE,WDTON,,DWEN,RSTDISBL</high>
<low>CKSEL0,CKSEL1,,,SUT0,SUT1,CKOUT,CKDIV8</low>
<ext>SELFPRGEN,,,,,,,</ext>
<lock>LB1,LB2,,,,,,</lock>
</mcu>
Language files need to be updated with translations for new strings. Currently French, Russian, Polish and Chinese.
Portable version should use the programs own folder instead.
Please consider updating your avrdude compilation in order to get an updated avrdude.config
file, as shown in the savannah trunk.
Your avrdude.config
file is from 2016-02...
MCU auto-detect doesn't always work, depending on the programmer and MCU programming interface.
Auto-detect works by running avrdude with the chosen programmer and MCU set to ATmega8, since avrdude needs to have an MCU set before it will do anything. It then reports the device signature which we use to work out what MCU we're really talking to.
But this doesn't always work, for example, if an ATtiny10 is connected to an USBasp then auto-detect will fail because it is expecting an MCU with the usual SPI programming interface, but the ATtiny10 uses TPI.
This can probably be fixed by going through a list of MCUs that have different interfaces until one works and reports its signature. ATmega8 (SPI) -> ATtiny202 (UPDI) -> ATtiny10 (TPI) -> ATxmega16A4U (PDI) -> DebugWire? -> JTAG?
avr-size.exe is unable to get filepath when there are spaces between hexfile path for example:
C:\Users\Hello World\Desktop\New File.hex
Although programmer work fine, but due to this memory bar above flash textbox is not visible.
I've fixed the issue just replace these lines in the code.
File: avr-size.cs
public int getSize(string file)
{
int totalSize = INVALID;
//CHANGE 1
file = @"" + file;
if (File.Exists(file))
{
//CHANGE 2
file = """ + file + """;
if (launch(file, null, null, OutputTo.Log))
{
waitForExit();
totalSize = parse();
}
}
return totalSize;
}
Requires .NET Framework 2.0 SP1.
🤢
On Windows 10 and maybe 8 and 8.1 you'll probably get a prompt about installing .NET Framework 3.5 (which includes .NET 2.0), click install and it will do the rest for you.
There is no sane reason to keep using the horribly outdated .NET <=3.5. The reason is that any .NET above, should be compatible with whats below. At least this is true in more recent versions, since there are some methods to allow to use .NET < using xml config files. TBH. I have never done this, but have seen it done here and there.
BUT. I do know, that no sane person want to pollute their system by having to install anything 3.5 or less. So please consider updating the app. 👍
Workaround: I searched the code and found the URL it is trying to open:
http://www.engbedded.com/fusecalc
System.ComponentModel.Win32Exception (0x80004005): Cannot find the specified file
at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00102] in <6bc04dcac0a443ee834a449c98b8ed9d>:0
at System.Diagnostics.Process.Start () [0x00032] in <6bc04dcac0a443ee834a449c98b8ed9d>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <6bc04dcac0a443ee834a449c98b8ed9d>:0
at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <6bc04dcac0a443ee834a449c98b8ed9d>:0
at avrdudess.Form1.linkLabel1_LinkClicked (System.Object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) [0x0014f] in <ee9c15179d05459a821ec33b7514f195>:0
at System.Windows.Forms.LinkLabel.OnLinkClicked (System.Windows.Forms.LinkLabelLinkClickedEventArgs e) [0x00019] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.LinkLabel.OnMouseUp (System.Windows.Forms.MouseEventArgs e) [0x00060] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00078] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x001b4] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.Label.WndProc (System.Windows.Forms.Message& m) [0x00017] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.LinkLabel.WndProc (System.Windows.Forms.Message& msg) [0x00000] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <a0f8b82443494dec9b517126f4032efe>:0
at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <a0f8b82443494dec9b517126f4032efe>:0
mono --version
Mono JIT compiler version 6.12.0.107 (tarball Thu Dec 10 05:22:56 UTC 2020)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(610)
Suspend: hybrid
GC: sgen (concurrent by default)
Ubuntu 18.04, but I'm using mono from this package repo: https://download.mono-project.com/repo/ubuntu
It would be nice if there was a button to read board voltage like in Atmel Studio.
Problem introduced in 3ed2eec
waitForExit() gets stuck at stdOutWait.WaitOne() if the process did not start successfully, since the output streams are never closed if they were never opened in the first place.
I have one of these: https://www.ebay.com/itm/263711477076 and Avrdudes complains with: avrdude.exe: error: could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp'. Is this a problem with Avrdudess or Avrdude? The Arduino IDE will use this to upload sketches ok.
Thanks,
Joe
Where is the files for install?
Can you please provide documentation to use avrdudess gui with esplink.
I have my own frontend just for Arduino Leonardo's and similar boards that use the Catarina bootloader that I currently use and this is the code I use to program them. I hope it is of use to you.
mySerial.Close();
Thread.Sleep(500);
int OldBaud = mySerial.BaudRate;
mySerial.BaudRate = 1200; // toggles the Leonardo into programming mode
mySerial.Open();
Thread.Sleep(1000);
mySerial.Close();
Thread.Sleep(4000);
int progPortNum;
//Note that the port is whatever com port it was before + 1
//So I grab the port number and add one to it here.
int.TryParse(mySerial.PortName.Replace("COM", ""), out progPortNum);
var app = new ConsoleAppLauncher.ConsoleApp(avrDudePath, String.Format(@"""-C{0}"" -v -patmega32u4 -cavr109 -P{1} -b57600 -D -Uflash:w:{2}:i", confPath, String.Format("COM{0}", progPortNum + 1), HexPath));
app.ConsoleOutput += updateListBox;
It doesn't make much sense (to me) to use the description as the selector text for the (-p) programmer.
It would be much better to have the original programmer id instead, and then perhaps add the desciption as a mouse-over or additional text field after having selected.
Example:
People using BusPirate with avr dude use avrdude -p buspirate
, whereas in avrdudess you need to scroll all the wa down to the bottom to find it under The Bus Pirate
, which is not obvious at all.
Hello!
I am trying to use AVRDUDESS in Manjaro. I installed mono, but when I use the mono command, mono AVRDUDESS-2.13-setup.exe, the following error occurred:
The set 'AVRDUDESS-2.13-setup.exe' cannot be opened: the file does not contain a valid CIL image.
How can I correct that?
Thank you!
Hello!
I have a USBasp recorder, but AVRDUDESS does not recognize it.
I tried avrdude on the command line and it seems to work.
I added the file to the rules and it still doesn't work.
Thanks in advance
Please release AVRDUDESS for avrdude-6.3. Ubuntu use avrdude-6.3, AVRDUDESS can't detect chip anymore. Already compiled latest code in linux, and AVRDUDESS can detect it. But maybe your official release be better.
Hello!
I'm here with another question kkk.
If I remove the Arduino Uno microcontroller and make connections on the other board, what would the settings be like for recording on my board?
I'm using only the Arduino Uno board recorder.
thanks in advance
While programming batches of boards I've often needed to give each board a sequential serial number by burning the S# value to a location in the chips EEPROM.
While searching to figure out how to do this most effectively I happened across this program. It has a feature that allows you to write unique ids to a boards EEPROM. Unfortunately it has a very limited number of programmers that it supports and I found the user interface really clunky.
I then discovered that AVRDUDE actually has a "memory operation" command that allows writing a value to memory including EEPROM.
-U memtype:op:filename[:format] (reference manual)
Using AVRDUDESS's "Additional command line args" input I can write a serial number(s) to the boards eeprom while programming the chip. The only limitation is that you cannot specify the location it writes the value to. It starts at the first location and if additional values are included it writes them to subsequence locations.
Example;
-U eeprom:w:1,2,3:m
Yields an EEPROM download with a first line value of
:20000000010203FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
This works great except that the serial number has to be incremented manually each time a board is programmed.
Is it possible to add an input box(s) to AVRDUDESS that when selected increment the number "x" in the command -U eeprom:w:x,x,x:m each time the "Program!" button is pressed?
Hello!
I have one of my own presets made... But I cant get the flashFile parameter to work.
Here is what I am trying... I'm sure I am missing something simple.
<flashFile />C:\firmware.hex</flashFile>
Thank you for any help.
Curtis
The best solution for resolve issue is add the ability to modify link to the website in text (xml) configuration file (for emxample, in the config.xml file).
Yes, it more heavy case, in this case pattern of the link and arguments (fuses) should be described in the configuration file also.
Or hardcore - change website in the source code.
More of an FYI. Maybe add this to the readme. For windows users with Atmel ICE.
Under AVRDUDE 6.3 I was forced to use these drivers:
FOR AVR DUDE
CMSIS libusb0 1.2.6.0
DATA GATEWAY WinUSB 42.0.2.0 OR libusb 1.2.6.0
For Atmel Studio
CMSIS HidUsb v6.1.7601 (Uninstall)
Gateway WinUSB 6.1.76
Under AVRDUDE 6.4+ you can now use the same drivers for both.
CMSIS HidUsb v6.1.7601
Gateway WinUSB 6.1.76
Zadig is a great tool for swapping drivers.
Just updated AVRDUDESS from 2.8 to 2.10; When I am starting up AVRDUDESS 2.10 an error appears with the following text:
************** Tekst van uitzondering **************
System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld.
bij avrdudess.CmdLine.addWriteFuses()
bij avrdudess.CmdLine.generate()
bij avrdudess.Form1.event_controlChanged(Object sender, EventArgs e)
bij System.Windows.Forms.CheckBox.OnCheckedChanged(EventArgs e)
bij System.Windows.Forms.CheckBox.set_CheckState(CheckState value)
bij avrdudess.Form1.set_setFuses(Boolean value)
bij avrdudess.Form1.loadPresetData(PresetData item)
bij avrdudess.Form1.Form1_Load(Object sender, EventArgs e)
bij System.Windows.Forms.Form.OnLoad(EventArgs e)
bij System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bij System.Windows.Forms.Control.CreateControl()
bij System.Windows.Forms.Control.WmShowWindow(Message& m)
bij System.Windows.Forms.Control.WndProc(Message& m)
bij System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bij System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
(I am sorry that I am using the dutch version)
I can choose between continue or shutdown. When I continue the interface of AVRDUDESS is a mess.
After reinstalling AVRDUDESS 2.10 I am still getting the same error. When I downgrade to 2.8 there is no error anymore.
I built AVRDudess from the latest Github source. The .exe built without issue.
I did not have Inno Setup, so I installed the latest version. I had to modify installer/installer.bat to reflect the version change from 5 to 6. I also had to modify installer/avrduddess.iss to comment out several languages which are apparently not supported (yet?) in Inno Setup 6:
;Name: "greek"; MessagesFile: "compiler:Languages\Greek.isl"
;Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl"
;Name: "scottishgaelic"; MessagesFile: "compiler:Languages\ScottishGaelic.isl"
;Name: "serbiancyrillic"; MessagesFile: "compiler:Languages\SerbianCyrillic.isl"
;Name: "serbianlatin"; MessagesFile: "compiler:Languages\SerbianLatin.isl"
Tested the GUI with ATtiny1626 connected to Atmel-ICE in UPDI mode. AVRDudess displays the proper command string above the console area as the -p parameter says -p t1626 but when the command is issued to avrdude it actually sends -p m8
Using the very latest avrdude.conf and avrdude.exe copied from the megaTinyCore project.
Please add support for these newer ATTiny parts. They are very cool and provide a lot of functions in a small low-cost package. I prefer them to ATMega parts for small simple projects.
Oddly enough AVRDUDE does not currently support the ATmega16u4.
Below is the modified config for this chip.
Ref - https://gist.github.com/davepeake/0df41e77678babfe1e0b849a448abefd
#------------------------------------------------------------
# ATmega16u4
#------------------------------------------------------------
part
id = "m16u4";
desc = "ATmega16U4";
signature = 0x1e 0x94 0x88;
usbpid = 0x2ff4;
has_jtag = yes;
# stk500_devcode = 0xB2;
# avr910_devcode = 0x43;
chip_erase_delay = 9000;
pagel = 0xD7;
bs2 = 0xA0;
reset = dedicated;
pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
"x x x x x x x x x x x x x x x x";
chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
"x x x x x x x x x x x x x x x x";
timeout = 200;
stabdelay = 100;
cmdexedelay = 25;
synchloops = 32;
bytedelay = 0;
pollindex = 3;
pollvalue = 0x53;
predelay = 1;
postdelay = 1;
pollmethod = 1;
pp_controlstack =
0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
hventerstabdelay = 100;
progmodedelay = 0;
latchcycles = 5;
togglevtg = 1;
poweroffdelay = 15;
resetdelayms = 1;
resetdelayus = 0;
hvleavestabdelay = 15;
chiperasepulsewidth = 0;
chiperasepolltimeout = 10;
programfusepulsewidth = 0;
programfusepolltimeout = 5;
programlockpulsewidth = 0;
programlockpolltimeout = 5;
idr = 0x31;
spmcr = 0x57;
rampz = 0x3b;
allowfullpagebitstream = no;
ocdrev = 3;
memory "eeprom"
paged = no; /* leave this "no" */
page_size = 4; /* for parallel programming */
size = 512;
min_write_delay = 9000;
max_write_delay = 9000;
readback_p1 = 0x00;
readback_p2 = 0x00;
read = " 1 0 1 0 0 0 0 0",
" x x x x x a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
write = " 1 1 0 0 0 0 0 0",
" x x x x x a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_lo = " 1 1 0 0 0 0 0 1",
" 0 0 0 0 0 0 0 0",
" 0 0 0 0 0 a2 a1 a0",
" i i i i i i i i";
writepage = " 1 1 0 0 0 0 1 0",
" 0 0 x x x a10 a9 a8",
" a7 a6 a5 a4 a3 0 0 0",
" x x x x x x x x";
mode = 0x41;
delay = 20;
blocksize = 4;
readsize = 256;
;
memory "flash"
paged = yes;
size = 16384;
page_size = 128;
num_pages = 128;
min_write_delay = 4500;
max_write_delay = 4500;
readback_p1 = 0x00;
readback_p2 = 0x00;
read_lo = " 0 0 1 0 0 0 0 0",
" 0 a14 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
read_hi = " 0 0 1 0 1 0 0 0",
" 0 a14 a13 a12 a11 a10 a9 a8",
" a7 a6 a5 a4 a3 a2 a1 a0",
" o o o o o o o o";
loadpage_lo = " 0 1 0 0 0 0 0 0",
" x x x x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
loadpage_hi = " 0 1 0 0 1 0 0 0",
" x x x x x x x x",
" x x a5 a4 a3 a2 a1 a0",
" i i i i i i i i";
writepage = " 0 1 0 0 1 1 0 0",
" a15 a14 a13 a12 a11 a10 a9 a8",
" a7 a6 x x x x x x",
" x x x x x x x x";
mode = 0x41;
delay = 6;
blocksize = 128;
readsize = 256;
;
memory "lfuse"
size = 1;
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
"x x x x x x x x i i i i i i i i";
read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "hfuse"
size = 1;
write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
"x x x x x x x x i i i i i i i i";
read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "efuse"
size = 1;
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x x x x x i i i i";
read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
"x x x x x x x x o o o o o o o o";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "lock"
size = 1;
read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
"x x x x x x x x x x o o o o o o";
write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
"x x x x x x x x 1 1 i i i i i i";
min_write_delay = 9000;
max_write_delay = 9000;
;
memory "calibration"
size = 1;
read = "0 0 1 1 1 0 0 0 x x x x x x x x",
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
memory "signature"
size = 3;
read = "0 0 1 1 0 0 0 0 x x x x x x x x",
"x x x x x x a1 a0 o o o o o o o o";
;
;
Since v2.8 if the MCU doesn't have all high, low and extended fuses then reading fuses will fail, like on the ATmega8 which only has high and low.
Need to read only the fuses that the MCU supports, which can be found from avrdude.conf. Same thing for writing fuses.
Hello there!
First of all, thank you so much for this program, it saved me a lot of time!
Second of all, i noticed a few translation typos.
Other than that, i think it's a great translation and i am quite amazed at it, since Polish isn't particularly easy.
If you need any more details, you can message me on DMs in github or at [email protected]
Hi Zak,
First of all want to stay great work. The only one working GUI I found.
I wondering why don't you include libusb0.dll into distribution/installer?
Regards,
Pavel
Hello!
I am trying to run avrdudess in manjaro, but it is giving this error: Gtk not found (missing LD_LIBRARY_PATH to libgtk-x11-2.0.so.0?), Using built-in colorscheme.
I don't know how to solve this, I'm not able to install this missing package.
Thank you very much in advance!
i was trying to upload a hex file to test my atmega32, but i forgot to set the fuse bits for clock source selection, the code uploaded just fine but the delay function was much slower (i was using 12MHz crystal and the default settings was the internal 1MHz), i edited the fuse bits and uploaded the code, nothing bad so far, but when i tried to upload it again it gave me an error rc=-1 and that it can't set clock bit to specified value which was 1.5MHz.
is there a value i should use for clock bits (-B) corresponding to the selected frequency ?
I'd love to see the ability to program the fuses for the relatively new tinyAVR 0/1/2 and Atmega series (like mega3208/09, mega4808/09, AVR128DBxx. I use AVRDUDESS regularly for "mass" flashing (haha, 10, 20 boards or so) and to keep the wonderful AVRDUDESS for this would be highly appreciated. I'm aware that things are quite different here, compared to the good ol' HFUSE, LFUSE, EFUSE...
BTW: Programming of the mentioned chips via UPDI and jtag2UPDI programmer works fine in AVRDUDESS already, so the fuses thing cries out for implementation ;-)
I have quite some experience with .NET / C# development for WinForms applications; maybe I can assist? If you can give some pointers how to go I'd give it a try!
What should we select? Arduino
? Atmel AVR ISP
? Atmel STK500
?
All are true.. None seem to work.
Arduino
and Atmel STK500
do seem to communicate with the programmer, but incorrectly report the ACTUAL arduino's chip, the atmega328p
when using Detect.... Should that be opened as a separate issue, maybe?
AVRDUDE has an extensive list of programmers, many of which are obsolete. It would be great if users could select what programmers are shown in the "Select a Programmer.." drop down menu.
Attiny10 has only tpi interface for programming. Some features in the AVRDUDESS has limited support for the attiny10 chip.
(1) Function of chip's detection doesn't work with attiny tpi interface.
for example, attiny10 cannot be detected, because command line for spi interface doesn't work with chip with tpi interface, see sample below:
: avrdude -u -c usbasp -P usb -B 8.0 -q -C avrdude.conf -p m8
Command line below works correctly for chip with the tpi interface :
: avrdude -u -c usbasp -P usb -B 8.0 -q -C avrdude.conf -p t10
(2) Also, please, add support attiny10 in the "Fuse && Lock bits" window
The sample is below:
<mcu signature="1e9003" name="attiny10">
<high>,,,,,,,</high>
<low>CKOUT,WDTON,RSTDISBL,,,,,</low>
<ext>,,,,,,,</ext>
<lock>LB1,LB2,,,,,,</lock>
It would be nice if there were an uploader only mode or a simple mode just for boards that have known settings like most Arduino boards and clones. Also this would be a setting that the programmer should remember ie. if I reopen the app it should open back up in simple mode.
Basically just a hex file selection and drop down for selecting the board type.
I propose a simple modification to the "Fuse settings" link. It would be really useful if the fuse calculator was alreay in sync with the selected part and fuse settings possibly present in the GUI.
It would suffice to modify the linkLabel1_LinkClicked function by replacing it with the following code:
string sParam, sURL = WEB_ADDR_FUSE_SETTINGS;
if (cmbMCU.SelectedIndex != 0) {
sParam = "?P=" + cmbMCU.Text;
if (txtLFuse.Text != "") sParam += "&V_LOW=" + txtLFuse.Text;
if (txtHFuse.Text != "") sParam += "&V_HIGH=" + txtHFuse.Text;
if (txtEFuse.Text != "") sParam += "&V_EXTENDED=" + txtEFuse.Text;
if (txtLFuse.Text != "" || txtHFuse.Text != "" || txtEFuse.Text != "")
sParam+= "&O_HEX=Apply+values";
sURL += sParam;
}
System.Diagnostics.Process.Start(sURL);
6.4 was released a few months ago ( http://download.savannah.gnu.org/releases/avrdude/ ), but it's missing libhidapi-0.dll.
The .dll can be downloaded here - https://github.com/libusb/hidapi/releases/tag/hidapi-0.11.2 then place the x86 version into the AVRDUDESS directory and rename it to libhidapi-0.dll
I'm sorry I am new in github, don't know how to pull the file :-(
Attach the translate file from english to Simplified Chinese (zh-CN), hope you like it.
chinese-zh_CN.zip
Select USBasp from Programmer list. select a bit clock and observe incorrect values on -B in in the command line output at the bottom. Also there is no 16 KHz or 32 KHz. There is however 46.88 KHz and 20.96 KHz which is not in the drop down list but show up when selecting 16 KHz and 32 KHz respectively.
Edit:
After testing it appears the drop down list value is actually used in the calls to Avrdude. The incorrect values only show up in the command line output at the bottom.
Add new button - "Erase chip".
This action should erase flash, eeprom and set default values of the fusebits (lockbit).
Yes, the application has checkbox "erase flash and EEPROM", but sometimes is necessary just erase the chip without programming the memory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.