ALLPCBの無料キャンペーンで初めての自作キーボードを作ったら本当に無料で最高だった件

無料プリント基板が作れる!?

f:id:inajob:20211110123159p:plain

Twitter「無料でプリント基板を作ってくれる中国の会社がある」と聞いて、調べると、どうもALLPCBという会社がキャンペーンをやっているようでした。

f:id:inajob:20211110102332p:plain

キャンペーンの詳細を見ると・・

  • 毎月送料も含め無料で 5枚の基板を1回注文できる
  • 基板には大きさの制限がある(100mm*150mm = 15000mm2以内)
  • 基板の色は緑と白のみ
  • クレジットカード情報不要

というようなものでした。

f:id:inajob:20211110102353p:plain

プリント基板の製作会社は中国にたくさんあり、最近は少量を安くで作ってくれる業者も増えてきましたが、「送料を含めて無料」というキャンペーンは初めて見ました。

※このキャンペーンは2021年6月から9月ごろまで行われていたようですが、今現在は「1つ有料で注文すると、以降6か月は毎月無料で1度5枚基板を注文できる」というキャンペーンに変更されているようです。これでも十分お得です。この記事を見て興味がわいた方は → ALLPCB から試してみてください。

月に1回無料で基板を注文する日々

無料と聞いたら試してみたくなるのが人情です。

自分はプリント基板を設計し、中国の業者に発注したことは何度かあったので、これはうれしい!と思いこのキャンペーンに乗じて毎月基板を発注しました。

今回はそんな基板の中でも、比較的うまく作ることが出来た、「自作キーボード」について紹介しようと思います。

自作キーボードとは

このブログを見ているような人は、ご存知だとは思いますが「自作キーボード」という電子工作のジャンルがあります。

キーボードというのは、いわゆるパソコンに接続するキーボードです。

このキーボード、かなり奥が深く、配列やキーボードスイッチの押し具合の違い、テンキーの有無や、有線・無線など、こだわりポイントがたくさんあります。

市販の製品も大量に販売されていますが、キーボード自体を「自作」することもでき、近年この「自作キーボード」というのがエンジニアを中心に話題となっています。

「自作キーボードを作る」と言っても、様々なレベルがあり、「組み立て済みのキーボードを購入する」、「キットを買ってきてはんだ付けする」、など、様々な取り組み方がありますが、今回自分が挑戦したのは「基板の設計からおこなう」という比較的ガチ目な方法です。

キー配列を設計する

前述したALLPCBのキャンペーンを見ていて、気になったのが「基板の大きさの制限」です。

基板には大きさの制限がある(100mm*150mm = 15000mm2以内)

と書かれていますが、この100mmと150mmというのはあくまで例のようで、面積さえ条件を満たしていれば、とても細長い基板などもキャンペーンの対象であることがわかりました。

※残念ながら、現在のキャンペーンではこの制限は少しきつくなり長辺が150mm以内となっているようです。キーボードを作るのであれば左右分割式や、キーボードスイッチの小さなものが選択肢となりそうです。

f:id:inajob:20211110102353p:plain

この制限は中国の基板製造会社の中では異例です。

通常よくあるのは、100mmx100mmサイズがとても安く設定されており、それよりはみ出すと途端に料金が高くなるという価格設定です。 そのため、キーボードなどの細長い基板を作る際は、思った以上に基板の製造費用が高くついてしまっていました。

しかし、ALLPCBではこれが毎月5枚まで無料!!

ということで、自分はこの制限の中で自作キーボードを作る事を計画しました。

15000mm2以内のサイズでキーボードを作ろうと考えると、まずは標準となるキーボードスイッチの大きさが19.05mm程度なので、、

13×3のキーボードスイッチを並べるのがよさそうです。

一般的なキーボードはファンクションキー、数字、英字3列、機能キーと6列キーが並ぶものですが、今回作るキーボードはたった3列だけです。

自作キーボードの世界では、キーの数の少ないキーボードも数多く設計されており、このような3列のキーボードは30%キーボードなどと呼ばれるジャンルが確立されています。

f:id:inajob:20211110102555p:plain

少なくなったキーはLayerという仕組みを用いて、Layerキーと同時押しすることで利用することが出来るようにします。

キーボードのスイッチには様々なサイズがあります。例えばShiftキーは一般的に細長く、Enterキー縦長で、少し変わった形をしているものが多いです。

しかし今回は、設計を簡単にしようという事で、すべてのキーを文字キーと同じ正方形のキーとしました。

また、キーボードの各列は、通常のキーボードだと列ごとに少しずつずれているものですが、今回設計するキーボードはずらさず格子状にキーボードスイッチを並べました。

このような格子状のキーボード配置をOrtholinearなどと呼んだりするようです。

この段階で各キーの役割はふわっと決めていましたが、まぁ後でいくらでも変更することが出来るので、そこまでしっかり考えていません。

キーボードの配列の設計には下記サイトが非常に役立ちました。

www.keyboard-layout-editor.com

f:id:inajob:20211110102944p:plain

実はこのサイトでキーボードの配列を作ると、この後の基板の設計に必要な下準備も出来てしまうという優れものです。

基板を設計する

前項でキーボードの配列が決定したので、基板を設計していきます。

設計にはKiCADというオープンソースの基板設計ソフトウェアを利用しました。

keyboard-layout-editorでキーボードを設計し、生成されるjsonファイルを使うと基板設計のひな型になるデータを作ることが出来ます。

GitHub - yskoht/keyboard-layouter-playground: A sample circuit and netlist to quickly try the Keyboard Layouter plugin.に元となる基板データがあります。 さらに、このプラグインGitHub - yskoht/keyboard-layouter: Footprint auto placement plugin for keyboard layoutを使うことで、keyboard-layout-editorで設計したキーボードに必要な部品だけが残されます。

ここまでで、基板に載せるキーボードスイッチとダイオードのデータが用意できました。

これを基に以下の作業を行うことで基板データを完成させます。

  • マイコンの配置
  • 部品間の論理配線
  • 基板上の部品配置
  • 基板上の物理配線

マイコンの配置

今回はPro micro(Arduino)互換のマイコンボードを使うことにします。

f:id:inajob:20211110111152p:plain

加えてマイコンをリセットするためのスイッチや、デバッグに利用できるようにシリアルポートや、電源ポート、I2Cポートなどを接続するためのピンヘッダも配置しておきます。

f:id:inajob:20211110103326p:plain

部品間の論理配線

マイコン、キーボードスイッチ、ダイオードを論理配線します。

マイコン、キーボードスイッチ間はマトリクス状に配線を行います、何行、何列に配線するかはお好みです。 今回はなるべくArduinoのピン数を節約するために、6x7のマトリクスで配線を行いました。

