Information about and reprogramming the GD32 processor on UNIHIKER
![userHead](https://dfimg.dfrobot.com/dfPortrait2.png)
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.
![userHeadPic](https://dfimg.dfrobot.com/dfPortrait2.png)
![](https://dfimg.dfrobot.com/62469707aa9508d63a41ca96/enshopforum/528a9c841421a902871b8dff689494c3.png)
This is the schematic of the pins.
And The i2c port on the unihiker cannot be used as a UART port. You can use P0 and P3 on the gold finger (https://www.unihiker.com/wiki/pinpong_python_lib#|-%206.1-Serial%20Port%EF%BC%88UART%EF%BC%89), or you can connect a USB to TTL module to the USB-A port on the unihiker to derive a UART port (https://community.dfrobot.com/makelog-313506.html).
Additionally, the source code for gd32 is written in C. If you understand how to program for gd32, you can try writing a new program.
![userHeadPic](https://dfimg.dfrobot.com/dfPortrait2.png)