I have developed HTTP bootloader for ATmega328. I have developed this bootloader for my master thesis. This bootloader uploads to microcontroller via web browser. It needs Wiznet 5100 Ethernet controller. It uploads raw format firmware program.
I have tested on Arduino Uno and Wiznet 5100 Ethernet shield for Arduino.
I have developed HTTP bootloader for ATmega328. I have developed this bootloader for my master thesis. This bootloader uploads to microcontroller via web browser. It needs Wiznet 5100 Ethernet controller. It uploads raw format firmware program.
I have tested on Arduino Uno and Wiznet 5100 Ethernet shield for Arduino.
4kB bootloader
only over HTTP? no serial upload?
does it accept upload from IDE? (after some configuration?) is it compatible with the IDE build in arduinoOTA upload tool? I guess it doesn't propagate the 'network port' for IDE over mdns?
why the folder platforms/megaavr ? Arduino uses the megaavr name for ATmegaAVR-0 series architecture (ATmega4809 Uno WiFi)
4kB bootloader
only over HTTP? no serial upload?
does it accept upload from IDE? (after some configuration?) is it compatible with the IDE build in arduinoOTA upload tool? I guess it doesn't propagate the 'network port' for IDE over mdns?
why the folder platforms/megaavr ? Arduino uses the megaavr name for ATmegaAVR-0 series architecture (ATmega4809 Uno WiFi)
Micro Boot takes up space is under than 4KB.
Micro Boot is able to HTTP upload.
Micro Boot doesn't need an IDE or external tool. Micro Boot needs only web browser.
standard_library seems to consist entirely of functionality that is provided by standard libc functions (atoi, itoa, strstr)
Needs more comments. For some sort of school project, needs A LOT more comments. (unless you have one of those misguided profs who thinks that code should be "self-documenting" to the extent that it doesn't need any comments.) (I guess that there's some sort of paper that goes with this?)
Your strings[] array seems unnecessary - you could just have one big PROGMEM string containing the whole web page:
#define VERSION "Version 123.456"
const char PROGMEM bigtext[] = "this is a sample of a long string\r\n"
"The individual pieces are automatically concatenated\r\n"
" by the compiler, including the version: " VERSION " and other stuff\r\n";
this bootloader could be very useful for Arduinos or AVR boards deployed at the 'end user'. the developer develops a new firmware and sends the bin file to the user. the user needs only very simple instructions to upload over a webpage.