f:id:inajob:20211110103350p:plain

基板上の部品配置

論理配線が終わったら次は部品配置です。 キーボードスイッチは、ほぼ自動生成された形のまま利用します。 ダイオードを対応するキーの近くに配置し、マイコンモジュールをなるべく邪魔にならないと頃に配置します。

基板の外形線もここで設計します。ALLPCBの無料の範囲をはみ出さないように気を付けて設計します。

基板とケースを固定するための穴もここで指定します。

f:id:inajob:20211110103431p:plain

基板上の物理配線

最後に物理配線です。各部品の足を、論理配線に従って配線します。 配線にこだわりがある場合は、手で配線を1つずつ指定することが出来ますが、今回はFreeroutingという自動配線ツールを使います。

KiCADから部品情報をExportしてFreeroutingに読み込ませ、自動配線を指示して、数時間放置するだけで、勝手に配線を行ってくれます。

ここまで作ると、出来上がりのイメージを3Dで見ることもできます。

折角なので「I Love ALLPCB」みたいな文字を入れてみることにします。

f:id:inajob:20211110103539p:plain

基板を発注する

基板データが出来たらいよいよ発注です。

KiCADから基板発注に必要なデータを出力しZipファイルに固めてALLPCBの注文フォームからアップロードします。

上手くキャンペーンが適応されると、合計金額が$0と表示され、本当に0円で注文ができます。

f:id:inajob:20211110103756p:plain

製造の状況は適宜アップデートされ、今回の場合は、8/15に家に届いたので、注文から1週間かからずに基板を手に取ることが出来ました。

Webページやメールはすべて英語で書かれており、中国語が必要となる事はありませんでした。

部品を注文する

自作キーボードづくりに必要な部品は、様々なパーツショップで購入することができます。

今回必要となった部品は以下です。

  • キーボードスイッチx39
  • キーボードキャップx39
  • ダイオード(表面実装版)x39
  • ネジとナット
  • リセット用タクトスイッチ(表面実装版)
  • Pro micro(Arduino)互換モジュール

自分はもっぱらAliExpressを使います。届くに1か月以上かかることもあり、また記載されている部品と違うものが届いたりすることもたまにあるので、あらかじめ買っておくのが良いと思います。

(すぐに部品が欲しい場合や、信頼のおける部品が欲しい場合は遊舎工房など、国内のパーツショップを利用するのが良いと思います。)

実は自分はすべての必要部品をすでに購入済みだったので、このステップは不要でした。 f:id:inajob:20211110104031p:plain

ファームウェアを用意する

自作キーボードのファームウェアは、QMKというものが非常に有名です。

QMKを自作のキーボードで使うためには、配線とキーの関係を設定ファイルとして用意して、QMKをビルドしなおす必要があります。

これにはプログラミングの知識が必要ですが、下記サイトを利用すると、ポチポチと配線をGUIで設定するだけで、QMKをビルドして、ファームウェアをダウンロードすることが出来ます。

どのキーに何の役割を持たせるかといった試行錯誤もこのツールがあれば非常に簡単でした。

Keyboard Firmware Builder

f:id:inajob:20211110104211p:plain

キーボードを組み立てる

さて、基板が届いたら、いよいよ組み立てです。

Pro micro(Arduino)互換モジュールに前述のファームウェアを書き込みます。ファームウェアはhex形式なので、avrdudeなどを使えば書き込みができますが、下記サイトを使うとWebページから簡単に書き込みが出来ました。

Pro Micro Web Updater

Pro micro(Arduino)互換モジュールと、キーを1つ、対応するダイオードを1つはんだ付けをして、パソコンにつないでみて、キーボードとして認識されるか?、1つのキーを押すと期待する文字が入力されるかを確かめるのが良いです。

f:id:inajob:20211110104236p:plain
写真は2つのキーで動作確認をしている様子です。

動作が確認出来たら後はひたすらはんだ付けです。

ケースを作る

ここまででキーボードの内臓は完成しましたが、このキーボード、このままではまっすぐ机の上に置くことが出来ず、使うことが出来ません。

ということで3Dプリンタを使ってケースを作る事にしました。

我が家の3Dプリンタでは、横幅が足りず、このキーボードのケースを一気に作ることが出来ず、左右2つの部品に分割してケースを出力しました。

f:id:inajob:20211110110615p:plain f:id:inajob:20211110110652p:plain

ケースの設計にはFreeCADを用いました。

f:id:inajob:20211110104506p:plain

応用する

前項までで、キーボードとしては完成ですが、この自作キーボード、コンパクトでかつ、ケースなどを取り付けるためのネジ穴もあるので、このキーボードと電子工作を組み合わせる事で、キーボード付きのガジェットを自作できそうだなと考えています。

もちろん市販のキーボードでも似たようなことはできるのですが、キーボード自体が大きかったり、ほかのパーツを取り付ける余地が無かったりと、不便が多いです。

こんな感じでM5StackとUSBHostシールドを組み合わせて、モバイル入力システムを作ってみたりしています。

f:id:inajob:20211110114206p:plain

今回の反省点

初めての自作キーボードという事もあり反省点は山積みです。同じようなことに挑戦する人のために、少しメモを残しておきます。

ネジがキーボードスイッチと干渉しそう

ネジ穴をキーボードスイッチの隙間に開けたのですが、いざ組み立てた後にねじを取り付けようとしたところ、ねじの頭が引っかかってしまい、ねじを取り付けるのが難しいという問題が発生しました。

f:id:inajob:20211110111738p:plain

ナットを上にすることでこの問題は一応回避できました。

f:id:inajob:20211110111816p:plain

Pro micro(Arduino)互換モジュールがかさばる

基板の面積を小さく保つために、キーボードスイッチの裏側に重なるようにPro micro(Arduino)互換モジュールを取り付けるように設計しました。 そのため、キーボード自体の厚みが増してしまいました。

また、キーボードスイッチとPro micro(Arduino)互換モジュールの両方をはんだ付けしてしまうと、部品をつけなおすことなどが非常に難しいという点も気になります。(普通に組み立てる場合は部品のつけなおしは不要なので、そこまで問題になりません。)

ハートマークが消えた

これは自分のデータの作り方がまずかったのですが、 この基板のキモの1つであるI Love(ハートマーク) ALLPCBの ハートマークが消えてしまっていました。

発注前にガーバーデータを確認していればこの間違いに気付けたのですが、、残念です。

仕方が無いのであとから修正液でハートマークを書きました。これはこれで好きな記号が書けて面白いという事で結果オーライです。

