<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>

[{'answer_id': 6655, 'author': 'Trish', 'author_id': 8884, 'author_profile': 'https://3dprinting.stackexchange.com/users/8884', 'pm_score': 3, 'selected': True, 'text': '<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>\n\n<h2>1. Install the printer as a periphery machine.</h2>\n\n<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>\n\n<ol>\n<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>. \n\n<ul>\n<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>\n<li>Generally,the serial port(COM) you need update has the biggest number, but can change.</li>\n<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>\n</ul></li>\n<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>:\n\n<ul>\n<li>Print Window is "Pronterface UI"<sup>A</sup></li>\n</ul></li>\n<li>Switch to <code>Machine &gt; Machine Settings</code>:\n\n<ul>\n<li>Serial Port: choose the one that just was updated</li>\n<li>Baudrate: 115200<sup>A</sup></li>\n</ul></li>\n</ol>\n\n<h2>2. Upload the .hex file via cura</h2>\n\n<ol>\n<li><code>Machine &gt; Install custom Firmware</code></li>\n<li>Make sure the printer is connected, then <code>OK</code></li>\n<li>find the .hex file on your PC, then confirm.</li>\n<li>Wait for the process to finish.</li>\n</ol>\n\n<hr>\n\n<p><sup>1 - most likely, you will have to change the baudrate</sup><br>\n<sup>2 - This might not be true for all manufacturers, but is for creality. Other manufacturers might have different sources for these.</sup><br>\n<sup>A - Adjust as needed!</sup></p>\n'}, {'answer_id': 6656, 'author': 'Greenonline', 'author_id': 4762, 'author_profile': 'https://3dprinting.stackexchange.com/users/4762', 'pm_score': 3, 'selected': False, 'text': '<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>\n\n<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>\n\n<p>You can invoke this from the command line (assuming that you have the Arduino IDE installed).</p>\n\n<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>\n\n<ul>\n<li>The baud rate of the COM port (<code>-b</code>)</li>\n<li>The COM port (<code>-P</code>)</li>\n<li>The processor used in the board (for the Arduino Mega2560 board: ATmega2560) (<code>-p</code>)</li>\n<li>The path to the <code>.hex</code> file (<code>-U</code>)</li>\n<li>The path to the <code>.conf</code> file of avrdude itself (<code>-C</code>)</li>\n<li>Verbose mode, so see what is happening (<code>-v</code>)</li>\n<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>\n<li>Disable auto erase for flash (<code>-D</code>)</li>\n</ul>\n\n<p>The command will be of the form:</p>\n\n<pre><code>&lt;path to arduino&gt;/hardware/tools/avr/bin/avrdude\n-C&lt;path to arduino&gt;/hardware/tools/avr/etc/avrdude.conf\n-v -patmega2560 -carduino -b 115200 -cstk500v2\n-P&lt;name of serial port&gt;\n-D -Uflash:w:&lt;path to hex file&gt;:i\n</code></pre>\n\n<p>This example above:</p>\n\n<ol>\n<li>Specifies the full path to the <code>avrdude</code> binary</li>\n<li>Specifies the full path to the <code>avrdude</code> <code>.conf</code> configuration file</li>\n<li>Verbose mode</li>\n<li>The ATmega2560 processor used in the Arduino Mega2560 board</li>\n<li>The Arduino programmer</li>\n<li>The baud rate of the USB port</li>\n<li>The Atmel STK500 Version 2.x firmware programmer (may not be required)</li>\n<li>The port to which the Arduino board is connected</li>\n<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>\n<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):\n\n<ol>\n<li><code>flash</code> specifies the flash ROM of the device.</li>\n<li><code>w:</code> read the specified file and write it to the specified device memory</li>\n<li><code>:i</code> specifies Intel Hex</li>\n</ol></li>\n</ol>\n\n<h3>Examples</h3>\n\n<p>For Windows</p>\n\n<pre><code>C:\\dev\\Arduino\\hardware\\tools\\avr\\bin\\avrdude \n-CC:\\dev\\Arduino\\hardware\\tools\\avr\\etc\\avrdude.conf \n-v -patmega2560 -carduino -b115200 -cstk500v2\n-P\\\\.\\COM1 \n-D -Uflash:w:C:\\Users\\&lt;username&gt;\\Documents\\firmware.hex:i\n</code></pre>\n\n<p>For OSX</p>\n\n<pre><code>/Applications/Arduino/hardware/tools/avr/bin/avrdude \n-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\n</code></pre>\n\n<h2>Alternatives</h2>\n\n<p>If you are not comfortable using a command line interface (CLI) it might be easier to use a GUI solution…</p>\n\n<h3>XLoader</h3>\n\n<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>\n\n<p><a href="https://i.stack.imgur.com/1Zglt.jpg" rel="noreferrer" title="XLoader UI"><img src="https://i.stack.imgur.com/1Zglt.jpg" alt="XLoader UI" title="XLoader UI"></a></p>\n\n<p>From the <a href="http://xloader.russemotto.com/" rel="noreferrer">author’s website</a>:</p>\n\n<blockquote>\n  <p>I’ve made a small program that can be used to upload your own *.hex\n  files to arduino boards using the bootloader. That means you don’t\n  need a flash programmer. I made it for my own use and found it pretty\n  useful. So now I’ve made a more user friendly version.. To use it\n  compile you’re code in something like AvrStudio. Then simply start\n  XLoader.exe, pick a hex file and press upload. That’s it. Good news it\n  now also supports Arduino Uno.</p>\n</blockquote>\n\n<h3>Arduino Builder</h3>\n\n<p>From <a href="http://arduinodev.com/arduino-uploader/" rel="noreferrer">Arduino Builder – standalone utility for building and uploading Arduino sketches</a></p>\n\n<blockquote>\n  <ol>\n  <li>Choose file, either a sketch file (.ino), an HEX file (.hex) or an ELF file (.elf)</li>\n  <li>Choose the board type in the dropdown list.</li>\n  <li>Click on the serial port (or USBASP button) and theuploading will be proceeded.</li>\n  </ol>\n</blockquote>\n\n<h3>Arduino Uploader</h3>\n\n<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>\n'}, {'answer_id': 7559, 'author': 'Thomas Weller', 'author_id': 1570, 'author_profile': 'https://3dprinting.stackexchange.com/users/1570', 'pm_score': 1, 'selected': False, 'text': '<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>\n\n<p><a href="https://i.stack.imgur.com/L5TEH.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/L5TEH.png" alt="Slic3r screenshot"></a></p>\n\n<p>You can then select the HEX file. It will auto-detect the printer, if connected via USB.</p>\n\n<p><a href="https://i.stack.imgur.com/AQ9Lk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AQ9Lk.png" alt="Screenshot firmware update details"></a></p>\n'}]
['https://3dprinting.stackexchange.com/questions/6654', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/8884/']