Introduction: Hacking EXtreme Burner for AVR Atmega Devices Programming
This is my First Instructable on this site ! All you good folks posted a lot of things on this site, many bizarre and strange ideas and interests too ! Many of which i read from time to time, and you inspired me to give back to the Community ! Although the title is "hacking" no need to get alarmed ! we are just modifying some data files used by the program and its not illegal in any way. The software listed here is Free to use by anyone and can be downloaded along with any other AVR programming GUI front-ends for AVRdude (which itself is in public domain) without any limitations. Somehow the term "Hacking" is more interesting and we come across many such articles now !
"eXteme Burner " is a popular Front End GUI for the AVRdude Program used to program ATMEL AVR series of MicroControllers. (MCU). The second 'X' is a capital in the name of this utility ! No, its not my typing mistake. There are various other GUI tools as well, such as Khazama programmer and BitBurner AVR programmer etc. I have used eXtreme Burner for my AVR practice and it served me well for the popular Microcontrollers Atmega 328 , 168, Atmega8 or 8A etc series. But one day when I used a new chip ATTINY44A I ran into a problem. Other people too (in various AVR forums have reported this and abandoned eXtreme Burner , going in search for other GUI programs for AVRdude or going down to the command line and using AVRdude directly with its options.). This is due to lack of understanding of the flexibility inherent in eXtreme Burner ! After all, once you get used to a GUI that can read your AVR flash memory, EEPROM and FUSES why would you go and learn another GUI ? Here I detail how to modify your eXtreme burner Tool in an Extreme way ! Your tool will behave the way you wan't it to and not in some way that gets in your way or dosen't work at all in a specific MCU.
What you need: A Laptop with eXtreme burner , AVR studio any version with AVR-GCC compiler to compile your C program into an Intel Hex file to load into your MPU, Notepad++ with add-on installed for 'XML' view and editing (look in Menu --> Languages, it would show XML as an option in the drop down list, if it does its already installed, if not head over to the Notepad++ site and download it, its also possible to do it from Notepad++ itself to add additional 'languages'). Select the XML option , a dot will appear next to it. This allows you to view and edit XML files, which is the format you will be hacking the files in this article.
Step 1: Setting XML View in Notepad++
Step 2: Understand the Files You Need to Modify
In Extreme Burner, go to its program Files entry at :
C:\Program Files\eXtreme Burner - AVR, there are several folders here: Data, Help, Image, Driver etc. The one we start off with is the folder named "Data". Once you look into this folder, Deja-Vu ! So this is where the configuration information is stored ! XML files are there: Chips.xml, Fuselayout.xml, clocksystems.xml, These are the XML files you would be modifying in this Instructable. You would need an XML editor. There are many on the Web but I use and recommend Notepad++ (the add-in to view and edit XML files is already installed in default installation of Notepad++, if its not , download and install this add-on). See screenshot for where you have to tick "XML view" in notepad++. in earlier step.
If you peek into the file chips.xml in the data folder where eXtreme Burner is installed, and scroll down to the section descriptor for your device Attiny44A or whatever chip you are facing a problem with, you will Notice the Wrong Page size i(64 bytes instead of 32 bytes as given in its data sheet) in the XML file under section Attiny44, this is causing the errors and inability to flash our Program / hex file into our Microcontroller using USB-ASP. Sometimes the signature line may contain incorrect information. You have to read this section and make sure it contains valid and correct information for your chip by comparison with its official datasheet.
This XML file can be read only with an XML file editor.
Also, Whenever you get ANY kind of errors while using extreme burner, just click on "CHIP INFO" in the Menu of your burner tool and see if the chip info displayed is correct (after you have set the chip in the menu under Chip (see the screenshots 1 and 2). When you notice this disparity in the displayed info about the chip you selected and the Chip's data-sheet (or even in the case when the chip you are trying to flash is not displayed in the chip select dialog in eXtreme Burner) you must modify the XML in the way described in our instructable. You can do this first without using any xml editor or opening the chips.xml !
Step 4: Making the Corrections in XML File Chips.xml
Using Notepad++ window you will make these corrections, mainly Page size set to 32 bytes as given in data sheet for Attiny44). You would be facing a problem while using a different chip, but the steps are the same.
Now you will need to add another section below this one, for your specific MCU Attiny44A. Since this chip is identical in registers, memory size, and everything, we just copy and paste the 44A section below it, in this new section, rename the chip name, to ATTINY44A in place of ATTINY44. Just to recaptulate, we didn't remove the ATTINY44 section, we only changed the Page size line in it ! We are just adding one more section below it for our 44A Microcontroller.
See the pics.
Step 5: New Section for Attiny44A Added
You would just copy the previous section for ATTINY44 (after correcting the page size to 32 bytes in its XML section) and change the chip name in the XML line to "ATTINY44A" , ie, just type the "A" ! All the rest of the lines emain same. Be careful not to make any typing errors in the XML and don't omit any quotes characters ! If you do thats a different story you will learn what will happen next time you open "Xtreme Burner" it will say "error loading XML file chips.xml at line no. ----", so you would know and then you can reopen the XML file and check what mistake you made ! Save your file in Notepad++ and exit. Your work is done !
Step 6: Checking Your Work !
Now we have to taste the Pie or Pudding as you like to call it !
Open eXtreme burner, and look in Chips under Menu, your new chip Attiny44A should appear ! select it.
click on Chip Info and verify the details are correct ! See the pictures.
Connect your USBASP programmer to your USB port and your Development board to the USBASP, and wait till its recognised by the drivers, it will appear in "Devices & Printers". Now give a "Read ALL" from Burner. You will see a successful read of the Flash, EEPROM and fuses, if all is OK ! The diagnostic messages will be shown as in picture.
Step 7: Write to Chip Your Program / Hex File
Now open any hex file on your laptop from your AVR projects folder and watch it flash by giving "Write --> Flash" from Burner Menu.
Watch the messages that indicate write to Chip and verify ops went OK !
If they didnt, check the wires and connections from your development board hosting the chip and your USBasp programmer. Thats it !
Next article i will tell you how to hack the other XML files too ! and how to place your custom image (I placed the image of my faithful dog Tom" in the menu, last but one icon at right, to customize my eXtreme burner, shown in the last picture above) in the Menu bar to assure you that its the modified version suited to your needs that you are using and not the stock version ! See the snap of the menu bar with photo in it (last but one icon).
For Fuses, are you using an online fuse calculator ? You can do it in Extreme burner too, there is a fuse calculator in FUSES tab for setting clock speed and fuse options ! Sometimes it dosen't work for your chip, I will tell you how to hack that too, its quite simple, using the files fuselayout.xml and clocksystems.xml.
Happy MCU programming ! If you want any more tips on using eXtreme burner, post it in the comments and I will be glad to give my ideas and suggestions. Do share your ideas too !