激安マイコンCH32V003を使って、キーストロークを入力する1%キーボードを作る

tl;dr

できたものと経緯

Image

x.com

タイプすると、"74th!"と入力されます。パスワードとか、特定の操作を素早く行いたいときに便利なものを作ろうとしました。

サイズを小さくしたく、マイコンボードではなくマイコン単体を組み込みたいと思いました。 そこで激安マイコンCH32V003を使うことにしました。

CH32V003とは

CH32V003は74thが愛用している激安マイコンです。過去に解説書を書いてしまうほど、自分の電子工作に欠かせないマイコンです。

74th.booth.pm

CH32V003には、USBデバイスペリフェラルがありません。 CH32V003のファームウェア開発ではch32funを利用していますが、その中にrv003usbというUSBデバイススタックがあり、USBキーボードを簡単に実装できます。

設計した基板

作成したKiCadファイルは以下で公開しています。

ポイントはrv003usb用のUSB周りの配線です。PD3、PD4をUSBのD+、D-に接続し、USBのプルアップ抵抗(1.5kΩ)をPD5に接続します。

後から気づいた反省点としては、RGB LEDをSPIのPC6に接続しなかったことです。 RGB LEDのドライバとして、SPI DMA転送を使えたのですが、SPI MOSIであるPC6に接続していなかったために、ch32funに含まれているSPI DMAドライバが使えませんでした。 代わりに、CPUでbitbangしてRGB LEDを制御するドライバを使用することになりました。 RGB LEDはSPI MOSIに接続する癖を付けたいです。

rv003usbでファームウェアを作る

rv003usbには、マウス、キーボードのサンプルコードがあります。

github.com

このコードは、1秒ごとに"B"キーを押して離す動作を繰り返すコードになっています。

これを書き換えて、以下の機能を付けました。

  • キーの押下を検出する
  • RGB LEDを点灯する
  • ASCIIコードの文字列で組み込んだ文字列をキーストロークとして入力する

TinyUSBのコードの中に、ASCIIコードをキーコードに変換するコードがあり、それを引用して、ASCIIコードの文字列をキーストロークに変換できました。

製作したコードは以下で公開しています。

github.com

まとめ

妻に「パスワードを簡単に入力できるデバイスを作ったよ!」と言ったら、「そんな危ないものお家の中に置かないで!」と言われました。 デモでは「74th!」と入力してくれるデバイスになっています。

スイッチにDurock Ice King Tactileを付けたところ、透明なハウジングがよく光を通してパッと光り、癖になり、見ていて飽きないものになりました。

rv003usbでのキーボードは今のところちゃんと動いています。 確実性のあるキーボードを使いたいならばUSBデバイスペリフェラルを持つマイコンを使うことをお勧めします。 普段使い用のキーボードを作るマイコンとしては、QMK Firmwareを使ってカスタマイズしたいので、rv003usbを使うことは私はないでしょう。 SparrowSv3では右手キーボードのマイコンとしてCH32V003を組み込んでいます。

最後に以下は製作したキーボードでタイプした文字列です。

74th!74th!74th!74th!74th!74th!74th!

74thの2025年の製作・活動まとめ

74thの2025年の活動のまとめです。 去年は「自作キーボード」と「電子工作」で分けていましたが、今年は数も多くないので、同一記事になります。 「自作キーボード」「電子工作」「VS Code、AI、本職関連」の3つのセクションに分けます。

最も思いのあるところ3つ

  • 自作キーボードの集大成 SparrowS v3 を製作した
  • 愛用MCUを特集した『CH32V003開発ガイドブック』を執筆した
  • AIペアプロサービスのGitHub Copilotについて、Findyさんで単独講演した

自作キーボード

SparrowS v3を製作

Image

新作キーボードSparrowS v3を製作し、販売しました。SparrowS v3は、本当に私自身の自作キーボード製作の集大成、エンドゲームとなっており、かなり自分でも満足できるものが作れたと思っています。この製作については以下の記事にまとめています。

74th.hateblo.jp

SparrowS v3はBoothにてキットを販売中です。

74th.booth.pm

はんだ実装が不要になる半組み立て品も出品しています。

74th.booth.pm

キーケット2025で販売

Image

