Okay so few months ago I have decided to update Merlin on my Ender 3 Pro - yet another genius idea @ 1 a.m. Of course I've bricked it, but was able to recover it. In this blog I will try to help you if you had similar issue.
Old Ender 3 Pro with PCB Creality3D v.1.1.4 - probably some kind of modified Melzi Board
So I partially bricked my Ender with flashing custom bootloader with -F flag, and I was not able to flash using usb cable with CH340, thus I had to flash whole printer by ISP
avrdude stk500v2_recv() error: timeout
avrdude stk500_recv() error: programmer is not responding
avrdude stk500_getsync() warning: attempt 1 of 10: not in sync: resp=0x00
avrdude: device signature = 0x000000 (retrying)
avrdude: device signature = 0x000000 (retrying)
avrdude: device signature = 0x000000
avrdude main() error: Yikes! Invalid device signature.
avrdude main() error: expected signature for ATmega1284P is 1E 97 05
TRY UNPLUGGING THE LCD - IN MY CASE IT WAS THE GAMECHANGER
I am not sure as I was not able to find the schemes of Ender's Melzi scheme, but there probably is an pin collision with ISP and LCD. Original RepRap's Melzi does not have an LCD (it can be added as add-on)
Clone the Marlin Repo/Download the zip
Copy the configuration with branch matching your branch from Marlin repo!
(optionally) Customize your build as desired, from easy stuff like printer name to custom stuff like custom boot screen, and even autolevel. Keep in mind that you are restricted by Flash size! My build was 99% of ATMega1284P
Flash ArduinoISP to Arduino
(optionally) Flash Bootloader to Ender 3 Pro
This step with flashing boot might be not necessary, as bootloader is required to flash the Ender by USB. In some cases that does not work
In my case "standard" burinng bootloader by Arduino Burn Bootloader did not work, only Nick Gammon's solution, which can be downloaded here
I found this in that post - as CR-10 and Ender's are quite similar, they both have the same - Melzi board. According to that tutorial you simply need to open Atmega_Board_Programmer.ino with Arduino IDE. See Nick Gammon's tutorial for all the steps.
Build the Merlin via Arduino
Flashing the build via avrdude:
/usr/bin/avrdude -C/etc/avrdude.conf \
-v -patmega1284p -b 19200 -cstk500v1 \
-P /dev/ttyACM0 \
# line below will change, use your Arduino path!
-Uflash:w:/tmp/arduino_build_299246/Marlin.ino.hex:i
IMPORTANT!
If you have any issues, check your ISP connection twice!