http://www.instructables.com/id/How-to-upload-sketches-to-Pro-MicroLeonardo-via-se/

Assortment of Optiboot bootloaders for 16MHz ATmega32U4-based Arduinos,
such as Leonardo and Pro Micro 

optiboot_atmega32u4_115200_B0dataflash.hex
optiboot_atmega32u4_115200_B0startflash.hex
optiboot_atmega32u4_115200_C7dataflash.hex
optiboot_atmega32u4_115200_C7startflash.hex
optiboot_atmega32u4_115200_noLED.hex
optiboot_atmega32u4_57600_B0dataflash.hex
optiboot_atmega32u4_57600_B0startflash.hex
optiboot_atmega32u4_57600_C7dataflash.hex
optiboot_atmega32u4_57600_C7startflash.hex
optiboot_atmega32u4_57600_noLED.hex

115200     = 115200 baud rate
57600      = 57600 baud rate
BO         = pin 17 RXLED
C7         = pin 13 LED
dataflash  = flashes the LED upon bootloader startup at reset 
                and also during upload of a sketch
startflash = flashes the LED upon bootloader startup at reset
noLED      = does not flash LED

Example boards.txt entry:
atmega32u4o57L.name=Optiboot ATmega32u4 Leonardo 57600 baud
atmega32u4o57L.build.board=AVR_LEONARDO
atmega32u4o57L.build.vid=0x2341
atmega32u4o57L.build.pid=0x8036
atmega32u4o57L.upload.tool=arduino:avrdude
atmega32u4o57L.upload.protocol=arduino
atmega32u4o57L.upload.maximum_size=32256
atmega32u4o57L.upload.speed=57600
atmega32u4o57L.upload.disable_flushing=false
atmega32u4o57L.upload.use_1200bps_touch=false
atmega32u4o57L.upload.wait_for_upload_port=false
atmega32u4o57L.bootloader.tool=arduino:avrdude
atmega32u4o57L.bootloader.low_fuses=0xff
atmega32u4o57L.bootloader.high_fuses=0xde
atmega32u4o57L.bootloader.extended_fuses=0xcb
atmega32u4o57L.bootloader.file=optiboot_atmega32u4.hex
atmega32u4o57L.bootloader.unlock_bits=0x3F
atmega32u4o57L.bootloader.lock_bits=0x0F
atmega32u4o57L.build.mcu=atmega32u4
atmega32u4o57L.build.f_cpu=16000000L
atmega32u4o57L.build.usb_product="Arduino Leonardo"
atmega32u4o57L.build.core=arduino:arduino
atmega32u4o57L.build.variant=arduino:leonardo
atmega32u4o57L.build.extra_flags={build.usb_flags}

Note: use Serial1 instead of Serial to interact with PC via Serial Monitor
via the FTDI adapter.  

Connection of FTDI-like adapter for programming:
FTDI connection to          Arduino
RX   ---------------------- TX
TX   ---------------------- RX
DTR  -- 0.1uF capacitor  -- Reset
GND  ---------------------- GND
VCC  ---------------------- VCC

Connection of HC-05 Bluetooth module for programming:
HC-05 connection to          Arduino
RX    -- voltage divider --- TX 
TX    ---------------------- RX
State -- 0.1uF capacitor  -- Reset
GND   ---------------------- GND
VCC  Connect power as appropriate for HC-05
Notes: Send TX signal from Arduino through voltage divider to achieve 3V3 
logic level to feed RX pin of HC-05.  Program HC-05 State pin to behave 
as DTR with AT command:  at+polar=1,0