自作キーボード専門の同人即売会、キーケットに2024年から続いて今年も出店側で参加しました。

出展物については以下の記事にまとめています。

74th.hateblo.jp

キーケット出展についての振り返りを書いています。

74th.hateblo.jp

自作キーボードわいわい会 vol.8 に参加

Image

表題のイベントに参加しました。

イベント中のパネルディスカッション「それはそう」に、ごはんださん、KaKKさんとともにパネラーとして参加しました。ポインターバイスと統合された未来のキーボードについてや、AIとの迎合でどうキーボードは変わるのかをお話しさせていただきました。

また、多くのキーボードに出会いました。出会ったキーボードは以下の記事で紹介しています。

74th.hateblo.jp

自作キーボードわいわい会 vol.9 に参加

表題のイベントに参加しました。出会ったキーボードは以下の記事で紹介しています。

74th.hateblo.jp

電子工作

同人誌『CH32V003開発ガイドブック』(技術書典18)

Image

私は激安MCU、CH32V003を愛用しています。 MCUがもつ機能を全て知りたいと思い、CH32V003開発ガイドブックを執筆しました。

企画的には1年近く温めていた内容であり、自分が欲しいCH32V003に関する情報を全てまとめた自信作となっています。

この製作については以下の記事にまとめています。

74th.hateblo.jp

ありがたいことにこの書籍は技術書典18と、スイッチサイエンスマーケットプレイスでの販売を通して一度完売し、増刷しました。 現在でもスイッチサイエンスか、Boothにて購入できます。

CH32V003開発ガイドブックwww.switch-science.com

74th.booth.pm

また、UIAPさんがCH32V003をArduinoで使いやすくしたUIAPduinoを販売されており、それに触発されてArduino抜粋版を無料公開しています。

ch32v003-guidebook-arduino.74th.tech

つくまた2

つくまた1に続いて、つくまた2に出展しました。なんか作りたい人が参加しているので、すごく受けが良かったです。

RP2350Aの開発ボードを製作

RP2350Aが入手可能になったことから、RP2040と同様に自分の製作するガジェットに取り込めるようにしたいと思い、製作しました。

Image

製作時の手実装の過程について、以下の記事にまとめています。

74th.hateblo.jp

ここで製作したボードを開発ボードキットとしてBoothにて販売しております。是非手はんだ実装に挑戦してみてください。

74th.booth.pm

RP2040で書き込み後にソフトリセットでは大丈夫なのにハードリセットでは立ち上がらない問題

キーケットで販売した自作キーボードキットには、私が手はんだ実装したRP2040が付いています。 このために多くのRP2040を手はんだ実装しました。 その時に、ソフトリセットでは大丈夫なのに、ハードリセットではファームウェアが起動しなくなる問題に遭遇しました。 その解決について、記事にしています。

74th.hateblo.jp

AtomS3Uを使ってスマホをキーボードマウスにするガジェットを作り、M5Stack Global Innovation Contest2025に応募

M5Stack Global Innovation Contest2025に今年も応募したいと思い、製作中のガジェットをAtomS3Uに移植して、その製作について応募しました。

Image

www.hackster.io

この中で、取得したIPアドレスを伝えるためにモールス信号で光れば良いのでは、というアイディアができました。

また、WebSerialを使えばUSB CDC経由でESP32のWiFiセットアップができるのでは、というアイディアができました。

CH32V002、CH32V006の開発ボードを製作

お気に入りのMCU、CH32V003の後継機となる、CH32V002、CH32V006が入手可能になりました。 こちらの開発ボードを作成しました。

Image

CH32V002については、CH32V003の基板をそのまま使うことができます。 CH32V006についても、CH32V003とさほど難易度が変わるものではありません。

製作については以下の記事にしています。

74th.hateblo.jp

キットの販売はしていないのですが、一時的にこの開発ボードのセットを販売しておりました。要望があればまた販売します。

74th.booth.pm

CH32V002をボタン電池で動かした

CH32V002は2Vで動作するとのことで、ボタン電池を電源とするケーブルチェッカーをCH32V002で製作しました

CH32V003に書き込みができる安価なライターを製作

Image

74th.hateblo.jp

リビングに湿度計を設置

