Bootloader Compiling /Uploading - Anyone Care to Know How? Also Pro Micro Up Fix

Hi all, from looking at all the postings and doing lots of Google searches, I can see that no one knows how to, from start to finish, compile and load a custom bootloader, with the exception of the guys that have actually done it for manufacturing, and a couple of losers that have made some forum posts about it but never documented the process. The guys that have done it for manufacturing suck more though for not documenting the process whatsoever. There needs to be a fun derogatory nickname for people out there that are afraid to share what they know either because of job security, they need to feel like they have knowledge that someone else does, they need to feel that they're better than other people, etc, etc. I see these people all over technical forums on the Internet.

Now that I got that gripe out of the way..
I just spent the last few days dealing with SparkFun’s crappy customized bootloader for the Pro Micro. The supposed 750ms / 8 second delay switching implementation sucks and doesn’t work when your system needs the 8 seconds / plenty of time to allow for detection of the bootloader. You can see lots of posts on SparkFun's own forums with people having all sorts of upload issues with the Pro Micro. I ended up recompiling the bootloader using the standard Arduino Caterina.c file along with a modified SparkFun makefile. Now my 8MHz Pro Micro works just like the Leonardo. I don’t have the 1200 baud bootloader trigger capability, but at least I can upload sketches, and have plenty of time!

Is anyone interested in knowing the complete process involved in compiling and uploading a bootloader from Windows (from all the programs you need to install, path variables to set, options to set in the Makefile, command lines to run, etc., etc.?) If there's no interest, then I won't waste my time.

For the sake of others with Pro Micro issues, I've attached the bootloader I compiled that behaves like the Leonardo except for 8MHz. I don't have any 16MHz Pro Micro's (yet - they're on order), so I'm not posting a version compiled for 16MHz until I've tested it out.

As a side note, does anyone know how to enter the bootloader from a sketch?

Caterina-Leonardo8MHz3.3.zip (4.38 KB)

Also, here is another Pro Micro 8MHz bootloader except it will wait about 20 seconds for you to be able to upload code!

Caterina-Leonardo8MHz16s.zip (4.39 KB)

could you please post the steps to flash the 8MHz Leonardo bootloader (that you have listed) to my 32U4, 8 MHz board. I need a Leonardo clone. Thanks

If you have suggested improvements for the Optiboot bootloader (which is gradually getting better documentation in its wiki: Home · Optiboot/optiboot Wiki · GitHub ), please create github issues and/or send modified wiki text...

Alas, documentation for the bootloaders is a moving target; they aren't even always compiled with the same version of the compiler that the IDE is using (and sometime WON'T) And there are at least 4 different bootloaders, depending on which board you have.

CircuitSerialKiller:
Is anyone interested in knowing the complete process involved in compiling and uploading a bootloader from Windows (from all the programs you need to install, path variables to set, options to set in the Makefile, command lines to run, etc., etc.?) If there's no interest, then I won't waste my time.

For the sake of others with Pro Micro issues, I've attached the bootloader I compiled that behaves like the Leonardo except for 8MHz. I don't have any 16MHz Pro Micro's (yet - they're on order), so I'm not posting a version compiled for 16MHz until I've tested it out.

Yes, i have been trying to figure out this process down for hours and I still don't even think I'm close yet!

CircuitSerialKiller:
As a side note, does anyone know how to enter the bootloader from a sketch?

There is a working way to do it by connecting a hardware pin to the reset pin, but it's inconsistent. I am going to try another circuit with a transistor to see if I can get it reliable.

Another way I almost have working, is with the watchdog. The problem is that watchdog resets skip the bootloader, and i'm trying to upload a sketch remotely. I have altered the boot-loader via someone else's suggestion, but I can't test it without compiling the bootloader.