2023年の電子工作振り返り

メイン

  • WCHのCH32V003との出会いがあり、開発ボードやガジェットに組み込んだよ
  • 電子工作&自作キーボードのイベントに出展や参加したよ
  • 技術書典でも電子工作をテーマに2冊書いたよ
  • JLCPCB、WCHのおかげで、たくさんの電子工作を楽しんだよ

CH32V003との出会い

CH32V003という格安マイコン秋月電子通商でも取り扱われるようになりました。

3月くらいからCH32V003をさわり始め、それからch32v003funというコミュニティ開発スタックが整備されて、多くのサンプルコードがコミットされていくのを眺めていました。

StickPointと呼んでいる、アナログジョイスティックをPIMORONI Trackball互換にするファームウェアも、ATTiny402で開発していたものから、SOP8のCH32V003とch32v003funを置き換えていきました。

ここでI2C Slaveの使い方を習得した結果、Relay USB HubのスイッチをI2C Groveで外出しにしたりしました。

また、ESP32-C3のPinが足りないのを補うのに使ったりしました。

安いので何でもサクッと組み込めるので、電子工作の幅が広がったように思います。

CH32V003の開発ボードは、Boothにて販売中です。

74th.booth.pm

また、ch32v003funの使い方については記事にしました。

74th.hateblo.jp

M5Stack Creative Contests に応募

Maker系イベントに参加したことは無かったのですが、作ったSparrowTVが面白いと思い、M5Stack Creative Contests に応募しました。

youtu.be

protopedia.net

ESP32を手軽に扱えるようになるM5Stackの試みを、改めて面白く感じることになりました。

電子工作&自作キーボードでイベント出展

今までイベント出展は、技術書典以外には、テックカンファレンスしか参加したことは無かったのですが、Maker系ともいえるコミュニティイベントにも参加するようになりました。

天下一キーボードわいわい会 vol.4、5

コロナ禍を明けて、天下一キーボードわいわい会 Vol.4、5に両方とも参加しました。天キーVol.4ではトラックポイントもどき付きキーボードを展示していました。

他の方のキーボードに刺激を受けるのもありますが、自分で作ったデバイスを体験して、良かったとコメントいただくのは本当に嬉しいです。トラックポイントもどきを作って展示したことを記事にしていました。

74th.hateblo.jp

Vol.5ではM5Dialをトラックパッド化したものを展示していました。

この試みについても記事にしています。

74th.hateblo.jp

ピコケット3

電子工作者&シンセビルダー同人展示即売会「ピコケット」に出展しました。今まで作ったProMicro型開発ボードが増えていったので、この機会にすべて展示しました。

理系フリマ3

理系フリマ2は残念ながらコロナにかかってしまい、参加はできませんでしたが、理系フリマ3に参加しました。

今ままで作ってきた試作途中のジャンク品や、開発ボードや新作キットを展示しました。

技術書典で電子工作をテーマに2冊書いたよ

技術書典14、15には今回も参加しました。技術書典3からなので、13回連続新刊持参のサークル参加になります。 今回も、電子工作をテーマにした書籍を執筆しました。

マイコンさんに知らないプロトコルを喋らせる技術』技術書典14

74th.booth.pm

ArduinoやMicroPythonも便利なのですが、ArduinoとMicroPythonで抽象化されたマイコンの機能には、多くの機能によって制御が実現されています。ただ、NeoPixelをGPIOで光らせる、それだけでも中でできることを知っていないと使いこなせないとわかり、DMAやカウンタを学ぶために執筆しました。されにRP2040で特徴的なプログラマブルIOを理解したいと思い、それを解説できるまでに理解して、まとめてみた本になります。

まだまだその辺りの機能への理解が足りていないですが、自分としてはかなり理解が進んだように思っています。

『WCHのICを活用する電子工作の本』

74th.booth.pm

CH32V003を始めとして、多くのWCHのICを使って電子工作を楽しみました。その都度、ブログ記事を書いてはいますが、それを書籍として改めてまとめた本になります。

JLCPCB、WCHのおかげで、たくさんの電子工作を楽しんだよ

JLCPCBに1年で50回発注していた

JLCPCBがANAのOCSでの配送を格安で行うようになってから、おおよそ500円くらいでPCBが注文できるようになり、便利さと安さのあまり注文しまくりました。OCSでも一定以上のサイズを超えると、$0.99→$1.99→$10?とステップがあり、$1.99に収めた方が安くなるので$1.99に収めるようにしていました。

その結果、2023年の注文を数えてみたところ注文回数が50回に及んでいました。

しかし、この価格は流石にサービス価格だと思うので、いつまで続けていただけるのやら。

WCHのICを組み込んだ

技術書典の本にも書きましたが、多くの安価で個人でも買えるWCHのICを使っていました。

