I’ve made a small program that can be used to upload your own *.hex files to arduino boards using the bootloader. That means you don’t need a flash programmer. I made it for my own use and found it pretty useful. So now I’ve made a more user friendly version..

To use it compile you’re code in something like AvrStudio. Then simply start XLoader.exe, pick a hex file and press upload. That’s it.

Good news it now also supports Arduino Uno.

Hope you find it useful…  Please contact me about bugs or suggestions.

XLoader.zip v1.00 678kb

GPGSign

  1. Paul
    May 10th, 2013 at 18:06 | #1

    Hi!
    I’m stuck, xloader freeze in ‘uploading…’ and cant close it, only killing process in task manager. open xloader again and the serial port is not avalaiable. help?

  2. jao jung
    May 3rd, 2013 at 17:30 | #2

    hi!
    i have a uno3. but upload fail…plz help me~

  3. Gee Tee
    April 24th, 2013 at 23:01 | #3

    @Geir Lunde,

    Thanks ! Works like a charm on my Arduino Mega (1280) and XP system !

  4. vahegan
    April 2nd, 2013 at 00:13 | #4

    Hi!
    Does this software work with WinXP?
    I sent a device to a friend, and we were trying to update the firmware with XLoader. It works perfectly well on my system (Win7), but gives “Upload failed” on his WinXP. I checked and he has .net 4.0 installed. What else could be wrong?

  5. helbor
    March 29th, 2013 at 21:00 | #5

    Spitze, Danke läuft gut

  6. Roman
    March 27th, 2013 at 06:10 | #6

    THANK YOU VERY MUCH!! REALLY!

  7. Ricardo
    March 19th, 2013 at 17:11 | #7

    Now I just need a port to Mac and Linux. Oh well… Nice job. Congrats.

  8. Johnni
    January 24th, 2013 at 22:58 | #8

    Perfect!!, just what a needed, simple and flawless (so far)

  9. rob
    January 24th, 2013 at 10:55 | #9

    Getting a error ‘libusb0.dll is missing’ and upload fails. Any ideas?

  10. churui
    January 23rd, 2013 at 05:29 | #10

    Hello,
    Is it possible to add the Arduino NG or Older W/Atmega8 board?

  11. paul
    January 17th, 2013 at 15:36 | #11

    hi
    can you please write the comand your program writes to avr dude in order to upload hex file to arduino 2560 with bootloader alrady on it.

  12. Roman
    January 10th, 2013 at 14:46 | #12

    Great!

    Uploaded onto my “promini 3.3v , atmega328p” with FTDI Basic

    by changing to:
    “Uno(ATmega328);m328p;stk500;57600;” in devices.txt.

  13. Maximus
    January 3rd, 2013 at 11:49 | #13

    Hi, does anyone know what the problem is, if the upload to an arduino uno just goes on and on and on? the RX/TX lights flash once in a while but nothing is happenning and the upload never ends? Any advice would be appreciated.

  14. January 3rd, 2013 at 09:51 | #14

    Things just weren’t easy prior to the concept of promotional gifts being used as being a part of branding exercises; however, conception that everything is usually used for branding or promotion dependant on the specific requirement provided it functions well and fails well on the receivers

  15. December 28th, 2012 at 11:33 | #15

    Great job.
    Thanks for this handy tool. Worked flawlessly with my Arduino Mega 2560.

  16. Anonymous
    December 28th, 2012 at 06:09 | #16

    Can this be run as a command line so it can launch from within an IDE?

  17. December 26th, 2012 at 16:35 | #17

    Hello
    Thanks for this utility.
    But it is not possible to programm the EEPROM part from AVR?

  18. toastedsiopao
    December 1st, 2012 at 03:09 | #18

    @Arend

    Yes it is to add other devices, just edit devices.txt.

  19. Arend
    November 22nd, 2012 at 19:34 | #19

    Hello,
    Is it possible to add the Leonardo board?

  20. November 21st, 2012 at 07:50 | #20

    I am very thankful to above software . it is very nice working software .

  21. Sarcinelli
    November 6th, 2012 at 15:30 | #21

    Congratulations on your initiative. We are working with the 1284p suggested by manicbug in http://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/. You can make the adjustment to Xloader 1284P firmware update? We are available for any tests. Thank you.

  22. admin
    November 3rd, 2012 at 11:49 | #22

    @sdrshn
    Sorry this is only to upload through the Arduino’s bootloader

  23. sdrshn
    November 3rd, 2012 at 02:31 | #23

    can we use it to burn pic using arduino as isp

  24. pecaxxl
    September 14th, 2012 at 02:07 | #24

    Works nice on Uno v3.
    Great job. Thank you for sharing.

  25. Diegocn
    September 6th, 2012 at 16:28 | #25

    Thanks for sharing,

    works nice, good work!

  26. J
    September 4th, 2012 at 13:22 | #26

    Thanks! Very easy to use and helpful.

  27. Hans
    August 21st, 2012 at 09:16 | #27

    Thats what I was looking for, I use Flowcode 5 avr pro and was not able to load the hex file into my Arduino Dumelove 328p.
    This is wonderfull work thanks.

  28. Bart De Reu
    June 9th, 2012 at 10:49 | #28

    This is very very helpfull, thanks allot !! it works perfectly !

  29. June 4th, 2012 at 11:56 | #29

    Keep it up, champion! Precisely what I had to obtain.

  30. admin
    March 22nd, 2012 at 21:04 | #30

    Finally XLoader is out of beta, thanks to Cameron for beta testing. It should now also work with mega2560.

  31. admin
    March 18th, 2012 at 18:23 | #31

    @Cameron
    I’m not sure the mail went out, some problems with the mail system. But it should be in your inbox :)

    If you would like to make a donation, some bitcoins are always appreciated :)
    My address: 1EB4ortk9maMyfPgifgBYSVMdMZWToQjbB

  32. Cameron
    March 16th, 2012 at 21:47 | #32

    Hello! Thank You for the awesome program! Question: can your program pulse the DTR line or whatever on the FTDI chip right before it uploads? the reason is, due to the location of the arduino (deep inside my engine bay) it is A LOT of work to get the arduino to reset. I believe the arduino IDE pulses this line before, and after the upload. It would be AWESOME if you can do that… and if you do, please email me a donation link so i can show my appreciation :)

    fwiw, I am also interested in the mega 2560 beta, as i’m about to start using those now that the mega1280 is not available :)

  33. Vishwa
    March 6th, 2012 at 20:15 | #33

    coooooooooooooooooooooool man

  34. admin
    February 21st, 2012 at 12:10 | #34

    @Evan Richardson
    As of now I don’t want to go open source, maybe in the future.
    Yes it’s using avrdude it also helps you reset the Arduino and make life a little easier, then using Avrdude.

  35. February 18th, 2012 at 09:21 | #35

    any chance of getting the source posted? I’ve been looking to integrate “firmware” updating in a dot.net app I wrote to control my arduino project, while I’m pretty sure your app is just feeding command line args to avrdude, would like to be able to confirm what they are. If not I understand. Thanks, and nice clean UI!

  36. Yoav
    February 17th, 2012 at 22:16 | #36

    The solution is to use ‘arduino’ as the programmer when uploading to the Uno and using ‘wiring’ as the programmer when uploading to the Mega.

  37. admin
    February 3rd, 2012 at 20:25 | #37

    @quarters
    It’s in the mail :) Please tell me if it works…

    @d
    No it uploads the same way as the arduino software

  38. quarters
    January 31st, 2012 at 00:48 | #38

    You mentioned a beta version for the Mega 2560. Can you please send me a version? Thanks!

  39. d
    January 30th, 2012 at 19:02 | #39

    it does not overide the bootloader right?

  40. admin
    January 9th, 2012 at 17:06 | #40

    I think I know what the problem is. If you would like to be a beta tester on this, give me your contact information and I’ll send you a test version.

  41. proudy
    January 9th, 2012 at 06:06 | #41

    I tried Mega(ATMEGA2560);m2560;115200 but the upload failed. It would be good if it worked. Very handy utility, especially if you dont want to share your source code.

  42. admin
    December 29th, 2011 at 15:19 | #42

    @TK
    You can try this (untested):
    Open devices.txt (same folder as XLoader.exe) and add “Mega(ATMEGA2560);m2560;115200”
    Now you can choose Mega(ATMEGA2560) in the drop down list. Please tell me if it works I’ll add it to the next version.

  43. TK
    December 28th, 2011 at 13:08 | #43

    Hello, does this program also support the Arduino Atmega2560?
    I always recive a upload failed message.

  44. admin
    December 7th, 2011 at 17:59 | #44

    @Mark Windrim
    I haven’t seen this before.. Try re-downloading the tool or check the downloaded file with the GPG-sign I uploaded. Are you sure .Net is installed correctly.

  45. admin
    December 7th, 2011 at 17:57 | #45

    @tuti
    Try changing port in device manger as i said. Also you can’t upload new code without a reset of the board first. Try a google search, this has been done before. Or try programming trough usb then use BT for comm.

  46. Mark Windrim
    December 7th, 2011 at 16:25 | #46

    I cannot get this tool to launch. It immediately crashes – Windows 7 Home Premium. Here’s the error generated:

    Problem signature:
    Problem Event Name: CLR20r3
    Problem Signature 01: xloader.exe
    Problem Signature 02: 1.0.0.0
    Problem Signature 03: 4e8a201d
    Problem Signature 04: System.Windows.Forms
    Problem Signature 05: 4.0.0.0
    Problem Signature 06: 4da404ee
    Problem Signature 07: 233e
    Problem Signature 08: 5d
    Problem Signature 09: System.ArgumentOutOfRange
    OS Version: 6.1.7601.2.1.0.768.3
    Locale ID: 1033
    Additional Information 1: 0a9e
    Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
    Additional Information 3: 0a9e
    Additional Information 4: 0a9e372d3b4ad19135b953a78882e789

  47. tuti
    December 7th, 2011 at 13:02 | #47

    @admin
    I try on arduino software, arduino uploader and yourprogram. I connected tx,rx and power supply only. Should I wire sth else to rst port? I changed port com, for few seconds there is port in arduino settings, but it disapear and make error ‘there is no selected port – change port’.
    Thanks for quick answer, this is very important to me.

  48. admin
    December 7th, 2011 at 10:04 | #48

    @tuti
    Try changing the emulated comport, you can do this in device manager. Are you using Xloader og arduino software to upload??
    PS your arduino needs to be reset before the upload can happen.

  49. tuti
    December 7th, 2011 at 00:29 | #49

    hi,
    i have a huge problem with my arduino. I want to upload program by BT module, but COM port which sends data is always in use by something so I couldnt set this port in arduino software and in uploader :( how to check what uses com port??
    please heeeelp

  50. admin
    October 30th, 2011 at 20:55 | #50

    @BuFu
    Have you tried just adding this to the “devices.txt” file in the Xloader folder. This should make XLoader compatible with your device…

  51. admin
    October 24th, 2011 at 16:14 | #51

    @liudr
    Glad to see you like it, I’ve seen quite an increase in popularity lately. As for the license I should probably include a license in the new revision. As for a quick answer, it’s free to use but please just post a link instead of posting the program.

    @BuFu
    Well I don’t have this board so I can’t test, but if it’s a clone of Arduino Mega it should work. If not please contact me and I’ll look in to it.

  52. BuFu
    October 24th, 2011 at 09:11 | #52

    @BuFu
    yaaaay! after i spent few hours (being a complete noob) i successfully uploaded the hex on my chipkit max32 arduino mega clone… i entered folder where arduino processing software is (mpide.exe) opened hardware/tools/avr then hold shift and right click, press Open Command Window Here and typed:

    avrdude.exe -C ../etc/avrdude.conf -c stk500v2 -P COM3 -p pic32 -b 115200 -U flash:w:”C:\Users\Fr0sty\Desktop\Laser\simen-grbl-74576a8\grbl.hex”:i -v

    succes!

  53. BuFu
    October 23rd, 2011 at 23:22 | #53

    Is there any chance you can make it compatible with chipkit max32 (arduino mega clone)

  54. October 19th, 2011 at 18:45 | #54

    Great tool! I was able to upload to UNO a long program. Highly recommended! There should be a lot of people that want this program on arduino forum. Any recent posts?

    BTW, the about says all rights reserved. So what is the license of the software to its users? Thanks.

  55. Mahmoud Fayez
    October 2nd, 2011 at 04:15 | #55

    Thanks a million that saved me from having to teach students Arduino framework as I want to teach them the assembly and dirty stuff first.

  56. jack
    September 23rd, 2011 at 18:15 | #56

    great program, really nice!!!
    keep up the good work!

  57. admin
    April 18th, 2011 at 14:46 | #57

    Thanks for all the input. I have not had much time for this lately, but I’ll look in to all your comments and make a beta version.

  58. bekir
    March 28th, 2011 at 22:19 | #58

    Hi,
    Thanks for publishing the software, it became very useful to me. Working on Duemilanove (328) without any problem. As an advice you can change the status text (at bottom left corner) while starting to upload. It will be nice while tweaking the code where you need to upload over and over again.
    Regards,
    bekir

  59. Albert
    March 26th, 2011 at 18:22 | #59

    Hello,
    I have a problem. we get a signal 79 after running.
    And, RaiseException in from C:\\WINDOWS\system32\kernel132.dll

    Any idea ?

    Good evening

  60. Andries Pretorius
    March 21st, 2011 at 07:06 | #60

    Uploads to Duemilanove (328) but will not upload to Uno.

  61. Matt
    March 19th, 2011 at 19:19 | #61

    @Matt
    I had to use this to successfully send using AVRDude… I had to take out the baud rate parameter: -F -v -pm328p -cstk500v1 -P\\.\COM3 -D -Uflash:w:”C:myfile.hex”:i

  62. Matt
    March 19th, 2011 at 17:33 | #62

    I’m just tried with Uno as well, and received Upload Failed. Using the 328 and baud of 115200 as well. Any other ideas?

  63. Milton Vilela
    March 14th, 2011 at 03:43 | #63

    Parabéns pelo software.

  64. February 5th, 2011 at 18:02 | #64

    nice tiny tool, works fine with my chinese duemilanove clone, thanks

  65. admin
    January 24th, 2011 at 22:59 | #65

    I cant see why using Duemilanove/Nano (ATMega328) and baud rate 115200 should not work on UNO. Could you try running cmd and typing avrdude.exe to check what version you have?

  66. January 21st, 2011 at 19:54 | #66

    I am currently testing it with Arduino Uno, but it returns “Upload failed”.

    Using Arduino Uno (ATMega32) with original bootloader, USB cable on port COM10.

    XLoader settings:
    Duemilanove/Nano (ATMega328)
    COM10
    Baud rate 115200, tried also the original 57600 and even 9600 :) ), no luck.

    If you will modify the project and don’t have an Arduino Uno to test it, then I am willing to do it for you.

  67. admin
    January 19th, 2011 at 23:10 | #67

    Yes it should work on UNO. But i dont have one to test on. Are you still having trouble?

  68. January 17th, 2011 at 12:45 | #68

    Hello,
    Thanks for this usefull utility. Is it working with arduino uno?
    I tried it but it freezed and nothing happened.

  69. hellghost
    December 28th, 2010 at 19:47 | #69

    Thank you very much ! and happy year !