f:id:inajob:20211110112212p:plain

キーボードスイッチが基板取り付け用ではなかった

今回家にあったキーボードスイッチは、「パネル取付用」でした、このほかに「基板取り付け用」というものがあり、今回のようにに基板だけでキーボードスイッチを「基板取り付け用」を使うべきでした。

「基板取り付け用」のキーボードスイッチには基板に固定するための足が付いており、これによりまっすぐにキーボードスイッチを固定することが出来ます。

「パネル取付用」を使うと、この足が無いのでキーボードスイッチが微妙に傾いて、ガタガタになってしまいました。

複数のキーボードスイッチに対応したフットプリントを使いたい

キーボードスイッチのフットプリントはCherry MX専用のものを使いましたが、ホットスワップソケットや、ロープロファイルなど、ほかのキーボードスイッチにも対応したフットプリントもあるようで、これら複数のキーボードスイッチに対応したフットプリントを使うと、拡張性がさらに広がると思います。

GitHub - foostan/kbd: for building keyboard libraries に良いフットプリントがあるようです。

キー配列は12x3でもよかったかも

今回なるべくたくさんキーボードスイッチを並べようと13x3の配列にしましたが、 実際に利用してみるとどうも1列多く感じました。

30%キーボードの良いところの一つに、指を横にずらす必要が無い、というがあるのですが、13列だとどうも1列指が左右に動く箇所が出てきてしまい、もてあます感じがありました。

実際キーに文字を割り当てていても1列だけどうにも割り当てが難しい箇所がありました。

少しだけ隙間を開けてマクロキーとして使えるようにすると良いかもしれません。

参考

この記事が非常によくまとまっており、ほとんどこれに従ってキーボードを作ることが出来ました。

zenn.dev

まとめ

自作キーボード、気になってはいたのですが、基板を作るとなるとお値段が・・と躊躇していましたが、ALLPCBの素晴らしいキャンペーンのおかげで、ついにその一歩を踏み出すことが出来ました。

この記事を見て興味がわいた方は → ALLPCB から試してみてください。

流行っているだけあって、周辺ツールが充実しており、プログラミングすることなく、オリジナルの自作キーボードを作ることが出来ました。

皆さんもこの機会に自作キーボードに入門してみませんか?

エンジニアパパの1歳6か月の子育てスケジュール

うちの娘も1歳6か月となり一人で少し歩くこともできるようになりました。

そんな我が家の子守のスケジュールを紹介します。

 

前提条件

  • 自分、妻、娘(1歳6か月)の3人暮らし
  • 自分と妻は時短で共働き
  • 娘は保育園に通っている

f:id:inajob:20211017131600p:plain

娘は6:00ごろに目が覚めます。しばらくベッドでゴロゴロしてから起きます。

主に自分が娘と同じ部屋で寝ているので、起きた娘をあやしたりしています。
起きたらまずやるのが、おむつ替えと保湿です。

赤ちゃんの肌は乾燥しやすく、乾燥していると肌荒れや、アレルギーの原因となるとのことで、毎日寝起きとお風呂上がりには体にベビーローションを塗っています。

一方、妻は別室で寝ており 6時には起きて、夜中に回していた洗濯物の片付けや、朝ごはんの用意をします。

朝ごはんは私が食べさせつつ、妻も横で一緒に食べます。余裕があれば自分も一緒に食べるのですが、娘に食べさせつつ、自分が食べさせるのはなかなか大変です。

娘が食べ終わったら、妻に娘を任せて自分も残りを食べるというのがほとんどです。


自分、妻のどちらかが睡眠不足の日は、ここで「朝寝」をして、子守は一人に任せます。


保育園は8時からなのでそれまで娘と遊んで過ごします。

家から徒歩10分以内にある保育園なので、朝はそこまであわただしくないです。抱っこ紐に娘を抱っこして登園します。最近は最後の数メートルを歩かせたりしています。

娘を預けたら、帰宅して仕事開始です。

 

夕方

f:id:inajob:20211017131630p:plain

仕事は自分も妻も16時には切り上げます。現在夫婦ともに「時短勤務」を申請しているので、このくらいの時間で上がることが出来ます。(その分給料は減りますが・・・)

一人が夜ごはんの準備、一人が保育園のお迎えです。

最近はここの役割を夫婦で1週間ごとに交代しています。

晴れている日は保育園のお迎えの帰りに公園などに立ち寄り娘と遊んだりして 17時を目途に帰宅します。

夜ごはんの準備も17時を目途に行い、自分たちのご飯と娘の離乳食を用意します。

帰宅した娘はまずはミルクを少し飲みます。(そろそろ断乳したいのだけれど、ここで飲まないと不機嫌になります)

その後まずはお風呂に入ります。お風呂に入れるのは基本はお迎えにいった方が担当します。

お風呂に入っている間にもう一人は夕食を食べます。

30分ほどお風呂に入ったところで、娘だけ先にお風呂からあげて、子守をバトンタッチ

服を着せて、離乳食を食べさせます。

離乳食を食べさせている間にもう一人もお風呂から上がってきて、夜ごはんを一緒に食べます。

 

f:id:inajob:20211017131655p:plain

19:15を目途に娘のお休みの時間です。 暗くした部屋で20分ほど絵本を読んで落ち着いてきたところで、ベビーベッドにそっと寝かします。

夫婦で夜の掃除ルーチンをざざっとやって20時には片付けます。

20時から21:30くらいまではそれぞれの自由時間です。

夜は一人は娘のいる部屋、もう一人は別の部屋で寝ます。

 

朝タスク・夜タスクの管理

f:id:inajob:20211017131747p:plain

朝タスク、夜タスクは夫婦のうちで手が空いているほうが率先して進めるスタイルなので、「何をやるか」「どこまでやったか」を共有するために写真のような「タスクボード」を作っています。

これが意外と便利で、「あれやって欲しいのにやってくれない・・」とか「どちらも気づかずにずっと実施されない」などと言った問題が無くなりました。

 

また定期的にこのタスクボードを見直すことで、見落としていた家事や、家事の最適化についても話し合うことが出来ています。

 

まとめ

1歳6か月の娘を持つ共働き夫婦の日常のスケジュールを紹介しました。

他の家ではどうやっているのかなど、すごく気になるので、「うちはこうやっているよ!」というような話をぜひ教えてください。

インスタコード用コード譜変換プログラム「toICN」ここまでの開発の記録

この記事ではtoICNの開発の記録を残しておこうと思い書いています。

toICNとは

コード譜サイトの和音表記を、インスタコードのための記法 「ICN」 に変換するためのブックマークレットです。