他参加イベント

  • SWITCHSCIENCE 第二回感謝祭: UIAPさんが出展していて、初めて挨拶でき、それから交流するようになりました
  • 理系フリマ: 参加者
  • NT東京: 参加者
  • Maker Fair Tokyo: 参加者

VS Code、AI、本職関連

FindyさんでGitHub Copilotについて講演

FindyさんでGitHub Copilotについての講演を依頼され、2回講演してきました。 私の解説できる限りを尽くして、GitHub Copilotをどうやって実開発で使っていけば良いか分かってもらえるような講演を目指しました。 多くをデモの形で伝えるようになっています。 そして、3つの使い方に分けたのが、よく伝わったのではないかと思います。

Image

今注目のテーマというのもありますが、800名以上の多くの方に参加いただき、多く好評だったとの声を聞いております。

1回目の8月の講演については記事にしていただきました。1回目ではGitHub Copilotの全ての機能をどのように使っていけば良いか分かるような内容になっています。

findy-code.io

2回目の12月の講演では、GPT-5の登場により、よりエージェントが使いやすくなったことから、エージェントの解説を中心とするように変えました。 こちらの動画が残っております。よければご覧ください。

findy-code.io

スライドはこちらです。

speakerdeck.com

speakerdeck.com

Software Design 2025年3月号特集『コードエディタ大研究』にてVS Codeの章を執筆

多くのコードエディタを深掘りして、エディタの思想を比較して知ることができる『コードエディタ大研究』の特集にて、VS Codeについて書かせていただきました。 機能というよりも、私がVS Codeに対して思っている推しの部分を伝えました。

gihyo.jp

Software Design 2025年11月号特集『AI開発ツール大整理』にてGitHub Copilotの章を執筆

様々なツールがしのぎを削っているAI開発ツールが溢れる世の中を、大整理しようという企画に、GitHub Copilotについて書かせていただきました。

gihyo.jp

同人誌『DevContainer実践ガイド』(技術書典19)

DevContainerを解説した同人誌を執筆しました。2020年にもDevContainerの同人誌を書いたのですが、それからDevContainer技術はさらに発展していました。AIエージェントを隔離したい用途でDevContainerを見直すことになったため、この機会に内容を一新して書き直しました。

技術書典で大変好評いただき、用意した物理本が完売してしまいました。増刷を検討しています。

電子版であれば以下から購入可能です。

74th.booth.pm

執筆動機、内容について以下の記事に残しています。

74th.hateblo.jp

イベントへの参加

  • KubeCon Japan 2025: 海外のKubeConには参加したことがあったのですが、国内で開催されるとのことで参加しました。この分野についてやっぱり興味が深いと思い直しました。

まとめ

2025年は、今までの活動がいろいろ繋がった年でした。

  • 登壇3回(GitHub Copilot、自作キーボード)
  • イベント出展4回
  • 同人誌2冊

万年筆にはまっている話

この記事は、GO Inc. Advent Calendar 2025の1日目の記事です。 (1日遅れましたが、1日目の記事です)

adventar.org

私が仕事で毎日使っているキーボードではなく、万年筆の話をします。*1

tl;dr

  • ペンを使わないと考え事ができないタイプのエンジニアだよ
  • 4色ボールペンを15年近く使い続けていたけれど、万年筆に憧れたよ
  • 結構カリカリすると思ったけれど、極細(EF)の使用をやめて細(F)にしたら、気持ちよく書けるようになったよ
  • 強く握れる万年筆はないと思っていたが、滑らせて書くことを覚えたら楽しくなったよ
  • 考え事をしていると乾いてしまうのは、キャップレス万年筆を使ったら良くなったよ

ペンを使わないと考え事ができないタイプのエンジニア

このITの時代、文字を書く人は少なくなったと思います。

私は学生の頃から、考え事をするときには「紙にマインドマップを描く」ことが定着しています。紙にアイテムを書き出して、アイデアを発散させたり関連付けさせたりして解を見つけ出しています。すごい思考法を持っているというよりも、自分はこうしないと考え事ができないタイプだという認識です。

机の上には常にA4サイズの5mm方眼紙が置かれています。分割型の自作キーボードの間に置いて、いつでもすぐに書けるようにしています。

Image

