Micro Boot - HTTP Bootloader for ATmega328 (Updated)

Hello everyone,

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.

GitHub Link
GitLab Link

Thanks for replies,
Ercan

ercanersoy:
Hello everyone,

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.

GitHub Link
GitLab Link

Thanks for replies,
Ercan

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.

Thanks for sharing ercanersoy! It sounds interesting.

The GitHub link also goes to Gitlab. Here's the GitHub link:
https://github.com/ercanersoy/Micro-Boot

Thanks, I have updated this link.

Looks interesting. Do you want critique, or are you just publishing this to be helpful, as-is?

westfw:
Looks interesting. Do you want critique, or are you just publishing this to be helpful, as-is?

Yes, you can critique and/or contribute Micro Boot.

you can critique and/or contribute Micro Boot.

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.

Thanks for replies, I'm consider these issues.

I have updated and expanded documentation.