インスタコードやICNについては以下の記事で詳しく紹介しています。

inajob.hatenablog.jp

toICNは以下で公開しています。

github.com

→→→ インスタコードの購入はこちらから!←←←

バージョン0

8/31に作りました。記憶が怪しいですが、8月は娘のコロナ騒動で非常にバタバタしており、その後自分は2回目のコロナワクチン接種などをして、副反応で寝込んでたりしたのがこの頃です。

バタバタでプログラミングがしばらくできていなかったのと、待ちに待っていたインスタコードがそろそろ届きそう、というワクワクの2つの感情から、前々から作りたかったブックマークレットの作成に着手しました。

618文字の比較的簡単なスクリプトですが、単純な楽曲であればこれで十分に役立つものでした。

GitHubで公開

バージョン0はgistで公開しましたが、今後ももう少し改良していきたいのと、音楽がわかる方にアドバイスをもらいたかったので、GitHubリポジトリを作る事にしました。

github.com

9/3 nonoyu さん 参戦!

9/3 nonoyuさんからプルリクエストを頂きました。ここからnonoyuさんの怒涛の快進撃が進みます。

github.com

この変更が、この後の転調機能対応時に非常に役立ちました。

github.com

今後のことを考えてテストコードを入れたのもここです。 あとからこのテストコードは非常に役立ちました。入れておいてよかった・・

github.com

すでにこの時点でChordWikiのKey情報を読み取り 適切な調を認識できるようになりました。

github.com

9/3 インスタコード作者様 参戦!

nonoyuさんと日を同じくして インスタコードの作者様である ゆ~いちさん からもアドバイスをいただきました。

以降、音楽的な疑問や、インスタコードの設計思想など様々な面でゆ~いちさんからアドバイスをいただいています。

github.com

9/5

その後GitHub Actionsを設定しPR時に自動的にテストを実行するようにしました。めっちゃ便利です。 (このあたり仕事でも似たようなことをやっていたのが役立ちました)

github.com

インスタコード利用者のことを意識してGifアニメーションでの説明を用意しました。 このあたりからインスタコード利用者の方々からtoICN便利!という感想をいただき始めました。

github.com

9/6

ChordWikiに記載された曲の途中での転調にも対応しました。(by nonoyuさん)

github.com

9/9

toICNのURLをTwitterなどに投稿したときにいい感じの画像が出るようにしました。 (ロゴを頑張って書きました)

f:id:inajob:20211014152415p:plain

github.com

9/11 pastakさん 参戦

user.js版をpastakさんに作ってもらいました。 これは今後、ブラウザの機能拡張など作る場合に大いに役立ちそうです。

github.com

インスタコード公式ページに紹介してもらう

仕事が早いですね。インスタコード利用者の中にはPC操作が苦手な方も多く、そういった方にも優しく書いていただけているようで、助かっています。

みやびさんの動画で紹介していただく

インスタコード公式Youtuberである「みやび」さんにも紹介いただきました。こちらも非常にわかりやすい。

www.youtube.com

怒涛のUI変更 by nonoyu さん

キーやレベルを表示・変更するUIを一気に作ってくださいました。見た目が良くなり一気に使いやすくなりました。 f:id:inajob:20211014153433p:plain

github.com

レベル変更機能もインスタコード初心者のためによさそうです。

github.com

Twitterでの音楽理論話 by さろげーと さん

和音名とその構成音について、よくわからなくなってまとめていたら、いろいろ教えてくださいました。 これ以外にも音楽理論的な側面で様々なアドバイスをいただいています。

10/2 そして新たな楽器へ・・

こちらもnonoyu さんの成果ですが、 「一五一会」という楽器に対応させるという野心的な試みです。

新たなモードを追加(Offモード・一五一会モード) by ts-uc · Pull Request #128 · inajob/toICN · GitHub

10/7 YouTuber 東雲めぐ さんの弾き語り動画

これは toICNの話というよりはインスタコードの話ですが・・ チャンネル登録数がすさまじい YouTuberさんにもインスタコードを紹介されていて、すごいところまで来たなーと感じました。

ちらっとtoICNの話も触れられていてうれしかったです。

f:id:inajob:20211014153303p:plain

www.youtube.com

10/9 AndroidChromeで突然toICNが動かなくなる対応

Twitterやインスタコードのフォーラムで報告があって気づいたのですが、どうもAndroidChromeブックマークレットの文字数制限が急に実装されたようで「5000文字」を超えるブックマークレットがうまく登録されない問題が起きました。

GitHub PagesにJavaScriptを配置し、それをブックマークレットから呼び出すように構成を変更し事なきを得ました。

pastakさんが作ってくださったユーザスクリプト用のJavaScriptが役に立ちました。

github.com

まとめ

インスタコードが届くのが楽しみすぎて自分のために作り始めた toICNですが、ここまで書いてきたように様々な方の助けを得て、私が思っていた以上に良いものとなりました。

ここまでのところで大まかな機能は完成しているので、今後は開発のペースは落ちていくとは思いますが、継続して機能追加やバグ修正をしていこうと思っています。

バグ報告やプルリクエストもお待ちしていますので是非是非!

github.com

→→→ インスタコードの購入はこちらから!←←←

インスタコード/InstaChordファーストインプレッションとtoICNの紹介

インスタコード/InstaChordとは

ついに我が家にもやってきましたよ!

ってインスタコードって何?って人のために少しだけ説明すると・・

インスタコードとは「誰でも弾ける新しい楽器」です!

具体的には、こんな形の楽器で、ネックの部分のボタンで和音を簡単に選択でき、ボディ部分の6個のパッドを撫でることでギターのように演奏ができるというものです。

→→→ インスタコードの購入はこちらから!←←←

f:id:inajob:20210915002311j:plain

インスタコードのクラウドファンディングが行われたのは2020年5月のこと。

確かこの記事を見てその存在を知りました。

fabcross.jp

自分も「和音が鳴る電子楽器」を開発しているので、このクラウドファンディングにはかなり注目しました。

加えて、Maker Faireなどでも良く出会う、電子楽器の先輩(と勝手に思っている)「電子楽器”ウダー”の宇田さん」が開発にかかわっているという事で、自分の中の期待が非常に高まりました。

f:id:inajob:20210915002400p:plain
https://instachord.com/company/developper/ より

そして自分は2020年6月1日に予約注文しました。

インスタコード/InstaChord ファーストインプレッション

非常に洗練された筐体で、かなりの高級感があります。

画面も大きく見やすく、音色も安っぽくなくいい感じです。

f:id:inajob:20210915002911j:plain

和音を選択するボタンは、ダイアトニックコードがワンタッチで選択できるようになっており、それ以外の和音については修飾キーを利用して選択します。

