Information about and reprogramming the GD32 processor on UNIHIKER

I have a few questions related to the UART using PinPong library:
- is it possible to use one of the 4-pin i2c ports as a UART; I only seem to be able to configure a UART on the extension connector
- Is it possible to reprogram the GD32 by myself? In that way, I could implement a low level Lego compatible protocol? See https://uartremote.readthedocs.io/en/latest/arduinouartremote.html
- Would it be possible to share the Firmata Unihiker source code that generates the binary file:/usr/local/lib/python3.7/dist-packages/pinpong/base/FirmataExpress.UNIHIKER.3.7.bin
- Are there any schematics available for the UNIHIKER, especially to see how the external pins are mapped to the GD32 MCU?
Thank you for the schematic. I do know how to program a GD32 (using Arduino or native STM32 C code). So, to reprogram the GD32 using an STM32 programmer, I can use the GD_SWIO and GD_SWCLK. But it seems that the UNIHIKER can also reprogram the GD32 from the Linux side by uploading the /FirmataExpress.UNIHIKER.3.7.bin firmware. Can you describe how that works?Furthermore, it would be helpful to publish the source code of the program that is currently running on the GD32. Then, I could use that as a starting point, and need not to program the IMU, Gravity and keys by myself again.
