«

»

Feb 17 2013

AVRDUDESS – A GUI for AVRDUDE

AVRDUDESS is a GUI for AVRDUDE, a tool for programming Atmel microcontrollers.

Some key features:

  • Supports all programmers and MCUs that AVRDUDE supports
  • Supports presets, allowing you to change between devices and configurations quickly and easily
  • Drag and drop files for easy uploading
  • Automatically lists available COM ports
  • Cross-platform with the use of Mono for Linux & Mac OS X



Downloads
LATEST
Download
setup-AVRDUDESS-2.4.exe (914.73 kB)
AVRDUDESS (Windows installer)
Downloaded 58398 times
MD5: CF83912B3368D65FA9FCA80C7EC2CE5D

LATEST
Download
avrdudess_20140805.zip (509.63 kB)
AVRDUDESS (Binaries, any OS)
Downloaded 8866 times
MD5: D410555B5E82655533E885BFD2D25111

Source available on GitHub

Requirements
Windows
Requires .NET Framework 2.0 SP1 or newer.
Latest .NET can be found here.

AVRDUDE requires LibUSB
LibUSB should really be installed the normal way as a driver for a LibUSB device, but if you don’t have any such devices then you will need to download this.
Extract libusb-win32-bin-1.2.6.0/bin/x86/libusb_x86.dll to where you have avrdude.exe placed and rename libusb_x86.dll to libusb.dll

Linux & Mac OS X
Can be ran using Mono
Has not been tested on OS X, but should work.

Installing on Ubuntu 13.10
Install Mono (this is the minimum required, you can do mono-complete for a full install)
sudo apt-get install libmono-winforms2.0-cil

Install AVRDUDE
sudo apt-get install avrdude

Run AVRDUDESS with mono, you might have to run as root (sudo) so avrdude runs as root if you havn’t changed any rules.d stuff
mono avrdudess.exe

avrdudess4

249 comments

11 pings

