はじめに
うたたねこさんの電子ガジェット用USB5V給電ボードを購入して遊んでみました。
CH552Tマイコンも搭載されていてLチカできちゃいます!!
Windowsからは書き込みがすんなりできたんですが、LinuxのArduino IDEからだと上手くいかず…
ちょっと詰まったのでメモを残しておきます
環境
Linux mint 6.8.0-57-generic
Arduino 1.8.19
Arduino IDEの環境構築
こちらのブログを参考に設定しました。
書き込みできない
下記のようになって書き込みできませんでした(泣)
Found no CH55x USB Time limit reached, exit process

ちなみにWindowsからはバッチし書き込みできています。
Lチカチカ https://t.co/wPGKi3TsEo pic.twitter.com/EC1CaElOhn
— Xian DIY@技術書典18(え05) (@sabasabasabaniu) May 1, 2025
解決方法
権限の問題でした。下記で解決しました。(Grok先生に聞きました)
echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="4348", MODE="0666"' | sudo tee /etc/udev/rules.d/50-ch55x.rules
sudo udevadm control --reload-rules
sudo udevadm trigger
権限の問題だったっぽい?
— Xian DIY@技術書典18(え05) (@sabasabasabaniu) May 1, 2025
LinuxのArduino IDEからも書き込みできた! https://t.co/we4llTyMWb pic.twitter.com/VQz0l85JdY
ch55xtool を使ってスケッチを焼いてみる
Arduino IDEでコンパイルして、生成されたhexファイルをbinに変換してch5xtoolでCH552Tに書き込みしてみました。 github.com
スケッチをコンパイルした後生成されるhexファイルは下記階層にありました。これは環境によって違うので注意。
/home/xian/Documents/arduino_tmp
こんな感じで設定しておくと
コンパイルすると保存先のパスがわかるぞ

コンパイルして生成されたファイルはこんな感じ

binファイルはないのでhexを変換する必要があるのでした。
from intelhex import IntelHex
# 入力HEXファイルと出力BINファイルを指定
hex_file = "CH552T_ledblink.ino.hex"
bin_file = "CH552T_ledblink.ino.bin"
# HEXファイルを読み込み、BINファイルに変換
ih = IntelHex()
ih.fromfile(hex_file, format='hex')
ih.tobinfile(bin_file)
print(f"Converted {hex_file} to {bin_file}")
このプログラムを実行してbinを生成したのち、CH552TをDFUモードにして
python3 -m ch55xtool -f CH552T_ledblink.ino.bin
を実行すると書き込みできた。
ch55xtool使っても書き込み出来た! https://t.co/tsp7rIXLsA pic.twitter.com/TJRFM2ynaR
— Xian DIY@技術書典18(え05) (@sabasabasabaniu) May 1, 2025
スケッチはこんな感じ
void setup() {
// put your setup code here, to run once:
pinMode(32,OUTPUT);
pinMode(14,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(32,HIGH);
digitalWrite(14,LOW);
delay(500);
digitalWrite(32,LOW);
digitalWrite(14,HIGH);
delay(500);
digitalWrite(32,HIGH);
digitalWrite(14,HIGH);
delay(500);
}