Custom firmware for JGAurora A5S & A1: A 32-bit 3D printer with Marlin 2.0 support!

For those interested in trying the new (beta) community Marlin 2.0 firmware, please see this post on the JGAurora forum here.

As I previously posted, the JGAurora A5S and JGAurora A1 come with an entirely new motherboard, that uses a new 32-bit processor, using the ST Micro STM32F103ZET6 CPU. While this means we have a lot more processing power available, it introduced a complete break in terms of compatibility with the common Marlin firmware.

The supplied firmware lacked some of the useful features like mesh bed leveling, and babystepping, so there was a few motivations to create a custom firmware. With a range of firmware platforms out there, over on the JGAurora forum we first discussed some of the possible options and approaches for a new 32 bit firmware.

Now, the Marlin firmware is by far the most popular firmware used on 3D printers, so most people have some familiarity with that. Work has been underway to support 32-bit 3D printers for a year or two now, and significant progress has been made, especially quite recently with the STM32F1 based HAL that we needed for this project. Unfortunately, the interface for controlling Marlin only officially supports character LCD and basic black and white graphic LCD’s, alongside physical buttons. The colour LCD and touch interface on the A5S and A1 were looking like they would be likely incompatible.

However, with the printer able to be completely controlled via Octoprint over USB, losing the front interface would not be a complete loss. A “headless” Marlin firmware could still be of some value, and this looked like a good first goal to shoot for.

I broke out the multimeter, and reverse engineered the complete pinout of the CPU on the A5S/A1 motherboard. We soon managed to get the board successfully talking to the computer, and some progress with Marlin was made!

However, the biggest surprise was discovering that the JGAurora board was very very similar in it’s architecture to the MKS Robin board, which someone had already made significant progress on. They had also already done phenomenal work creating a patch to enable the classic marlin display to show on the colour TFT, as well as creating on-screen buttons to emulate a rotary dial on the printer, and I migrated all of this work over to our new firmware.

Unfortunately for me, on the A1 I was using for development, I was running into issues with screen corruption:

It took a few days of hair-pulling troubleshooting before I found that this seemed to be an interference problem. I discovered that by improving the LCD shielding, this problem was also able to be overcome. Things are looking good now!

At this stage, we have most of the marlin features successfully working, and I found out how to use the original boot-loader to enable the firmware to be installed the same way as the factory firmware, making it dead easy to switch between different firmware.

I hope this work helps people with the A5S and A1 get the most out of their machines – I’m very excited as this is one of the first stock 32-bit 3D printers in the world to have full support for Marlin 2.0! I don’t think it is the first ever, but it would be one of the first to not require any additional hardware to install and flash the firmware. Please let me know if you know of another 32-bit printer that works with Marlin 2.0 out of the box!

This has been an exciting project to work on – I’m proud of the work I contributed, It’s certainly been a lot more time consuming than I expected, and I’ve lost a lot of sleep tracking down obscure bugs. But the feeling of seeing it working is pretty great. If you want to say thanks – I’ve put a link in the sidebar where you can buy me a much-needed coffee. šŸ˜‰ā˜•ļø

I’m especially grateful to the Marlin dev team (@thinkyhead especially) for their creation that powers so many printers worldwide. Three cheers for open source!

Useful Links:

 

 

 

6 Comments

  1. Beri

    Thanks a lot for your work. I am interested in upgrading to the newest version and to do some manual configuration like Enable HOST_ACTION_COMMANDS and HOST_PROMPT_SUPPORT.
    My touch screen is broken and I don’t want to replace it because I’m using octoprint.
    I would really appreciate any hint on how to do all that because I’m lost in this kind of hardware firmware, never did something like that.
    Thank you in advance.

  2. yc

    Hello, I purchased a second-hand JG A3S in June this year and successfully fixed hardware issues with the nozzle assembly and other aspects. What troubled me was that the original firmware of this machine, as you said, was very old and not working smoothly.

    I’ve been trying to brush and write these past few days https://jgmakerforum.com/ I shared Marlin 2.0 with kind-hearted people and successfully used it, but what troubled me was the language problem. I am not good at English or other languages myself. This has led to some minor issues in usage. I have tried downloading the source code from GitHub multiple times and using Visual to compile and modify the Chinese language on my PC, but I have not been exposed to this aspect. Every compilation fails and reports various error prompts. Unfortunately, I cannot understand these errors. I have tried to solve them but have not had any effect.

    May I ask if you can help compile a firmware for the Marlin 2.0 Chinese menu of a machine with an SD card slot in front of the JG A3S second-generation motherboard panel. Thank you very much for everything you and your friends in the community have done. I have been browsing the content above these days. JG A3S is my first 3D printer and I have already printed some small toys. I hope I can improve it to make it work better.

    • admin

      Hi Yang,

      I’m sorry, but I closed the jgmakerforum as I do not have time to offer free support for users any more. As I wrote on the forum, I am offering paid support for people who still really want help, so that I can justify the time investment. If you are happy with this, feel free to contact me, and I will support you to make a Marlin 2.0 with Chinese menu for your printer.

      Kind regards,
      Sam

      • yc

        Thank you very much for your reply. I had compiled an incomplete Chinese menu firmware by my friend’s guidance earlier.

        Thank you again for the results and knowledge of your friends. This is the first 3D printer in my life. I am very fortunate to have the knowledge and results you shared. Otherwise, my first step will be very difficult.

        I wish you all the best

Leave a Reply

Your email address will not be published. Required fields are marked *