to compile a tiny bootloader


on ubuntu (or wsl)

sudo apt-get install avr-libc gcc-avr
git clone
cd TinyAudioBoot
cd TinyAudioBoot
#build the hex
#flash the hex
make upload

we are piggy backing on a windows successful bootloader upload to grab the right fuses everything.
just need to adapt

  • serial port (if changed from the windows upload sequence.
  • full path to HEX file (TinyFlexiAudioBoot_PB0.hex) you got from the make/linux build.

if you first had it running from arduino just changing the serial and hex file should have this running from cmd anywhere in your system.

#fuses burn
C:\Users\Admin\AppData\Local\Arduino15\packages\8BitMixtape\hardware\avr\0.0.28/tools/avrdude/windows/avrdude -cstk500v1 -B4 -PCOM8 -b19200 -pattiny85 -CC:\Users\Admin\AppData\Local\Arduino15\packages\8BitMixtape\hardware\avr\0.0.28/tools/avrdude/windows/avrdude.conf -Ulfuse:w:0xE1:m -Uefuse:w:0xFE:m -Uhfuse:w:0xDD:m 

#burn the bootloader
C:\Users\Admin\AppData\Local\Arduino15\packages\8BitMixtape\hardware\avr\0.0.28/tools/avrdude/windows/avrdude -cstk500v1 -B4 -PCOM8 -b19200 -b19200 -pattiny85 -CC:\Users\Admin\AppData\Local\Arduino15\packages\8BitMixtape\hardware\avr\0.0.28/tools/avrdude/windows/avrdude.conf -Uflash:w:C:\DEV\GitHub\FlexiATiny85-AudioBoot\code\bootloader\TinyFlexiAudioBoot_PB0.hex:i 


was asked to compile the TinyAudioBoot bootloader.

i couldn't get budi's TinyAudioBoot/bootloaderbuild to work, must be a typo of mine.
yes, recreate the symbolic link for bootloaderbuild/main.cpp

ln -s /where/is/repo/TinyAudioBoot/TinyAudioBoot/TinyAudioBoot.c main.cpp

so decided to make an automated build system that will pull (most) needed dependencies and compile.

here is the working repo, ill submit when its done.

the current dependencies are

  • arduino software - this you'll have to install yourself. and supply the path to the Makefile. there are instructions below.
  • Arduino-Makefile - an external build system for arduino (see also arduino-cli)

os support

for the following i used ubuntu on windows.
so get into ubuntu, TLDR: use vscode and click the bottom left green button.
this will work also on linux native
budi's bootloaderbuild was tested on mac, so try that.

install arduino

TLDR, or see setup script in git folder.
to install it inside the project folder.

tar -xf arduino-1.8.13-linux64.tar.xz
#just renaming the thing
mv arduino-1.8.13-linux64 arduino/
#and moving to our local user bin folder. 
mv arduino-1.8.13-linux64 ~/.local/bin/

if all went well you will have an arduino installed in linux under path ~/local.bin/arduino
if you're on linux desktop you can run


from the arduino directory to get the icons on desktop, we are not interested.

get the project

we will clone the git for tinyaudio and get the two other submodules.

git clone
cd TinyAudioBoot
git update submodules --init
cd TinyAudioBoot
#clean the build folder (bin)
make clean
#build the hex
#flash the hex
make upload

the output has this flags, broken into lines. because its an automated build system it spits out a few double and empty flags.
note the first Capital Letter after a - is part of the avr flag system. and not part of the variable.



-o /mnt/c/dev/TinyAudioBoot/TinyAudioBoot/bin/attinyx5/TinyAudioBoot/core/new.cpp.o