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.
I’m making a specific list of the Chinese 32-bit 3D printer motherboards here.
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-M4 – STM3sF4 – STSW – “Marlin4ST“
Cortex-M3 – LPC1769 – various – Smoothieware
Cortex-M4 – LPC4330 – 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:
Jim Wagner
Hello, thank you for posting this, I found it extremely helpful.
I think I found another manufacturer using the Dlion firmware. The XViCO Pioneer (sometimes known as the X3?) looks to be using it, judging by the firmware I dumped from the board. The board itself seems to be a cut-down version of the original Dlion board, and can be bought on AliExpress, though I have yet to find the source for the firmware.
See my website (actually blog) for recent entries on this printer and board.
admin
Hey Jim, yes, I think you’re right! I am trying to see if I can get a review unit of the xvico later this year for some further investigation. I noticed you can also purchase a motherboard with dlion directly on aliexpress. I’m also curious about any connections with dlion and the lerdgeX boards.
A nice thing all of these boards have in common, is they are based on the STM32F103ZET6 cpu, which has a generous 512k of flash and 128k or ram – I’m making some slow progress to getting a working build of marlin 2.0 together, which I reckon would be easy to load up on the dlion and lerdgeX boards, with some minor pin configuration changes. This is also the same cpu used on the MKS Robin.
Thanks for your comment!
Mark Corliss / Corliss Media2.0
I am so glad I found this information! I got HERE by googling Xvico Pioneer X3, which took me to Tingering and Fiddling. I have the Xvico X3. Need to move the bed FORWARDS somehow. Would really like to upgrade the firmware to Marlin 2.0. If I can figure out how to save this link, I’ll follow and support your efforts somehow.
admin
It’s challenging, since every motherboard is different, and I don’t have access to the Xvico board for testing. I also can’t find anywhere to buy it separately! The easiest option to get started with 32-bit Marlin 2.0 would probably be to buy a BigTree SKR motherboard.
xiaohang
Hi, I’m very happy to find here through GOOGLE, to know that GOOGLE is not available here,
I am one of the members of the DLion team. Our team has not been disbanded and has been insisting. Recently, we are busy with the SLA 3D printer project. The funding problem has always troubled us. The DLion firmware is currently stopped, but what do you need, I can Provide all assistance
admin
Dear xiaohang, thank you for leaving a comment! 🙂
It is very impressive to see what your team achieved with DLion. We like the work that you have achieved. When source code is available, other people are able to help and add to the code.But there is no way for us to add new features to DLion, or to the JGAurora firmware. We cannot affort the Keil software licenses. We are using VS Code for IDE, with the Platformio support for STM32. GUI interface for Marlin is under slow development, but progress is being made. The biggest problem that I see, is that the Marlin project is getting better, and now it can support the 32-bit boards. I think all 3D FDM printers will benefit if there is greater collaboration with the original Marlin team. JGAurora tried to make DLion operate just like the MKS TFT28 module, but they did not collaborate, so their work will likely be a dead-end.
For SLA printing, the situation is already messy. SLA printing is also very different to FDM. There are no clear instructions, training and documentation are missing, so that new users have a very difficult time. Chitubox is the dominant SLA software provider. Anet and Anycubic also have their own proprietary slicers, with proprietary file formats. JGAurora has a new SLA printer which uses Chitubox. I worry that there is no standard SLA printer file format like GCODE. The machines all appear to be the same, there is no clear distinction.
For your team, I would be interested to hear about the XVico SLA printer, what your goals are, and what your future plans are. It is interesting to hear news about where the software, firmware and hardware will be improved in the future.
xiaohang
Hello, we are slowly updating the DLion firmware. Now our team is understaffed and put most of our energy into our new SLA printer. We very much hope to work with the original Marlin team, and it may take some time to communicate. Hope to get in touch with the original Marlin team
Our new SLA printer is not the same as some SLA (LCD) printers. We are similar to Formlabs Form2. It uses a 405nm laser and a galvanometer to work. The laser spot has a power of 90m and a power of 100mw and the largest printing area (120 * 120 * 150mm) The printer is very quiet, because the SLA laser printer does not require a fan to dissipate heat from the printer, and there is no LCD screen that needs to be replaced frequently. Instead of using special resins to increase the user’s cost of use.
Probably in the fourth quarter of 2020, we will launch a sunken printer with a size of about 300 * 300 * 300MM, and can use high toughness and high strength resin to meet the production of some small projects.
admin
Thank you Xiaohang for the info! Please feel free to reach out if you ever want help to collaborate with marlin.
Best of luck with the SLA printers! I will hope to follow along. I have seen that problem with the LCD failures before. It is not mentioned in the other SLA product brochures! 🙄
admin
Did you see this! Very interesting new release from MKS.
https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware
News: https://www.facebook.com/Makerbase.mks/photos/a.2435499700099523/2523439111305581/?type=3
Mark
Should I just throw my Xvico Pioneer (X3?) out?
admin
At this stage, if it’s not working, then perhaps yes ☹️
Or you could put in a new motherboard.
Rich
I could really do with the firmware for the X1/X3 board. Firmware update resulted in a white screen of death.
Tried Jim Wagner’s archived Flash and STM32 binaries, but they didn’t work. Assuming the binaries were okay, there must be something i did wrong … perhaps erasing the STM32.
Looks like I’m in the market or a new controller board.
admin
Hi Rich, that’s quite a bit unfortunate. With so few printers out there, there just isn’t the momentum around it to justify a heavy reverse engineering effort. I assume the manufacturer is gone/non-communicative? I would go with a new board, or just keep it for hobby parts and buy a new printer — big leaps ahead in that time.
Rich
I agree with your suggestions. However I have managed to compile Marlin 2.1.x for the Xvico X-Micro board. Programmed the board with an st-link. TFT touchscreen working in classic mode.
I never managed to get the original Xvico firmware working again. The bootloader was wiped, which was a shame, but i never really understood how the bootloader and main code worked together.
I suspect there might be something devious going on there.
The X-Micro board is a little unusual as it has an SDIO implementation of the SDCard interface … which means finding a prebuilt bootloader at little difficult.
The X-Micro board could have been better designed. There are four STM32 pins which could have been routed out to headers … any extra serial port would have been easy. As an amateur hardware designer, i hate to see compromised hardware.
Oh well, it was a learning experience in Marlin compilation. All credit to the Marlin codebase for just working with minimal hacking.
admin
Nice job! Marlin saves the day again from abandoned proprietary 3D printer firmware.
Not to toot my own horn, but when I was trying to get Marlin working on the JGAurora printers the STM32F1 platform wasn’t fully supported, so I was able to actually contribute a few patches to fix up a couple of issues. Glad to hear it was a less painful process to do the same firmware bringup in 2022!
Luke Miller
Hi,
Can i get a copy of the BIN as my xvico i tried updated firmware and crickets. thanks luke