<p>Creality also does provide an installation PDF. The process they propose is twofold and might need different settings on other machines<sup>1</sup>. Spots where I assume you might need to adjust are noted with<sup>A</sup>. Note that <strong>this solution depends on CURA</strong>.</p>

<h2>1. Install the printer as a periphery machine.</h2>

<p>This part is specific for Windows. If you use Linux or a MAC, you will need to use a different setup, but you might get the same results.</p>

<ol>
<li>Turn on the power on the printer and connect it from the MircoUSB to a USB of the computer. This should automatically install the driver. If not, the Driver is on the SD card provided with the Printer<sup>2</sup>. 

<ul>
<li>To manually install <code>windows Key</code> + "<code>MANAGER</code>" and choose <em>Device manager</em>. Find the serial port that shows yellow, Right-click, choose <code>Update driver software &gt; Browse my computer for driver software</code>. Now <code>Browse</code>, find the location of USB driver on the SD card and click <code>Next</code>.</li>
<li>Generally,the serial port(COM) you need update has the biggest number, but can change.</li>
<li>A good idea is to confirm the correct port with a software like <a href="https://www.repetier.com/download-now/" rel="nofollow noreferrer">Repetier Host</a>, with which you can control the printer directly -  if it works, you got the drivers and the port correct. Also, you know the correct Baudrate.</li>
</ul></li>
<li>After the driver installation, launch <a href="https://ultimaker.com/en/products/ultimaker-cura-software" rel="nofollow noreferrer">CURA</a> to do some settings. In <code>File &gt; Preferences</code>:

<ul>
<li>Print Window is "Pronterface UI"<sup>A</sup></li>
</ul></li>
<li>Switch to <code>Machine &gt; Machine Settings</code>:

<ul>
<li>Serial Port: choose the one that just was updated</li>
<li>Baudrate: 115200<sup>A</sup></li>
</ul></li>
</ol>

<h2>2. Upload the .hex file via cura</h2>

<ol>
<li><code>Machine &gt; Install custom Firmware</code></li>
<li>Make sure the printer is connected, then <code>OK</code></li>
<li>find the .hex file on your PC, then confirm.</li>
<li>Wait for the process to finish.</li>
</ol>

<hr>

<p><sup>1 - most likely, you will have to change the baudrate</sup><br>
<sup>2 - This might not be true for all manufacturers, but is for creality. Other manufacturers might have different sources for these.</sup><br>
<sup>A - Adjust as needed!</sup></p>

CC BY-SA 4.0
2018-08-13T19:51:37.393Z
2018-09-14T10:11:21.713Z
2018-09-14T10:11:21.713Z
Trish
<p>A major part of the Arduino IDE is sort of semi-hidden, and that is some guy called  avrdude. Actually, <a href="https://www.nongnu.org/avrdude/" rel="noreferrer">AVRDUDE – AVR Downloader/UploaDEr</a> is a standalone binary.</p>

<p>As an aside, there is also <code>gcc</code> which does the compiling, but that is another matter. The <code>avrdude</code> uploads the compiled binary provided by <code>gcc</code> on to the Arduino, via the USB port (COM port).</p>

<p>You can invoke this from the command line (assuming that you have the Arduino IDE installed).</p>

<p>You will need to specify (see <a href="https://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions" rel="noreferrer">command line option descriptions</a>):</p>

<ul>
<li>The baud rate of the COM port (<code>-b</code>)</li>
<li>The COM port (<code>-P</code>)</li>
<li>The processor used in the board (for the Arduino Mega2560 board: ATmega2560) (<code>-p</code>)</li>
<li>The path to the <code>.hex</code> file (<code>-U</code>)</li>
<li>The path to the <code>.conf</code> file of avrdude itself (<code>-C</code>)</li>
<li>Verbose mode, so see what is happening (<code>-v</code>)</li>
<li>Specify the programmer to be used (<code>-c</code>). See the -c option on <a href="https://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions" rel="noreferrer">command line option descriptions</a> for more information.</li>
<li>Disable auto erase for flash (<code>-D</code>)</li>
</ul>

<p>The command will be of the form:</p>

<pre><code>&lt;path to arduino&gt;/hardware/tools/avr/bin/avrdude
-C&lt;path to arduino&gt;/hardware/tools/avr/etc/avrdude.conf
-v -patmega2560 -carduino -b 115200 -cstk500v2
-P&lt;name of serial port&gt;
-D -Uflash:w:&lt;path to hex file&gt;:i
</code></pre>

<p>This example above:</p>

<ol>
<li>Specifies the full path to the <code>avrdude</code> binary</li>
<li>Specifies the full path to the <code>avrdude</code> <code>.conf</code> configuration file</li>
<li>Verbose mode</li>
<li>The ATmega2560 processor used in the Arduino Mega2560 board</li>
<li>The Arduino programmer</li>
<li>The baud rate of the USB port</li>
<li>The Atmel STK500 Version 2.x firmware programmer (may not be required)</li>
<li>The port to which the Arduino board is connected</li>
<li>Disables auto-flash as it is not required – Auto erase is not used for ATxmega devices as these devices can use page erase before writing each page so no explicit chip erase is required. Note however that any page not affected by the current operation will retain its previous contents.</li>
<li>The memory to be uploaded to and the path to the .hex file (see the -U option on <a href="https://www.nongnu.org/avrdude/user-manual/avrdude_4.html#Option-Descriptions" rel="noreferrer">command line option descriptions</a> for more information):

<ol>
<li><code>flash</code> specifies the flash ROM of the device.</li>
<li><code>w:</code> read the specified file and write it to the specified device memory</li>
<li><code>:i</code> specifies Intel Hex</li>
</ol></li>
</ol>

<h3>Examples</h3>

<p>For Windows</p>

<pre><code>C:\dev\Arduino\hardware\tools\avr\bin\avrdude 
-CC:\dev\Arduino\hardware\tools\avr\etc\avrdude.conf 
-v -patmega2560 -carduino -b115200 -cstk500v2
-P\\.\COM1 
-D -Uflash:w:C:\Users\&lt;username&gt;\Documents\firmware.hex:i
</code></pre>

<p>For OSX</p>

<pre><code>/Applications/Arduino/hardware/tools/avr/bin/avrdude 
-C/Applications/Arduino/hardware/tools/avr/etc/avrdude.conf -v -patmega2560 -carduino -b115200 -cstk500v2 -P\\.\COM1 -D -Uflash:w:/Users/&lt;username&gt;/Documents/Arduino/firmware.hex:i
</code></pre>

<h2>Alternatives</h2>

<p>If you are not comfortable using a command line interface (CLI) it might be easier to use a GUI solution…</p>

<h3>XLoader</h3>

<p>For a Windows only solution, see <a href="http://www.hobbytronics.co.uk/arduino-xloader" rel="noreferrer">Uploading Arduino HEX files with XLoader</a></p>

<p><a href="https://i.sstatic.net/1Zglt.jpg" rel="noreferrer" title="XLoader UI"><img src="https://i.sstatic.net/1Zglt.jpg" alt="XLoader UI" title="XLoader UI"></a></p>

<p>From the <a href="http://xloader.russemotto.com/" rel="noreferrer">author’s website</a>:</p>

<blockquote>
  <p>I’ve made a small program that can be used to upload your own *.hex
  files to arduino boards using the bootloader. That means you don’t
  need a flash programmer. I made it for my own use and found it pretty
  useful. So now I’ve made a more user friendly version.. To use it
  compile you’re code in something like AvrStudio. Then simply start
  XLoader.exe, pick a hex file and press upload. That’s it. Good news it
  now also supports Arduino Uno.</p>
</blockquote>

<h3>Arduino Builder</h3>

<p>From <a href="http://arduinodev.com/arduino-uploader/" rel="noreferrer">Arduino Builder – standalone utility for building and uploading Arduino sketches</a></p>

<blockquote>
  <ol>
  <li>Choose file, either a sketch file (.ino), an HEX file (.hex) or an ELF file (.elf)</li>
  <li>Choose the board type in the dropdown list.</li>
  <li>Click on the serial port (or USBASP button) and theuploading will be proceeded.</li>
  </ol>
</blockquote>

