So today, I have yet another post about JGAurora – this is the next chapter in the JGAurora 3D printer story for me, and I’m not yet sure of how things will end. So, to introduce the context of this story, late last year, JGAurora sent me their latest (at the time) JGAurora A5 printer as a review unit. This was very exciting to me of course, and being that the model was just released, and having a passion for tinkering, I was keen to open it up and see inside.
The A5 was an interesting design, because it had two “brains” – a 32-bit CPU running the LCD screen interface, and handling USB stick data, and an 8-bit CPU on the main motherboard that actually handled all the printing files. The LCD screen is 100% proprietary, and so modifying the firmware is not possible – the only option there would be a complete rewrite, which amazingly enough, an attempt at creating an alternate open source firmware for the MKS LCD module has be started, but not yet completed.
The main motherboard in that print is the MKS Gen L – a much more standard 3D printer board, that was designed to be compatible with the open source Marlin firmware. JGAurora at the time refused to provide the source code for the Marlin firmware, so being very familiar with the open-source Marlin project, along with a few other members from the JGAurora facebook group, we created a new firmware build for the A5 using the latest version of Marlin. This was great, as this enabled some useful features for printers that did not come with perfectly flat beds – such as mesh bed levelling, babystepping, and also paved the way for interesting hardware modifications like auto bed levelling sensors, adding additional multi-extruders, TMC2208 and TMC2130 stepper driver upgrades, and advanced conversions to direct-drive extruders. All in all, I was personally amazed at the creativity of our community, and the extra value that they were able to add to their A5 (and A3S too!) 3D printers. All was well, and people were overall pretty happy with the value proposition of the A5.
Then JGAurora released the A5S.
At first, people were confused – where does the A5S fit in the picture? Was it a successor to the A5? Or was it another cousin, more closely related to the A3S? The frame of the A5S looks almost identical to the A5, so how many of the modifications would carry over? JGAurora also released the A1 printer at the same time – which created even more questions, as on paper the A5S and A1 were also identical spec for spec. JGAurora again kindly sent me review units of the A5S and A1 printers, and I really appreciated being one of the first in the world to get my hands on their latest creations. On arrival, these printers were intriguing! The unreliable and flakey MKS LCD board was gone, replaced by a basic LCD screen connected to a brand new main motherboard running a 32-bit processor! 32-bit CPU’s are the next evolution in the 3D printing world. The faster processor speeds not only enable cosmetic interface enhancements with colour LCD’s and other intelligent features, but they also enable higher quality printing, by being able to modulate the stepper drivers at a higher rate, creating smoother curves and better surface quality on prints. However, the legacy Marlin firmware was designed for 8-bit world, and this creates a problem for manufacturers trying to build slick touch interfaces to attract the iPad-loving generation. MKS tried to solve this by creating a two-brain system, but this was unreliable and caused many headaches for troubleshooting. Being proprietary, it also left JGAurora dependant on their third-party partner to fix the bugs that were causing warranty headaches. I’m very glad for JGAurora that they have left MKS behind on their next model. However, on the A5S they now had a problem – which firmware were they going to use on their new 32-bit board?
At the moment, there are a number of 32-bit open source firmwares – and it’s a disaster.
The 8-bit firmware world was a mess with various competing projects, but this eventually narrowed down to two main families – Marlin, and Repetier. In 32-bit world, there are many many more options – more choices for firmware, but also, more choices of 32-bit processor. Some CPU’s cost more than others, leading to different firmware choices for premium 32-bit motherboards, and for budget 32-bit boards.
Wouldn’t it be nice, if there was some way to run the old 8-bit firmware code, and also add some nice new and shiny 32-bit interfaces to it?
In late 2015, a pair of talented programmers in Shenzhen, Yang Zongmou and Sang Shuo decided to start work on a new 3D printer firmware. Pulling together various libraries, and drawing upon an early build of Marlin 1.0.1, they set to work on a new open source project. Built on a low cost STM32F103ZE CPU, and using the FreeRTOS platform (compiled in a shamelessly pirated copy of Keil µVision IDE), they created a new open source firmware that ran both a new 32bit firmware layer alongside a secondary layer that ran the older marlin motion and gcode interpreter. They released this project as open source, alongside a 3D-printed 3D printer kit under the company name “DLion 3D” ( Shenzhen Luozhong Technology Co., Ltd), complete with comprehensive assembly instructions and videos.
Unfortunately, the project was a commercial failure, and. while they released some innovative hardware, such as a mini-UPS for 3D printers, today their firmware project has been abandoned and their “3dbinmaker.com” website is closed. As a last effort, they promoted the new firmware on various chinese microcontroller and electronics forums in April 2018. The efforts from their project are still available however, with Dlion firmware-compatible motherboards currently available on Aliexpress, and a new logeek company website still currently online.
However, someone at JGAurora noticed this novel project, and started to experiment with it. By February 2018, a new JGAurora motherboard had successfully been developed to run a modified firmware based off DLion, and a new interface was also developed, to closely mimick (clones) the previous MKS TFT module functionality.
Thus, the A5S was born.
Featuring a 32bit STM32F1 CPU, a supercap based power-save system, and high quality Allegro A5984 stepper drivers, the A5S motherboard looks like it will be a solid and reliable product. While print quality on the A5S is noticeably improved compared with the A5, the absence of support for mesh bed levelling makes the large print area difficult to fully use. Most of the early A5S reviews (my own review included) criticised it for having closed firmware, and in hindsight this is ironic – JGAurora repeating their error with the A5 of trying to hoard open-source software, except this time with DLion firmware, rather than just Marlin firmware.
In early November 2018, JGAurora created a survey asking for customer feedback and product suggestions to the various facebook groups. Many customers commented specifically on the firmware issue, and this was brought to JGAurora’s attention. On the 22nd of November, JGAurora posted an announcement to their facebook page:
And wow, what a response! This move was definitely recognised as a positive step almost universally.
So, now you understand the origins of the new JGAurora firmware, but what can we do with it? Unfortunately, after a first look, it seems fairly limited.
- The very old Marlin 1.0 used internally is too old to be easily updated. It is not worth the effort to add one or two pieces of newer marlin, but updating the entire thing is still a very challenging project.
- The firmware project is designed to be opened in a $1500 IDE – and I’m not willing to participate in Piracy.
- The two part firmware means that features need to be added twice – once added to the marlin component, and then extra code added to both the user interface part, and to the communication between the software modules.
What should we do? Well, this is what we are trying to decide now. The STM32F1 processor on the board is one of the weakest processors used on any 32-bit 3D printer board – in fact, it is the same CPU as the MKS TFT LCD module used alone! But, this is still very much more powerful compared to the older 8-bit options.
What if we abandon the current 32-bit firmware entirely? Having access to the source will make determining a correct pinout a much easier job. There are several alternatives that we could look at trying to get running on the A5S motherboard. I have listed a small subset of current 32-bit 3D printing platforms below.
CPU Type – Processor – manufacturer – firmware
Cortex-M3 – STM32F1 – JGAurora – open source
Cortex-M3 – STM32F1 – ChiTu F – proprietary
Cortex-M3 – STM32F1 – “Eryone” – Marlin 1.1.9 ported to 32bit
Cortex-M3 – STM32F1 – MKS Robin / Robin Lite – MKS proprietary
Cortex-M4 – STM32F4 – Lerge-x – proprietary
Cortex-M3 – LPC1769 – various – Smoothieware
Cortex-M3 – SAM3X8E – various – Arduino-based Marlin4due
For more info I strongly recommend watching the 3 part video series by Alex Kenis on youtube, where he goes into great detail to discuss the current 32-bit situation. Watch the parts here: Part 1, Part 2, Part 3 – I’ve put a screen grab below showing some of the options that are out there.
If you are interested in joining the discussion and getting involved, please join our forum. We have a firmware planning thread over there, and you are welcome to come and discuss as we examine options for a new firmware! Lots of opportunities ahead, but lots of work todo as well!
Good further reading: