How To: Compile your own custom Marlin 2.0 firmware for JGAurora A5S and A1

Samuel PinchesSamuel Pinches Posts: 2,281Administrator
edited December 2019 in Modifications & Upgrades

Custom Marlin 2.0 Firmware for JGAurora A5S & A1

(updated Dec 1 2019!)
Here's a quick guide how to compile your own Marlin 2.0 firmware for the A5S and A1.
This guide is for PC only. Need help for Mac? Post below and I'll guide you.
  1. Download and install Python 2.7.
  2. Download and install Git.
  3. Download and install GitHub Desktop.
  4. Download and install VSCode.
  5. Open Github desktop, and clone a new repository.
  6. Use the URL: https://github.com/pinchies/Marlin.git Broken!
  7. Use the URL to clone: https://github.com/MarlinFirmware/Marlin.git
  8. After cloning, switch the branch, and choose the "bugfix-2.0" branch (important!!)
  9. Copy the correct "Configuration.h" and "Configuration_Adv.h" files for your printer, from the /Github/Marlin/config/examples/JGAurora/ folder, and place them in the /Github/Marlin/Marlin/ folder (alongside the Marlin.ino file), replacing the existing files.
  10. The firmware source code will then start to download. When finished, you should now have a folder:
    /My Documents/Github/Marlin
  11. Open VSCode, and install the PlatformIO plugin. Detailed instructions are here. It may take some time to complete the installation as various components are download and compiled. You will need to restart VSCode once this is completed.


  12. Open the Marlin folder as your workspace.



  13. Compile your project, using the Build button. It may take some time as various components are download and compiled.


  14. You will now have compiled firmware, ready for use! You can find the compiled firmware in the main Marlin folder, inside an hidden folder: \Documents\GitHub\Marlin\.pio\build\jgaurora_a5s_a1

Installing the custom firmware

After compiling the firmware, there will be two files:
  • firmware_with_bootloader.bin
  • firmware_for_sd_upload.bin.

Installing the firmware via SD Card

The file firmware_for_sd_upload.bin, is ready to go, and can be put onto an SD card for automatic flashing. This process is 100% reversible, and you can load the factory firmware back on, at any time.

  1. Place the bin “firmware_for_sd_upload.bin” onto the SD card.
  2. Turn off the printer, and unplug it from the wall.
  3. Wait 30 seconds.
  4. Insert the SD card.
  5. Plug in and turn on the printer. Flashing will occur automatically.

The file with bootloader is only to be used if flashing a blank motherboard, as it includes the bootloader that is responsible for handling the SD card upload process. This means there is nothing to worry about if you want to experiment with creating your own firmware without the bootloader, as you can reinstall it later on. To flash the full firmware you will need a SWD programmer (a ST-link clone off ebay costs $5 or less). 

Flash Firmware via ST-Link

To use an ST-link to upload firmware:

  1. Connect the GND, SWDIO, SWCLK pins on the motherboard, with the ST-Link. Do not connect the 3.3V pins.


  2. Then, plug the printer into your computer with a USB cable.
  3. Download and then install the ST-Link software tool (STSW-LINK004). Free registration is required.
  4. Open the program, STM32 ST-LINK UTILITY.
  5. Load the desired .BIN file, with bootloader.
  6. Connect to the board.


  7. Select the option to start flashing.


  8. Wait for flashing to complete...
  9. Success! You've flashed your firmware.


More Info

The A5S and A1 are powered by the same motherboard. The only difference between these printers, is that the x-axis is reversed on the A1, so the motor directions must be changed. This also means that homing occurs to X-max, rather than the traditional X-min. The only other differences are minor geometry changes since the A5S and A1 differ in build volume.

Original A5S Source Code

JGAurora released the source code for the A5S in late 2018. These files can be download here.

The original factory JGAurora firmware is based off the open source Dlion firmware project. That project which was an implementation of (a very old version of) the Marlin firmware, within a OpenRTOS project, with a touch interface. JGAurora created their current firmware from this project, but changed the interface side substantially. For more into this topic, you may want to read this blog post about the Dlion firmware. It is still actively used in some 3D printer models today! 











Post edited by Samuel Pinches on
Sign In or Register to comment.