![見出し画像](https://assets.st-note.com/production/uploads/images/115009929/rectangle_large_type_2_f0ae3738dbf41375362f4542cd697dbb.jpeg?width=1200)
KiCad7.0でGP2040-CE用基板を設計してみました
![](https://assets.st-note.com/img/1693529663106-FMEDFXzkD9.jpg?width=1200)
はじめまして。iw回路設計と申します。
KiCadを使った回路設計や基板設計などを行っております。
「GP2040-CE」というオープンソースのゲームパッドファームウェアをご存じでしょうか?
私自身、GP2040-CEのことは最近知ったばかりなのですが、ゲームパッドとして動作させるためのとても多彩な機能が実装されており、オープンソースなので自分でソースコードを改良して独自の機能を実装することも可能です。
こちらのGP2040-CEを動かすための基板をKiCadで設計してみましたので、今回はその概要をざっくり紹介したいと思います。
GP2040-CEとは?
Raspberry pi picoといったRP2040マイコンをベースにしたマイコン基板にこのGP2040-CEのファームウェアを書き込むことで、アケコンやゲームパッドとして動作させることができるファームウェアです。
GP2040-CEについてのドキュメント: https://gp2040-ce.info
github : GitHub – OpenStickCommunity/GP2040-CE
「GP2040-CE」でWEB検索してみると、GP2040-CEを使って最近流行りの薄型レバーレスコントローラを自作されている方が結構いるようです。
GP2040-CEの機能
GP2040-CEは非常に多彩な機能があるので、ここではすべてを挙げることはできないのですが、個人的に面白いなと思った機能が2点ほどあります。
・ウェブコンフィグレータ機能
・設定でUSBキーボードとして動作させることが可能
一つは「ウェブコンフィグレータ」というwebブラウザ上でGP2040-CEの各種設定ができる機能です。
特に専用設定ソフトなどを必要とせず、ブラウザでGP2040-CEが動作しているマイコン基板にアクセスすることで各種の設定を行うことができます。
GP2040-CE自体にウェブサーバの機能が実装されており、特定のボタン(S2ボタン)を押した状態でUSBケーブルでPCに接続すると、USB経由のネットワーク機器(ウェブサーバ)として振舞うようになっているようです。
![](https://assets.st-note.com/img/1693203528847-r4DmYjhHMv.jpg?width=1200)
もう一つの面白いなと思った機能として、USBキーボードとして動作させることが可能な点です。
上記のウェブコンフィグレータによる設定で、入力モードを「キーボード」に設定すると一般的なUSBキーボードとして動作するようになります。
![](https://assets.st-note.com/img/1693529414317-EEvJPHkakQ.jpg?width=1200)
しかし、GP2040-CEの仕様としてキーの数は最大18個と決められているので、すべてのキーを備えたフルキーボードとして動作させることはできません。
ただ、ボタンそれぞれに任意のキーを割り当てることが可能です。
![](https://assets.st-note.com/img/1693205563282-iFsFJp1I9V.jpg?width=1200)
左手デバイスのようなキーボードが作れるのでは?
上記の2つの機能によって、PCでのショートカット操作用キーボード(いわゆる左手デバイスのようなもの)が作れるのではないだろうかと思い、GP2040-CE用の基板を設計してみたくなった、という次第です。
ということで、ようやく設計していきます
前置きが非常に長くなってしまいましたが、ここからが本題となります。
コンセプト
GP2040-CEで意図された本来のゲームコントローラとしての使い方ではないのですが、
今回は片手だけで操作するためのキーボード(左手デバイス的なキーボード)として基板を設計してみようと思います。
KiCadやBlenderのショートカット操作用キーボードとして使えるようなものを想定
自分の左手に合わせたキー配置にして、自分にとって一番使いやすいと思えるモノを目指す
なるべく小型、片手で操作しやすいサイズにする
仕様
マイコン : Raspberry pi picoを使用
基板サイズ: 100mm×145mm
電源 : PCのUSBポートから給電(Raspberry pi picoのmicroUSBコネクタ経由で給電)
ボタン数: 21個(Cherry MX互換のキースイッチを使用)
ディスプレイ:128x64ドットのモノクロ有機ELディスプレイ
LED : 18個(WS2812系のフルカラーLEDを使用)
KiCad7.0を使って回路図と基板を設計
回路と基板を設計するツールとして、「KiCad」というオープンソースの回路設計CADを使用して設計していきます。
KiCad公式サイト : KiCad EDA - Schematic Capture & PCB Design Software
私が運営している「KiCadで基板を作る」というブログでも、KiCadを使った基板作製記事を書いておりますので、よろしければこちらもご覧ください
回路設計・回路図作成
今回はRaspberry pi picoというマイコンボードを使用するので、マイコン周りの周辺回路の設計などはしなくてよいので、回路設計としてはそれほど難しくはないかと思います。
GP2040-CEのドキュメントを見ると、Raspberry pi picoのどの端子に何が接続されるのかが書かれているので、こちらを確認して回路図を作成しました。
![](https://assets.st-note.com/img/1693528306259-VtAV5xtUrX.png?width=1200)
基本的にRaspberry pi picoの端子に各スイッチやLEDをつないでいくだけですので、回路としてはシンプルな形になります。
![](https://assets.st-note.com/img/1693449812938-5HSRWF72pb.jpg?width=1200)
今回は行いませんが、もう少し歯ごたえのある設計がしたいという方は、Raspberry pi picoを使わずにRP2040のマイコン周辺回路を独自に設計してみるのも面白いかもしれません
(RP2040と周辺回路部品の調達や部品実装などの作業は結構苦労しそうですが。。)
基板設計
キースイッチの配置については、レバーレスコントローラのボタン配置が左手だけでも操作しやすい感じがしたので、レバーレスコントローラを参考にした配置にしてみました。
![](https://assets.st-note.com/img/1693536720473-v5rn0o7z0R.jpg)
基板サイズは100×145mmで、ギリギリ片手で持てるくらいです。
キースイッチ配置はレバーレスコントローラに似た配置ですが、一般的なアケコンやフルキーボードと比べるとだいぶ小さいサイズにしてみました。
![](https://assets.st-note.com/img/1693456074098-s8tW3Q9bgw.jpg?width=1200)
![](https://assets.st-note.com/img/1693531083692-68RDQClnVe.jpg?width=1200)
![](https://assets.st-note.com/img/1693531135285-AU7j9fIS0F.jpg?width=1200)
KiCadの基板エディタには「3Dビューア」という設計した基板を3Dで確認できる機能があります。
今回設計した基板を3Dで確認してみるとこんな感じになります。
基板の表側(部品面)はシルク表示をなるべく省いて(または部品の下に隠れるように記載して)シンプルな見た目になるようにしました。
![](https://assets.st-note.com/img/1693532815071-HcXNHx1WKy.jpg?width=1200)
![](https://assets.st-note.com/img/1693533032730-0gRYs6Na0H.jpg?width=1200)
設計完了(今回の記事はここまで)
といった感じでGP2040-CE用の基板を設計してみました。
今回はKiCadで基板データを設計するまで行いましたが、そのうち
基板発注
部品実装
GP2040-CEのファームウェア書き込み
を行って、当初のコンセプト通りの片手キーボードとして使えるかどうかまでやってみたいなと思っております。
最後までご覧いただきありがとうございました!
この記事が気に入ったらサポートをしてみませんか?