CH32V003、CH213、CH217、CH334、CH224K、CH32X035、CH9329、CH340Xなど。まだ使いこなせていないICも多いですが、自分の制作にはまりやすいICがお手軽に購入できるのはありがたいです。


ここから制作物の振り返り

ことしから制作物にIDを降ることにしました。今までの制作物にも番号を振りましたが、2023年以降No.12から40にまで到達しました。

制作物・ガジェット系

Sparrow60C と StickPoint

ジョイスティックに、トラックポイントのキャップを被せたモジュールを作りました。このキーボードが今のメインのキーボードになっています。

ブログ記事にしています(再掲)。

74th.hateblo.jp

M5DialTrackpad

M5Dial をトラックパッドバイス化しました。M5Dialは非常にものが作りやすく完成したデバイスでした。それは、ジョイスティックマウスが過去のことになるくらいには。

これもブログ記事にしています(再掲)。

74th.hateblo.jp

SparrowTV

M5Stack Creativity Contestsに応募した奴です。YouTubeを見たりするTV横PC用のマクロパッドとして、TVリモコン、キーボード、マウスの3役を備えたデバイスです。

ESP32-S3のUSBデバイスがいまいちだったことから、CH9329、ESP32-C3の構成に置き換えました(再掲)。

ここでは、iPhoneケースに収めると言うこともやってみており、手触りの良いデバイスができました。

Relay USB Switch Hub

CH334Rとリレーを使って、ホスト4ポート切り替え機能付き4ポートUSB HUBを作りました。制作は記事にしています。

74th.hateblo.jp

キットはboothでも販売中です。

74th.booth.pm

USB Rebooter

たまにハングするUSB機器を強制的に電源断で再起動するデバイスを作りました。制作は記事にしています。

74th.hateblo.jp

完成品をboothでも販売中です(売れたことがない)。

74th.booth.pm

ESP32-IoT-Server

赤外線リモコン機能をもったWebServerを立てるESP32-C3を、お家の至る所に設置するのを計画しています。M5Stamp-C3でも良いのですが、安価にESP32-C3が使えるボードを作りました。

そのうち、boothでも販売する予定です。

WIP

SparrowDial

M5Dialがトラックパッドとして良かった旨は既に書きました。ならば、M5StackCore2、M5Dialを組み込んだSparrow60Cが欲しくなり、作ってみることにしました。

M5DialをPIMORONI TracballのI2C Slaveのプロトコルで動かし、それをQMK Firmwareから利用できるところまで確認できました。まだまだチューニングが必要な感じでした。キーケットに間に合わせるべく、動いています。

SparrowG

格ゲーはやらないのですが、握るコントローラーではなく、キーボード的なもので操作できた方がゲームの操作が上手くなるだろうと思っており、自作キーボードの汎用ケースを使ったGP2040-CE対応HitBoxクローンを作ろうとしています。

格ゲーはやらないにしても、時々アナログスティックが必要になるので、アナログスティック付きにしようとしています。

制作物・開発ボード・電子工作グッズ系

CH32V203 ProMicro / X32Micro

CH32V203のProMicroサイズ開発ボードを作りました。

作った後に、要するにSTM32F103のピン配置を揃えてあるMCUなので、STM32F103でも良いのではと気づき、X32Microを作りました。ただ、USBで書き込める機能は便利だったため、結局CH32V203基板を作り直しました。

どちらもboothでキットを販売中です。

74th.booth.pm

74th.booth.pm

KiCadデータ自体はGitHubで公開しています。

github.com

github.com

CH32V003 ProMicro

今年、こちらの商品を多くお求めいただきました。自分のCH32V003を使った制作でも、まずこれでアプリの動作を確認してから組み込むようにしています。

74th.booth.pm

GitHubでKiCadデータは公開しています。

github.com

WIP CH32X035 ProMicro

WCHは、USB PD機能と、USBデバイス機能がついた1個100円くらいのRISC-V MCUを出しています。安価にキーボードが作れそうなので良さそうと思い、トライしています。しかし、まだ理解が足りていないのか、安定して動作できていません。

WCH-LinkEクローン

CH32Vシリーズのデバッガに、WCH-LinkEがあります。CH32V003開発では必須です。今は秋月で750円で買えるので入手性が良いのですが、この当時はアリエクでしか入手できないものでした。

ソースコードは公開されていませんが、ファームウェア自体はGitHubにあがっているので、自分の欲しい機能のついたWCH-LinkEクローンを作りました。10pinをコネクタにケーブルを挿すだけで使えるので、非常に便利です。

boothでも取扱中です。

74th.booth.pm

なお、KiCadファイルはGitHubで公開済みです。

github.com

USB 2.0 ソケットテスター

