In full disclosure, we sell (Creality and MKS) and make control boards. We understand the unprescedented silicon issue happening right now but this does not change the fact that people are having problems with these clone CPUs that are being used in place of STM chips. Voxelab and BigTreeTech have shipped boards with these GD32 CPUs on them.
This information is relevant as we also put out FREE firmware for people who use these affected BTT boards. This is posted as some people have reported issues with the current firmware builds when using the clone GD CPUs. There are also potential legal concerns because of the ST software license (see below). This post is meant to inform and hopefully help people isolate problems with these chips and current firmware.
8/12/21 Update – Firmware & Opinion
Klipper – According to the Voron Discord, the Klipper devs have a workaround to make the GD32 CPUs with the Klipper firmware. Since the Klipper firmware does not use the ST libraries, there should be no issues with legal troubles when using Klipper with the GD processors. The issue that was affecting Klipper on these boards was related to the USB dropping and/or not working. But in general, they appear to be working with the modified code that should be posted on the Klipper firmware source code in the near future.
Marlin – Marlin is still being worked on for the GD processors but as of right now it looks like going with the “Maple” libraries will be what needs to happen to avoid issues with ST’s legal department due to some of the ST code only being licensed for use on ST CPUs. Even ignoring the ST legal issues, the firmware is not 100% working with the ST libraries on the GD CPUs. We have a GD32 based board here from Voxelab that we will be testing out the firmware on but utilizing the Maple libraries so as not to get in trouble with ST license agreements that the ST-based libraries are bound by.
Our Opinion on the GD CPUs
It is our opinion that ST CPUs are better than GD ones. Why? Because they are well supported by the community, ST officially has its own libraries in PlatformIO that are updated regularly, and ST has a long history of working correctly with the software that we run on our 3D printers (namely Marlin). Until we have more data and working code to test the GD chips with, we feel it is better to avoid them until they are more proven for 3D printer applications. If GD wants wider adoption for 3D printing, they should maintain their own libraries and get them integrated with PlatformIO for official support as this would lessen the burden on open source developers to modify existing libraries to work with them.
Regarding BTT boards specifically, it is well known in the community that many of their boards have been released with issues as well as their support/warranty being poor. If BTT was to improve their products and support, we would be glad to give them another chance at a later point in time.
Cutting Costs & Silicon Shortage
With the silicon shortage in full effect still and prices on silicon skyrocketing, Chinese manufacturers like Voxelab and BigTreeTech are swapping out STM32 CPUs for cheaper GD32 chips from a company called GigaDevice. These chips are knockoffs/clones of STM32 CPU parts, even mimicking the STM32 part numbers by just changing the starting text from STM to GD (eg; GD32F103RET6 vs STM32F103RET6).
Not Fully Compatible
There are many issues and pull requests on the Marlin firmware GitHub page discussing implementing separate environments for these chips as they are not actually 100% compatible with the STM32 part numbers they are copying. We first encountered a GigaDevice CPU in the Voxelab Aquila printer when we did its review. We were planning on putting out the firmware for those printers and board/CPU combinations in the future. We are taking a pause on that right now due to potential legal issues that it could open up for us.
One main issue appears to be USB communication dropouts after a few hours with the clone chips. We will be testing this more with the Voxelab Aquila that has a GD32 CPU on it. If you also search online (specifically in the Voron discord server) you will find many videos and posts about these GD32 CPUs not actually working with all the features that the STM32 chips work with.
License Issues with ST
The hang-up here on our end is that we are a US company and it is very easy to be litigated against. Marlin uses ST libraries to facilitate support for the STM32 CPUs in its firmware for *most* ST-based boards. Those libraries come with licenses. For example, if we look at the SLA0048 agreement for these CPUs the section that is concerning is #4:
This software package or any part thereof, including modifications and/or derivative works of this software package, must be used and execute solely and exclusively on or in combination with a microcontroller or a microprocessor devices manufactured by or for STMicroelectronics.Software license agreement – SLA0048 – (st.com)
The question is, will ST actually care about if we put out firmware targeting builds for the GD32 CPUs so the community and customers have access to better firmware. I highly doubt that the Chinese companies have any worry about litigation since China has a track record of not enforcing or upholding lawsuits over things like this.
STMicro Official Response to Our Inquiry
Added 8/12/21: We also reached out to STMicro and they also stated that the GD32 chips are clones of their STM32 products as well as using any ST code on those chips will result in a violation of the license agreement.
STMicro Official Response to Olimex RE: GD32 Clones
If our opinion about these GigaDevice chips is not enough, the people over at Olimex contacted STMicro about the GS32 chips and this is what they replied with:
Those GD32xxx devices are effectively a kind of clones of our STM32, but it’s a pure piracy: no agreements of any kind between ST and Giga Device, no license… nothing. ST legal people are in charge of this problem.Source: https://olimex.wordpress.com/2015/11/09/chinese-clones-attack-stm32-microcontrollers/
Archive Link: https://archive.ph/eCArK
We don’t think that gets any clearer than that.
3rd Parties Talking about the GigaDevice Clones
Chinese clones attack STM32 microcontrollers | olimex (wordpress.com)
GD32F103: A STM32F103 on steroids! – Roger Clark (archive.org) <- USB Issues and Speed Multipliers (Author has deleted the post, Archive link provided)
STM32 Clones: The Good, The Bad And The Ugly | Hackaday
If you have any tips or something to add please leave a comment below. We are not lawyers, but if you are please let us know if we should be concerned.