HVProg using ATmega8535 microcontroller

  • Compatible with AvrStudio
  • Supports all AVR Controllers
  • Parallel and serial High-Voltage-Programming
  • Small and easy layout with only a few parts
  • STK500 protocol
  • Schematics and board layout available



The project started as an enhancement of Martin Thomas  Evertool project. He has rebuilt the AVRISP and JTAG adapter with only a few parts. Unfortunately they both don’t support high-voltage programming modes – the only possibility to ‘rescue’ AVR controllers when you e.g. disabled the reset or SPI fuses. The only widely available possibility was the STK500 from ATMEL.
HVProg is a redesign of the original STK500 without all components of a development board. It is based on the original ATMEL schematics that are freely available on the net (e.g. at avrfreaks.net). The main target was to keep all nessecary functionality to programm all available AVR controllers in every programming mode that the STK500 supports.
If you look for a development board for ATMEL AVR controllers you better buy the original STK500. If you only need an ISP programming adapter the AVRISP included in Evertool is better suited for you!
Please consider:

  • HVProg can’t replace a real development board and will never do
  • No ESD protoction
  • HVProg in the Basic-Version needs a stabilized 12V and 5V input voltage
  • For one step a working programmer is needed (AvrProg compatible prefered, see software section)
  • HVProg has only been tested in 5V environments

There are two versions of the project available:

  • The Basic-Version has seperate connectors for the different programming modes and is only available as schematic. It needs a stabilized 5V and 12V input voltage and is supposed to be used for own board development. This version will not be updated except to the correction of errors.
  • The Advanced-Version is available as schematic and board layout. Adapter boards for HV-Programming will be ready soon and a good tutorial how to build a case for HVProg is linked. This version needs an unstabilized input voltage of at least 15V (AC or DC).


Programming interfaces


  • 6 Pin ISP
  • 10 Pin ISP
  • Serial-High-Voltage Programming (no standard connector)
  • Parallel-High-Voltage Programming (STK500 compatible control und data connectors and one connector with other needed signals)


  • 6 pin ISP
  • 20 pin connector for ISP, parallel and serial high-voltage programming



  • 03.10.2004 -> First version released (V0.2)
  • 05.10.2004 -> Schematics as eagle file released
  • 06.11.2004 -> Version 0.3 with less parts
  • 24.04.2005 -> Completely updated site with lots of new infos
  • 29.09.2005 -> Programming problem solved. See Software-Section



The schematics, boards and every other available information on this site are freely available for noncommercial use only. I am not responsible if anything get damaged by my circuits or by false information provided or any other reason. I am also not responsible for linked content. These sites are property of their owners.


Basic-Version (v0.3)

  • Schematic (Eagle-Format, Freeware 4.11):   Download
  • Schematic as gif-file (~400kb):   Download
  • Part list as txt:   Download

Advanced version (v0.5)

Connector details

  • ISP: The connector is compatible with the ATMEL standard (see STK500 User Guide  page 51)
  • HV-Seriel: (For exact pinning check the appropriate controller datasheet. Section Memory Programming/High Voltage Serial Programming)
    Pin name uC pin
    TRST Reset (High Voltage Enable Jumper must be set)
    PPD0 ‘Serial Data Input’ (usually PB0)
    PPD1 ‘Serial Instr. Input’ (usually PB1)
    PPD2 ‘Serial Data Output’ (usually PB2)
  • HV-Parallel: For special connections check STK500 User Guide (Table 3-3 page 21, look for BSEL2 and PJUMP)
    Pin name uC pin
    VCC target supply voltage uC
    GND ground
    TRST Reset (High Voltage Enable Jumper must be set)
    PPC0 If BSEL2 then connect to PortA.0 otherwise not needed
    PPC1 PortD.1: Rdy/Bsy
    PPC2 PortD.2: OE
    PPC3 PortD.3: WR
    PPC4 PortD.4: BS1
    PPC5 PortD.5: XA0
    PPC6 PortD.6: XA1
    PPC7 PortD.7: PAGEL
    PPD0 PortB.0
    PPD1 PortB.1
    PPD2 PortB.2
    PPD3 PortB.3
    PPD4 PortB.4
    PPD5/MOSI PortB.5
    PPD6/MISO PortB.6; if PJUMP connect it to PortC.0
    PPD7/SCK PortB.7; if PJUMP connect it to PortC.1
  • External clock to reanimate controllers with wrong clock settings (fuses) is available SWCLK. The external clock has to be connected to XTAL1 and can be adjusted up to 3,69MHz with the STK500 plugin in AvrStudio.

For more detail: HVProg using ATmega8535 microcontroller

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:

Leave a Comment

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

Scroll to Top