SparkFun will be closed for Labor Day (9/7/2015). Orders will resume shipping out on Sept 8th. Have a great weekend!
We've had a pretty good response to our boot loader Bloader and windows program Screamer. You will find the latest info on this page for these two programs.
Download the latest combo version : BloaderScreamer-v1.4.
See below for Screamer v1.6
Bloader now supports:
16F877A (20 and 4MHz), 16F876A (20 and 4MHz), 16F873A (20 and 4MHz), and 16F88 (20/4MHz external, 8MHz internal)
If you are new to PICs or microcontrollers in general, I highly recommend starting with the 16F88 with this boot loader installed. You will quickly get a taste for all the great features that Microchip is putting into their new PICs.
Here are links to the old tutorials. Read over them to get a sense of what a boot loader is and how it works. It should answer plenty of questions as well:
If you have questions or comments, please use the SFE Support Forum.
Mike K has designed a much improved interface and was nice enough to share! Download Screamer v1.6 here. Now there is no need to switch back and forth between your terminal program - it's built in!
Nice! -Thanks Mike!!
What's a boot loader?
A boot loader is a little program running on a PIC that takes incoming input and records the incoming data into the program area of the PIC's memory. In other words, we send the PIC a serial signal of 1s and 0s and the PIC records these into the program memory.
The purpose of a boot loader is to load programs onto a microcontroller over a serial line without the need of a high voltage or otherwise hardware orientated programmer. What this means to you is that you will now be able to load programs much faster and much easier onto PICs then you ever dreamed of.
Bloader is the program that resides on the PIC. Screamer is the windows program that parses the HEX program file. The two work in unison to make for very fast downloads. 8K can be downloaded in under 9 seconds.
What chips does Bloader work with?
Bloader works because a select set of PIC Microcontrollers have the ability to change their program space via software. In other words, you can tell the PIC to re-program itself. Currently the only PICs that can do this are:
The 16F819 is troublesome because it does not have an onboard UART so all serial routines must be done in software. This is more difficult to setup and takes more code words. The 16F819 is also limited to 2K of code words, with 300 of these words (%15) taken up by the boot loader - a sizeable chunk.
The 16F88 is a wonderful PIC! With 4K of space and nano-watt power control features, it is my highest recommendation for beginning users. Bloader can even be instituted on a 16F88 using the internal 8MHz variable oscillator!
The 16F87x family is old and is being phased out. Go with the cheaper and improved 'A' revision.
The 16F87xA family have been proven over years of applications and embedded products. Bloader has currently been written for the 873A, 876A, and the 877A.
The 18F family also has the ability for a boot loader but we haven't had the time or reason (yet) to implement Bloader on this range of PICs.
How to get Bloader and Screamer to work:
Things you should know:
Once you've loaded Bloader onto your PIC, it will run it's default program and transmit 'Ok' at 9600bps as well as blink all pins on all ports at roughly 1Hz. This way you can tell if your PIC is powered correctly and is running, and if you've got the serial interface wired correctly.
You must have all your programs start at memory location 0x0004. This allows a boot vector to sit in spots 0x00-0x02 and the user's jump vector to sit at 0x03. Interrupt vectors are still allowed and operate without problems from 0x0004. Read Code Bumping for more information about inserting the necessary commands into your compiler.
There is always a very small chance that Bloader will bit the dust in the event of some unknown and unforeseeable error. Keep your hardware programmer around in case you need to re-load Bloader.
Bloader will turn off the UART (CREN = 0 and TXEN = 0) upon exiting the boot loader program. If you program uses the UART, you will need to re-initialize the UART with your own settings.
Bloader can only update the program space. There is no way to change the configuration word without an external hardware programmer. The Oscillator setting, the Watch Dog Timer, and code protection bits are all set when Bloader is installed onto a PIC and cannot be changed during a boot load. They must be changed by re-programming the PIC. Keep this in mind.
Debugging abilities of the PIC are turned off. If you're using a debugger like the ICD2, don't even try to use Bloader as well - it'll just get too hairy. Who needs a hardware debugger anyways when you can try a new program within a second or so?
That's it! Have fun!
All information is free for instructional purposes! If you use any of this information, or find any of it useful - please let us know! We don't limit the use any of our code, but it's always nice to hear when it does get used. If you really like using our boot loader, please consider buying some parts or hardware from our store at www.sparkfun.com. You may not use any part of this information for commercial deployments without permission.