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.json
for PlatformIO compatibility - Add
tools\platformio\platformio-build.py
PlatformIO 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?