机の下にはA3サイズのProject Paperも置いてあり、キーボードをどかしてすぐに使えるようになっています。

紙は白紙でも良いのですが、5mm方眼用紙の方が文字のサイズが揃えられるので使っています。方眼紙は、単価を抑えるために印刷所に発注したものを使っています。

同じボールペンを15年近く使い続けていたけれど、もっと良い書き心地があるのでは?

長年、パイロットのハイテックCコレト4色ボールペンを使い続けていました。5mm方眼用紙に収まる、細くはっきりとした字が書けるため気に入っていました。

4色ボールペンが多色で使いやすいと思っていましたが、ほとんどの場合1色しか使わないことに気づきました。 もっと書き心地の良い筆記用具があるのではないかと思い立ち、万年筆を調べ始めました。

万年筆を探し始める

万年筆の入門として、パイロットカクノを使ってみました。

若干F(細)だと太いように感じて、EF(極細)を使い始めました。 悪くはないが、結構カリカリして書き心地が良いとは言えないなと思いました。 他の万年筆ならもっと良かったりするのだろうかと気になり始めました。

気になりポイント1:握りにくさ

ボールペンと違って、万年筆で気になったポイントは3つありました。

一つ目は握りにくさです。 多くの万年筆は、ボールペンのようにゴムグリップが付いておらず、つるつるしています。 比較的筆圧が強いという認識のあった自分は、グリップの良さそうな万年筆を探し始めました。

パイロットカクノは、三角形のグリップになっているため、握りやすくなっています。 シュナイダーBASEは、ゴムのグリップが付いて三角形になっています。

シュナイダーBASEが握りやすく、かつEFで細い線が書けて良いように思い、使い始めました。

次の節にありますが、グリップ力は重要ではないことがわかり、シュナイダーBASEは使うことは減りました。

気になりポイント2:カリカリ感

2つ目は、執筆時のカリカリ感です。 紙を少し削るようなカリカリした感触があり、あまり良いとは思わなくなりました。 万年筆は自分には合わないのかと思い、ボールペンに戻ろうかとも思いました。

細い線の書けるペンはカリカリ感が強く、太くなれば滑るように書けることを教えてもらいました。 実際に、極細(EF)から細(F)に持ち替えると、ペン先を滑らせて滑らかに書くことができました。 これでだいぶカリカリ感は和らぎました。

また、滑らかに滑らせる使い方ならば、強く握る必要はなく支えるだけで良くなります。 上から押さえつけるのは万年筆の自重で十分で、左右に滑らせる力のみが必要となります。 握る必要がないことが、長い執筆時間に力が要らず、軽い力でかけるので、筆記具として良いと思うようになりました。 また、世の中の万年筆がグリップ力のなさそうな筐体になっていることに納得ができました。

気になりポイント3:考え事をしていると乾く

最後の気になるポイントは、万年筆はキャップを素早く閉めないと乾いてしまうことでした。 考え事をしていると、手が止まったり PC で調べ物を始めたりします。 その度にキャップをしなければならないのが、思考が中断されるようで自分のスタイルに合わないように感じ始めました。 これが私にとっての一番のネックでした。

ノック式の万年筆であるパイロットキャップレスを使うことで解決しました。 この万年筆はノックすればよいため、片手で素早く操作でき、思考の中断具合が和らぎました。

1万円以上する代物ですが、これは良いと思えるものでした。 それからは、考え事はこの万年筆を使ってするようになりました。 使い始めてそろそろ10ヶ月になりますが、キャップをする万年筆には戻れそうにないです。 ボールペンよりも明確に良いと感じるようになりました。

さいごに

紙で考え事をする相棒として、万年筆に出会った話でした。 Xを通して、人に万年筆について教えてもらいながら、良い探求ができたように思います。 多くの人は紙に書くことはないと思いますが、紙に書く派の参考になれば幸いです。

初めて万年筆を使う方には、パイロットカクノF(細)をおすすめします。

最後に、私が所属しているGO株式会社ではエンジニアを積極採用中です! エンジニアの有志で、技術書典の同人誌を制作したりしました。

techblog.goinc.jp

弊社に興味を持っていただけると嬉しいです。

*1:過去の私の会社のアドベントカレンダーの記事はすべて自作キーボードの記事でした

Image