USB Type-Cソケットの実装を、既に100個以上やった実績があります。その際に、ブリッジしていないかチェックするための装置を以前はユニバーサル基板で作っていたのですが、とてもオススメできるので、専用基板に起こして販売を開始しました。

作業の様子をYouTubeにも上げています。

youtu.be

boothでも完成品を販売中です。

74th.booth.pm

RP2040-ProMicro

RP2040のProMicroサイズ開発ボードを作り直しました。前のバージョンは販売していませんでしたが、今回のから販売するようになりました。開発ボードを使うのは主に実験の時で、その時にはProMicroのピンの数で充分なことが多く、とても役に立っています。

改善点は主に以下の通り。

boothにて販売中です。

74th.booth.pm

なんと、この制作の様子を動画で配信いただきました!とても実装ノウハウが動画に納まっていてわかりやすいです。

www.youtube.com

RP2040キットに、ノウハウ集を追加

RP2040手はんだ実装挑戦キットを販売し、多くの方に挑戦いただきました。この実装ノウハウを改めてまとめたドキュメントを作りました。その名も「RP2040手はんだ実装挑戦指南ガイド」です。こちらは公開ドキュメントにしています。

docs.google.com

ESP32-C3-MINI-1 ProMicroとステンシル

ESP32シリーズには、WROOMと付くエッジコネクタで実装するタイプと、MINIと付くSMDで実装するタイプがあります。WROOMはサイズが大きく、これを使って開発ボードを作っても、ブレッドボードの左右に1ピンと2ピンの余裕しかありません。MINIの方が1まわりほど小さいモジュールになります。さすがにProMicroの横幅で作ることはできませんが、1ピン増える程度で済みます。これを使って開発ボードを作りたいと前々から思っていました。そして作りました。

しかし、SMDタイプなので実装にステンシルが必要です。ステンシルなしでフライパンリフローに失敗したため、ステンシルとプリヒーターを用意して挑みました。これについては記事にしています。

74th.hateblo.jp

boothでもステンシルと合わせて販売していたのですが、在庫がなくなっています。

74th.booth.pm

CH32V203を触った後に改めてSTM32F103に触ると、開発環境も整っているし、Arduinoにも対応しているしこれで良いのでは?という気分になりました。

StickPointに組み込もうとしてたATTiny402が割高になってしまったので、代替にSTM32G030を検討していました(今はCH32V003ですが)。わりとLCSCで手頃な価格で買うことができます。

さらにSTM32F103は新規設計には採用するべきではないと言う話もあったので、最新のSTM32G4も試してみたいと思っていました。

そこで、STM32F103、STM32G030、STM32G431のProMicroサイズ開発ボードを作りました。

74th.booth.pm

74th.booth.pm

74th.booth.pm

これらのボードには、SWD10ピンヘッダを持たせてあり、同時に今年作成したCH32V203を使ったDapLinkと便利に使うことができます。

74th.booth.pm

実のところ、STM32を使うまでもなくCH32V003で充分であることが多いので、組み込む機会はないのですが……。

PD Exporter

CH224KというUSB PDトリガーICを使って、USB PDから目的の電圧を取り出してブレッドボードにさせるやつを作りました。

USB PDトリガーは多くの製品が既に出ていますが、割と便利です。

boothにて販売中です。

74th.booth.pm

Conv3

今年は多くの制作物に、Groveコネクタを追加してきました。そのままseeed studio、M5Stackのモジュールが利用できます。

一方ブレッドボードでテストするときにすこしだけ取り扱いが面倒です。これを解決するための変換基板を作りました。ついでにQwiic、XH2.54ソケットも含まれています。

ここでQwiicを組み込んだことが、自作キーボードのトッププレートとPCBの間の3.5mmにQwiicソケットが収まることに気づいたのが効いてきます。

boothにて販売中です。500円!

74th.booth.pm

ESP32 Micro

2022年には、ESP32-S3、ESP32-C3の開発ボードを作っていました。時々素のESP32が欲しくなるような気がするので、ESP32のProMicroピン配置のボードを作りました。

まぁ、活躍の機会はないですが。boothにて販売中です。

74th.booth.pm


電子工作を楽しむ環境で変わったこと

パーツをバインダーで管理するようになった

去年から、ほぼスルーホール部品は使わなくなり、SMDパーツばかりになりました。かさばらなくなった結果、一覧の検索性を良くするために、名刺入れのバインダーで部品を管理するようになりました。

現在、「MCU・アプリケーションIC」「Register・Capacitor・Inductor」「その他受動部品(水晶発振器、MOSFETなど)」の3冊で運用しています。眺めているだけでも楽しいです。

ペン型テスターを使うようになった

ina_aniさんが紹介されていたペン型テスターを使うようになりました。テスターを出してくるときの面倒さがなくなり手軽に使えるようになりました。

