To get the AVR bootloader, run make in the bootloader directory. This will produce yasab.hex to flash on your AVR. Change the target and other options in the makefile.
To get the upload utility, run the following commands in the uploader directory:
./configure make install
To install it into /usr/local/bin/
You need a Toolchain for your Hostmachine and for AVRs. Change configuration options for the AVR firmware in the makefile in "bootloader".
This AVR Bootloader just gets data from the included uploader. This will be flashed and started. Currently supported & tested AVR MCUs:
ATmega32 ATmega2560
It is using my avrSerial Library for UART communications.
On devices with more than one UART module, YASAB will listen on all of them.
Running "make" will produce yasab.hex and sample.hex. The first is the real bootloader. The second is a small program to test the bootloader.
Configuration Options like Baudrate, Bootdelay or Clock Frequency can be changed in the makefile.
On the ATmega32, 2022 bytes in Flash are needed. Therefore, set the bootloader section size to 1024 Words. On the ATmega2560, 3864 bytes in Flash are needed. Therefore, set the bootloader section size to 2048 Words. In either way, adjust BOOTSTART in the Makefile!
This is a small utility to upload hex files to YASAB. The optional parameter, q, can be a character that is sent to reset the target.
Usage: uploader /dev/port /path/to.hex [q]
I've also written a YASAB Uploader implementation in Java for Android. It is used in my xyCopter Remote Control App.
38400, 8N1, XON-XOFF will be used for data transmission.
Computer | AVR |
---|---|
Repeat any character | |
Respond with 'o' | |
Send 'c' | |
Respond with 'a' | |
Send 32bit target address (MSB first) | |
Respond with 'o' or 'e' | |
Send 32bit data length (MSB first) | |
Respond with 'o' or 'e' | |
Send data... | |
In between 'e' or 'o' for abort or okay |
YASAB is released under a BSD 2-Clause License. See the accompanying COPYING file.