Tiny AVR/PIC Bootloader+

Hardware Connections:


"Tiny PIC Bootloader +" is only able to transfert data to the PIC devives via a serial connection (it's called UART (or USART) on a microcontroller and, in the past, it was called RS232 on a PC).


Before you can use the bootloader with your PIC, you must transfert the corresponding bootloader firmware in the PIC device with an external programmer (i.e. ICD2, Pickit 3, etc...). This must be done only once.
If the specific bootloader firmware for your PIC is not included in the "Tiny PIC Bootloader +" archive or you want to use a different Baud Rate and/or UART port, you must read  "[Firmwares:] modify for PICxx" page to adapt an approching one.

How to get serial data from the computer?

They are several possibilities:

You have an RS232 port on your computeur:

The simpliest way is to use a MAX232 level converter:
Here is a schematic and a board you can use:

Download the EagleCAD project (PDF files included).

Or you can use this "Auto Powered RS232" board:

You only have USB ports on your computeur:

  • You can use a simple USB to RS232 cable adapter with the boards given above.
  • Or, here is a schematic and a board (based on a FT232R chip) you can use:

Download the EagleCAD project (PDF files included).

How to connect to the PIC?


  • RX pin from PC -> TX pin on PIC.
  • TX pin from PC -> RX pin on PIC.
  • GND pin from PC -> VSS pin on PIC.
With MAX232:
  • RS232 board must be powered by VCC (VDD) from the PIC board.
With "Auto Powered RS232" board:
  • VCC from the "Auto Powered RS232" board can be connected to VCC (VDD) from the PIC board.
With USB to RS232 adapter/card:
  • VUSB can can be connected to VCC (VDD) from the PIC board. If it's already powered by an other source, there is no need to connect VUSB to the PIC board.
Optional (exept for "Auto Powered RS232" board as it is alway in software reset mode):
  • !RTS pin from PC -> !MCLR pin on PIC. Whis this connection, "Tiny PIC Bootloader +" PC software can reset automaticaly the PIC to put it in the "wait for bootload state" (software reset).


Here is an example with a PIC16F876A connected to the PC via a MAX232.
But it will be very similar with an other PIC or with an USB to RS232 adapter/card.

Note about D1 diode: it seems that PIC devices dislike to be directly pull to VCC.
With this diode, when !RTS is set to 5V then !MCLR is set to 5V via R1. And when RTS is set to GND then D1 diode permits !MCLR to be put to GND.
Nevertheless, it could work with !RTS directly attached to !MCLR.

Software Reset on a PIC without !MCLR pin (and without "Auto Powered RS232" board):

WARNING: this solution hasn't been tested!