1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UIAPduino Pro Micro CH32V003 V1.4 に M1 MacのArduinoIDEで書き込む

1
Last updated at Posted at 2026-02-16

はじめに

WCHのCH32V003を搭載し、290円で販売されているUIAPduino Pro Microに Mac(M1 Mac mini) のArduinoIDEで書き込めたので、手順をメモしておきます。

UIAPduino Pro Micro CH32V003 V1.4

この公式ガイドによると
「Macでは動作確認できていません。」
となっています。

書き込み時のエラー対応

デフォルトでの書き込みエラー

MacのArduinoIDEからのデフォルト状態での書き込みでは、以下のエラーになります。

"~/Library/Arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/minichlink" -w "~/Library/Caches/arduino/sketches/8B9CA5C16058A00FD3C3047815DEA2CA/Blink.ino.bin"
flash Failed uploading: cannot execute upload tool:
fork/exec ~/Library/Arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/minichlink:
exec format error

これは minichlink の実行ファイルが Mac で実行できない形式という意味です。

minichlink をM1 Macでビルドする

以下の手順に従い作業をします。

まず、RISC-V Toolchainのツールチェーンをインストールします。

UIAPduino用のリポジトリをクローンします。

git clone https://github.com/YuukiUmeta-UIAP/ch32fun.git

pkg-config をインストールします

brew install pkg-config

libusb をインストールします

brew install libusb

minichlinkのフォルダに移動してmakeします。

cd ch32fun/minichlink
make

生成されたminichlikをArduinoIDEのツールチェーンにコピーします。

cp minichlink ~/Library/Arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/

この状態でArduinoIDEから書き込みをするとエラーが出ます。

VID:0x1209, PID:0xb003
Error: Could not initialize any supported programmers

これは 書き込みツール(Programmer)が見つからない というエラーです。

UIAPduino Pro Microに書き込まれているFirmwareのVID/PIDを調べる

UIAPduinoをリセットボタンを押しながら接続し、以下のコマンドで認識されているUSBデバイスを調べます

ioreg -p IOUSB -n "V-USB" -l | grep -E "idVendor|idProduct"

筆者の環境でのUIAPduinoが返しているIDは以下の通りです。

| "idProduct" = 47107
| "idVendor" = 4617

Vendor ID: 4617(16進数で 0x1209)
Product ID: 47107(16進数で 0xb803)

minichlink が標準で探しているPIDは 0xb003 ですが、UIAPduinoは 0xb803 になっています。
このために、ツールが見つけられずにエラーを出しています。

minichlikのソースコードを修正する

まず、現在のminichlikでUIAPduinoを認識できるか確認します。

sudo ./minichlink -c 0x1209b803 -a

確認結果

VID:0x1209, PID:0xb803
Halting Boot Countdown
Detected CH32V003
Flash Storage: 16 kB
Part UUID: 8f-a8-ab-cd-f7-7d-bc-08
Read protection: disabled
Interface Setup

VID/PIDを指定したら認識できる事が確認できましたので、ソースコードのPIDを 0xb803 に修正します。

55行目

minichlink.c
// original
else if( strcmp( specpgm, "b003boot" ) == 0 )
    dev = TryInit_B003Fun(SimpleReadNumberInt(init_hints->serial_port, 0x1209b003));

// modified for UIAPduino Pro Micro CH32V003 V1.4 with CH-Link PID 0xb803
else if( strcmp( specpgm, "b003boot" ) == 0 )
    dev = TryInit_B003Fun(SimpleReadNumberInt(init_hints->serial_port, 0x1209b803));

74行目

minichlink.c
// original
else if ((dev = TryInit_B003Fun(SimpleReadNumberInt(init_hints->serial_port, 0x1209b003))))
{
    fprintf( stderr, "Found B003Fun Bootloader\n" );
}

// modified for UIAPduino Pro Micro CH32V003 V1.4 with CH-Link PID 0xb803
else if ((dev = TryInit_B003Fun(SimpleReadNumberInt(init_hints->serial_port, 0x1209b803))))
{
    fprintf( stderr, "Found B003Fun Bootloader\n" );
}

修正後にminichlinkのフォルダに移動してmakeします。

cd ch32fun/minichlink
make

生成されたminichlikをArduinoIDEのツールチェーンにコピーします。

cp minichlink ~/Library/Arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/

ArduinoIDEでの実行結果

"/Arduino/Arduino15/packages/UIAP/tools/minichlink-2982dfd/1.0.0/minichlink" -w "/Users/xxxxx/Library/Caches/arduino/sketches/10B0F6453A1BA759C5184DF91929EA1E/Blink.ino.bin" flash
VID:0x1209, PID:0xb803
Found B003Fun Bootloader
Detected CH32V003
Flash Storage: 16 kB
Part UUID: 8f-a8-ab-cd-f7-7d-bc-08
Read protection: disabled
..........................Halting Boot Countdown
Interface Setup
Writing image

Image written.
.

無事書き込みができました。

修正版のソースコードとminichlinkのバイナリーファイル

修正版は以下のリポジトリにおいてあります。

追記

UIAPduinoのカスタムブートローダーを修正する方法

UIAPduino自体のPIDはカスタムブートローダーの42行目で0xb803に設定されているので、こちらを修正するという方法でも可能です。ただし、ブートローダーの書き換えは少し面倒な作業となりますので、minichlinkを修正する方が安全です。

UIAPduinoのボード設定を修正する方法

ArduinoIDEの platform.txtminichlink への引数を追加してVID/PIDを指定するという方法もあります。

platform.txt
## /Arduino15/packages/UIAP/hardware/ch32v/1.0.42/platform.txt
## 修正前
tools.minichlink.upload.pattern="{path}{cmd}" -w "{build.path}/{build.project_name}.bin" flash

## 修正後
tools.minichlink.upload.pattern="{path}{cmd}" -c 0x1209b803 -w "{build.path}/{build.project_name}.bin" flash

まとめ

これで無事にM1 MacのAuruinoIDEから UIAPduino Pro Micro が使えるようになりました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?