Skip to comment form

  1. Mike

    Hello Zak,
    Thanks for the great work! I have tested avrdudess with avrdude.exe / .conf latest version 6.1 without problems. I programmed ATmega xx8 and xxx4, ATtiny x4, x5, x61 and x313.
    I can not, however, to use the technique BitBang with Arduino 2009, or other FT232RL based circuit. It only works if I use avrdude.exe / .conf (http://nmj.sumomo.ne.jp/suz-avr/serjtag/) with programmer BitBang FT232 synchronous.
    You can tell me something?
    Thanks very much
    Best regards

    1. Zak Kemble

      It looks like some of the pin numbers are different. You will have to check the .conf files to see the differences.

      1. Mike

        No, the problem is that all configurations BitBang of AVRDUDE 6.1 (synchronous BitBang FT232R, FT232R-alias for Arduino, Arduino FT232 connected to ISP) give error libusb.dll and unfortunately your suggestion does not solve it.

        1. Zak Kemble

          Ah, was the error this
          avrdude.exe: error: no libftdi or libusb support. Install libftdi1/libusb-1.0 or libftdi/libusb and run configure/make again. ?

          If so then AVRDUDE needs to be compiled with libftdi support. Have a look at this.

          1. Mike

            Hello,
            unfortunately I was not able to compile AVRDUDE, you think you do it in a future update?
            Thank you.
            Sincerely

          2. Zak Kemble

            Ok then, I’ll see about compiling with FTDI support, not sure when that will be though.

          3. Mike

            OK, then I stay tuned. Thank very much 😉

          4. SuperCow

            I use the avrdude-serjtag04e.zip
            Can find it here: http://diyduino.blogspot.nl/2012/08/ft232r-bitbang-programmer.html

            Set AVRDUDESS (options) to that avrdude and the conf file.

            Do mind the conf file is a a bit old.
            I had to add some new atmega’s to it
            The use FT232R Synchronous BitBang (there two in it, one works)
            As port use ft0

          5. Mike

            Hello, I already know this method, but I would only work with avrdude 6.1, instead use avrdude avrdude-serjtag04e 5.2.

  2. Marcel

    I welcome you again.

    So I searched and searched the internet some alternative gui for avrdude from editor Fusebits and Lockbits that would work under Linux. I found very similar to AVRDUDESS gui editor Fuse and Lock. Interestingly, running on Mono on Linux, but there is a small problem. It only works with avrdude.exe links to avrdude on Linux.
    Perhaps would you do Fusebits editor and Lockbits as the GUI link: http://www.avr-elektronika.tk/index.php?page=pdi-programmer.
    Or perhaps you can do to trick somehow gonna use this overlay with avrdude in linux?

    Regards
    Marcel

    1. Zak Kemble

      I don’t know when the fuse calculator will be done yet, it’s been on the to-do list for a while, just haven’t got around to doing it yet.

      You could create a symlink make that GUI use the Linux avrdude:
      ln -s /usr/bin/avrdude /home/(where ever the GUI is looking for avrdude.exe)

      1. Marcel

        Hello

        I do not really know how to make a symbolic link.
        Yesterday I struggled with this and I could not.
        But I’ll wait for version avrdudes editors.
        Thank you for your help.
        Regards
        Marcel

  3. DougG

    Zak, this looks like a really cool GUI you’ve written. However, I’ve been unable to use it primarily due to the lack of a means to do so. I was looking for a GUI for AVRDude that had been compiled, or source available, on Raspbian. The problem is, it looks like when I downloaded the binary files they were already compiled for Windows. Is there any chance that in the future you’ll compile on the Pi? I’d love to have a go at it with the GPIO.

    1. Zak Kemble

      Hey Doug, from what I can tell Mono is available for RPi, which should mean you can run the AVRDUDESS .exe binary on RPi once you’ve installed Mono.
      sudo apt-get install mono-complete

      mono avrdudess.exe

      1. DougG

        Zak, I think I found the problem. I had tried to apt-get prior to posting. It looked as though the repository had taken down mono. I apt-get update, and it seems to have good links now. So once I get it installed, I’ll see if I can run the program. And if all thinks align, I may program a ATmega8 tonight just to do a proof of concept.

        1. DougG

          Zak, it looks like a no go. This is a portion of what I’m seeing in Terminal.

          Thread 1 (Thread 0xb6f75000 (LWP 6316)):
          #0 0xb6ea5a3c in waitpid () from /lib/arm-linux-gnueabihf/libpthread.so.0
          #1 0x000b2148 in mono_handle_native_sigsegv (signal=, ctx=) at mini-exceptions.c:2299
          #2
          #3 0xb6d6bbfc in raise () from /lib/arm-linux-gnueabihf/libc.so.6
          #4 0xb6d6f97c in abort () from /lib/arm-linux-gnueabihf/libc.so.6
          #5 0x000136fc in ?? ()
          Cannot access memory at address 0x0
          #6 0x000136fc in ?? ()
          Cannot access memory at address 0x0
          Backtrace stopped: previous frame identical to this frame (corrupt stack?)

          =================================================================
          Got a SIGABRT while executing native code. This usually indicates
          a fatal error in the mono runtime or one of the native libraries
          used by your application.
          =================================================================

          Aborted

          1. Zak Kemble

            That looks like an issue with Mono, no idea how to go about fixing it.

          2. Olivier

            Could be wrong, but that’s probably because AVRDUDESS is compiled for x86 architectures while the Raspberry Pi uses an ARM processor.

          3. Zak Kemble

            .NET programs aren’t compiled for an architecture; the code is converted to byte-code (MSIL). So as long as the framework (.NET or Mono) is compiled for the CPU architecture then AVRDUDESS should work.

  4. Jean-Marie

    Thank you for the GUI which has much more programmers than the others.
    I use it to program an Arduino UNO R3 though USB (COM port : 5).
    AVRDUDESS is able to detect the MCU.
    However I have a problem with reading the fuses. If I clik on the “Read” button, avrdude seems to read each fuse and write it in a file.
    i.e. : avrdude.exe: reading lfuse memory:

    Reading | ################################################## | 100% 0.00s

    avrdude.exe: writing output file “C:\Documents and Settings\JMCo\Local Settings\Temp\e2598b80-9a13-40d9-9d19-6b049a9d3def.TMP”

    But the fuses stay 0x00 on the screen and the files do not exist in the Directory.

    If I use an AVRISP mkII though the ICSP pins of the same UNO board, I can read the fuses on the screen but the files are still missing.

    1. Zak Kemble

      Fuses can only be read and written to with an ICSP. The .TMP files are deleted once the fuse value has been read from them. So everything is working as expected 😛

      1. Jean-Marie

        Thank you for your quick answer, Zak.
        I didn’t know that.

      2. Eduardo

        Hi Zak. I’m using an arduino nano as an ICSP to programa another arduino nano but I’m having the same problem of Jean-Marie. The fuses and the lock bits return 0x00. Do you have any ideia what’s going on? Thanks!

        1. Zak Kemble

          Did you set the baud rate to 19200 in AVRDUDESS?

  5. Jean-Marie

    I forgot to tell you that I use Windows XP SP3

  6. RICHARD

    ARE THE FUSES FOR A CHIP AS 328P TQFT ARDUINO NANO 16MHz?

    1. Zak Kemble

      The fuse settings in the “Arduino Uno (ATmega328P)” preset should also work for the Nano.

  7. SHAUN

    HI, I am having an unusual problem because the presets have been deleted (with the intent of creating new ones), and I cannot find any way of making new ones. The data in presets file has not changed and even re-downloading the entire folder does not fix it. This is version 2.4 in portable form on windows 7, This problem does not exist with version 1.2 that I found in my backups.
    clicking save with v1.2 would ask for a new name for the preset, but with 2.4 it only changes the existing one, which has since been deleted and now “Can’t change “default”” is what comes up. this is suggesting that version 2.4 is ignoring the presets file.

    1. Zak Kemble

      AVRDUDESS uses the .xml files in %APPDATA%\AVRDUDESS. If they don’t exist then it copies the files from the .exe directory, so deleting or editing the files in that directory won’t have any effect.
      To create a new preset type the name in the drop down box and click save. I need to change the way saving presets is done, it’s not very intuitive (was an attempt at dealing with presets without having all the pop up boxes which someone said about removing).

  8. SHAUN

    Thanks, Zak
    I now have it working

  9. Santosh Kumar Gupta

    Hi ,
    I use avrdoper in HID mode which is not listed in the programmer list.

    1. Zak Kemble

      avrdoper seems to be STK500 compatible, so see what happens when you set the programmer to one of the “Atmel STK500” options and the Port to “usb”.

  10. Mr. Virus Check

    Hello,
    What You think about this:
    SHA256: 51201c4a3f0e40594da5d0f70983dcfaea6e90a03679d78f159242ff85dff730
    File name: avrdudess.exe
    Detection ratio: 16 / 51

    https://www.virustotal.com/en/file/51201c4a3f0e40594da5d0f70983dcfaea6e90a03679d78f159242ff85dff730/analysis/1414321882/

    REgards

  11. Mr. Virus Check

    Latest:
    https://www.virustotal.com/en/file/41b2ce98fe5f20333496c10c7df2d86c167a02be99059025e5f6a18dac35f947/analysis/1414322407/

    SHA256: 41b2ce98fe5f20333496c10c7df2d86c167a02be99059025e5f6a18dac35f947
    File name: avrdudess.exe
    Detection ratio: 4 / 53
    Analysis date: 2014-10-26 11:20:07 UTC ( 0 minutes ago )

    Copyright
    Copyright © 2014 Zak Kemble

    Publisher Zak Kemble
    Product AVRDUDESS
    Original name avrdudess.exe
    Internal name avrdudess.exe
    File version 2.4.0.0
    Description AVRDUDESS
    Comments A GUI for AVRDUDE

    Regards

    1. Zak Kemble

      Yeah, I’ve no idea why it’s being detected as a virus. I’ve submitted it to all the AV vendors that detected it and they’ve confirmed it was a false positive, apart from those last 4 who never replied or don’t seem to have anyway of submitting a file.

  12. benny

    Hi Zak,
    Great program! thanks. I must be doing something wrong but I cant get the Lockbits to set correctly in the Atmega328P on an Arduino Uno board. I have one Arduino set up as an ISP, and I am using this to program a second Arduino Uno. I am just trying to load the simple blink program (so I have a simple visual feedback verification method) and lock it so it cant be read back.

    -c stk500v1 -p m328p -P COM2 -b 19200 -e -U flash:w:”C:\ben\Blink.hex”:i -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m -U lock:w:0x00:m

    this works and even appears to write and verify the fuses and lock

    I then connect the second Arduino to check if I can read it back….

    -c arduino -p m328p -P COM4 -b 115200 -U flash:r:”C:\ben\Blinkrd.hex”:i

    I can successfully read the file and change to another program and when I put the blinkrd.hex file back in I see it LED13 blinking again.

    I have tried all sorts of combination of the LockBits with no success. What am I doing wrong?

    THANKS again for such a great tool.

    1. Zak Kemble

      Hmm, have you tried different lock bits, like 0x01 (reprogramming flash not allowed, but can read flash)? Might be the programmer not actually programming the lock bits and just returning 0x00.

      1. benny

        Sorry to waste your time. It actually works just fine. It appears to read and even confirms the read, but when I compare the actual hex files the value for the flash is something like 6262626262 repeating for the flash sectors. So even though it goes through the read sequence the chip apparently returns garbage, so it really is protected. Sorry I should have looked closer at the actual files before I bothered you. Great Program.

  13. Simon

    Hi Zak,
    Today I have been attempting to get the Dudess running on an W7 system. And failed. Miserably. The frustration is mile-high. As an “after party” I tried to install AvrDudess on an XP system and that also fails. As programmer I use an AVRISP2 look-alike from Olimex. Normally I develop in an Linux environment with no problems. Windows is alien to me.
    I have installed LibUSB and renamed libusb_x86.dll to libusb.dll. It sits in the \Program Files\AVRDUDESS\ directory where I also find avrdude.exe. When I plug in the programmer I hear the ping sound of a coupling USB device and in the hardware overview it shows as a perfectly happy usb device.
    However; two problems:
    1. When I start AVR dudess it fail right away with an awful pop-up that would translate to something like: Application error and Cannot initialize the application correctly (0xc0000135). Click to terminate application. Is this informing me that I do not have .NET installed? How can I check what I have installed?
    2. I tried to use just avrdude and that results in: “error in USB receive” repeated many times. The original Atmel avrisp2 does not show the problem.
    I hope you can shed some light on this matter.
    Regards,

    Simon

    PS: And thumbs up for the application! Thanks.

    1. Zak Kemble

      1. Yup, you need to install .NET, see the blog post about requirements.
      2. Don’t know what’s happening there.

      What issues were you having with Windows 7? It should just work straight away with a fresh Win7 install.

  14. Djoko

    Hello, nice to meet you
    I’ve been installing the program, when the streets get out a message like this “The application failed to initialize properly (0xc000007b). Click on OK to terminate the aplication.”

    approximately where the error occurs huh? please solution
    Thank you very much
    greeting

    1. Zak Kemble

      Seems that error can be caused by a number of things, see this LINK.

  15. marc walter

    Hi all,
    I am using avrdudess with usbaps and atmega328p : works perfect, thanks !
    But now I have the new attinny 841, it is still not listed. I have added the datas “http://www.avrfreaks.net/forum/need-help-using-attiny841-avrdude” into the avrdude. conf file in the avrdudess folder.
    It isn’t enough to make it work.
    I never used avrdude before, and I am currently fully unable to make it work, so I could not test the add-on.
    Some advices ?
    Thanks,
    marc

    1. Zak Kemble

      Hey, there seems to be a bug in the AVRDUDESS code that parses the avrdude config file. Add a space to the start of all the new lines (or at minimum add a space to the “id” and “desc” lines) apart form the “part” line and it should work. Also, there seems to be a bug with USBasp or avrdude and ATtiny841, the programmer needs to be power cycled after each time you communicate with the microcontroller.

      1. marc walter

        Hi,
        It works fine now. I just added the spaces. There is no problem with the (cloned) programmer. Thanks.
        Zak, you are the Greatest !

  16. FreshMan

    hello :)
    I have AVR ISP mkII
    I can not read programme
    [URL=http://www.pixic.ru/view.php?img=s0f0E6y3j940Y3p0.png][IMG]http://www.pixic.ru/i/s0f0E6y3j940Y3p0_preview.png[/IMG][/URL]

    1. Zak Kemble

      Hey, I tried googling the error, but couldn’t find any definite solution. Maybe make sure it’s using the libUSB drivers and not some other kind of driver.
      You might have better luck: https://www.google.com/search?q=avrdude+avr+isp+mkii+did+not+find+any+usb+device

      1. FreshMan

        hi :)
        I have been installed LIBUSB, but now I have another problem
        ======================================================================================
        RGB.hex: 176 / 8 192 Bytes (2,15%)
        ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
        avrdude.exe: stk500v2_recv_mk2: error in USB receive

        avrdude.exe: stk500v2_recv_mk2: error in USB receive
        avrdude.exe: AVR device initialized and ready to accept instructions

        Reading | ################################################## | 100% -0.00s

        avrdude.exe: Device signature = 0x1e9307
        avrdude.exe: NOTE: “flash” memory has been specified, an erase cycle will be performed
        To disable this feature, specify the -D option.
        avrdude.exe: erasing chip
        avrdude.exe: reading input file “D:\Project_AVR\Project_Eclipse\Linux\RGB\Release\RGB.hex”
        avrdude.exe: input file D:\Project_AVR\Project_Eclipse\Linux\RGB\Release\RGB.hex auto detected as Intel Hex
        avrdude.exe: writing flash (176 bytes):

        Writing | ################################################## | 100% 0.06s

        avrdude.exe: 176 bytes of flash written
        avrdude.exe: verifying flash memory against D:\Project_AVR\Project_Eclipse\Linux\RGB\Release\RGB.hex:
        avrdude.exe: load data flash data from input file D:\Project_AVR\Project_Eclipse\Linux\RGB\Release\RGB.hex:
        avrdude.exe: input file D:\Project_AVR\Project_Eclipse\Linux\RGB\Release\RGB.hex auto detected as Intel Hex
        avrdude.exe: input file D:\Project_AVR\Project_Eclipse\Linux\RGB\Release\RGB.hex contains 176 bytes
        avrdude.exe: reading on-chip flash data:

        Reading | ################################################## | 100% 0.06s

        avrdude.exe: verifying …
        avrdude.exe: 176 bytes of flash verified

        avrdude.exe done. Thank you.
        =============================================================================================

        [url=http://img.radiokot.ru/files/27935/j2ks8yaf1.png][img]http://img.radiokot.ru/files/27935/thumbnail/j2ks8yaf1.png[/img][/url]

        please, tell me what should I do ?

        1. Zak Kemble

          Other than those 2 USB errors at the top everything looks fine. It programs the controller and verifies it with no errors.

  17. abhinav matharoo

    avrdude.exe: set SCK frequency to 1500000 Hz
    avrdude.exe: error: programm enable: target doesn’t answer. 1
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude.exe done. Thank you.

    using usbasp programmer witn win8.2 64 bit
    please help
    PS installed usbasp driver already

    1. Zak Kemble

      Need a little bit more info, what programmer and MCU are you trying to use?

  18. Marcel

    Is it possible to pass the flashfile and processsor type etc using the commandline. (as I’d like to be able to start avrdudess from my IDE)

    great front end btw, thanks for all your effort!

    1. Zak Kemble

      Thanks :)
      You can’t pass flash file etc. by the command line, but if you make a new preset with all the settings you want you can then pass the name of that preset in the command line and it will load it at start up.
      avrdudess.exe "myPreset"

      1. Marcel

        thanks Zak. that helps also. Maybe you can put the filename-passed-by-commandline in as a feature request for some new release in the future?

        1. Zak Kemble

          Could do then. I’ll make it accept all the same commands as avrdude does and have it apply them at start up.

          1. Marcel

            that’s brilliant!, thanks in advance!

            marcel.

  19. Karanbir

    Avedrudess was working fine in Win 8.1. My windows crashed on reinstallation of windows installation of averdudess stops at requirement of .NET
    Win 8.1 has .NET 4.5, I cannot install .NET 3.5.
    I cannot figure out what has gone wrong.
    Regards.

    1. Zak Kemble

      AVRDUDESS should work with any system that has .NET 2.0 SP1 or newer. What error message are you getting?

      1. Karanbir

        The error was that .NET 3.5 cannot be installed.(.NET 4.5 is installed with Win 8.1)
        I had to use the DISM command at elevated command prompt and install the .NET 3 platform from the windows installation media after googling.
        It is now working.

        Thanks

  20. Sneuper

    Great software !
    Will you keep this progam up to date?
    I hope so, because it so much better then a standalone AVRDUDE !
    Greetings from Holland.

    1. Zak Kemble

      I do plan to keep it updated. I’ve got a few things on the todo list at the moment, but not sure when the next release will be though.

  21. BN

    Webroot reports a trojan in the .exe

    1. Zak Kemble

      Some antiviruses are falsely detecting AVRDUDESS as a virus, the detection is usually removed within a few days of reporting the false positive to the vendor. Is it the installer file or avrdudess.exe that webroot is detecting?

  22. Francois

    At last found one program that will let me able to get out of windows for my electronics projects,THANK YOU.
    i have a message at launch: “avr-size is missing , ok” click ok and it seems to work , i have now to build the programmer , because the only one i have is from china.So , is there a reason for this message?
    Thank you, again.
    Francois

    1. Zak Kemble

      avr-size is used to show the .hex and .eep sizes, if it’s missing then it just won’t show the sizes. Do you have avr-gcc installed?

  23. Sandeepan Sengupta

    Hi Zak, I fall in love with this GUI the moment I saw it. Still I have a few suggestions regarding this, like serial monitor etc. First of all, I dont like the name AVRDUDE, second, the icon is bad, also the inno script you wrote for setup needs a bit brushing. Anyway, I noticed that the text box “Bit Clock (-B)” changes to Drop down menu for USBasp but it remains a text box for others, How did you do that

    1. Sandeepan Sengupta

      and yup, there is a glitch.You never designed a maximized GUI but the maximize button is still there, if pressed forces the gui to move to a side, which is irritating

      1. Zak Kemble

        That’s what it’s supposed to do :I

        1. Sandeepan Sengupta

          Ya I noticed that you restricted the window size but my suggestion is making a TRUE maximized window, with a bit WIDER command line region (for better readability)

    2. Zak Kemble

      Glad you like it :)
      AVRDUDE name – Eh, not much I can do about that.
      Icon and inno script – you’re always welcome to fork the project and send a pull request with your modifications.
      The USBasp drop down box is done in Form1.cs in the cmbProg_SelectedIndexChanged() method. It just sees what the selected programmer is then hides and shows the form controls.

      1. Sandeepan Sengupta

        C’mon, you took the name prank seriously ? I was just kidding maan.
        .
        And yup, thanks for the cmbProg_SelectedIndexChanged() part, I overlooked it.
        .
        Really its a great GUI
        😀
        .
        Hei, how do you detect MCU ? I mean I’ve been using avrdude command line for years but still dont know how to do it ?

        1. Zak Kemble

          lol, I suppose it’s sometimes kinda hard to convey what you really mean in text 😛

          Detecting MCU can be done by telling AVRDUDE that the MCU is something like an ATmega8, AVRDUDE will return an error along with the controllers real signature which can then be used to figure out what the controller really is.

          Got your email with the inno script and icon, I shall have a look and decide what to do with them, not sure when though.

          Serial monitor and maximized window layout… hmm… could do, but again, not sure when.

      2. Sandeepan Sengupta

        …and for Icon and staff, I have no idea about forking and pulling requests. Can I mail you the mods I did ?
        And do you have anything in mind regarding the serial monitor ?

      3. Sandeepan Sengupta

        Anyway, I mailed you the inno script

  24. donovanpl123

    AVRDUDESS 2.4, Arduino nano as ISP, Win 8

    When I clear the text in the fuse and lock bit boxes, and hit the read buttons:
    1- Should the boxes be repopulated with the values read?
    2- AVRDUDESS says it is writing to files. Should I expect I expect the results to be sent here. I cannot find the files under Windows 8. Can anyone assist?

    1. Zak Kemble

      1. Yes, clicking read should populate the fuse and lock boxes.
      2. AVRDUDE (the program that does the actual communication with the microcontroller) doesn’t output the fuse values to console, so instead they first need to be saved to some temporary files which AVRDUDESS reads into the fuse and lock boxes and then the temp files are deleted.

      If the boxes are not being populated then there is an issue with reading the fuses, could you paste the output of the black console box when you try reading the fuses?

      1. donovanpl123

        Here you go, Zak. The boxes are filled with 0x00. I know that it is communicating with the 328P because it detected it. So the first part is reading the fuses and the last part is reading the lock bits.

        Thanks in advance for your help.

        Regards

        Donovan

        Detected 1e950f = ATmega328P
        ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

        avrdude.exe: AVR device initialized and ready to accept instructions

        Reading | ################################################## | 100% -0.00s

        avrdude.exe: Device signature = 0x1e950f
        avrdude.exe: reading lfuse memory:

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp7080603-ac47-4e39-8a2c-d1a2d9e53a05.TMP”
        avrdude.exe: reading hfuse memory:

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp\6fe6e36e-b839-4bb7-859f-35c402c5910d.TMP”
        avrdude.exe: reading efuse memory:

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp\db22885a-0a89-4e2b-abaa-ba562031448e.TMP”

        avrdude.exe done. Thank you.

        ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

        avrdude.exe: AVR device initialized and ready to accept instructions

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: Device signature = 0x1e950f
        avrdude.exe: reading lock memory:

        Reading | ################################################## | 100% 0.02s

        avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp\747863c4-4123-49a5-86b7-7638396474d7.TMP”

        avrdude.exe done. Thank you.

        1. donovanpl123

          Hey Zak,

          Something’s wrong here. I disconnected the Pro Mini which is the target device and AVRDUDESS still reports that it detects the 328P MCU. Where is this coming from?

          Set up is as follows:

          A Nano is being used as the programmer connected to a Pro Mini (328P). The ArduinoISP sketch was uploaded into the Nano with resistors connected as per sketch suggestion.

          When the Nano is powered up the three LEDs flash on the Nano with the heart beat LED growing and fading in intensity continuously.

          What is happening here?

          1. donovanpl123

            I select Arduino in AVRDUDESS.

            When I try to read the contents of the flash (target is disconnected) it goes though with the onboard LEDs of the Nano flashing while the #’s are going across the screen. So it seems its downloading the flash from the Nano. Still getting 0x00 for lock and fuse bits.

            What am I going incorrectly?

        2. donovanpl123

          OK, reaching somewhere now, somewhat. I had not connected the capacitor to the Nano’s reset. So moving on not to try and test again.

  25. donovanpl123

    Here is the console output for a fuse read at verbosity 4:

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    avrdude.exe: Version 6.1, compiled on Mar 13 2014 at 00:09:49
    Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
    Copyright (c) 2007-2014 Joerg Wunsch

    System wide configuration file is “C:\Program Files (x86)\AVRDUDESS\avrdude.conf”

    Using Port : COM4
    Using Programmer : arduino
    Overriding Baud Rate : 57600
    avrdude.exe: Send: 0 [30] [20]
    avrdude.exe: Send: 0 [30] [20]
    avrdude.exe: Send: 0 [30] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]
    AVR Part : ATmega328P
    Chip Erase delay : 9000 us
    PAGEL : PD7
    BS2 : PC2
    RESET disposition : dedicated
    RETRY pulse : SCK
    serial program mode : yes
    parallel program mode : yes
    Timeout : 200
    StabDelay : 100
    CmdexeDelay : 25
    SyncLoops : 32
    ByteDelay : 0
    PollIndex : 3
    PollValue : 0x53
    Memory Detail :

    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
    Block Poll Page Polled
    Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
    ———– —- —– —– —- —— —— —- —— —– —– ———
    signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00

    Programmer Type : Arduino
    Description : Arduino
    avrdude.exe: Send: A [41] . [80] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [02]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [81] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [01]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [82] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [98] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [03]
    avrdude.exe: Recv: . [10]
    Hardware Version: 2
    Firmware Version: 1.16
    avrdude.exe: Send: A [41] . [84] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [85] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [86] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [87] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [89] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    Vtarget : 0.0 V
    Varef : 0.0 V
    Oscillator : Off
    SCK period : 0.1 us

    avrdude.exe: Send: A [41] . [81] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [01]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: A [41] . [82] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: E [45] . [05] . [04] . [d7] . [c2] . [00] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]
    avrdude.exe: Send: P [50] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]
    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | avrdude.exe: Send: u [75] [20]
    avrdude.exe: Recv: . [14] . [1e] . [95] . [0f] . [10]
    ################################################## | 100% 0.01s

    avrdude.exe: Device signature = 0x1e950f
    avrdude.exe: reading lfuse memory:

    Reading | avrdude.exe: Send: V [56] P [50] . [00] . [00] . [00] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    ################################################## | 100% 0.02s

    avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp\a3634882-d2ac-4476-9d92-a6471f3c0087.TMP”
    avrdude.exe: reading hfuse memory:

    Reading | avrdude.exe: Send: V [56] X [58] . [08] . [00] . [00] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    ################################################## | 100% 0.01s

    avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp\31b736b4-4dee-43a0-9bc8-1bfd79fc6945.TMP”
    avrdude.exe: reading efuse memory:

    Reading | avrdude.exe: Send: V [56] P [50] . [08] . [00] . [00] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [00]
    avrdude.exe: Recv: . [10]
    ################################################## | 100% 0.01s

    avrdude.exe: writing output file “C:\Users\Donovan\AppData\Local\Temp\49953498-857c-4965-aebc-e01e8d22b31f.TMP”
    avrdude.exe: Send: Q [51] [20]
    avrdude.exe: Recv: . [14]
    avrdude.exe: Recv: . [10]

    avrdude.exe done. Thank you.

  26. donovanpl123

    Installed the cap. Now I’m getting:

    Unable to detect MCU.

    avrdude.exe: stk500_recv(): programmer is not responding
    avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

    The error light is on solid and the heartbeat light continues to fade up and down.

    The programmer was reflashed with the ArudinoISP sketch, so I know the Nano is good and works from the IDE.

    1. Zak Kemble

      Ah, you’re probably getting 0x00 for the fuses because you’ve set the programmer to “Arduino” which makes it read the programmer instead of the programmers target device and the bootloader doesn’t support reading the fuses. From what I can remember you need to set the programmer to “Atmel STK500”. Baud should also be 19200.

      1. donovanpl123

        Well, initially before I installed the capacitor, it was actually reading from the programmer (Nano). So even when I tried to read the contents of flash, it was apparently reading the Nano’s flash. But no fuses.

        The cap prevents the programmer from rebooting. However, with programmer set as Arduino, when I try to detect the MCU I get

        Unable to detect MCU.

        avrdude.exe: stk500_recv(): programmer is not responding
        avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

        Closed AVRDUDESS and used the Windows command prompt and the same thing happended.

        Do you know if the target device does not respond if the AVRDUDESS will respond with the above? Or is it expecting something from the programmer before it passes the target response. The blink sketch is on the target (Pro Mini) and I understand that the programmer is suppose to reset it. I did not see the blink interrupted. Just keeps running. As a test I wrote a sketch to reset based on the pin that is supposed to reset the target and that worked.

        I reloaded the programmer with the ArduinoISP sketch.
        When I change it to STK500, baud 19200 as suggested, I get

        Unable to detect MCU

        avrdude.exe: can’t open device “giveio”

        avrdude.exe: failed to open parallel port “COM4”

        So this seems to be worse off than previous attempts.

      2. donovanpl123

        I seem to remember something about a certain sequence which involved the reset pin, which would allow the MCU to go into this programming mode. Hence, the reason for connecting one of the digital output pins from the programmer to the target reset pin. I suppose that this would prevent the bootloader from being loaded. If the programmer did not assert this pin, then the target would not go into this mode. Hence, when the cap was not in place on the programmer, and the programmer was reset, AVRDUDE thought it was talking to the target, but it was indeed talking to the programmer. The programmer responded when I tried to read flash memory, as well as the MCU id. Can’t offer a theory why I was not able to read the fuses and lock bits.

        Now, whether the programmer is not being seen by AVRDUDE, or the target is not going into programming mode is the question. And how we get around that is the meat of the matter.

        BTW, what country are you located since our times seem to that much off? I’m in Jamaica.

      3. donovanpl123

        Good news! I changed the programmer selection to Atmel AVR ISP and I’m now able to read flash, MCU id and fuses and lock bits. When reading you can see activity going on on the target.

        Thanks for your help.

        Certainly, if any other problems come up I will get back to you.

        Once again, thanks.

        1. donovanpl123

          Changed programmer back to Arduino at 19200 baud and that works too.

          1. donovanpl123

            In summary issues/solutions were:

            1- Resetting of programmer- solved by installing 10 uF cap on reset pin- gnd
            2- Select Arduino as programmer, 19200 baud

          2. Zak Kemble

            Phew, glad you it sorted then 😀
            I’m in the UK, so you’re 6 hours behind. I usually reply during the evening if I have time.

  27. vik

    Downloaded avrdudess_20140805.zip (509.63 kB)
    And the very first what avrdudess was trying to do is to connect to some game server.
    ???

    1. Zak Kemble

      When AVRDUESS starts it connects to http://versions.zakkemble.co.uk/avrdudess.xml to check for updates.

  28. donovanpl123

    Zak,

    When a hex file is uploaded in flash memory, without any other options, will it overwrite the existing bootloader? I notice after uploading a file the sketch does run, but if I were to attempt to upload another sketch from the Aruino IDE, it fails. I have to burn the bootloader, then everything’s good from there again.

    1. Zak Kemble

      Yeah, when programming via ISP it will erase all of the flash first, which includes the bootloader.

  29. Donovanpl123

    How do I get the bootloader and application loaded then?

    1. Zak Kemble

      Program the bootloader then program the main sketch with the “Disable flash erase (-D)” option set.

  30. Donovanpl123

    Thanks, Zak.

  31. saul

    issue, problem

    Unable to detect MCU

    avrdude.exe: stk500_getsync() attempt 1 of 10: not in sync: resp=0x15
    avrdude.exe: stk500_getsync() attempt 2 of 10: not in sync: resp=0x15

    avrdude.exe: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x14

    avrdude.exe: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x01
    avrdude.exe: stk500_initialize(): (a) protocol error, expect=0x14, resp=0x10
    avrdude.exe: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.

    avrdude.exe: stk500_disable(): unknown response=0x12

    avrdude.exe done. Thank you.

    1. Zak Kemble

      Really need more info, what microcontroller, programmer, other settings etc?

  32. Joaquim

    Hi Zak
    Nice work. My wife does the “production” programming and it is simpler with your program (compared to AVR studio). Really appreciated.
    She does have one suggestion: It is possible to have the words “error” or “failed” in red to attract attention?

    Thanks for sharing!
    Joaquim from Portugal

    1. Zak Kemble

      Thanks! Good idea, I’ll see about getting coloured text in the next version then.

  33. CuriousMarc

    I love you app. But on Avast detects your site as an attack site, blocks the latest AVRDudess download, and does not let the older version run. When the older one runs, it tries to write a dll with a name changing each time to the C:\Documents and Settings\\Local Settings\temp\ directory (this is on WinXP). Which *does* look like a virus activity… I think AVAST blocks it. Any idea of what is going on?

    1. Zak Kemble

      Gah, antivirus software really hates AVRDUDESS :/ Sending false positive reports to the vendor usually gets things unblocked. I don’t recall coding avrdudess to write dlls to temp, is it the installer or the main avrdudess program doing that?

      1. CuriousMarc

        Exactly. I didn’t think you coded that either! But I wanted to make sure. I suspect that something has gotten infected in my installation, not even through AVRDudess. I started to suspect .Net 4.0 yesterday , as another program using .net also started crashing on startup with identical symptoms. My virus checker (Avast) did not find any infection, but I removed .net, the other program (FreeMake), and my newest version of AVRDudess and reinstalled .NET and FreeMake afresh. That cured the problem apparently. And now an older version of AVRDudess seems to work again. Avast still won’t let me download the newer one .

        So nothing of your doing it seems. That said, I am worried. You might want to double check that your download is your clean original and that no one has taken advantage of your file and introduced something bad in it. That would not be the first time.

        This is the infection that Avast consistently reports when checking your file before download:

        URL: http://blog.zakkemble.co.uk/wp-content/uploads/downloads/2014/08/setup-AVRDUDESS-2.4.exe
        Infection: FileRepMetagen [Malware]

        I really fear that it’s not a false positive, and that you might have been victim of something not good at all. Hopefully I am wrong.

        Marc

        1. Zak Kemble

          The downloads haven’t been modified, they’re the same as when I first uploaded them (checksums match). I think “FileRepMetagen” is short for “file reputation, meta generated”, meaning the file kinda-maybe-looks like a virus, based on other virus found from around the web. I guess a lot of viruses use InnoSetup. I’ll have to see about using a different installer creator or maybe scrap the installer completely.

  34. Kenneth Scharf

    Great program. It seems to work with xmegas, but you need to change some logic because the fuse names are different and the GUI won’t read or write xmega fuses as is (version 6.0.1).

    1. Zak Kemble

      Thanks :)
      Might have xmega fuse support in the next version, not sure when that will be though.

  35. Jon Raymond

    Just a note to thank you Zak for this absolutely wonderful piece of software. I hated dealing with avrdude via the command line. This has made flashing chips and debugging much simpler. I will also send you a donation as thanks. Cheers

    1. Zak Kemble

      Thanks, much appreciated 😀

  36. Gennady

    Hi!
    Great program!
    I want to appeal to you for help. I looked through a lot of pages on the Internet, but did not find a complete answer to my questions.
    I have before me the task to write down on a clean 5V 16MHz Atmega 328P bootloader optiboot to be able to use the watchdog function. Then block access to the reading of the chip bootloader and my Arduino-based program sketch.
    I have a clone USVasp by Thomas Fischl. If I understand correctly, the procedure is as follows:

    1. connect the programmer, the programmer adjusts the settings, the type of microcontroller.

    2. write bootloader optiboot_atmega328.hex from https://github.com/Optiboot/optiboot/tree/master/optiboot/bootloaders/optiboot
    and check after the recording.

    3.write the Fuses and verify:
    EXTENDED – 05
    HIGH – DE
    LOW – FF

    4. change LB from 3F to 0F, write and verify

    5 write sketch in HEX with the “Disable flash erase (-D)” option set and verify

    6.set new LB. What should be the LB that could not be any way to read my sketch and bootloader?

    Thanks advance!

    1. Zak Kemble

      You’ve pretty much got it all there. You can leave out step #4 and for step #6 you would set LB to 00 which will enable all locks in one go.

      1. Gennady

        Good day!

        If I correct understud, I mast delete p.4. All the other points I have to perform.
        Can I perform steps 2 and 3 at the same time by pressing “Program!”. Of course it should be noted option (set fuses and set lock) for simultaneous recording bootloader, fuses and lock (default LB for Arduino Uno (ATmega328P)=3F).
        Then perform points 5 and 6 (set LB=00). Whether p.5 and p.6 to perform simultaneously as pp.2-3?

        Sorry for my detailed questions, but this is a new challenge for me. I used to work only in the Arduino IDE, but they can not close the program code to reading from the microcontroller. Are you sure, that set LB=00 prohibit reading program code and bootloader from the microcontroller and will not interfere with my sketches?

        Also, please confirm whether I understood the procedure of writing sketch in P.5? When recording bootloader, erase first and then writes all the flash completely. Recording sketch with the option -D, it is written over the previous record, starting at address 0, but since it is shorter than the entire flash, as if it does not overwrite the flash area with bootloader, which is located in the upper addresses of flash?

        Sorry for the many questions. I really appreciate your time, but still I ask to respond!

        With best wishes,
        Gennady

        1. Gennady

          One more- maybe I mast put in p.2 (write bootloader) -e (erase option) for programmimg new chip from factory?
          Thanks!

          1. Zak Kemble

            I can’t remember what the use of -e is, by default EEPROM and FLASH are both erased when programming a new .hex, there’s no need for it when programming a new chip.

        2. Zak Kemble

          Yes, delete step 4. You can do step 2 and 3 at the same time as well as step 5 and 6.
          If you want to make sure the lock bits are correct you can just set them and then attempt to read from the microcontroller. If the file only contains blank data (all 0s I think) then it worked.
          When compiling the bootloader you need to specify the start address so that it is programmed near the end of flash. I can’t remember too much about that, though you could look at how other bootloaders like optiboot do it. When uploading the main sketch with the -D option it will start at address 0 and as long as it can fit in the area between the beginning of flash and the bootloader it won’t overwrite anything.

  37. Gennady

    One more question.
    Do I need to write a new version of Firware on USBasp, or can work and so? Can it is necessary to rearrange a jumper on USBasp?

    Detected 1e950f = ATmega328P
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    avrdude.exe: set SCK frequency to 1500000 Hz
    avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude.exe: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.00s

    avrdude.exe: Device signature = 0x1e950f
    avrdude.exe: reading lfuse memory:

    Reading | ################################################## | 100% 0.02s

    Thanks!

    1. Zak Kemble

      The jumper is for slow mode if your microcontroller is running slower than 4MHz or so. It’s up to you if you want to update the firmware (will make things easier as you can set the speed in avrdude instead of using a jumper), if its working at the moment then you don’t have to if you don’t want to.

      1. Gennady

        Thanks for your answer, but I would like to clarify.
        I write code through USBasp to atmega328p 16 mhz.
        I tried to write with jumper, and without him, and established in your program 375kHz, 8 kHz and 1,5MHz. The result is the same-same warning, but code correct writing&verify to target.
        I would not want to record the new FW in USBasp.
        Can AVRDUDESS function PROPERLY in all situation (write lock bits, etc.) without FW upgrade in USBasp and whether or not to open the jumper (open-higher bit clock)setting and what settings will correct in AVRDUDESS -port=usb, baud rate=115000, bit clock=375kHz or 1,5MHz?
        Thanks!

        1. Zak Kemble

          It’s best to check the change log for the USBasp firmware to see what exactly has been changed and whether or not it will effect you. In your case there are no issues with using the older version.
          The port, baud and clock settings under the programmer box have no effect on the USBasp when using the old firmware version. If you update the firmware then you will be able to set the bit clock to whatever you want, usually you choose the highest clock that works.

          1. Gennady

            Thank you for your program and consultation. As I understand, it is possible to work with the old firmware on my USBasp. When I type of experience, then reprogram new FW to USBasp. The latest on site http://www.fischl.de/usbasp/ at 2011.

            As I explained at the Arduino forum, the bootloader in use only to be able to write a sketch by Arduino IDE. If I use AVRDUDESS for write my sketch, then I do not weed write bootloader. In this case, I understand what I need set the Reset Vector = Application Reset (address 0x0000) = HF: DA change to DB in Atmega 328P?

            There is a need in this case to change Bootsize (BOOTSZ1 & BOOTSZ0 in HF) or they can be any?

            Lock byte for protect to read from chip scetch and fuses is 0x00 and mast set after set all fuses and write sketch.

          2. Zak Kemble

            Setting BOOTRST to 1 (DB) will disable the bootloader, usually if you don’t have one (for example if you are programming via ICSP/USBasp). I’m not sure what kind of effect BOOTSZ will have if the bootloader is disabled, I usually set it to the smallest size. Yep, setting lock bits to 0x00 should be done last.

  38. kemo

    Hi Zak,

    How to get this program running on a raspberry pi os: raspbian ?

    Cheers

    1. Zak Kemble

      The instructions about Mono for Ubuntu should also work for other Linux distros.

  39. Nacho quintanilla

    thank you for the program you are the best

  40. Davide

    As good as sufficient to bring me to donate at your blog! Trust me, very unusal.
    Just a question indeed, when i read a flas or eprom data from micro, in wich way can i save to file?

    1. Zak Kemble

      Thanks! When reading the micro you set the file to write to in the location box just above the Write/Read/Verify radio buttons and set the format to something other than Auto, usually Intel Hex. You can then click ‘Go’ which will only read the EEPROM or Flash or if you click ‘Program’ it will run everything you’ve set in one go (fuses, read/write FLASH, EEPROM etc).

  41. Oin Grant

    Hi Zak,

    Think I’ve ballsed up the installation of the USBLIB…

    Unable to detect MCU

    avrdude.exe: usbdev_open(): WARNING: failed to set configuration 1:
    avrdude.exe: usbdev_open(): error claiming interface 0:
    avrdude.exe: usbdev_open(): no usable interface found
    avrdude.exe: usbdev_open(): did not find any USB device “usb” (0x03eb:0x2104)

    avrdude.exe done. Thank you.

    Any clues on how to recover, using chinese knockoff avrisp mkii, windows 7 device manager says it is working ok.
    Tried renaming the dll but still no joy.
    Thank you for your time.

    1. Zak Kemble

      Heya, have you tried seeing if the avrisp works on a different PC?

  42. Fernando

    Hi Zak,
    AVRDUDESS is, in my opinion, the best GUI for avrdude. In Windows 7 have no problems but, in Linux Ubuntu 14.04.3, at start, appears the message: Error avr-size is missing! You have any suggestion?

    1. Zak Kemble

      Thanks :) On Linux it tries to use the avr-size program from AVR-GCC, you can install it with apt-get install gcc-avr. Or, if you’re using Arduino stuff then in the options of AVRDUDESS set the location of avr-size to (your Arduino folder location)/hardware/tools/avr/bin/.

      1. Fernando

        Hi Zak,

        First of all, thanks for the answer, I have avr-gcc, I hadn’t arduino
        .xxxx@Linux64:~$ whereis avr-size:
        avr-size: /usr/bin/avr-size /usr/bin/X11/avr-size /usr/share/man/man1/avr-size.1.gz
        xxxx@Linux64:~$ whereis avrdude:
        avrdude: /usr/bin/avrdude /etc/avrdude.conf /usr/bin/X11/avrdude /usr/local/bin/avrdude.exe /usr/share/man/man1/avrdude.1.gz

        /home/avrdude.conf 474,8 Mar 13 2014
        /home/avrdude.exe 424,4 Jul 13 2014
        /home/avrdudess.exe 116,2 Ago 05 2014(*)
        /home/avr-size.exe 510,5 Set 25 2012

        (*) sudo mono avrdudess.exe [start command]

        1. Zak Kemble

          Not sure why it’s not just working straight away for you. In options set the avr-size location to /usr/bin.

  43. Fernando

    Hi Zak
    One little problem: how I can enter in options?

    1. Zak Kemble

      The program should still open up and work even if avr-size isn’t found. The options button is just above the black console output box, near the Program button.

  44. Fernando

    Now is working!
    I stopped, checked all operations. There were a number of problems. The urgency is not always good companion.
    The only difference is the lack of the colored bar above the windows of the memories, that exist in Windows and not in Linux
    Grateful for your patience

  45. Frank

    Hi Zak,

    I can’t write lockbit. and i am sure mcu hadn’t locked before.

    avrdude.exe: Device signature = 0x1e9587
    avrdude.exe: reading input file “0xFC”
    avrdude.exe: writing lock (1 bytes):

    Writing | avrdude.exe: Send: l [6c] . [fc]
    avrdude.exe: Recv: ? [3f]
    avrdude.exe: error: programmer did not respond to command: write byte

    1. Zak Kemble

      It’s not an issue with the lockbits. There seems to be some kind of problem when communicating with the programmer hardware or microcontroller chip. Does programming the firmware and changing fuse settings work? More info about your setup will help too.

      1. Frank

        This is a software design by other, It could program, but can’t change fuse.

        I have do an experiment, when i use AVR109 and your software, but MCU can’t be detected.

        If i only use USB ,Leonardo Board and via AVR109 bootloader programmer, does Leonardo and AVR109 can communicate with each other??(Based your software)

        Look forward your kind reply!

        1. Zak Kemble

          Hmm, looking at your previous post again, the bootloader responded with “?” after the write lock bits command. This means the bootloader does not support changing lock bits (and probably fuses too). You must use an ICSP like a USBasp to program them instead.

          1. Frank

            Hi Zak,

            (1) .I write lockbit with 0XFC, and then the results are as follows:

            avrdude.exe: Device signature = 0x1e9587
            avrdude.exe: reading input file “0xfc”
            avrdude.exe: writing lock (1 bytes):

            Writing | avrdude.exe: Send: l [6c] . [fc]
            avrdude.exe: Recv: ? [3f]
            avrdude.exe: error: programmer did not respond to command: write byte

            (2).I burn the caterina-Leonardo bootloader to MCU, and it support write lockbit

            #if !defined(NO_LOCK_BYTE_WRITE_SUPPORT)
            else if (Command == ‘l’)
            {
            // Set the lock bits to those given by the host
            boot_lock_bits_set(FetchNextCommandByte());

            // Send confirmation byte back to the host
            WriteNextResponseByte(‘\r’);
            }

            (3). The only different i have use AVR109 as a programmer(my boss tell must use avr109 not ISP).

            Zak, could you do me a favor? how can write lockbit via AVR109?

          2. Zak Kemble

            Did you use the old bootloader to upload the new bootloader? Because that will not work. An ISP is needed to change bootloaders.

  46. Teo

    Hi Zak,
    I want to download avrdude but my antivirus indicates that it has detected a version of Mal / HTMLGen-A .
    What could have happened ? Do you know anything?
    Bye Teo

    1. Zak Kemble

      It’s a false positive. Which antivirus program are you using? I can send them a report, most AV vendors remove the false detection within a few days.

  47. Frank

    I used ISP to upload bootloader rather than avr109.

    But now, when i had burned firmware, I need to write lock bit. So we want to use avr109 not IISP.

    1. Zak Kemble

      Ah ok. Since the bootloader is still responding with “?” then either the ISP did not program the new bootloader correctly, it was not compiled with lock bit support or has the section start location set incorrectly (–section-start=.text=0x????). Are you sure the bootloader was compiled with NO_LOCK_BYTE_WRITE_SUPPORT set as undefined?

  1. 1.2. Arduino como programador ISP. | eleCrab

    […] a usar AVRDUDESS que encontramos en la siguiente enlace o en su repositorio, lo descargamos e instalamos en nuestro pc y lo […]

  2. 1.2. Using an Arduino as an ISP programmer. | eleCrab

    […] such purpose, we will install AVRDUDESS downloadable from this link or from its own repository, let’s download it to our PC and execute […]

  3. Making a custom Arduino and how to program it | Hangar42

    […] a Mac user and I use AVRFuses, if you’re a Windows or Linux user you can use for example AVRDUDDESS. The way these GUI’s work is mostly the […]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Are you human? *