Linuxを載せないPCを作りたい。

いままで作ったサイバーデック的なものとしては、

があったが、どれも消費電力が大きい傾向にあった。

そもそも、やりたい事に対してLinuxが乗ったデバイスを使うのはオーバーキルな感じがある。 また、既存のLinuxをそのまま使っても、あまりCyberdeck感が少ないのではないかと考えている。

そこで、ベアメタルで必要な機能を直接作ろうという事にした。 手始めにRaspberryPi PicoとMicroPythonを使って必要な機能が実現できるか試すプラットフォームを作る事にした。

マイコン

RaspberryPi Picoを使ってる。

これで使われているRP2040は、 メモリが264KBあり、 CPUクロックが133MHzある。 これは初代PCよりだいぶ早いはずだから、 PCを作るには十分なのではないかと考えた。

画面

ILI9488というSPI接続のディスプレイを使っている。 4インチで480x320の解像度があるので、 テキスト端末には十分だろう。 むしろ、文字が小さすぎるので倍角表示してもいいかもしれない。

キーボード

GPIOにスイッチをつないで自前でスキャンしてる。 12x4の48キーにしている。 GPIOをケチるために倍マトリクスを使ってる、 二乗マトリクスを使ってもよかったかもしれない。

親指で操作する事もあるだろうから、レイヤが多すぎないようにキーの数を多めにした。

試しにTUTコードでの漢字入力もつけてみたが、 MicroPythonのinput文などが日本語を受け付けてくれないようだ。残念。

電源

PicoのUSBに電源をつなぐと動作するようになっている。

また、BL-5Cバッテリーを繋ぐ事もできるようにした。

全体でxxmAの消費電流になっている。 xxmAのBL-5Cでxx時間使える計算だ。

SDカード

使ってる画面基板はSDカードスロットもついていた。 これを使って、SDカードの読み書きもできる。

カートリッジスロット

拡張カードリッジが差せるスロットもつけた。 とりあえず、電源とi2cを出している。

例えば、次にRTCや通信機能が欲しいが、 ここに差せると思う。

MicroPython

とりあえず、遅くてもいいから動くファームウエアをでっちあげるのに、 MicroPythonはとてもよかった。 エディタのマクロで書き込みから起動まででき、 PCからデバッグ出力が見える。

今後PicoSDKに移行してもこれができるといいのだが。

ファームウエア

今のところ、

  • ILI9488のドライバ
  • フォントを使っての文字描画
  • ターミナルエミュレータ
  • キーボードのスキャン
  • ひらがなと漢字の入力

ができている。

また、PyDOSというパッケージを使う事で、 DOSライクなツールを動作させる事ができている。

今後やりたい事

  • MicroPythonの範囲内での高速化
  • 自作言語への移行
  • RTCを使ってみる
  • 日本語が通るエディタを作る
  • Wikipediaのデータのビュワーを作る
Permanent ID of this document: 80bcfa253195beb71994e8ddb9352e92