I recently tore apart my cheap 3D printer to put on acme leadscrews and figured it was a good time to try upgrading the stock firmware to Marlin.
First grab this ANET board definition: https://github.com/SkyNet3D/anet-board
Install the board definition per your OS default. You should now see ANET 1.0 (Optiboot) in your Arduino Tools > Board menu
Clone the Marlin repo: https://github.com/MarlinFirmware/Marlin
You’ll also need https://github.com/MarlinFirmware/Configurations
Copy the Configuration.h and Configuration_adv.h files from the Configurations > config > examples > Anet directory into the Marlin firmware repo.
The first issue I ran into was that I had to rollback my AVR Boards version. In the Boards Manager, I rolled back from 1.8.3 to 1.6.23. With version 1.8.3 I ran into errors while compiling.
Much to my chagrin I quickly realized, I couldn’t upload. No idea if the bootloader is supposed to be present, but on my cheap ANET clone V1-5 it wasn’t.
Don’t try solding the 6 pin connector labeled USB BLE. It’s not a programming header!
Follow these instructions to get the correct pinout for J3
Here are some other useful instructions on using another Arduino as an ISP. One other thing a lot of people mention is a 10u capacitor on the reset line, but I didn’t find that was necessary.