f:id:inajob:20210915004626p:plain
https://instachord.com/instruction/manual/ から転載

まぁこの辺の思想は自分も似たような楽器を作っているのでするっと理解できました。

全体的な仕様は予想していた通りで、そこに関して驚きは少なかったのですが、やはり「実物を演奏する」というこの体験はモノがあってこそです。

和音を選択した状態で6つのパッドを撫でるとギターさながらの「ジャララーン」という音が鳴るという体験は、予想していた以上の物でした。

インスタコードでは、伴奏のみでメロディを弾くことが出来ないのですが、そこはいわゆる「弾き語り」スタイルで、歌を歌いながら弾くというのが標準的な使い方のようです。

実際に歌を歌いながら演奏してみるとこれまた楽しく、あえて文字で書くとするとカラオケと音ゲーが合わさったような楽しい感覚を感じました。

開封動画や、使い方のチュートリアルなどはYoutubeに動画が上がっているので気になる人は見てみると良いと思います。

InstaChord用の専用表記「ICN」

インスタコードは和音を簡単に入力できますが、和音というのは一般的な楽譜には「C」「Am」のように音名で書かれています。

では、インスタコードのボタンはこの音名と直接対応しているのかというと、話はそう簡単ではありません。 曲にはそれぞれ「キー」があり、キーが異なると曲を構成する和音のセットも変わります。そのため、曲のキーがCの時によく使う和音は「C, Dm, Em, F, G, Am, Bm」ですが、曲のキーがAとなると「A, Bm, C#m, D, E, F#m, G#」というようによく利用する和音の音名が異なります。

f:id:inajob:20210915004740p:plain

よく使う和音の数はキーが定まれば、さほど多くないのですが、キーに応じて異なる和音の表記がインスタコードのどのボタンに対応しているかをいちいち覚えておかないと演奏できないという問題があります。

インスタコードではこの問題を解決するために、あらゆるキーの曲を簡単に弾けるようにするために「InstaChord Number (ICN)」という特別な表記を用意しています。

ICNの簡単なものは単なる数字で「1」とか「2」とかです。

f:id:inajob:20210915003016p:plain
https://instachord.com/instruction/icn/ から転載(表は一部の和音の例です)

この番号はインスタコードのネックにある9つのボタンと対応しており、ICNが書いてある楽譜があれば、「C」とか「Am」とかのキーにより異なる和音とボタンの対応を覚えることなく演奏することが出来ます。

インスタコードに対応した楽譜をどうやって用意するか?

これはすごいんですが、このICNはインスタコード独自の表記のため、楽譜を専用に用意しないといけません。

インスタコードでは当初「楽器.me」というコード譜サイトと提携して、ICNをサポートした楽譜を提供する予定だったのですが、もろもろの事情により、この計画は頓挫しました。

現在インスタコードが公式で用意している方法としてはコード譜ライター」というツールがあります。これは一般的な音名に基づく和音(「C」とか「Am」とか)を入力すると、それをICNに変換して表示してくれるというアプリです。

www.youtube.com

コード譜ライター」も便利なのですが、弾きたい曲の和音を調べて、それを入力し、ICNに変換する、という手間が結構面倒なのが難点です。

コード譜ライター」で変換したICNをインターネット上で共有する試みも行われていますが、正しく権利処理しないと、歌詞などのデータは著作権侵害になる恐れもあります。

そこで自分が思いついたのが「toICN」です。

toICNの開発

インターネット上にはコード譜を公開しているWebサイトが多数あります。これらのWebサイトでは、一般的な音名に基づく和音(「C」とか「Am」とか)で和音が表示されるのみで、ICNには対応していないのですが、これを何とかICNに変換できれば、「コード譜ライター」にちまちま和音を入力して変換しなくても良くなるのでは?と考えました。

f:id:inajob:20210915005729p:plain
譜面は https://ja.chordwiki.org/wiki/%E3%81%B5%E3%82%8B%E3%81%95%E3%81%A8 から転載

実現の手段としては、ブックマークレットを用いることにしました。

これは結構古くからある手法で、ブラウザのブックマークにURLではなくJavaScriptを登録することで、任意のWebサイトで独自の処理を実行できるというものです。

これを思いついて、簡単な実装を試してみて、公開したのが8/30でした。

その後GitHubリポジトリとして公開したところ、インスタコードの購入者の方にも見つけていただくことが出来、さらには一緒に開発してくれる方も現れました。

toICNの開発の軌跡も紹介したいのですが、長くなるので、ここでは割愛します。

ともかく、toICNは「ワンクリックでコード譜Webサイトの楽譜をインスタコード用に変換できる」という便利なツールです。

↓↓↓↓↓ インスタコード持っている人にはぜひ試してほしいです。↓↓↓↓ github.com

下記で利用方法をGIFアニメで紹介しているので、試してみる際は参考にしてみてください。 (パソコンでも、iPhoneiPadでもAndroidでも利用できます)

何とインスタコード公式Youtuberである「みやび」さんがtoICNの説明動画を作ってくださいました。 こちらも非常にわかりやすいので是非見てみてください。

www.youtube.com

まとめ

インスタコードがやっと届いて、少し触ってみましたが、期待以上に面白い製品でした。

弾き語り用の楽器としてはかなり良いものとなっているので、楽器演奏が苦手だけど歌は好き・得意という人にはぜひ試してみて欲しいと思いました。

また拙作「toICN」もインスタコードで既存の楽曲を演奏するうえで非常に便利ですので、ぜひ試してみてください。

最後にこの記事を読んで「自分もインスタコードが欲しい!」と思った方!ぜひ下記リンクから注文してみてください。

(インスタコードは代理店を持たず、紹介パートナー制度を使ってマーケティングをしています。下記リンクは私のアフィリエイトコードとなっています。)

→→→ インスタコードの購入はこちらから!←←←

娘(1歳)のコロナ感染記録【復帰済み】

はじめに

正確な時期は伏せますが、自分の娘(1歳)がコロナ陽性となった記録です。
先に書いておきますと、今は元気に戻り、特に後遺症のようなものも無さそうなのでご心配なく。

保育園での陽性者発生

ことの始まりは保育園でコロナ陽性者が出たとの連絡です。娘は濃厚接触となってしまったようで、近いうちに一斉PCR検査を実施するとのことでした。

我が家は夫婦共働きなので、保育園が休園になるのは困るなぁ、、という程度の感想でした。

この時点では娘は元気でした。

それからは保育園が休園ということで夫婦で順番に有給を取ったりしながら娘を子守しつつの生活をする予定でした。

