Support #950
Updated by Daniel Curtis over 4 years ago
{{>toc}} This is a guide in setting up an Arduino Uno on Arch Linux to flash the Marlin 3D printer firmware on an Ender 3. h2. Install Bootloader h3. Setup Environment * Open the Arduino IDE on your computer. * Go to +File -> Examples -> ArduinoISP+ and select *Arduino ISP* and open it up. * Go to +Tools -> Manage libraries+ and install the *U8glib* Library. !>https://project.altservice.com/attachments/download/273/pinout-thumb.webp! h3. Install Sanguino: * Go to +File -> Preferences+ * In the _Additional Boards Manager URLs_ field, add https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json * Click the *OK* button. * Go to +Tools -> Board -> Boards Manager+ * Click *Install* on _Sanguino by Kristian Sloth Lauszus_ h3. Flash ArduinoISP * Plug in Arduino Uno * Go to +Tools -> Board -> AVR Boards+ and select *Arduino Uno* as the board * Go to +Tools -> Board -> Port+ and select */dev/ttyACM0* (or appropriate port) * Click *Upload* h3. Flash Bootloader |_. Ender |_. Arduino | |MISO|Pin 12| |5V|5V| |SCK|Pin 13| |MOSI|Pin 11| |RESET|Pin 10| |GND|GND| * Change directory to the following path: <pre> cd ~/.arduino15/packages/Sanguino/hardware/avr/1.0.3/bootloaders/optiboot </pre> !>https://project.altservice.com/attachments/download/272/uno-thumb.webp! * Edit the Makefile.isp file: <pre> nano Makefile.isp </pre> #* And modify the following lines, adding the *-F* flag: <pre> # Set fuses and unlock memory ISPFUSES = $(AVRDUDE_ROOT)avrdude $(AVRDUDE_CONF) -c $(ISPTOOL) -F \ -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ -e -u -U lock:w:0x3f:m $(EFUSE_CMD) \ -U hfuse:w:0x$(HFUSE):m -U lfuse:w:0x$(LFUSE):m # program flash and lock memory. ISPFLASH = $(AVRDUDE_ROOT)avrdude $(AVRDUDE_CONF) -c $(ISPTOOL) -F \ -p $(MCU_TARGET) -P $(ISPPORT) $(ISPSPEED) \ -U flash:w:$(PROGRAM)_$(TARGET).hex -U lock:w:0x2f:m </pre> * Flash the 16MHz ATmega1284 bootloader: <pre> make atmega1284p_isp ISPPORT=/dev/ttyACM0 </pre> *WARNING*: The following method is obsolete and flashing the bootloader must be done manually. * -Select *Sanguino* board from +Tools -> Board -> Sanguino-avr+.- * -Open the Ender 3’s control box and connect it to the Arduino as follows:- -*NOTE*: If a blue light flashes on the Creality board then it is wired correctly- * -Click *Burn Bootloader* from the +Tools+ menu; success will show ‘Output bootloader burned successfully’.- * -Disconnect the wires and reassemble the Ender 3.- * -Unplug the Arduino from the computer.- --- h2. Install Marlin Firmware * Download and extract the latest version of Marlin firmware: <pre> mkdir marlin && cd marlin wget https://github.com/MarlinFirmware/Marlin/archive/2.0.x.zip unzip 2.0.x.zip </pre> * Download and extract the example configurations folder: <pre> wget https://github.com/MarlinFirmware/Configurations/archive/release-2.0.7.2.zip unzip release-2.0.7.2.zip </pre> * Copy the Ender 3 example configurations to the Marlin folder: <pre> cp Configurations-release-2.0.7.2/config/examples/Creality/Ender-3/CrealityV1/* Marlin-2.0.x/ </pre> * In the Arduino IDE go to +File -> Open+ and navigate to _marlin/Marlin-2.0.x/Marlin_ and open *marlin.ino*. * Select the *Configuration.h* file and modify the following lines accordingly: line: <pre> #ifndef MOTHERBOARD #define MOTHERBOARD BOARD_MELZI_CREALITY #endif BOARD_SANGUINOLOLU_12 // #define TEMP_SENSOR_0 1 MOTHERBOARD BOARD_RAMPS_14_EFB #define TEMP_SENSOR_BED 1 #define DEFAULT_Kp 20.84 #define DEFAULT_Ki 1.96 #define DEFAULT_Kd 55.47 #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 } #define DEFAULT_MAX_FEEDRATE { 500, 500, 5, 25 } #define DEFAULT_ZJERK 0.4 #define INVERT_X_DIR true #define INVERT_Y_DIR true #define INVERT_Z_DIR false #define EEPROM_SETTINGS #if ENABLED(EEPROM_SETTINGS) #define EEPROM_AUTO_INIT #endif #define CR10_STOCKDISPLAY </pre> * Select *Sanguino* from +Tools -> Board -> Sanguino-avr+. * Select *ATmega1284 or ATmega1284P (16MHz)* from +Tools -> Processor+. * Select */dev/ttyUSB0* from +Tools -> Port+. * Click the *Upload* button. * Unplug the printer from the computer and plug it into the power socket. Be aware the printer may take longer to boot up than usual. h2. Resources * https://marlinfw.org/docs/basics/install_arduino.html * https://github.com/MarlinFirmware/Marlin * https://github.com/Lauszus/sanguino/ * https://all3dp.com/2/ender-3-with-marlin-how-to-install-marlin-firmware-on-your-ender-3/ * https://forum.arduino.cc/index.php?topic=625108.0 * https://forum.arduino.cc/index.php?topic=621502.0