base on Core library for CH32duino # Arduino core support for CH32 EVT Boards
* [Introduction](https://github.com/openwch/arduino_core_ch32#Introduction)<br>
* [How to use](https://github.com/openwch/arduino_core_ch32#How-to-use)<br>
* [Supported boards](https://github.com/openwch/arduino_core_ch32#Supported-boards)<br>
* [OS support](https://github.com/openwch/arduino_core_ch32#OS-support)<br>
* [Submit bugs](https://github.com/openwch/arduino_core_ch32#Submit-bugs)<br>
## Introduction
This repo adds the support of CH32 MCU in Arduino IDE.<br>
The file includes:
* [Arduino_Core_CH32](https://github.com/openwch/arduino_core_ch32):Public library files.
* [openocd](https://github.com/openwch/openocd_wch):can directly use WCH-LINKE to download and debug wch chips.
* [riscv-none-embed-gcc](https://github.com/openwch/risc-none-embed-gcc):A toolchain that supports WCH custom half word and byte compression instruction extensions and hardware stack push/pop functions.
## How to use
You can add this software package directly on the IDE through the [Arduino Boards Manager](https://www.arduino.cc/en/guide/cores).
Add the following link in the "*Additional Boards Managers URLs*" field:
https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json
Then you can search for "**wch**" through the "**board manager**", find the installation package, and install it.
## Supported boards
It will be a long-term support and maintenance project, unless we encounter force majeure factors.The current version supports the following development boards:
- [CH32V00x EVT Boards](#CH32V00x-EVT-Boards)
- [CH32V10x EVT Boards](#CH32V10x-EVT-Boards)
- [CH32V20x EVT Boards](#CH32V20x-EVT-Boards)
- [CH32V30x EVT Boards](#CH32V30x-EVT-Boards)
- [CH32X035 EVT Boards](#CH32X035-EVT-Boards)
### CH32V00x EVT Boards
| Status | Boards name | Peripherals | Release | Notes |
| :----: | ---- | ---- | :-----: | :---- |
| :heavy_check_mark: | CH32V003F4P | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.0 | SPI,I2C_Master since 1.0.2 |
### CH32V20x EVT Boards
| Status | Boards name | Peripherals | Release | Notes |
| :----: | ---- | ---- | :-----: | :---- |
| :heavy_check_mark: | CH32V203G8U | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.0 | SPI,I2C_Master since 1.0.2 |
### CH32X035 EVT Boards
| Status | Boards name | Peripherals | Release | Notes |
| :----: | ---- | ---- | :-----: | :---- |
| :heavy_check_mark: | CH32X035G8U | ADC,DAC,USART,GPIO,EXTI,SysTick | 1.0.1 | SPI,I2C_Master since 1.0.2 |
### CH32V10x EVT Boards
| Status | Boards name | Peripherals | Release | Notes |
| :----: | ---- | ---- | :-----: | :---- |
| :heavy_check_mark: | CH32V103R8T6_BLACK | ADC,DAC,USART,GPIO,EXTI,SysTick,SPI,I2C_Master | 1.0.3 | - |
### CH32V30x EVT Boards
| Status | Boards name | Peripherals | Release | Notes |
| :----: | ---- | ---- | :-----: | :---- |
| :heavy_check_mark: | CH32V307VCT6_BLACK | ADC,DAC,USART,GPIO,EXTI,SysTick,SPI,I2C_Master | 1.0.3 | - |
## OS support
Adopting toolchain and openocd under [MRS](http://www.mounriver.com/), supporting HPE, custom byte and half-word compression extensions,"upload" via WCH_LINKE.
**Most importantly, the version of Arduino IDE is 2.0+.**
### Win
If you encounter an error during upload, please confirm that the version of your WCH-LINKE is consistent with the latest version under MRS.
WCH-LINKE related information can [refer to this link](https://github.com/openwch/ch32v307/tree/main/WCH-Link).
### Linux
For Linux, after installing the support package for the first time, to ensure the normal upload function,
please open the packages installation path of the Arduino IDE, run the script, and automatically configure the environment.
Usually, it can be operated as follows:<br>
```bash
cd ~/.arduino15/packages/WCH/tools/beforeinstall/1.0.0
./start.sh
```
After authorization, it will copy or generate some necessary libraries and rules:
```text
Copy Libs
[sudo] password for temperslee:
Register new Libs
copy rules
Reload rules
DONE
```
### MAC
For MAC, please install the "libusb" library before starting to use it.
```bash
brew install libusb
```
If "libusb" related errors still occur when "uploading" firmware after installing the libusb library,
please contact the **MRS team** for assistance through "*
[email protected]*".
## Submit bugs
If you have any questions, you could contact me through the email "*
[email protected]*".
Or you could [file an issue on GitHub](https://github.com/openwch/arduino_core_ch32/issues/new).
", Assign "at most 3 tags" to the expected json: {"id":"6673","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"