発熱・陽性

異変が起きたのは2日目。娘が発熱
まぁ1歳の子供に急な発熱はよくあることで、ここ最近は毎月1回は発熱していましたが、保育園でコロナ陽性者が出たと言うこともあり、これはもしや、、と思い、一斉のPCR検査より先んじて、PCR検査を受けることにしました。

子供向けのPCR検査を実施している病院を探すのに少し手間取りましたが、無事見つけることができ、当日中に検査を受けることができました。

※埼玉県の場合は下記ページから検索ができます。「小児の受診」にチェックを入れることで子供を見てくれる病院に絞り込めます。

flu-search.pref.saitama.lg.jp



結果は翌日に電話で教えていただき、なんと「陽性」

この時点で、私たち夫婦も濃厚接触となりました。

 

長い自宅待機期間


保健所とも連携が取られ、家族全員「自宅待機」ということが伝えられました。
期間についてはなんと最短で「24日間」

よく話で聞く「14日間の自宅待機」だと思っていた自分は思った以上に長い自宅待機期間に驚きました。

この24日間というのは、娘に症状が出ていることが原因です。

娘の症状がおさまりウイルスを発さなくなるのに10日間、その後濃厚接触者である私たち夫婦の自宅待機期間が14日間、ということだそうです。

理論的には娘だけは自宅待機の対象から外れるのでしょうけど1歳の娘を親から隔離して預けることなど出来ないので、家族3人とも24日間自宅待機、となりました。

もちろん娘の症状が10日以上続いた場合はこの期間は延びることになります。

自宅待機中の生活

娘の発熱は6日間ほど続きましたが、その後平熱に戻りました。しかしその後も数日だるそうにしており、やはり保健所の見立てどおり完全回復には10日ほどかかりました。

f:id:inajob:20210829152937p:plain

パルスオキシメーターが郵送されました。

その間、我々夫婦も熱が出るのでは、とハラハラしていたのですが幸いなことに夫婦とも元気でした。妻は職域接種で2回接種済みで、自分は1回接種済みだったのも良かったのかもしれません。

娘が回復して一安心、なのですが、まだまだ自宅待機期間は続きます。元気な娘を外に連れて行かずに子守する、というのはとても大変でした。

f:id:inajob:20210829152635p:plain
もちろん我々夫婦にも仕事があるので完全に休むというのも難しく、交代で有給を取得しながらの子守をしました。(仕事はほぼ完全にテレワークだったのが幸いでした)

自宅待機ということで、ベビーシッターサービスを使うようなこともできないので、夫婦のどちらかが倒れてしまうと、わりと「詰む」ので、無理のないように過ごしました。
食料はどうするか?、、と初めは心配だったのですが、ネットスーパー非対面受け渡しのサービスが利用できた為、この点は特に困ることがなかったです。

なんならUber Eatsや出前館的なサービスも使えるのでまぁお金にケチケチしなければ食料はどうとでもなりました。
それ以外の買い物もネットで買って「置き配」指定することで大抵のものは買うことができ、こちらも困りませんでした。


LINEで状況を聞きつけたママ友さんが家で使わなくなったおもちゃなどをまとめて玄関前に置いておいてくれるなど、ありがたい支援もありました。自宅に閉じこもりっぱなしの生活に飽きていた娘には非常に良いプレゼントでした。

 

娘がコロナの症状のために必要な薬も病院と薬局が連携して郵送してくれました。かかりつけ医ではなかったので、いつもと違う薬で不安がありましたが、、


意外と何とかなりましたが・・


ということで、蓋を開けてみると仕事しながらの娘の子守りが大変だった、というだけで、その他生活面においてはさほど困ることなく生活できた自宅待機生活でした。

もともと自分の趣味がインドアで、コミュニケーションも、ほとんどがネットを利用していたという事、仕事も既にテレワーク化していたことなどが幸いしたのでしょう。

ともあれ、24日間の自粛生活は大変でしたし、一歩間違えば危ないことも起き得ました体調不良はもちろんですが、大物家電の故障など対面しないと解決しない問題が起きると結構詰みそうだと感じました。

まとめ

ニュースを見る限り、このように身近な人がコロナ陽性者になったり、自分が濃厚接触者になることは、これからますます増えてくるように見えます。


この記事が、少しでも皆さんの参考になれば幸いです。

おまけ:モデルナ2回目難民

私は職域接種で1回目を接種していたのですが、2回目はこの自宅待機期間に予約してしまっていました。当然その予約通りにうけることはできないので、今話題の「モデルナ2回目難民」となってしまいました。

 

会社を通じて厚生労働省に連絡してもらったり、自分からも厚生労働省の窓口に連絡をするなどしたのですが、待機が始まった時点では、モデルナの2回目だけを予約することはまだ想定していないとのことでした。

 

しかし、私が自宅待機している間に事は進み、結局自宅待機が解禁してすぐに2回目の接種を受けることが出来ました。

私は東京都の会社に勤務しているため、下記の「都庁南展望室ワクチン接種センター」で接種することが出来ました。

 

都が設置するワクチン大規模接種会場に関する情報について 東京都福祉保健局

※今ページを見ると「若者へのワクチン接種」も始まったようで、渋谷の長蛇の列に並ぶより、こちらで打てる人はこちらの予約をするのがよさそうに見えます。

 

こちらも誰かの参考になれば幸いです。

ベランダ家庭菜園2021

我が家は角部屋なので、結構広いベランダがあります。ということで2年前からベランダにプランターを置いて「家庭菜園」を始めています。

 

と言ってもかなり小規模ですが、1つの丸プランターと、袋のまま育てることが出来る土を購入し合計2つの鉢を使って野菜を育てています。

2021年のターゲット野菜

一つは定番のミニトマトもう一つは初挑戦の「オクラ」にしました。

また「ミニトマト」の鉢には「バジル」も合わせて植えてみました。

調べると野菜によって「相性」があるらしく、「ミニトマト」と「バジル」はそこそこ良い相性のようでした。

4月

例年植えるのが遅くなっている、、ということで今年は4月初旬に植えました。後から振り返るともう少し遅くから始めても良かったかな?という印象です。

土はカゴメのトマトの土です。この土は何といっても「燃えるゴミ」として捨てることが出来るということで、都会での家庭菜園にはぴったりです。また、この袋自体を鉢として利用できるところも良いです。

 近くのホームセンターでは入荷数が少なく、すぐ売り切れてしまうので、そういう意味では4月初旬に植え始めて良かったです。

 

トマトの苗は、「接ぎ木」のものを選択。接ぎ木のほうが育ちやすく失敗しずらいようです。品種は「ミニキャロル」。そして横には「スイートバジル」の苗を植えました。

