==== Cowboy Boot Loader ==== {{:projects:cowboy-bl.jpg?200}} Cowboy boot loader is a boot loader that supports loading firmware on enhanced PIC12/PIC16 microcontrollers via either a hardware or software UART. The loader application has been written for POSIX implementations only. For the UART interface any of a number of serial interfaces may be used which includes bluetooth devices such as the [[interfaces:bt0417c|HC-05]]. === Devices === At this time 208 devices are thought to be supported and here is a list of devices which have been tested during the production of this boot loader. pic12f1572 pic12f1822 pic12f1840 pic12lf1572 pic16f1454 pic16f1455 pic16f1459 pic16f1507 pic16f1516 pic16f15355 pic16f1578 pic16f1708 pic16f1764 pic16f1776 pic16f1788 pic16f1825 pic16f18313 pic16f18346 pic16f1847 pic16f18875 pic16f1936 pic16lf1559 pic16lf1566 pic16lf1716 pic16lf18313 The pic16f1507 only supports software UART. === Licence === Cowboy Boot Loader is licensed under the GPL version 3. === Credits and Thanks === Cowboy Boot Loader has been developed by Darron M Broad and is a port of [[:projects:wellington|Wellington]] boot loader developed by Darron M Broad with contributions from Gerhard Bertelsmann. I am grateful to Chiculita Claudiu for Tiny PIC Bootloader as Cowboy Boot Loader uses a protocol derived from Tiny PIC bootloader. === Checkout === Cowboy boot loader is obtained using mercurial. hg clone http://hg.kewl.org/pub/cowboy cd cowboy === Configure === Configuring Cowboy is a simple case of copying a template file for the target device and editing it to suit the target application. cd boot cp template.asm myproject.asm vi myproject.asm Follow the guide given in the template to create the correct boot loader firmware for your target then build the boot loader. [[:tools:gputils|GPUtils]] must be installed to perform this operation. make === Program === Now you must program the boot loader onto the target device. This will depend on the programming tool you have available and in this example we use [[:projects:pickle|Pickle Microchip PIC ICSP]]. p14 lvp program myproject.hex Once the boot loader hex file is on the target it may be reset whereupon it will listen for a connection from `easy-loader' already installed on the host platform. === Upload === In this final step you now take the application for your target device and upload it to the boot loader which will store it in flash memory. This process is documented on the [[:projects:easyloader:|Easy-loader]] page.