懐かしの「PocketCHIP」を生き返らせる方法【再フラッシュ手順】

これが問題のLinuxマシーンは以前スタートアップで入手した「Pocket C.H.I.P.(ポケットチップ)」という小型のハンドヘルドタイプの小さなLinuxマシーンで、2016年に米国の「Next Thing Co.」が発売したものです。


https://ttripper.blogspot.com/2016/05/pocketchip.html

当時9ドルで販売された「C.H.I.P.」という小型のマイコンボードに、4.3インチ(420 x 272)のタッチ液晶とコンパクトなキーボードとバッテリー付きで、レトロゲームの開発環境「PICO-8」や「SunVox」というパワフルなソフトシンセ等が搭載されていて6千円ほどで入手できました。

「PICO-8」
https://www.lexaloffle.com/pico-8.php

「SunVox」
https://www.warmplace.ru/soft/sunvox/


バッテリーも搭載されていたので持ち運びもできて、ガジェット的には最高にラブリーなマシーンでしたが、キーボードは簡易的なスイッチ式なので、文字入力はコマンド入力程度の使用に限定されました。

PocketCHIPはブログでも何度か取り上げているので、その他の記事も参考にしてください。
https://ttripper.blogspot.com/search/label/PocketCHIP

スタートアップ企業の9割以上は数年以内に倒産するというジンクスどおり、Next Thing Co.も2年程の2018年3月に事実上の倒産しました。倒産によって全てのサポートも終了して、リビルドのためのフラッシュや保守管理が難しくなり、そのまま放置していました。

たまたま部屋の片付けをしていて、懐かしの「PocketCHIP」にご対面して起動チェックしてみたら全く何も起きません。バッテリーをチェックするとまだ生きていて、充電してみると既定値レベルの充電ができましたが、起動はせず画面は真っ黒のままでした。

ネットで調べてみると、この「PocketCHIP」に使われているフラッシュメモリーに問題があって、長期間通電しないとメモリーが飛んでしまう現象が起こるようです。

後期版(Pocket C.H.I.P.標準)のメモリ「MLC(Multi-Level Cell)」が問題で、半年~1年の放置でブートローダ(U-Boot)領域のビットエラーがECCの修復限界を超えるようで起動不能になります。

おそらく中古品で出回っている「PocketCHIP」の多くがこの症状で起動不可能なものがほとんどだと思います。再起動にはフラッシュメモリーの再インストールが必要で、メーカーが倒産していてサポートも終わっているので簡単ではありません。

しかし、有志の方がNext Thing Co.の倒産前に、サポート環境のバックアップをしてくれていたので、そこから必要なファイルをインストールすることで再フラッシュは可能です。

ただ、そのためにはLinuxパソコンが理想的です。Windowsパソコンでも不可能ではないようですが、USB接続が問題になる場合が多いようです。ということで送料込4500円のLinuxパソコンを入手しました。


ベースは12年前のノートパソコン (LIFEBOOK A574/H) ですが、Core i5-4300M、GB、 SSD 256GBにLinux(Ubuntu 26.04 LTS)のバランスで起動も早くて動作もサクサクで快適です。Google Cromeをインストールすれば、いつものブラウザ環境がそのまま使えるのでLinux を使っている意識すら必要ありません。 Windowsがどれだけムダに重いか実感できます。


このパソコンは画面もとても綺麗で傷が殆どありません。おそらく企業向けリースアップ品のようで美品です。SSD 256GBだけで5千円ほどしますから損はないと思います。古いパソコンはWindowsを捨ててLinuxマシーンにすれば快適に使えると思います。

ということで、以下は再フラッシュの手順になります。

==========================================
まず「C.H.I.P.」のバージョンを確認します。
==========================================
「PocketCHIP」から「C.H.I.P.」を取り外して、裏面または表面の刻印を確認します。

・v1.0 の表記がある場合は初期版(SLC 4GB の可能性が高い)
・v1.1 の表記がある場合は後期版(MLC 4GB または 8GB)



現在出回っている「PocketCHIP」のほぼ 9 割以上は後期版(MLC 搭載)です。そのため「フルバックアップの取得」や「定期的な通電」といった対策は必須になります。

==========================================
再セットアップ手順
==========================================
まず「C.H.I.P.」を FELモード(書き込みモード)にします。
「C.H.I.P.」 基板上にある FELピンとGNDピンをジャンパ線やペーパークリップで接続(ショート)させます。その状態のままUSBケーブルでPCと接続します。



