Cookpad Spring 1day Internship 2019 自作キーボードコースに参加してきました

3月19日にクックパッドさんで行われたCookpad Spring 1day Internship 2019 自作キーボードコースに参加してきました。その記事です。

internship.cookpad.com

 

ページ見てもらえば分かるのですがサービス開発、コンテナ、Swiftコンパイラと並んで異様な存在感が出ている自作キーボードコースが存在しています。

Twitterで流れてきた瞬間に思ったことは「自作キーボードインターンとは...🤔🤔🤔」と言った感じでした。

 

応募資格を満たしていたのと、”自作キーボードインターン”という聞いたこともない

インターンで内容がどんなことをやるのか、そして周りの界隈の人たちに後押しされて応募しました。

自作キーボード沼の住人としてエンドゲームのための努力を厭わない覚悟を決めました

 

今思えばかなり雑に応募フォームを投げてしまって数日後頭を抱える状態だったのですが数週間後何故か当選したとのメールが届き、非常に驚いたのを覚えています。

専用のSlackチャンネルに招待をされたのですがこの時点で受講者のレベルのヤバさが感じ取れていました。(オタク特有の「見たことあるアイコンだ...」現象も起こっていた)

 

開催当日

当日は大雑把に以下の流れでした

  • 自己紹介、Cookpadの紹介
  • 用意されたPCBを見ながらキーボードのリバースエンジニアリング
  • KiCadを使ってキーボードを設計する
  • 昼食
  • キーボードの組み立て
  • USBや回路の動作原理などについて
  • ファームウェアを焼いてオリジナルの自作キーボードを完成させる

 

どうやったらこんなに「「「濃い」」」受講者が集まるんだろうってぐらい濃い人々が集まっていて本当にすごかったです。

簡単に言うと会話スピードが通常の人間の1.5倍速で行われていました。

 

当日はハッシュタグが用意されていて結構ツイートがあるので合わせてみてもらえると面白いと思います。

twitter.com

自己紹介はこのインターンらしく好きなキーボードを言う流れになっていました。

自分は開発したキーボード(Lily58)の話をしたら講師のKOBA789さんに「なんでお前来たの???」と言われ会場が笑いに包まれました。確かにそれはそう。

yuchi-kbd.hatenablog.com

 

始まった時は時間が若干押していましたが各位の高速な自己紹介が行われ、Cookpadさん側の紹介も早口でした。そして時間はほぼ回復状態になり講義スタート。

 

最初は回路記号の説明等が行われ、この講義のために用意されたキーボードのPCBを見ながら回路図を起こしました

 

今回用意されたPCBとパーツの図

f:id:yuchi-kbd:20190320231135j:plain

 

2×3のキーマトリクス回路だったのでいつもキーボードを作る時の要領で書き上げました。

 

次は先ほど書き起こした回路図を使ってKiCad上でキーボードを実際に設計する流れになりました。

自分でもまだ知らない機能など知ることができて完全に良い体験でした。

 

昼休憩 

クックパッドさんと言うことで社内にすごい大きいキッチンがありそこで昼食を出していただきました。

カレー最高でした

 

「ガラエポ(PCBの素材)触りまくったので手洗うべきですね」みたいな会話が聞こえて面白かったです。

 

昼食後戻ると会場後ろに置かれていたキーボードが増殖しており、触りまくってました。

同じケース、同じキースイッチ、同じLube、同じメーカーのキーキャップを使ったキーボードなのに打ち心地が若干異なる不思議な状態のキーボードがありました。これが沼ってやつです。

数日前に自作キーボードコミュニティーで話題になった30%キーボードに触ることができてめちゃくちゃテンション上がりました。

改めて写真で見てもキーボードのミニマムさを追求すると美しさ変わるんだな〜って気持ちです

f:id:yuchi-kbd:20190322020754j:plain

recompile.net

 

 

午後

いきなりキースイッチの分解が始まりました。

自分はキースイッチは何百個単位でばらして潤滑油を塗るというよくわからない行為をしているのですが今回は内部に入っている板バネの構造などの解説などもあり新しい発見もありました。”””パワー”””を使えば中の板バネは抜くことができるらしい。

 

(爪楊枝でキースイッチを開けていますが開けられない人は専用のスイッチオープナーを使っていました)

f:id:yuchi-kbd:20190322030618j:plain

 

そしてはんだごてを使用してキーボードの組み立てを行いました。

この際も「はんだ付け」についての解説が行われていて聞いてて非常に面白かったです。

はんだ付けが終わると用意されたブートローダーを書き込んで頂き、講師のKOBA789さんがフルスクラッチで書き上げたRustファームウェアを焼いてLチカの動作確認を行いました。

ブートローダー,ファームウェアどちらも公開されています github.com

途中USBの規格や仕様、そしてUSB HIDの話などの説明ありました。早口でスピード感のある説明ながらもわかりやすい例えがあり自分でもなんとなく理解できましたが、この辺りの話は難しいですね。ですが自分が一番気になっていた話だったのでおもしろかったです。(USBのあの仕様書に目を通す気にはなれなかった人間なので)

 

気になったらこの辺のサイトを見ておくといいらしい。(後で見る)

www.usbmadesimple.co.uk

 

その後は本命(?)のファームウェアをいじってオリジナルの自作キーボードを作る感じになりました。 

事前にRustで行うと言われていたので勉強をすべきだったのですが前々日は遊び、前日はその反動で何もできず当日を迎えてしまったので「なにもわからん〜〜〜」って感じでコードを雰囲気で書いていました。

 

 事前の準備は大切だなと感じたのと自分の根本的な技術力のなさが改めてわかりました。周りも強い人間ばかりだったので余計にそれを感じてしまった。

これは自分への宿題と言った感じなので熱が冷めない内にもう1度取り組もうと思います。

 

最後は全員で記念写真を撮り解散という流れでした。

 

情報量がすごく、”””アツい”””インターンで本当にあっという間の8時間でした。

 

このあとは流れで近くのサイゼリアで打ち上げ?懇親会?的なものが行われましたがここでも高度な技術の会話が高速で行われていて自分は難しいのとスピード感についていけませんでした。技術系以外にも今回のインターンの裏話など様々な話があり最後まで話題は尽きませんでした。 

感想

とても楽しかったです。クックパッドさんの事業とはあまり関係のなさそうな分野のインターンということで謎が多い感じでしたが受けてみると受講者も講師の方からも熱が伝わってきました。

自分はキーボードを既に開発していましたがそれでも知らないことなどがありましたし、Rustで書かれたファームウェア周りを触るのははっきり言って苦行でした。

個人的には駆け足になってしまったUSB周りの話がもう少し聞きたかったです。

キーボードを開発したこと無い人でも回路設計、PCBデザイン、ファームウェア周りまですべて通じた領域のことを学ぶことができましたし大変良いインターン(?)だったと思います。

 

この記事はLily58 Pro Whiteで書きました