<h3>Arduino Uploader</h3>

<p>From the <a href="http://arduinodev.com/arduino-uploader/" rel="noreferrer">same page</a>, there is Arduino Uploader which is a command line version of Arduino Builder.</p>

CC BY-SA 4.0
2018-08-13T20:05:18.100Z
2018-08-13T20:05:18.100Z
Greenonline
<p>The Prusa i3 MK3 comes with <a href="https://www.prusa3d.com/slic3r-prusa-edition/" rel="nofollow noreferrer">Slic3r, Prusa Edition</a>. It has a menu for flashing the firmware, which takes a HEX file as input.</p>

<p><a href="https://i.sstatic.net/L5TEH.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/L5TEH.png" alt="Slic3r screenshot"></a></p>

<p>You can then select the HEX file. It will auto-detect the printer, if connected via USB.</p>

<p><a href="https://i.sstatic.net/AQ9Lk.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/AQ9Lk.png" alt="Screenshot firmware update details"></a></p>

CC BY-SA 4.0
2018-12-01T22:28:57.517Z
2018-12-01T22:28:57.517Z
Thomas Weller
<p>Creality does offer its firmware on <a href="https://www.creality3d.cn/download/firmware_c0001" rel="noreferrer">creality3d.cn</a> as .hex files. These are pretty good as backups as one can't alter and destroy them by accident.</p>

<p>But... How do you install them?!</p>

<hr>

<p>This is about installing firmware <em>directly</em> and <em>without</em> another microcontroller. To use another mictrocontroller is <a href="https://3dprinting.stackexchange.com/questions/6685">How to install new firmware via a Microcontroller?</a></p>

<firmware>
How to install a .hex firmware?
Trish
# How to install a .hex firmware?

(Asked by: username_0 on 2018-08-13)