==========================================
ファームウェア(イメージ)の書き込みを行います。
==========================================
現在、最も安定して書き込めるコミュニティスクリプト(Thore Krug 氏の「Flash-CHIP」など)を使用します。

1.linux PC のターミナルを開いて、依存パッケージと書き込みスクリプトを取得します。
----------------------------------
Bash
git clone https://github.com/thore-krug/Flash-CHIP.git
cd Flash-CHIP
sudo chmod +x Flash.sh
----------------------------------

2.書き込みスクリプトを実行します。
----------------------------------
Bash
./Flash.sh
----------------------------------



3.メニューが表示されたら PocketCHIP 向けイメージ(PocketCHIP image または stable-pocketchip)を選択して実行します。

4.書き込み完了のメッセージが出たらUSBを抜き、FELとGNDのショートを解除します。

=============================
本体の組み立てと初回起動
=============================
Pocket C.H.I.P. ケースへ戻す

1.「C.H.I.P.」を「PocketCHIP」のケースに再装着します。
2. 電源ボタンを長押しして起動します。
3. 初期設定画面「PocketCHIP」が立ち上がることを確認します。



=============================
Wi-Fiネットワークの設定
=============================
Pocket C.H.I.P. の画面(PocketDesk)の「Settings」アイコンから Wi-Fi に接続するか、ターミナルで nmtui コマンドを実行してインターネットに接続してください。

=============================
パッケージリポジトリ(APT)の修正
=============================
公式サーバー閉鎖のためデフォルトのままでは「apt-get update」がエラーになるため、ミラーサーバーへ変更します。

1. Pocket C.H.I.P. 上のターミナルを起動します。
2. リポジトリ設定ファイルを編集します。
----------------------------------
Bash
sudo nano /etc/apt/sources.list
----------------------------------

3.記述されている「opensource.nextthing.co」の部分を、「nano」テキストエディターでミラーサイトである「chip.jfpossibilities.com」に書き換えて保存します。

・ファイルの保存 Ctrl + S
・エディタの終了 Ctrl + X
・ワード検索 Ctrl + W

4. パッケージリストを更新します。
----------------------------------
Bash
sudo apt-get update
----------------------------------

キャブレーションの設定は下記のブログを参考にしてください。
https://ttripper.blogspot.com/2016/09/pocketchip_24.html

日本語対応やブラウザのインストールもしたいところでが、時代的にもスペック的に現実的ではないでしょう。この環境には必要ないと考えるほうが精神衛生的に良いかと思います。
念のためにフルバックアップしておくのが良いかと思います。次回の復旧が簡単になります。

=============================
PICO-8の注意点
=============================

再フラッシュ(再セットアップ)を行った場合、Pocket C.H.I.P. に標準搭載されていた PICO-8 のライセンス(使用権)が失われることはありません。ただし起動・利用のためにはいくつかの注意点と復旧作業が必要になります。状況や復旧手順を整理しました。

1. PICO-8 ライセンスの扱い
Pocket C.H.I.P. に付属していた PICO-8 は、ハードウェア購入時にバンドルされているライセンスです。

◆ Pocket C.H.I.P. 専用イメージで再フラッシュした場合
コミュニティが公開している Pocket C.H.I.P. 向けの公式アーカイブイメージ(stable-pocketchip 等)には、最初から C.H.I.P. 向けに調整された PICO-8 のバイナリが含まれています。そのため、再フラッシュ後もそのまま起動して利用可能です。

◆ Lexaloffle 側の「スタンドアロンアカウント」について
当時の購入手順で Lexaloffle(PICO-8 の開発元)のアカウントと連携・登録を行っていなかった場合、PC や Mac 用の PICO-8(単体版)をダウンロードする権限は付与されません。あくまで Pocket C.H.I.P. 実機上での動作 に限られます。

2. 再フラッシュ後に発生する PICO-8 のトラブルと対処法
再セットアップ直後は、Lexaloffle 側の仕様変更や通信エラーによって PICO-8(特に SPLORE 機能でのオンラインカートリッジ読み込み)が正常に動かない場合があります。

症状①: SPLORE(オンライン検索)でネットワークエラーになる
PICO-8 内で SPLORE を起動してオンラインでカートリッジを探そうとすると通信エラーになる場合、PICO-8 の通信先 URL や証明書が古くなっているのが原因です。
【対処法】 fixchip スクリプトの実行、または証明書・設定ファイルの修復を行います。