www.banggood.com

ESP32-C3がメインになった

利用するESP32の中心がESP32-C3になりました。それは以下の利点です。

  • 実装可能なモジュール ESP32-C3-WROOM-02 が、秋月で310円で買える! 10個単位で買っても困らない。
  • オープンな一般的なアーキテクチャRISC-V(RV32IMAC)であり、わりとRustもメインでサポートされている。
  • 外付けUSBシリアルが不要で、キット化しても他にツールが必要になりにくい。
  • ESP32-S3のUSB HIDが思ったように動かなくて、結局ESP32-S3のUSB機能は使わない。
  • ESP32-C3のピン数で割と十分となった。

リフローツールを使うようになった

Aliexpressで2,000円以下で買えるリフロープレートが話題になり、わたしも購入しました。

https://ja.aliexpress.com/item/1005005513823841.html

1台目はアルミプレートに電流を流すポゴピンがなんか引っかかるときもあるが使えると言う状態で、2台目は早々に3Dプリントされたボディーが破損した状態で、難はありますが、それがわかって使う分には十分使えるものでした。

これで裏面パッドのあるICも臆せず実装ができるようになり、大変助かっています。

電子工作一式道具バケットを作った

電子工作でよく利用するツールをいれたバケットを作りました。

ペン型テスタ/ラジオペンチ/ニッパ/ピンセット/汚れ取り用はけ/LED付きルーペ/プリヒーター/鉛入りはんだ/鉛フリーはんだ/低融点はんだ/はんだ吸い取り線/ガラスカッターマット/よく使うSMD部品ケースx2/マスキングテープ/USBシリアル/DAPLink/WCH Link-E/ロジックアナライザ

これに、はんだこて台と、吸煙器を出して起これば作業に移れます。

リードフリーを選んで使うようになった

これまでは、なるべくリードフリーを使った方が良いのではと思いつつ、JLCPCBで安いものを頼むときは有鉛になってしまうことと、RP2040やQFNの実装ではリードフリーで失敗することが多く鉛入りはんだと併用していました。

しかし、ここ1年で、リードフリーはんだ完全に慣れた気がします。RP2040、QFNであったとしてもリードフリーでなんとかなるようになりました。苦手にしていた理由の一つに、はんだごての温度が適切ではなかったようなのもありました。

そして、海外向けに売れることもあったり、完成品を売る時にはリードフリーの方が望ましいと思うようになり、リードフリーを積極的に使うようにしました。特にいまのところ問題は生じていません。

始めて100gリールを使い切った

2021年11月に秋月で購入した日本アルミットはんだDB-1RMA LFM-48をついに使い切りました。このはんだ購入後も鉛入りも併用していたのもあって、やっと使い切りました。100gを使い切ったのは初めてでした。

このはんだ、フラックス洗浄後も擦らない取れない白い跡がのこることが多く、別のリードフリーはんだを利用することにしました。0.3Agは避けて、3AgのHOZANのものを利用してみています。特に使い勝手は悪くないですが、若干フラックスが落ちにくいように感じています。

OrangePi5+がメインの開発機になった

マイコンの開発時、Ryzen2700のUbuntuデスクトップか、M1MacにLinuxVMを立ててその中で開発していました。

せっかくならばM1 Macのようにコスパの良いaarch64の動くLinuxマシンで開発をしたいと思っていました。

RG3588というARMを積んだSBCが発売され、それに飛びつき、今はOrangePi5+が開発のメインマシンになっています。 現状、机の下に設置したSBCのOrangePi5+に、MacからVS CodeのリモートSSH機能を使ってアクセスして開発できています。ただし、CH32V203は専用コンパイラが必要でそれがamd64でしか提供されていないので仕方なく旧マシンを使っています。

Linuxデスクトップを諦めた

Rock5B、OrangePi5+はUbuntuイメージが提供されるため、Linuxデスクトップとして使えないか見ていましたが、Waylandのためにチューニングするのが辛くて止めました。Ryzen2700マシンも、GTX1080で動かせるx11で使っていて、そろそろWaylandに移行すべき時期になってきたのですが、やっぱりチューニングがきつくて、Linuxデスクトップで消耗しない道を選びました。

今のところ、VS CodeのリモートSSH機能で、Arduino(VS Code拡張機能)、PlatformIOはちゃんと動いているので困りません。不便があるのは、STM32CubeMXが動かないので、Macで動かしたのを毎回コピーしているくらいでしょうか。


まとめ

来年もいろいろ作って、楽しく技術を磨きたい。ひとまずの目標は以下の通り。

  • キーケットに出展する。
  • 技術書典でUSBデバイス機能に関する書籍を作る。
  • お家IoT化を更に強化して、スマホからほとんど操作可能にする。