Optiboot is a bootloader. You can use it to upload your project to a bugone using the serial link instead of the AVR ISP. optiboot consume 512bytes of flash memory. ====== Installation ====== to install optiboot, you need an AVR ISP. Go to the project/optiboot and compile it using make. change the fuse to boot to the bootloader after a reset : avrdude -c usbasp -p atmega168 -V -U efuse:w:0x04:m upload the bootloader using make load. It will erase all the flash space. ====== Usage ====== plug in power and serial link. make an external reset by short circuit pin 3 and 6 of the isp connector. LED1 will blink 3 times. Then you have 8 seconds to upload your code. Use this command : avrdude -c arduino -P /dev/ttyUSB0 -p atmega168 -b 38400 (-V) You can use make sload to load your code in the bugOne, if you already have the bootloader enable. ====== Limitations ====== * you can only read or write flash memory. No fuses or eeprom * you can modify eeprom using a project whose sole purpose is to write a value to eeprom * you can't change the bootloader using the bootloader. You have to use an isp