Creality does offer its firmware on [creality3d.cn](https://www.creality3d.cn/download/firmware_c0001) as .hex files. These are pretty good as backups as one can't alter and destroy them by accident.

But... How do you install them?!

---

This is about installing firmware *directly* and *without* another microcontroller. To use another mictrocontroller is [How to install new firmware via a Microcontroller?](https://3dprinting.stackexchange.com/questions/6685)

**Tags:** firmware

---

## 3 answers

### Answer by username_0 on 2018-08-13. Score: 3 | Accepted answer

Creality also does provide an installation PDF. The process they propose is twofold and might need different settings on other machines1. Spots where I assume you might need to adjust are noted withA. Note that **this solution depends on CURA**.

## 1. Install the printer as a periphery machine.

This part is specific for Windows. If you use Linux or a MAC, you will need to use a different setup, but you might get the same results.

1. Turn on the power on the printer and connect it from the MircoUSB to a USB of the computer. This should automatically install the driver. If not, the Driver is on the SD card provided with the Printer2.
   * To manually install `windows Key` + "`MANAGER`" and choose *Device manager*. Find the serial port that shows yellow, Right-click, choose `Update driver software > Browse my computer for driver software`. Now `Browse`, find the location of USB driver on the SD card and click `Next`.
   * Generally,the serial port(COM) you need update has the biggest number, but can change.
   * A good idea is to confirm the correct port with a software like [Repetier Host](https://www.repetier.com/download-now/), with which you can control the printer directly - if it works, you got the drivers and the port correct. Also, you know the correct Baudrate.
2. After the driver installation, launch [CURA](https://ultimaker.com/en/products/ultimaker-cura-software) to do some settings. In `File > Preferences`:
   * Print Window is "Pronterface UI"A
3. Switch to `Machine > Machine Settings`:
   * Serial Port: choose the one that just was updated
   * Baudrate: 115200A

## 2. Upload the .hex file via cura

1. `Machine > Install custom Firmware`
2. Make sure the printer is connected, then `OK`
3. find the .hex file on your PC, then confirm.
4. Wait for the process to finish.

---

1 - most likely, you will have to change the baudrate  
2 - This might not be true for all manufacturers, but is for creality. Other manufacturers might have different sources for these.  
A - Adjust as needed!


---

### Answer by username_1 on 2018-08-13. Score: 6

A major part of the Arduino IDE is sort of semi-hidden, and that is some guy called  avrdude. Actually, AVRDUDE – AVR Downloader/UploaDEr is a standalone binary.
As an aside, there is also gcc which does the compiling, but that is another matter. The avrdude uploads the compiled binary provided by gcc on to the Arduino, via the USB port (COM port).
You can invoke this from the command line (assuming that you have the Arduino IDE installed).
You will need to specify (see command line option descriptions):

The baud rate of the COM port (-b)
The COM port (-P)
The processor used in the board (for the Arduino Mega2560 board: ATmega2560) (-p)
The path to the .hex file (-U)
The path to the .conf file of avrdude itself (-C)
Verbose mode, so see what is happening (-v)
Specify the programmer to be used (-c). See the -c option on command line option descriptions for more information.
Disable auto erase for flash (-D)

The command will be of the form:
/hardware/tools/avr/bin/avrdude
-C/hardware/tools/avr/etc/avrdude.conf
-v -patmega2560 -carduino -b 115200 -cstk500v2
-P
-D -Uflash:w::i

This example above:

Specifies the full path to the avrdude binary
Specifies the full path to the avrdude .conf configuration file
Verbose mode
The ATmega2560 processor used in the Arduino Mega2560 board
The Arduino programmer
The baud rate of the USB port
The Atmel STK500 Version 2.x firmware programmer (may not be required)
The port to which the Arduino board is connected
Disables auto-flash as it is not required – Auto erase is not used for ATxmega devices as these devices can use page erase before writing each page so no explicit chip erase is required. Note however that any page not affected by the current operation will retain its previous contents.
The memory to be uploaded to and the path to the .hex file (see the -U option on command line option descriptions for more information):


flash specifies the flash ROM of the device.
w: read the specified file and write it to the specified device memory
:i specifies Intel Hex


Examples
For Windows
C:\dev\Arduino\hardware\tools\avr\bin\avrdude 
-CC:\dev\Arduino\hardware\tools\avr\etc\avrdude.conf 
-v -patmega2560 -carduino -b115200 -cstk500v2
-P\\.\COM1 
-D -Uflash:w:C:\Users\\Documents\firmware.hex:i

For OSX
/Applications/Arduino/hardware/tools/avr/bin/avrdude 
-C/Applications/Arduino/hardware/tools/avr/etc/avrdude.conf -v -patmega2560 -carduino -b115200 -cstk500v2 -P\\.\COM1 -D -Uflash:w:/Users//Documents/Arduino/firmware.hex:i

Alternatives
If you are not comfortable using a command line interface (CLI) it might be easier to use a GUI solution…
XLoader
For a Windows only solution, see Uploading Arduino HEX files with XLoader

From the author’s website:

I’ve made a small program that can be used to upload your own *.hex
  files to arduino boards using the bootloader. That means you don’t
  need a flash programmer. I made it for my own use and found it pretty
  useful. So now I’ve made a more user friendly version.. To use it
  compile you’re code in something like AvrStudio. Then simply start
  XLoader.exe, pick a hex file and press upload. That’s it. Good news it
  now also supports Arduino Uno.

Arduino Builder
From Arduino Builder – standalone utility for building and uploading Arduino sketches


Choose file, either a sketch file (.ino), an HEX file (.hex) or an ELF file (.elf)
Choose the board type in the dropdown list.
Click on the serial port (or USBASP button) and theuploading will be proceeded.


Arduino Uploader
From the same page, there is Arduino Uploader which is a command line version of Arduino Builder.


---

### Answer by username_2 on 2018-12-01. Score: 1

The Prusa i3 MK3 comes with [Slic3r, Prusa Edition](https://www.prusa3d.com/slic3r-prusa-edition/). It has a menu for flashing the firmware, which takes a HEX file as input.

[![Slic3r screenshot](https://i.sstatic.net/L5TEH.png)](https://i.sstatic.net/L5TEH.png)

You can then select the HEX file. It will auto-detect the printer, if connected via USB.

[![Screenshot firmware update details](https://i.sstatic.net/AQ9Lk.png)](https://i.sstatic.net/AQ9Lk.png)


---

