This fork is specifically for GD32F303RET6 chip with the goal of getting it to work with Marlin. This has been increasingly frustrated by apparent differences in this exact chip and what is documented. For instance, many of these chip used in Creality 3D printers do NOT have an FPU, even though GigaDevice states that all of them do. Additionally, it appears that many RCU clock bits are different from what is claimed, since setting these bits as is done by the code from GigaDivice, results in bootloops and errors. When using only the bits set comparabile with STM32F103RET6, it will boot. This suggests some of these chips are missing advertised features. Additionally, some chips are also missing MPU, even though GD states that all chips of this version have MPUs.
In the end, GigaDevice has been very unreliable as far as providing the needed info for these chip, so the user is left guessing what is supported and what isn't. I have reached out to GigaDevice and the only response was that "All chips are as stated in the User Manual", which is not true. When I ask for more info about the pointed out differences, I get no response.
If you can avoid this chip, I would advise doing so unless you love headaches! :)
AFAIK other chip versions are unaffected.
This is a Arduino core is based off of the original GigaDevice core that was provided by the company in early June 2021 (see https://github.com/CommunityGD32Cores/GD32Core/)
It is currently a work in progress, but believed to be functional on GigaDevice's mBed boards.
The intention is to further develop that original core in an open-source, community-driven manner.
Interested in collaborating? Join our dedicated Discord channel for this at https://discord.gg/59kf4JxsRM.
A GD32F303CC chip (placed on a bluepill PCB) runs its first blinky code with the new Arduino core!
first_blinky_gd32f303cc_1080p.mp4
The same board reading out a DHT11 temperature & humidity sensor and displaying it on an SSD1306 OLED via the Adafruit GFX libraries
The board runs the Adafruit SSD1306 test sketch
i2c_oled.mp4
And here it is using analogRead() to read the voltage over a potentiomeneter as a 12-bit value.
Currently, development of this core is being done using PlatformIO. It uses the custom PlatformIO platform https://github.com/CommunityGD32Cores/platform-gd32.
Using PlatformIO is already possible to very easily edit code in the IDE and even live-debug a chip (with e.g. an ST-Link)
Various example projects for this platform for the SPL framework and this Arduino core are currently hosted at https://github.com/CommunityGD32Cores/gd32-pio-projects.
To compile for this core with the Arduino IDE, add the following URL to the boards manager.
https://raw.githubusercontent.com/CommunityGD32Cores/GD32Core-New/main/package_gd32_index.json
This will install the core and compiler toolchain against the 'main' git branch.
The gd32-arduino-blinky project compiles for the gd32f307_mbed board and the genericGD32F303CC board and works (see video above).
Multiple more complicated demos work, like an SSD1306 OLED, analog input, Serial, etc. See issue CommunityGD32Cores#8 for the latest state of tested components.
Legend:
- βοΈ = working
- β = not working at all
β οΈ = some features not workingβοΈ = untested
| Name | Works? | Notes |
|---|---|---|
| Adafruit GFX | βοΈ | Tested in conjunction with SSD1306 OLED, CP437 symbols works |
| Adafruit SSD1306 | βοΈ | Tested on SSD1306 I2C 128x64 OLED, entire extensive demo works |
| SimpleDHT | βοΈ | Works with DHT11 (Temp & Humidity) and OLED, demo above |
31.05.2021:
Initial contact and thoughts about an Arduino core implementation from scratch for GD32 devices with @kemotz via Email.
02.06.2021:
Creation of the Github project https://github.com/maxgerhardt/gd32-arduino-core/ and a discord channel.
10.06.2021:
A custom dev board has been designed and is in production. The repo with the files for it is at https://github.com/kemotz/GD32F1x0-dev-brd.
@obra and @algernon join the project.
GigaDevices is contact with a request for information on a potentially existing in-house developed Arduino core and code licensing questions.
16.06.2021:
GigaDeviecs confirms that there is a internally developed Arduino core, sends it over to use and approves of publishing it. The code is also BSD 3-clause licensed.
The original files for this are found at https://github.com/CommunityGD32Cores/GD32Core.
The focus shifts from creating a new Arduino core from scratch to getting the retrieved one working and expanding upon it.
18.06.2021:
Arduino core:
- Add
package.jsonfor PlatformIO compatibility - Add
tools\platformio\platformio-build.pyPlatformIO builder script - gives a successful build for the gd32f307_mbed board
- gives a successful build for the genericGD32F303CC board (and gives a working blinky!)
19.06.2021:
- Addded a lot more demos to https://github.com/maxgerhardt/gd32-pio-projects (now https://github.com/CommunityGD32Cores/gd32-pio-projects/)
- Added catalog of issues for future work
- Added Arduino IDE build support,
upload not yet workingupload working fine :)
24.07.2021:
- moved all relevant projects into the Github org instead of personal accounts, adapted URLs
- build fixes for Linux
- added CI to projects repository, now builds 15 projects fully automatically
- Jesse worked on merging new-style Arduino APIs (https://github.com/arduino/ArduinoCore-API/) to this core
- Jesse started working on USB support (and USB bootloaders)
- later that day, the new ArduinoCore-API adoption was successfully merged and tested
ToDos are now all moved to issues.
Everything is WIP now and no full support can be expected yet.
Planned support:
GD32F303CC based boards
custom GD32F190 board seen above
the boards previously supported by this core, so GD32F303ZE-EVAL and GD32F307VG-MBED
.. more?




