Custom PCB Based on Leonardo/ProMicro Bootloader

Hi community, I have a few questions about a custom PCB I'm designing. It has the ATMega32U4 MCU onboard and I had planned on purchasing chips pre-loaded with the Leonardo bootloader to avoid the need for ICSP pins on my PCB, to save board real estate.


I'm actually using the ProMicro bootloader in development. Are the pin assignments the same as the Leonardo?

If not, then I need to program the ProMicro bootloader in. Can this be done via USB alone? I also want to eventually set the appropriate fuses later so the user code cannot be over-written.

For these reasons, must I provide ICSP connections in my design or can the tasks above be achived solely over USB? As stated I am just trying to reserve PCB space. But if ICSP is absolutely a must then I'll find a way.

Any advice much appreciated !

You need to include ICSP pins in your design so you can load the bootloader you want, and not rely on somebody loading the wrong bootloader or bootloader version, and to allow you to reload it if needed and set fuses as needed. It does not need to be in a header arranged specifically for programming, if some of the pins you are making available on the board happen to be the ICSP pins (pins 14, 15, and 16) and the reset pin. Pro Micro is an example of a board designed this way.
You can't use USB for fuse and bootloader programming/reprogramming.
Pro Micro, Micro, DF Robot Beetle, and Leonardo are all the same, just different physical sizes and some of the pins are not made available on the headers on some of the boards. But numbering and pin functions are the same.