f:id:inajob:20210726095609p:plain

ミニトマトを育てる際に必要な「手」は例年使っているものがあるので使いまわします。「手」にミニトマトを括り付けるための「PPロープ」、「液肥」「水やりのためのバケツ・ペットボトル」なども例年使っているものがあるので、買うものは最小限にして始めることが出来ました。

3年目でわかっている知見

今年で3年目ということで、ベランダ菜園のTipsもそこそこ溜まってきました。

  • マンションの上の方の階なので風が強い。日当たりを求めて鉢を配置すると風でダメになる。
  • 育ち始めは風除けネットが有効、ある程度育ったら外してOK
  • ミニトマトは「接ぎ木」の苗が失敗しずらい
  • 水やりをやりすぎると根腐れする

などなどです、今年はこれらの知識を生かしてベランダ栽培を始めたのでスムーズに育てることが出来ました。

5月

もう一つの鉢でオクラを育てることに。「プランターでも育つ」と書かれた苗を購入。

オクラの根っこは下に長く伸びるらしく、少し深めのプランターを推奨とのこと。

一方ミニトマトはぐんぐん成長し、ひとまず第一段階は成功の様子。

f:id:inajob:20210726095650p:plain

そして5月下旬に衝撃の事件が・・

ヨトウムシ襲来

ある日バジルを見ると葉っぱにかなり大きな穴が!!

f:id:inajob:20210726095725p:plainf:id:inajob:20210726095750p:plain

これは植物の病気などではなく、なにか芋虫の仕業だな、、?と思って周りを調べると、、、大量の糞を発見!!これは確実に芋虫・・・

 

そして葉っぱを裏返してみると・・・いました!巨大な芋虫。

という事で退治できましたが、バジルは結構食べられてしまい、見るも無残な姿になりました。

ハーブ系は虫よけにもなるという事でミニトマトと一緒に育てていたのですが、まさか、そっちの方が芋虫にやられるとは・・・ ベランダでプランターで育てているので、虫の被害などはあまりないだろうと油断していたのですが、がっつりやられてしまいショックでした・・

強風でミニトマトがの枝が折れる

ちょうどこのころ結構強い風が吹く日があり、ミニトマトをしっかり紐で固定していなかったために、枝が折れてしまうという事件がありました。

端の方の枝ならそのまま折って捨ててしまうところなのですが、比較的大きな枝の根元が折れてしまい、これもショックでした・・

しかし、ダメもとで折れた部分を元に戻してガムテープでぐるぐる巻きにしたところ、持ち直し、結果としてその枝の先にも実が成りました。

ミニトマトの生命力に驚かされました。

6月

虫食いにも負けずバジルはぐんぐん成長し、花をつけました。後から知ったのですが、バジルは20㎝くらい伸びたところで、枝先をはさみで切ってあえて枝を分岐させることで収穫量を増やすことが出来るようです。

葉っぱが目的のバジルは、花を育てる必要が無いため、花の部分も早めにカットするのが良いようです。次育てるときは忘れずやりたいです。

f:id:inajob:20210726095853p:plain

バジルがあることで、献立もバジルを使ったものにしてみました。

f:id:inajob:20210726100223p:plainf:id:inajob:20210726100245p:plain

ちょっと食卓がおしゃれになりました。新たな食材というのは良いですね。

 

ミニトマトもぐんぐん成長し私の身長くらいまで伸び、6月下旬には中旬には実がなり少しずつ食卓にミニトマトが並べられるようになってきました。

f:id:inajob:20210726095932p:plain

オクラも少し変化は少ないものの順調に成長し6月下旬に1つ収穫することが出来ました。1つの苗だと、同時には1つしか実がならないようで、どう食べたものかと困りました。次回育てるときは複数の苗を育てるのがよさそうです。

f:id:inajob:20210726100004p:plain

7月

ミニトマトは7月下旬にはもう、後半戦という感じで、小さな実が増えてきました。もう少し間引いても良かったかもしれません。

実を大体取りつくしたところで、枝をはさみで短く切って、今年のミニトマトは終了です。結局実は100個以上できました。今年も大成功です。

 

バジルはまだまだ育っているので、引き続き育てていく予定です。

オクラ粛々と1つずつ実をつけていくスタイルで、8月もまだまだいけそうです。

 

ここまでのまとめ

ベランダ菜園も3年目ということで、うまく作れるようになってきました。今年は初めて「オクラ」を育てたり、ミニトマトと一緒にバジルを育てたりし始めましたが、そちらも順調です。

まぁ実際にかかった費用を考えるとスーパーで買ってくる方が絶対良いのですが、趣味としてのベランダ菜園というのは思った以上に面白いものです。

 

1歳の娘もいることですし、食育的な意味でもベランダ菜園を続けていきたいです。

メカニカルキーボードK66のためにQMKをビルドする

これは何?

カニカルキーボードK66を手に入れて、レビューしましたが、ただ普通のキーボードとして使うだけでは面白くない・・

inajob.github.io

ということで自作キーボードでよく使われるキーボード用のファームウェアであるQMKをK66でも利用する方法があるようなので、挑戦してみることにしました。

 

あらかじめ断っておきますが、このページの手順を真似てキーボードが文鎮化してしまったとしても、私は一切責任を負いませんので、試してみる方は自己責任でお願いします。後述しますが、同じK66でもこの手法が使えないものも存在するようです。

 

情報源

Wormier Docs - Wormier Docs

このURLにアクセスするとK66で利用できるQMKのビルド方法などが紹介されています。現在もアクティブに活動しているので、以降の記事の内容は古くなっている可能性があります。最新の情報は上記のURLなので、実際にK66用にQMKをビルドしようとしている方は、上記URLを参考にするとよいと思います。

 

QMKをそのまま利用できないのか?

QMKの本系は特定のプロセッサ向けに作られており、AVR(ATMega32u4)やARM(STM32系)などメジャーなマイコンの場合は本家のQMKそのまま利用できることがほとんどです。

また、自作キーボードの場合は自分で利用するCPUを選ぶので、QMKの対応しているCPUを選ぶでしょう。

しかし今回は既製品であるK66です。このキーボードに搭載されているのはARM Crotex-m0のIC 「VS11K15A」です。

f:id:inajob:20210616220742p:plain

全く聞いたことがないICですが、これはeVisionという会社の物らしく、さらに調べるとSonixという会社のSN32系のICと互換性があるようです(全く同じでマーキングが違うのか、互換性のある別物なのかは自分はよくわかってないです。)

 

ということでSN32系のIC用にQMKを移植する必要があります。

