スタックチャンはWindows11、MacOS、Linuxで開発ができます。MacOS、Linuxの場合は環境構築マニュアル(MacOS/Linux)を参照してください
Windows11上でスタックチャンのプログラムを書き込む手順を説明します。
Moddableを使用したスタックチャンの開発環境はUbuntuOSを想定しています。WSL2(Windows Subsystem for Linux 2)を使用することで、Windows環境上でUbuntuの環境を構築することができます。
この手順書では、Windows PowerShellとUbuntuの2種類のウインドウを扱います。インターフェースが類似しているため間違いやすいです。以下のようにコマンド入力欄に注目すると容易に見分けられます。
Windows PowerShell:コマンド入力欄の表示がPS C:\WINDOWS\system32>Ubuntu:コマンド入力欄の末尾の表示が$
WSL2とUbuntu22.04をインストールします。
以下の3つの手順によって、Windows PowerShellを管理者権限で開いてください。
- Windowsキーを押す
- 検索欄に「windows powershell」と入力する
Windows PowerShellのアイコンが出てくるので「管理者権限で開く」を選択してください。
開いたWindows PowerShell上に、以下のコマンドを入力し、実行してください。
コマンドは画像の通り、PS C:\WINDOWS\system32>の後に続けて入力し、Enterキーで実行します。
PS C:\WINDOWS\system32> wsl --install -d Ubuntu-22.04
インストールが完了したら、PCを再起動してください。
PCを再起動すると、自動的にUbuntuが立ち上がります。
自動で立ち上がらない場合は、以下の3つの手順によって、Ubuntuを開きます。(Ubuntuは管理者権限で起動せずに通常通りに起動してください)
- Windowsキーを押す
- 検索欄に「ubuntu」と入力する
Ubuntuのアイコンが出てくるので「開く」を選択してください。
ユーザー名とパスワードの入力を求められますので任意の文字列を入力してください。
ここで入力するユーザー名とパスワードはWindows11のものではなく、Ubuntuに設定するユーザー名とパスワードです。
ユーザー名では全角文字と大文字は使用できないため、小文字のみの半角文字の文字列で設定してください。
設定が完了したらUbuntuを再起動します。
Ubuntuのウインドウ右上の×アイコンをクリックして閉じた後、再度スタートメニューからUbuntuを選択してを起動してください。
末尾が$記号の文字列が表示されていればUbuntuの設定は完了です。
成功していれば、<設定したUbuntuのユーザー名>@...:~$表示されています。
Ubuntu起動時、root@"...:~#のように表示される場合、ユーザー作成の設定は失敗しています。
この状態に遭遇された際には本マニュアルの末尾の最初からやり直したい場合の節を参照し、再度Ubuntuのインストールを行ってください。
Ubuntuにスタックチャンの開発環境を構築します。
Ubuntuのウインドウ上で以下のコマンドを順番に入力してください。
コマンドは画像の通り、$の後に続けて入力し、Enterキーで実行します。
UbuntuではWindows PowerShellと違い、キーボードによるコピー&ペーストはshiftキーも押す必要があります。
コピー:ctrl + shift + c
ペースト:ctrl + shift + v
特に、ctrl + cをUbuntu上で実行すると、プロセス(現在実行しているコマンド・プログラム)の終了となりますのでご注意ください。
最新パッケージのリストを更新します。
$ sudo apt update
Pythonの仮想環境を作成する際に使用するvenvツールが含まれているpython3.10-venvをインストールします。
$ sudo apt install -y python3.10-venv
スタックチャンの開発にはNode.jsと、そのパッケージを管理するnpmという名前のソフトウェアを使います。
Ubuntuのパッケージマネージャー(apt)から直接インストールできるNode.jsのバージョンは古いため、VoltaというNode.jsのバージョン管理ツールを使って最新の安定版をインストールします。
Node.jsとnpmを管理するツールVoltaをインストールします。
$ curl https://get.volta.sh | bashインストールに成功するとsuccess: Setup complete. Open a new terminal to start using Volta!と表示され、新しいターミナルを開始するように促されます。
Ubuntuのウインドウを閉じ、Windows11のスタートメニューからUbuntuを再起動してください。
Node.jsとnpmをインストールします。
$ volta install node@22.7.0npmとNode.jsがインストール出来ているかを確認します。
以下の2つのコマンドをうち、それぞれ画像の通りに表示されれば完了です。
$ npm -v
$ node -vスタックチャンのプログラムをダウンロードします。
$ git clone https://github.com/rt-net/stack-chan.gitダウンロードしたスタックチャンのfirmwareフォルダに移動し、必要なソフトウェアパッケージをインストールします。
cdコマンドで作業するフォルダを変更できます。
npm install でインストールを実行します。
$ cd stack-chan/firmware
$ npm installModdableをインストールします。
コマンドnpm run setupによってスクリプトを実行します。スクリプトによって、自動でModdableのインストールが行われます。
以下に示す1つ目のコマンドの実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。
パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。
2つ目のコマンドでは、再度パスワードが要求されない内に実行してください。
もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。
$ sudo echo "Temporary SuperUser Grant"
$ npm run setup以下のコマンドでModdableの環境をM5Stack向けにセットアップします。
npm run setup -- --device=esp32はスクリプトを実行し、自動で環境のセットアップを行います。
1つ目のコマンドを実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。
パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。
2つ目のコマンドでは、このパスワードが要求されない内に実行してください。
もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。
$ sudo echo "Temporary SuperUser Grant"
$ npm run setup -- --device=esp32次のコマンドを実行して、PSRAM無効化の設定をします。
$ ./setting_scripts/unset_psram.sh次のコマンドを実行し、Shellの設定ファイルにsource ~/.local/share/xs-dev-export.shを追加します。これにより、Shellの起動時に自動で環境変数が設定されるようになります。
$ ./setting_scripts/set_xs-dev_env.sh 以下のコマンドでModdableの環境のテストをします。
$ npm run doctorModdableのバージョンがv4.9.5で、ESP32 IDF Directoryのパスが正しく表示されており、Supported target devicesがlin, esp32となっていれば成功です。
以下のコマンドでM5Stack CoreS3のPARAMの設定を確認します。
$ grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaultsCONFIG_SPIRAM=nと表示されれば成功です。
ここまで完了次第、Ubuntuのウインドウを閉じてください。
スタックチャンにプログラムを書き込むには、USBケーブルでPCと接続する必要がありますが、WSL2上ではPCのUSBポートに接続したデバイスを読み取れません。
usbipd-winというツールを使用することでWSL2上でもPCのUSBポートに接続したデバイスを認識することができます。
公式のダウンロードページから、最新版の.msi形式ファイルをダウンロードしてください。
ダウンロードしてきたファイル(インストーラ)に従ってインストールしてください。インストールが完了したらPCを再起動してください。
Windows PowerShellとUbuntuを起動します。
Windows PowerShellは管理者権限で起動し、以下のコマンドを順番に入力してください。
USBポートに接続されたデバイスリスト出力します。
PS C:\WINDOWS\system32> usbipd list以下の手順でスタックチャンとPCを接続して起動します。
スタックチャンとPCをUSBケーブルで接続します- スライドスイッチを上側にスライドさせてスタックチャンのバッテリー供給をONにします(同時にPCからバッテリーの充電も開始されます)
- 起動ボタンを押して
スタックチャンの電源をONにします(OFFにするときは6秒間長押しします)
スタックチャンを起動する前と同様に、usbipd listコマンドを実行して再度USBデバイスリスト出力します。
PS C:\WINDOWS\system32> usbipd list今回のコマンドで新たに現れたBUSID(画像の場合では2-1)がスタックチャンを指し示してます。
スタックチャンをbindします。
以下に示すように、コマンドの<スタックチャンのBUSID>部分を自身のスタックチャンのBUSIDと置き換えて実行した後、再度USBデバイスリスト出力してください。
PS C:\WINDOWS\system32> usbipd bind --busid <スタックチャンのBUSID>
PS C:\WINDOWS\system32> usbipd listUSBデバイスリスト上のスタックチャンのBUSIDがSharedとなっていれば完了です。
スタックチャンをattachします。
以下に示すように、スタックチャンのattachコマンドを実行した後、再度USBデバイスリスト出力してください。
(今回もbindのときと同様、<スタックチャンのBUSID>部分を自身のスタックチャンのBUSID`と置き換えて実行します。)
PS C:\WINDOWS\system32> usbipd attach --wsl --busid <スタックチャンのBUSID>
PS C:\WINDOWS\system32> usbipd listUSBデバイスリスト上のスタックチャンのBUSIDがAttachedとなっていれば完了です。
WSL2からスタックチャンを認識できるかを確認します。
Ubuntuでの作業に移ります。
lsusbコマンドで認識していることを確認します。
先程のPowerShell上でのスタックチャンと同じ名称のデバイスが表示されています。
今回の例では、USB JTAG/serial debug unitです。
$ lsusbダウンロードしたスタックチャンのfirmwareに移動し、プログラムのビルド・書き込みます。ビルドを行うことで、プログラムをM5Stackが実行できる形式に変換できます。ビルドしたプログラムをM5Stackに書き込めれば、スタックチャンを動かす手順は完了です。
先程の操作からUbuntuのウインドウを開いた状態であれば、一度再起動(Ubuntuのウインドウを閉じてから再度開く)してください。
cd stack-chan/firmwareで作業フォルダを移動し、npm run build --target=esp32/m5stack_cores3コマンドを実行してビルドします。
次に、npm run deploy --target=esp32/m5stack_cores3を実行すればビルドしたプログラムをスタックチャンに書き込めます。
$ cd stack-chan/firmware
$ npm run build --target=esp32/m5stack_cores3
$ npm run deploy --target=esp32/m5stack_cores3以下のように書き込みが完了次第、リセットボタンを押下してください。
リセットボタンの位置
リセットボタンを押下した後にスタックチャンに顔が表示されていれば書き込み完了です。
[注意!]リセットボタンを押下した場合、再度プログラムを書き込むためには、スタックチャンをattachする手順 も再度実行する必要があります。
どこからかマニュアル通りにいかず、エラーが出力されていまった場合、エラーに従ったり調べるすることで解決に繋がります。
ですが、Ubuntuを一旦アンインストールし、きれいな環境で最初から実行するという手段もあります。
その場合、管理者権限で開いたWindows PowerShell上で以下のコマンドを実行することで現在のUbuntuを削除することができます。
PS C:\WINDOWS\system32> wsl --unregister Ubuntu上記のコマンドでUbuntuを削除した後、Windows11のスタートメニューからUbuntuを選択します。
自動でUbuntuのインストールが開始され、しばらく待つとインストールが完了します。
しばらくするとUbuntuインストール後の時点と同じ状態になりますので、再度構築を開始してください。
WSL2とPCの設定時間がずれていると、sudo apt updateコマンド実行の際に以下の画像のようにセキュリティ上のエラーが起きます。
sudo apt updateコマンドの実行が完了していない場合、これ以降の手順でも失敗するため、正しく同期していることを確認してください。
$ sudo apt update
[sudo] password for ubuntu:
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Hit:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]
Reading package lists... Done
E: Release file for http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease is not valid yet (invalid for another 8h 24min 40s). Updates for this repository will not be applied.
E: Release file for http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease is not valid yet (invalid for another 8h 25min 52s). Updates for this repository will not be applied.
E: Release file for http://archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease is not valid yet (invalid for another 6h 47min 42s). Updates for this repository will not be applied.
































