Using the Arduino Uno code for reprogramming.
The code originally came from this web site http://elm-chan.org/works/avrx/report_e.html The command line options have been replaced with a menu system. The purpose of the menu system is solely to program the Arduino enough to get the SPI serial interface to work. Once you have done that you can then use other software to finish off programming your Arduino.
Here is a sample of what the r serial read fuses option outputs:
x return to main menu, any other repeat read fuses.r serial read fuses1 parallel write low fuse2 parallel write high fuse3 parallel write low fuse, pp9 BS2 12 volt control4 parallel write high fuse, pp9 BS2 12 volt control5 switch power off on loop6 BS2SerialReadFuses9 Bit 7, 6 loop teste Erase BS2ParallelErasea BS2ReadLowFuseb BS2E2LowFuse Parallel Set low fuse to value e2 for internal clocks serial programmingp parallel programmingx exit programMyProgammingEnableStatus 00 00 53 00Read signature bytesExpect 0x1e 0x95 0x14 for ATmega328Expect 0x1e 0x95 0x0f for ATmega328PUsing 30 00 addr 00 formatStatus 00 30 00 1EStatus 00 30 00 95Status 00 30 00 0FStatus 00 30 00 FFRead fuse bits 0x50,0x00,0,0Status 00 50 00 FFRead fuse high bits 0x58,0x08,0,0Status 00 58 08 DERead extended fuse bits 0x50,0x08,0,0Status 00 50 08 FDRead calibration byte 0x38,0x00,0,0Status 00 38 00 94Read lock bits 0x58,0x00,0,0Status 00 58 00 CFx return to main menu, any other repeat read fuses.
You will need to solder a wire on to the XTAL1 track. This can be done by soldering on to the bottom connector of the crystal. It is best to use a wire with a connector pin on the end. That way you can connect and disconnect from the wire from resistor pad 6. With a pin on the end of the wire from resistor pad 6 you can use a breadboard to make the connection. When you are programming in parallel mode XTAL1 must be connected to resistor pad 6. When you are using the serial methods the wire must be disconnected. The exception to this might be if your Arduino is programed to use it's internal clock.
Wire soldered on to XTAL1 track.
The code is supplied in Microsoft Visual Studio 6 format. That's a very old version which most people are not likely to have. The program is already compiled and is in the avrpp-xp\Release folder. It is called avrpp.exe. You can double click that to run it and it will run in a cmd prompt window. You can then choose an option to run from the program menu.
The code is downloadable as a .zip file avrpp-xp.zip from here https://steve54798.wixsite.com/filecab/code
To allow direct access to the printer port on your PC in Windows XP you must have the 3rd party giveio.sys file either in the same folder as the avrpp.exe program or some where in the Windows path. C:\windows\system32 is a good place to put it. The giveio.sys file can be downloaded in the .zip file here https://steve54798.wixsite.com/filecab/code
The owner of this web site accepts no responsibilty for any loss or damage you might incur using the information or code on this web page. You use it entirely at your own risk.
The information and code on this web page may and most likely contains errors.
Last updated 05 Septembe 2024.