----------------------------------
Bash
# 証明書の更新
sudo apt-get install --reinstall ca-certificates

# 設定・自動修復スクリプトの実行(PICO-8の通信設定等も補正されます)
curl -sSL https://raw.githubusercontent.com/daisyUniverse/fixchip/main/chip | bash

----------------------------------

症状②: 自作カートリッジやセーブデータが消えた
再フラッシュを行うと、NAND ストレージ全体が初期化されるため、当然ながら個人で作成・保存した .p8 ファイルやセーブデータは消去されます。

【バックアップの場所】 今後再フラッシュする可能性がある場合は、あらかじめ以下のディレクトリにあるファイルを USB メモリや PC(scp コマンド等)へ退避させておいてください。

? 自作カートリッジ・セーブデータ保存先:
~/.lexaloffle/pico-8/carts/

まとめ
再フラッシュを行っても Pocket C.H.I.P. 上で PICO-8 をプレイ・開発するライセンスは保持され、イメージ書き込みと同時に復元されます。もし過去に独立した Lexaloffle アカウントにアクティベーションコードを登録済みであれば、Lexaloffle 公式サイトから最新の Raspberry Pi 版 / Linux 版 PICO-8 をダウンロードして Pocket C.H.I.P. へ手動で差し替えて更新することも可能です。


================================

PocketCHIPにプリインストールされていた当時のPICO-8(v0.1.7?v0.1.8付近)と現在の最新バージョン(v0.2.6以降)では内部仕様が大幅にアップデートされていますが、最新のPICO-8をPocketCHIP上で動作させることは可能です。
ただし、そのまま手軽に自動更新できるわけではなく、いくつかの留意点と対応作業が必要になります。

◆ ARM (Linux) 用ビルドの差し替え
PocketCHIPは32bitのARM Linux(CHIP OS)で動作しています。Lexaloffle公式サイトのマイページから購入者向けに提供されている「Raspberry Pi / Linux ARM32版」の最新ZIPファイルをダウンロードし、PocketCHIP内の既存のPICO-8実行ファイルと差し替えることで更新できます。

◆ 画面解像度とUIの調整
PocketCHIPの液晶画面は480×272ドット(アスペクト比16:9)ですが、PICO-8本来の解像度は128x128です。最新版に置き換えた際、画面の拡大率(-draw_rectや-pixel_perfectなどの起動オプション)を調整しないとUIがはみ出したり小さく表示されたりするため、起動用スクリプトの設定修正が必要になる場合があります。

◆ 互換性の問題(旧バージョンで作られたCartridge)
PICO-8はアップデートで言語仕様(Luaの非標準拡張の記述など)やメモリ割り当てが最適化・修正されてきました。最新版であれば最近作られたコミュニティ作品(カートリッジ)も問題なく動作しますが、逆に「 PocketCHIP時代のごく初期に作られた古いカートリッジ」のコード記述によっては、最新版で警告やエラーが出たり挙動が変わるケースが稀にあります。

◆ PocketCHIP専用インターフェース(PocketCHIP Edition)
初期のPocketCHIP用PICO-8には、あの小さなキーボードや画面に最適化された独自UI・スキンが適用されていました。通常版の最新Raspberry Piビルドへ更新すると一般的なPC/Linux版と同じUIになるため、PocketCHIP独自のルック&フィールは失われます。

手元にあるPocketCHIPで最新のPICO-8作品を遊びたい、あるいは最新のAPIで開発したい場合は、Linux ARM32用ファイルを配置して設定調整を行えば、現在でも現役のPICO-8端末として動作させることができます。



Amazon M5Stack Cardputer
M5Stack Cardputer


Amazon M5Stack Cardputer
M5Stack Cardputer


このブログの人気の投稿

空き缶スターリングエンジンの作り方

カードサイズの小さなコンピュータ「M5Stack Cardputer ADV」でソフトシンセは作れるか?

いまさらスペースコロニーゲーム「Space Colony: Steam Edition」にハマった

SpaceXのスターリンク衛星の見方 「Heavens-Above」無料アプリ

AIは賢く見えて究極のバカ「LLMの課題」、Geminiで「ソフト・シンセサイザー」を作ってみました。

プラダンでカヤックを自作する。【総集編】

ダイソーのEPPグライダーを凧のように飛ばす方法 (ラインコントロール・グライダー)

AIでシンプルな「ライフ・シミュレーター」を作ってみた

ファミコンゲームの作り方「X6 Game Player」