先人の歩み

はっきり言ってこの作業、自分にはお手上げです。普段はArduinoでぬるま湯開発しているので、ARMの、しかも聞いたこともないメーカーのICなんて何から手を付けて良いかわかりません。

 

しかし、今回は先人がいます。はじめに紹介したURLの内容の通りに進めれば、K66用のQMKがビルドできるという事なので、その手順に従って作業していくことにしました。

ICの書き換えはどうやるの?

一般的にはこのような組み込み用のマイコンファームウェアを読み出したり、書き込んだりするためには、ICSPとかJTAGとか、そういう書き込み用の端子に専用の書き込み器を接続することが多いです。K66の場合もどうやらJTAGが利用できるようですが、先人はもっと簡単な方法を発見していました。

 

HIDデバイスとして認識されているキーボードに特定のシーケンスでアクセスすることで、書き込みモードに切り替えるという技により、専用の書き込み機などを使わずにファームウェアの書き換えを実現しています。

womier-flasher/main.py at master · wormier-docs/womier-flasher · GitHub (この行ですね)

この機能はオリジナルのK66のファームウェアに実装されているのだと思います。(確証は無いです・・)

Jumploader

さて、ICの書き換え方法がわかりました。それっぽいファームウェアを作って、早速書き換えてみたいのですが、下手なファームウェアを書き込むと速攻でキーボードが「文鎮化」してしまいます。

文鎮化しても、何度も書き換えて試せばよいじゃない?と思われるかもしれませんが、前述した書き込みモードへの切り替え機能自体を壊してしまうと、もう簡単に書き換えることが出来なくなってしまいます。

(おそらくJTAGなどを使えば、この状態からでも書き込みできるとは思いますが、はんだ付けや専用の器具が必要となります。)

ということで、役立つのがJumploaderです。マイコンのブート時に実行される先頭部分にこのJumploaderを書き込みます。このJumploaderはキーボード用に最適化されており、通常起動時は何もせず素通りし特定の番地のプログラムへジャンプします。

しかし、マイコン起動時にBackSpaceを押しっぱなしにしておくことで、書き込み待機状態になります。

 

このJumpLoaderさえうまく書き込んでしまえば、変なファームウェアを書き込んでしまっても、BackSpaceを押しっぱなしにしてUSBケーブルを抜き挿しすることで、書き込みできる状態に出来ます。

 

ソースコードはこれっぽいです。 GitHub - xyzz/sn32f260-keyboard-bootloader

f:id:inajob:20210627215011p:plain

WomierFlasher

さて、ここまでの流れをワンタッチで実行することが出来るソフトウェアが公開されています。それがWomierFlasherです。

「オリジナルファームウェアを書き込み待機状態に切り替える」「Jumploaderを書き込む」「オリジナルのファームウェアを書き戻す」「QMKのバイナリを書き込む」

といった作業がGUIでポチポチで実行できます。

f:id:inajob:20210627215035p:plain

QMKのビルド

さて、ここまでわかれば後はK66用のQMKをビルドするだけです。といいつつ、ここで無茶苦茶ハマってしまいました。

どうも、ARM用GCCのバージョン依存によるもののようで、誤ったバージョンだと、ビルドが失敗したり、ビルドはうまくいくが、完成したファームウェア何かおかしいというようなことが起きました。

 

何かおかしいというのは、症状はいろいろあるのですが、、「初めに押したキーが押しっぱなしになってしまう」「LEDのアニメーションが停止し、キーボードとしても無反応となる」などです。

 

さて、どうやったら正しいファームウェアが作れるのか・・いろいろな組み合わせを試してみました。

SN32用のQMKの系譜

smp4488/qmk_firmware

https://github.com/smp4488/qmk_firmware/tree/womier-k66-rgb-support/keyboards/womier/k66

これがQMKからforkされたSN32用のQMKです。

 

SonixQMK/qmk_firmware

https://github.com/SonixQMK/qmk_firmware

さらにこれ、名前的にはこれがSonixのIC用のQMKのリポジトリのように見えます。(しかしここにはK66のサポートはありません。)

 

toastdb/qmk_firmware

https://github.com/toastdb/qmk_firmware/tree/womier_k66

そしてこれです。このtoastdb/qmk_firmwareがいま一番アクティブに開発されているリポジトリのように見えます。

 

また、このキーボードに搭載されているサイドLEDはまだ制御できないようで、絶賛開発中のようです。(もしかしたらサイドLEDが動くブランチがあるかもしれません)

ビルドできた組み合わせ

前述のQMKのリポジトリの中で自分がうまくビルドできたのは1つ目のsmp4488/qmk_firmwareと3つ目のtoastdb/qmk_firmwareでした。

 

ビルド環境の再現性を保つためにDockerで環境を整備することにしました。QMKのインストーラがインストールするARM用のGCCが期待したバージョンとは違うため、別途ダウンロードした古いバージョンのARM用GCCをインストールする必要がありました。

 

細かい手順はgistにまとめました。

gist.github.com

K66のDiscordにはtoastdb/qmk_firmwareの作者の方がいて、どうもこの手順のGCCとは違うバージョンのようなのですが、自分の場合はこの手順でないと何か動作のおかしいファームウェアが生成されてしまいました。

 

ただ、ごくまれにキーボードが固まってしまう現象が発生することを確認しています。K66のDiscordでは、このような問題を話題にしている人がいないことから、なにかこの手順に問題があるような気がしていますが、まだ原因不明です。

何かわかればこのページを更新しようと思います。

QMKで遊ぶ

ここまでくればQMKを使った自作キーボードと同じようにキーをカスタマイズすることが出来ます。

自分はFn+Spaceを「かな」、Fn+右Altを「英数」に割り当てて、簡単に日本語入力の切り替えができるようにしてみました。結構便利です。

この手順を試す際の罠

Discordでいろいろな方の話を見ていると、同じK66でも搭載されているICが違うものがあるようです。この場合はこの記事の手順は利用できません。

(特に私が紹介しているBanggoodにおいても、同じICのものが届くとは限らないと思います。K66を購入した方は、ぜひ私にどのICが搭載されていたか教えてください。)

まとめ

カニカルキーボードが触ってみたくて買ったK66ですが、思わぬHackが楽しめました。調べていく中で、JumploaderSN32用の移植K66専用の対応、、と様々な人たちの功績の積み重ねがあることを知りました。

ARM系のマイコンを深く触ったことがなかったのですが、まだまだ勉強が必要だなと思いました。ちょっとソースコードを見たところChibiOSというRTOSを使ってマイコン間の差異を吸収しているようでした。ChibiOS・・ 学ぶことは多そうです・・