From cb4af942f0c39776fbfb0d728072517b21f4fba4 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 14:52:46 +0900 Subject: [PATCH 01/27] =?UTF-8?q?Moddable=E4=B8=8A=E3=81=AEm5stack=5Fcores?= =?UTF-8?q?3=E3=81=AESPIRAM=E3=82=92=E7=84=A1=E5=8A=B9=E5=8C=96=E3=81=99?= =?UTF-8?q?=E3=82=8B=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/setting.sh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100755 firmware/setting.sh diff --git a/firmware/setting.sh b/firmware/setting.sh new file mode 100755 index 0000000..78bd229 --- /dev/null +++ b/firmware/setting.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# Deactivate SPIRAM +sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' $HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults +cat $HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults \ No newline at end of file From d9a20d93198650ae94002f7c693361c1c243112c Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 14:53:16 +0900 Subject: [PATCH 02/27] =?UTF-8?q?CI=E3=81=ABSPIRAM=E7=84=A1=E5=8A=B9?= =?UTF-8?q?=E5=8C=96=E8=A8=AD=E5=AE=9A=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97?= =?UTF-8?q?=E3=83=88=E5=91=BC=E3=81=B3=E5=87=BA=E3=81=97=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aa8fa0a..d2a8b2f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,10 +9,10 @@ jobs: submodules: recursive - uses: ./.github/actions/setup - name: Build - run: source $HOME/.local/share/xs-dev-export.sh && npm run build + run: source $HOME/.local/share/xs-dev-export.sh && sh setting.sh && npm run build working-directory: ./firmware - name: Build CoreS3 - run: source $HOME/.local/share/xs-dev-export.sh && npm run build --target=esp32/m5stack_cores3 + run: source $HOME/.local/share/xs-dev-export.sh && sh setting.sh && npm run build --target=esp32/m5stack_cores3 working-directory: ./firmware - name: Check Format run: npm run format From 105b3c4aa23336206defae3b2e65625fc971223b Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 17:00:29 +0900 Subject: [PATCH 03/27] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=82=B9=E3=82=AF?= =?UTF-8?q?=E3=83=AA=E3=83=97=E3=83=88=E3=81=AExs-dev-export.sh=E8=BF=BD?= =?UTF-8?q?=E8=A8=98=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/setting.sh | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/firmware/setting.sh b/firmware/setting.sh index 78bd229..fb4e895 100755 --- a/firmware/setting.sh +++ b/firmware/setting.sh @@ -1,5 +1,37 @@ #!/bin/sh -# Deactivate SPIRAM -sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' $HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults -cat $HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults \ No newline at end of file +# SPIRAMを無効化 +SDKCONFIG="$HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults" +sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' $SDKCONFIG +cat $SDKCONFIG + +# 追記する内容 +XS_DEV_SH="source ~/.local/share/xs-dev-export.sh" + +# 現在のシェルを取得 +CURRENT_SHELL=$(basename "$SHELL") + +# 設定ファイルを決定 +if [ "$CURRENT_SHELL" = "bash" ]; then + CONFIG_FILE="$HOME/.bashrc" +elif [ "$CURRENT_SHELL" = "zsh" ]; then + CONFIG_FILE="$HOME/.zshrc" +else + echo "Unsupported shell: $CURRENT_SHELL" + exit 1 +fi + +# 設定ファイルが存在しない場合は作成 +if [ ! -f "$CONFIG_FILE" ]; then + touch "$CONFIG_FILE" + echo "# Created $CONFIG_FILE for $CURRENT_SHELL settings" >> "$CONFIG_FILE" + echo "$CONFIG_FILE was created." +fi + +# ファイルに追記 +if grep -Fxq "$XS_DEV_SH" "$CONFIG_FILE"; then + echo "The string '$XS_DEV_SH' already exists in $CONFIG_FILE. No changes made." +else + echo "$XS_DEV_SH" >> "$CONFIG_FILE" + echo "The string '$XS_DEV_SH' has been added to $CONFIG_FILE." +fi From d702f2403a881e3cbcae78d5a1b5e3dcaa7eddde Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 17:35:53 +0900 Subject: [PATCH 04/27] =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=AEmac/l?= =?UTF-8?q?inux=E5=90=91=E3=81=91=E7=92=B0=E5=A2=83=E6=A7=8B=E7=AF=89?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started_ja.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index da5df05..40678d0 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -42,20 +42,30 @@ $ npm install スタックチャンはセットアップ手順をnpmスクリプト化しています。 `stack-chan/firmware`ディレクトリで次のコマンドを実行します。 -以下に示す1つ目のコマンドの実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。 パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。 2つ目のコマンドでは、再度パスワードが要求されない内に実行してください。 もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。 + +#### 知る + +以下に示す1つ目のコマンドの実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。 パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。 + +2つ目のコマンドでは、再度パスワードが要求されない内に実行してください。 もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。 ```console $ sudo echo "emporary SuperUser Grant" $ npm run setup $ npm run setup -- --device=esp32 ``` + macOSの場合は、npm run setup -- --device=esp32のインストールの時、xcode-selectのバージョンが古いと"Error: Command failed with exit code 1: python3 -m pip install pyserial"で止まることがあります。その場合は、xcode-selectを手動で削除してから再度xcode-select(xcord-select –install)をインストールしてください。 xcode-selectの削除は"sudo rm -rf /Library/Developer/CommandLineTools"でできます。 内部で[`xs-dev`](https://github.com/HipsterBrown/xs-dev)を使ってModdableSDKやESP-IDFのセットアップを自動化しています。 -moddableの環境設定スクリプト xs-dev-export.sh がターミナル起動時に自動で読み込まれません。~/.bashrcや ~/.zshrcに -source ~/.local/share/xs-dev-export.sh -を追加してください。 +#### 設定の変更 + +以下のコマンドを実行して、PSRAMやコマンドの設定をします。自動で、`~/.bashrc`や`~/.zshrc`に`source ~/.local/share/xs-dev-export.sh`が追加され、ModdableのPSRAMが無効化されます。 + +```console +$ ./setting.sh +``` ### 手動でセットアップする From e7733f5e318398ff103a9aaf33aa3f67a094f24e Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 17:36:17 +0900 Subject: [PATCH 05/27] =?UTF-8?q?mac/linux=E5=90=91=E3=81=91=E3=81=AE?= =?UTF-8?q?=E6=9B=B8=E3=81=8D=E8=BE=BC=E3=81=BF=E3=83=89=E3=82=AD=E3=83=A5?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/flashing-firmware_ja.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/firmware/docs/flashing-firmware_ja.md b/firmware/docs/flashing-firmware_ja.md index f5d8dfa..f367f28 100644 --- a/firmware/docs/flashing-firmware_ja.md +++ b/firmware/docs/flashing-firmware_ja.md @@ -39,11 +39,12 @@ ## 基本プログラム(ホスト)の書き込み -前述の通りスタックチャンのファームウェアは基本プログラム(ホスト)とユーザアプリケーション(MOD)から構成されます。 -esp-idfのバージョンが5.xからesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更します。 -~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconifgのファイルにある -CONFIG_SPIRAM=yをCONFIG_SPIRAM_nに書き換えます。 +前述の通りスタックチャンのファームウェアは基本プログラム(ホスト)とユーザアプリケーション(MOD)から構成されます。 +**esp-idfのバージョンが`5.x`からesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更しています。** +**[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`のファイル内に記述された`CONFIG_SPIRAM=y`が`CONFIG_SPIRAM_n`に書き換えています。** + +
次のコマンドで基本プログラム(ホスト)の書き込みを行います。 @@ -56,6 +57,7 @@ $ npm run deploy --target=esp32/m5stack_cores3 ``` Ubuntuの場合、書き込みポートがReadOnlyになっています。sudo chmod 666 /dev/ttyACM0でモードを書き換えるが、永続的にUSBポートの使用権限を変更する場合は、次のコマンドを実行してPCを再起動します。 + ```console $sudo usermod -aG dialout $USER ``` From 015d3ccf72415f28012cc5d6a76fe83df567d122 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 17:57:37 +0900 Subject: [PATCH 06/27] =?UTF-8?q?PSRAM=E7=84=A1=E5=8A=B9=E5=8C=96=E3=81=A8?= =?UTF-8?q?xs-dev=E3=81=AE=E7=92=B0=E5=A2=83=E8=A8=AD=E5=AE=9A=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E3=82=92?= =?UTF-8?q?=E5=88=86=E5=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/setting_unset_psram.sh | 8 ++++++++ firmware/{setting.sh => setting_xs-dev_env.sh} | 9 ++------- 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100755 firmware/setting_unset_psram.sh rename firmware/{setting.sh => setting_xs-dev_env.sh} (79%) mode change 100755 => 100644 diff --git a/firmware/setting_unset_psram.sh b/firmware/setting_unset_psram.sh new file mode 100755 index 0000000..f196eb1 --- /dev/null +++ b/firmware/setting_unset_psram.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# 設定ファイルパスを取得 +SDKCONFIG="$HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults" + +# PSRAMを無効化 +sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' $SDKCONFIG +cat $SDKCONFIG \ No newline at end of file diff --git a/firmware/setting.sh b/firmware/setting_xs-dev_env.sh old mode 100755 new mode 100644 similarity index 79% rename from firmware/setting.sh rename to firmware/setting_xs-dev_env.sh index fb4e895..26663b1 --- a/firmware/setting.sh +++ b/firmware/setting_xs-dev_env.sh @@ -1,11 +1,6 @@ #!/bin/sh -# SPIRAMを無効化 -SDKCONFIG="$HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults" -sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' $SDKCONFIG -cat $SDKCONFIG - -# 追記する内容 +# 追記するコマンドを設定 XS_DEV_SH="source ~/.local/share/xs-dev-export.sh" # 現在のシェルを取得 @@ -34,4 +29,4 @@ if grep -Fxq "$XS_DEV_SH" "$CONFIG_FILE"; then else echo "$XS_DEV_SH" >> "$CONFIG_FILE" echo "The string '$XS_DEV_SH' has been added to $CONFIG_FILE." -fi +fi \ No newline at end of file From ba086dad36872d18cfdee26526318fa44c617b2d Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 18:01:48 +0900 Subject: [PATCH 07/27] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=82=B9=E3=82=AF?= =?UTF-8?q?=E3=83=AA=E3=83=97=E3=83=88=E3=82=92=E3=83=87=E3=82=A3=E3=83=AC?= =?UTF-8?q?=E3=82=AF=E3=83=88=E3=83=AA=E3=81=AB=E3=81=BE=E3=81=A8=E3=82=81?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/{ => setting_scripts}/setting_unset_psram.sh | 0 firmware/{ => setting_scripts}/setting_xs-dev_env.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename firmware/{ => setting_scripts}/setting_unset_psram.sh (100%) rename firmware/{ => setting_scripts}/setting_xs-dev_env.sh (100%) diff --git a/firmware/setting_unset_psram.sh b/firmware/setting_scripts/setting_unset_psram.sh similarity index 100% rename from firmware/setting_unset_psram.sh rename to firmware/setting_scripts/setting_unset_psram.sh diff --git a/firmware/setting_xs-dev_env.sh b/firmware/setting_scripts/setting_xs-dev_env.sh similarity index 100% rename from firmware/setting_xs-dev_env.sh rename to firmware/setting_scripts/setting_xs-dev_env.sh From bc7be215c0c400ea2876b9c3e42688e9c3f705d9 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Tue, 7 Jan 2025 18:02:39 +0900 Subject: [PATCH 08/27] =?UTF-8?q?CI=E3=81=AE=E4=B8=AD=E3=81=A7=E5=91=BC?= =?UTF-8?q?=E3=81=B3=E5=87=BA=E3=81=99=E8=A8=AD=E5=AE=9A=E3=82=B9=E3=82=AF?= =?UTF-8?q?=E3=83=AA=E3=83=97=E3=83=88=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d2a8b2f..91c1636 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,10 +9,10 @@ jobs: submodules: recursive - uses: ./.github/actions/setup - name: Build - run: source $HOME/.local/share/xs-dev-export.sh && sh setting.sh && npm run build + run: source $HOME/.local/share/xs-dev-export.sh && sh ./setting_scripts/setting_unset_psram.sh && npm run build working-directory: ./firmware - name: Build CoreS3 - run: source $HOME/.local/share/xs-dev-export.sh && sh setting.sh && npm run build --target=esp32/m5stack_cores3 + run: source $HOME/.local/share/xs-dev-export.sh && sh ./setting_scripts/setting_unset_psram.sh && npm run build --target=esp32/m5stack_cores3 working-directory: ./firmware - name: Check Format run: npm run format From 2876cd8c8f7553265c582f3efca6461d74906930 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:00:53 +0900 Subject: [PATCH 09/27] =?UTF-8?q?xs-dev=E3=82=92=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88?= =?UTF-8?q?=E3=81=AE=E6=A8=A9=E9=99=90=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/setting_scripts/setting_xs-dev_env.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 firmware/setting_scripts/setting_xs-dev_env.sh diff --git a/firmware/setting_scripts/setting_xs-dev_env.sh b/firmware/setting_scripts/setting_xs-dev_env.sh old mode 100644 new mode 100755 From 4c1206fac77e5671ade125ff006e6496bbdbf9d0 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:07:00 +0900 Subject: [PATCH 10/27] =?UTF-8?q?=E5=88=86=E5=89=B2=E3=81=97=E3=81=9F?= =?UTF-8?q?=E3=82=B9=E3=82=AF=E3=83=AA=E3=83=97=E3=83=88=E3=81=AB=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=81=8C=E3=81=A3=E3=81=A6=E3=83=89=E3=82=AD=E3=83=A5?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started_ja.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index 40678d0..a11b3ae 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -61,10 +61,16 @@ xcode-selectの削除は"sudo rm -rf /Library/Developer/CommandLineTools"でで #### 設定の変更 -以下のコマンドを実行して、PSRAMやコマンドの設定をします。自動で、`~/.bashrc`や`~/.zshrc`に`source ~/.local/share/xs-dev-export.sh`が追加され、ModdableのPSRAMが無効化されます。 +次のコマンドを実行して、PSRAMの設定をします。 ```console -$ ./setting.sh +$ ./setting_scripts/setting_unset_psram.sh +``` + +次のコマンドを実行し、Shellの設定ファイルに`source ~/.local/share/xs-dev-export.sh`を追加します。これにより、Shellの起動時に環境変数を設定されます。 + +```console +$ ./setting_scripts/setting_xs-dev_env.sh ``` ### 手動でセットアップする From 1818fcfcc28f4f0dd855f79716a4eae6afbd6a99 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:09:24 +0900 Subject: [PATCH 11/27] =?UTF-8?q?PSRAM=E3=81=AB=E9=96=A2=E3=81=99=E3=82=8B?= =?UTF-8?q?=E8=A3=9C=E8=B6=B3=E4=BA=8B=E9=A0=85=E3=82=92=E7=AE=87=E6=9D=A1?= =?UTF-8?q?=E6=9B=B8=E3=81=8D=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/flashing-firmware_ja.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/firmware/docs/flashing-firmware_ja.md b/firmware/docs/flashing-firmware_ja.md index f367f28..7ac2aa2 100644 --- a/firmware/docs/flashing-firmware_ja.md +++ b/firmware/docs/flashing-firmware_ja.md @@ -41,8 +41,9 @@ 前述の通りスタックチャンのファームウェアは基本プログラム(ホスト)とユーザアプリケーション(MOD)から構成されます。 -**esp-idfのバージョンが`5.x`からesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更しています。** -**[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`のファイル内に記述された`CONFIG_SPIRAM=y`が`CONFIG_SPIRAM_n`に書き換えています。** +- **esp-idfのバージョンが`5.x`からesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更しています。** + +- **[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`のファイル内に記述された`CONFIG_SPIRAM=y`が`CONFIG_SPIRAM_n`に書き換えています。**
From 4876cbe2eadfd346ef2f767fc4a3ee95813b74e8 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:21:38 +0900 Subject: [PATCH 12/27] =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=81=ABPSRAM=E3=81=AE=E7=92=B0=E5=A2=83?= =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E7=A2=BA=E8=AA=8D=E3=81=AE=E9=A0=85=E7=9B=AE?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started_ja.md | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index a11b3ae..6d0e427 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -108,6 +108,45 @@ xs-dev environment info: ESP32 IDF Directory /home/ubuntu/.local/share/esp32/esp-idf ``` +`cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`コマンドでM5Stack CoreS3のPARAMの設定を確認できます。 +設定が完了していれば、`CONFIG_SPIRAM=n`という記述を確認できます。 + +```console +$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults + +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +CONFIG_ESP_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 + +CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n +CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n +CONFIG_ESP_COREDUMP_ENABLE=n + +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE="4MB" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="16MB" + +#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +#CONFIG_FLASHMODE_QIO=y + +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y + +CONFIG_SPIRAM=n +CONFIG_SPIRAM_MODE_OCT=n +CONFIG_SPIRAM_MODE_QUAD=y +CONFIG_SPIRAM_SPEED_120M=n +CONFIG_SPIRAM_SPEED_80M=n +CONFIG_SPIRAM_SPEED_40M=y +CONFIG_SPIRAM_TYPE_AUTO=y +CONFIG_SPIRAM_IGNORE_NOTFOUND=y +CONFIG_SPIRAM_USE_MALLOC=y +# CONFIG_SPIRAM_MEMTEST=y + +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y +``` + ## 次のステップ - [プログラムのビルドと書き込み](./flashing-firmware_ja.md) From 21b09719564039dd2346ee595957d6a48ad3c82e Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:35:39 +0900 Subject: [PATCH 13/27] =?UTF-8?q?getting-started=E3=81=AE=E8=8B=B1?= =?UTF-8?q?=E8=AA=9E=E7=89=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started.md | 56 ++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index c6ff614..1bfca30 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -65,6 +65,22 @@ If you cannot setup xs-dev(CLI) properly, please do this. **Stack-chan RT version assumes that Moddable SDK 4.9.5 and ESP-IDF 5.3.0 will work. I have confirmed that intel mac works with Moddable SDK 4.7.0 + ESP-IDF 5.1.0 python 3.9.0. To use it on Intel Macs, you can install it by changing "setup": "xs-dev setup --target-branch 4.9.5" to "setup": "xs-dev setup --target-branch 4.7.0" in firmware/package.json, but it is not supported.** +#### Configuring the Settings + +To configure the PSRAM settings, execute the following command. + +```console +$ ./setting_scripts/setting_unset_psram.sh +``` + +Next, run the following command to automatically add source `~/.local/share/xs-dev-export.sh` to your shell's configuration file. This ensures that the necessary environment variables are set each time the shell is started. + +```console +$ ./setting_scripts/setting_xs-dev_env.sh +``` + +By completing these steps, your shell environment will be configured correctly for the Moddable SDK and ESP-IDF. + ## Test the environment You can test your environment with the `npm run doctor` command. @@ -91,6 +107,46 @@ xs-dev environment info: ESP32 IDF Directory /home/ubuntu/.local/share/esp32/esp-idf ``` + +You can check the PARAM settings for the M5Stack CoreS3 with the `$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults` command. +If the settings are correctly configured, you will find a line stating `CONFIG_SPIRAM=n`. + +```console +$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults + +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +CONFIG_ESP_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 + +CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n +CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n +CONFIG_ESP_COREDUMP_ENABLE=n + +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE="4MB" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="16MB" + +#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +#CONFIG_FLASHMODE_QIO=y + +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y + +CONFIG_SPIRAM=n +CONFIG_SPIRAM_MODE_OCT=n +CONFIG_SPIRAM_MODE_QUAD=y +CONFIG_SPIRAM_SPEED_120M=n +CONFIG_SPIRAM_SPEED_80M=n +CONFIG_SPIRAM_SPEED_40M=y +CONFIG_SPIRAM_TYPE_AUTO=y +CONFIG_SPIRAM_IGNORE_NOTFOUND=y +CONFIG_SPIRAM_USE_MALLOC=y +# CONFIG_SPIRAM_MEMTEST=y + +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y +``` + ## Next step - [Build and Flash firmware](./flashing-firmware.md) From d5fe465f43158c67b57e2894b1911a2bb5f3f2d4 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:47:00 +0900 Subject: [PATCH 14/27] =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E=E3=81=AEgetti?= =?UTF-8?q?ng-started.=5Fja.md=E3=81=AE=E8=A6=8B=E6=A0=84=E3=81=88?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started_ja.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index 6d0e427..54d3275 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -43,8 +43,6 @@ $ npm install スタックチャンはセットアップ手順をnpmスクリプト化しています。 `stack-chan/firmware`ディレクトリで次のコマンドを実行します。 -#### 知る - 以下に示す1つ目のコマンドの実行直後、Ubuntuに設定したパスワードの入力が要求されますので入力してください。 パスワード入力後、一定時間は同様のコマンドを実行してもパスワードは要求されません。 2つ目のコマンドでは、再度パスワードが要求されない内に実行してください。 もし、何らかの理由で1つめのコマンド実行から時間がかかってしまった場合は1つ目のコマンドの実行からやり直してください。 @@ -55,11 +53,20 @@ $ npm run setup $ npm run setup -- --device=esp32 ``` -macOSの場合は、npm run setup -- --device=esp32のインストールの時、xcode-selectのバージョンが古いと"Error: Command failed with exit code 1: python3 -m pip install pyserial"で止まることがあります。その場合は、xcode-selectを手動で削除してから再度xcode-select(xcord-select –install)をインストールしてください。 +macOSの場合は、npm run setup -- --device=esp32のインストールの時、xcode-selectのバージョンが古いと"Error: Command failed with exit code 1: python3 -m pip install pyserial"で止まることがあります。その場合は、xcode-selectを手動で削除してから再度xcode-select(xcord-select –install)をインストールしてください。 xcode-selectの削除は"sudo rm -rf /Library/Developer/CommandLineTools"でできます。 内部で[`xs-dev`](https://github.com/HipsterBrown/xs-dev)を使ってModdableSDKやESP-IDFのセットアップを自動化しています。 -#### 設定の変更 + +### 手動でセットアップする + +[公式サイトの手順(英語)](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md)に従ってModdableSDKとESP-IDFをインストールします。 +xs-dev(CLI)でうまくセットアップできない場合はこちらを行ってください。 + +- **スタックチャン アールティver.では、Moddable SDK 4.9.5、ESP-IDF 5.3.0 での動作を想定しています。** +- **intel macはModdable SDK 4.7.0 + ESP-IDF 5.1.0 python3.9.0で動作することは確認しています。intel macで使用するにはfirmware/package.jsonの"setup": "xs-dev setup --target-branch 4.9.5"を"setup": "xs-dev setup --target-branch 4.7.0"にすることでインストールできますがサポート対象外になります。** + +### PSRAMと環境変数のセットアップ 次のコマンドを実行して、PSRAMの設定をします。 @@ -73,15 +80,6 @@ $ ./setting_scripts/setting_unset_psram.sh $ ./setting_scripts/setting_xs-dev_env.sh ``` -### 手動でセットアップする - -[公式サイトの手順(英語)](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md)に従ってModdableSDKとESP-IDFをインストールします。 -xs-dev(CLI)でうまくセットアップできない場合はこちらを行ってください。 - -**スタックチャン アールティver.では、Moddable SDK 4.9.5、ESP-IDF 5.3.0 での動作を想定しています。** -**intel macはModdable SDK 4.7.0 + ESP-IDF 5.1.0 python3.9.0で動作することは確認しています。intel macで使用するにはfirmware/package.jsonの"setup": "xs-dev setup --target-branch 4.9.5"を"setup": "xs-dev setup --target-branch 4.7.0"にすることでインストールできますがサポート対象外になります。** - - ## 環境のテスト `npm run doctor`コマンドで環境のテストができます。 From 184a968c0643ee9445c994d4851d1cce01fe72a9 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:54:34 +0900 Subject: [PATCH 15/27] =?UTF-8?q?getteing-started=5Fja.md=E3=81=AE?= =?UTF-8?q?=E7=AE=87=E6=9D=A1=E6=9B=B8=E3=81=8D=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index 54d3275..36e5e28 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -64,7 +64,7 @@ xcode-selectの削除は"sudo rm -rf /Library/Developer/CommandLineTools"でで xs-dev(CLI)でうまくセットアップできない場合はこちらを行ってください。 - **スタックチャン アールティver.では、Moddable SDK 4.9.5、ESP-IDF 5.3.0 での動作を想定しています。** -- **intel macはModdable SDK 4.7.0 + ESP-IDF 5.1.0 python3.9.0で動作することは確認しています。intel macで使用するにはfirmware/package.jsonの"setup": "xs-dev setup --target-branch 4.9.5"を"setup": "xs-dev setup --target-branch 4.7.0"にすることでインストールできますがサポート対象外になります。** +- **intel macはModdable SDK 4.7.0 + ESP-IDF 5.1.0 python3.9.0で動作することは確認しています。intel macで使用するには`firmware/package.json`の`"setup": "xs-dev setup --target-branch 4.9.5"`を`"setup": "xs-dev setup --target-branch 4.7.0"`にすることでインストールできますがサポート対象外になります。** ### PSRAMと環境変数のセットアップ From aebe741364140e989284a2326c47b33d3d8bef21 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 11:55:00 +0900 Subject: [PATCH 16/27] =?UTF-8?q?getting-started.md=E3=81=AE=E6=96=87?= =?UTF-8?q?=E7=AB=A0=E4=B8=AD=E3=81=AB=E6=8A=9C=E3=81=91=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=E3=83=8F=E3=82=A4=E3=83=A9=E3=82=A4=E3=83=88=E3=82=84?= =?UTF-8?q?=E6=AE=B5=E8=90=BD=E3=82=92=E4=B8=80=E9=83=A8=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index 1bfca30..397a813 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -38,9 +38,13 @@ There are two ways to do this. - Set up manually ### Using xs-dev(CLI) (recommended) -Stack-chan has npm scripted setup instructions. In the stack-chan/firmware directory, run the following command: +Stack-chan has npm scripted setup instructions. + +In the `stack-chan/firmware` directory, run the following command: + Immediately after executing the first command shown below, you will be asked to enter the password set in Ubuntu. After entering the password, the password will not be requested even if the same command is executed for a certain period of time. + For the second command, run it before you are prompted for a password again. If, for some reason, it takes a long time to execute the first command, please start over from the execution of the first command. ```console @@ -63,7 +67,8 @@ The script internally uses [`xs-dev`](https://github.com/HipsterBrown/xs-dev) to Follow the instructions on the [official website (English)](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md) to install ModdableSDK and ESP-IDF. If you cannot setup xs-dev(CLI) properly, please do this. -**Stack-chan RT version assumes that Moddable SDK 4.9.5 and ESP-IDF 5.3.0 will work. I have confirmed that intel mac works with Moddable SDK 4.7.0 + ESP-IDF 5.1.0 python 3.9.0. To use it on Intel Macs, you can install it by changing "setup": "xs-dev setup --target-branch 4.9.5" to "setup": "xs-dev setup --target-branch 4.7.0" in firmware/package.json, but it is not supported.** +- **Stack-chan RT version assumes that Moddable SDK 4.9.5 and ESP-IDF 5.3.0 will work.** +- **We have confirmed that intel mac works with Moddable SDK 4.7.0 + ESP-IDF 5.1.0 python 3.9.0. To use it on Intel Macs, you can install it by changing "setup": "xs-dev setup --target-branch 4.9.5" to "setup": "xs-dev setup --target-branch 4.7.0" in firmware/package.json, but it is not supported.** #### Configuring the Settings From 9ebea2ac632892bb39cf9700af9eaf0512d7750b Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 12:01:35 +0900 Subject: [PATCH 17/27] =?UTF-8?q?=E7=AB=A0=E3=81=AE=E9=9A=8E=E5=B1=A4?= =?UTF-8?q?=E3=81=A8=E7=AB=A0=E5=90=8D=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index 397a813..b1d6d48 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -70,7 +70,7 @@ If you cannot setup xs-dev(CLI) properly, please do this. - **Stack-chan RT version assumes that Moddable SDK 4.9.5 and ESP-IDF 5.3.0 will work.** - **We have confirmed that intel mac works with Moddable SDK 4.7.0 + ESP-IDF 5.1.0 python 3.9.0. To use it on Intel Macs, you can install it by changing "setup": "xs-dev setup --target-branch 4.9.5" to "setup": "xs-dev setup --target-branch 4.7.0" in firmware/package.json, but it is not supported.** -#### Configuring the Settings +## Set up PSRAM and Environment Variable To configure the PSRAM settings, execute the following command. From ff1401d5615fbedac54a3e0936b182657093cc75 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 13:37:41 +0900 Subject: [PATCH 18/27] =?UTF-8?q?=E7=AB=A0=E9=9A=8E=E5=B1=A4=E3=81=AE?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index b1d6d48..8e37ac8 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -62,7 +62,7 @@ Add source ~/.local/share/xs-dev-export.sh to ~/.bashrc or ~/.zshrc. The script internally uses [`xs-dev`](https://github.com/HipsterBrown/xs-dev) to automate the setup of ModdableSDK and ESP-IDF. -### Set up Manual +## Set up Manual Follow the instructions on the [official website (English)](https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/Moddable%20SDK%20-%20Getting%20Started.md) to install ModdableSDK and ESP-IDF. If you cannot setup xs-dev(CLI) properly, please do this. From 15587797c5ce33eb61490a3b552b9643139db992 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 13:38:57 +0900 Subject: [PATCH 19/27] =?UTF-8?q?=20PSRAM=E3=81=AE=E6=B3=A8=E9=87=88?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/flashing-firmware.md | 3 ++- firmware/docs/flashing-firmware_ja.md | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/firmware/docs/flashing-firmware.md b/firmware/docs/flashing-firmware.md index 5820f58..2030f4d 100644 --- a/firmware/docs/flashing-firmware.md +++ b/firmware/docs/flashing-firmware.md @@ -36,7 +36,8 @@ Additionally, you can specify the paths of other manifest files in a list format ## Writing the base program (hosts) As stated above, Stack-chan's firmware comprises a base program (host) and a user application (MOD). -The handling of PSRAM connected to esp32 has changed from esp-idf version 5.x. The default settings do not work smoothly, so we will change some of them. ~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconifg. CONFIG_SPIRAM=y to CONFIG_SPIRAM_n. + +**The handling of PSRAM connected to esp32 has changed from esp-idf version 5.x. The default settings do not work smoothly, so we changed some of them. `~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`, `CONFIG_SPIRAM=y` to `CONFIG_SPIRAM_n` with the** [Set up PSRAM and Environment Variable](./getting-started.md#set-up-manual). The following commands are used to build and write a host. diff --git a/firmware/docs/flashing-firmware_ja.md b/firmware/docs/flashing-firmware_ja.md index 7ac2aa2..fa21b8c 100644 --- a/firmware/docs/flashing-firmware_ja.md +++ b/firmware/docs/flashing-firmware_ja.md @@ -41,9 +41,8 @@ 前述の通りスタックチャンのファームウェアは基本プログラム(ホスト)とユーザアプリケーション(MOD)から構成されます。 -- **esp-idfのバージョンが`5.x`からesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更しています。** - -- **[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`のファイル内に記述された`CONFIG_SPIRAM=y`が`CONFIG_SPIRAM_n`に書き換えています。** +**esp-idfのバージョンが`5.x`からesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更しています。** +**[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`に記述された`CONFIG_SPIRAM=y`が`CONFIG_SPIRAM_n`に書き換えています。**
From b6f6fc6d0c24cc2d467a41ae6a03228a793e3dba Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 13:53:30 +0900 Subject: [PATCH 20/27] =?UTF-8?q?WSL2=E3=81=AE=E3=83=89=E3=82=AD=E3=83=A5?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started-wsl2_ja.md | 61 ++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/firmware/docs/getting-started-wsl2_ja.md b/firmware/docs/getting-started-wsl2_ja.md index 4c2a3a4..945190b 100644 --- a/firmware/docs/getting-started-wsl2_ja.md +++ b/firmware/docs/getting-started-wsl2_ja.md @@ -227,17 +227,25 @@ $ npm run setup -- --device=esp32 +### PSRAMと環境変数のセットアップ -最後にmoddableの環境設定スクリプト xs-dev-export.sh がターミナル起動時に自動で読み込まれません。~/.bashrcに -source ~/.local/share/xs-dev-export.sh -を追加してください。 +次のコマンドを実行して、PSRAM無効化の設定をします。 +```sh +$ ./setting_scripts/setting_unset_psram.sh +``` +次のコマンドを実行し、Shellの設定ファイルに`source ~/.local/share/xs-dev-export.sh`を追加します。これにより、Shellの起動時に環境変数を設定されます。 +```sh +$ ./setting_scripts/setting_xs-dev_env.sh +``` ### 構築した環境の確認 -以下のコマンドで環境のテストをします。 +#### Moddableの環境確認 + +以下のコマンドでModdableの環境のテストをします。 ```bash $ npm run doctor @@ -247,6 +255,51 @@ $ npm run doctor `Moddable`のバージョンが`v4.9.5`で、`ESP32 IDF Directory`のパスが正しく表示されており、`Supported target devices`が`lin, esp32`となっていれば成功です。 +#### PSRAMの環境確認 + +以下のコマンドでM5Stack CoreS3のPARAMの設定を確認します。 + +```bash +$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults +``` + +設定が完了していれば、`CONFIG_SPIRAM=n`という記述を確認できます。 + +```bash +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +CONFIG_ESP_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 + +CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n +CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n +CONFIG_ESP_COREDUMP_ENABLE=n + +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE="4MB" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +CONFIG_ESPTOOLPY_FLASHSIZE="16MB" + +#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y +#CONFIG_FLASHMODE_QIO=y + +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y + +CONFIG_SPIRAM=n +CONFIG_SPIRAM_MODE_OCT=n +CONFIG_SPIRAM_MODE_QUAD=y +CONFIG_SPIRAM_SPEED_120M=n +CONFIG_SPIRAM_SPEED_80M=n +CONFIG_SPIRAM_SPEED_40M=y +CONFIG_SPIRAM_TYPE_AUTO=y +CONFIG_SPIRAM_IGNORE_NOTFOUND=y +CONFIG_SPIRAM_USE_MALLOC=y +# CONFIG_SPIRAM_MEMTEST=y + +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y +``` + + ここまで完了次第、Ubuntuのウインドウを閉じてください。 From 8d8832838dc956c094070de58c5f984e5304046d Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 15:01:34 +0900 Subject: [PATCH 21/27] =?UTF-8?q?PSRAM=E7=84=A1=E5=8A=B9=E5=8C=96=E3=81=AE?= =?UTF-8?q?sed=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89=E3=81=AE=E3=83=90?= =?UTF-8?q?=E3=83=AA=E3=82=A8=E3=83=BC=E3=82=B7=E3=83=A7=E3=83=B3=E3=81=AB?= =?UTF-8?q?mac=E5=90=91=E3=81=91=E3=81=AE=E6=9D=A1=E4=BB=B6=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/setting_scripts/setting_unset_psram.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/firmware/setting_scripts/setting_unset_psram.sh b/firmware/setting_scripts/setting_unset_psram.sh index f196eb1..df038c5 100755 --- a/firmware/setting_scripts/setting_unset_psram.sh +++ b/firmware/setting_scripts/setting_unset_psram.sh @@ -3,6 +3,14 @@ # 設定ファイルパスを取得 SDKCONFIG="$HOME/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults" -# PSRAMを無効化 -sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' $SDKCONFIG -cat $SDKCONFIG \ No newline at end of file +# macOS と Linux の sed コマンドの互換性を考慮 +if [ "$(uname)" = "Darwin" ]; then + # macOS 用 + sed -i '' 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' "$SDKCONFIG" +else + # Linux 用 + sed -i 's/CONFIG_SPIRAM=y/CONFIG_SPIRAM=n/' "$SDKCONFIG" +fi + +# 結果を表示 +cat "$SDKCONFIG" From 45a739e61e8d2c6af2a0b4e035ab60fb64d3fdd8 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 15:34:20 +0900 Subject: [PATCH 22/27] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=82=B9=E3=82=AF?= =?UTF-8?q?=E3=83=AA=E3=83=97=E3=83=88=E3=81=AE=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E5=90=8D=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setting_scripts/{setting_xs-dev_env.sh => set_xs-dev_env.sh} | 0 .../setting_scripts/{setting_unset_psram.sh => unset_psram.sh} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename firmware/setting_scripts/{setting_xs-dev_env.sh => set_xs-dev_env.sh} (100%) rename firmware/setting_scripts/{setting_unset_psram.sh => unset_psram.sh} (100%) diff --git a/firmware/setting_scripts/setting_xs-dev_env.sh b/firmware/setting_scripts/set_xs-dev_env.sh similarity index 100% rename from firmware/setting_scripts/setting_xs-dev_env.sh rename to firmware/setting_scripts/set_xs-dev_env.sh diff --git a/firmware/setting_scripts/setting_unset_psram.sh b/firmware/setting_scripts/unset_psram.sh similarity index 100% rename from firmware/setting_scripts/setting_unset_psram.sh rename to firmware/setting_scripts/unset_psram.sh From 8163417f72c367eef9b13931578915f6b97dbd82 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 16:04:35 +0900 Subject: [PATCH 23/27] =?UTF-8?q?=E8=A8=AD=E5=AE=9A=E3=82=B9=E3=82=AF?= =?UTF-8?q?=E3=83=AA=E3=83=97=E3=83=88=E5=90=8D=E3=81=AE=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=E3=82=92CI=E3=81=A8=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=81=AB=E5=8F=8D=E6=98=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 ++-- firmware/docs/getting-started.md | 4 ++-- firmware/docs/getting-started_ja.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91c1636..0ee9f00 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,10 +9,10 @@ jobs: submodules: recursive - uses: ./.github/actions/setup - name: Build - run: source $HOME/.local/share/xs-dev-export.sh && sh ./setting_scripts/setting_unset_psram.sh && npm run build + run: source $HOME/.local/share/xs-dev-export.sh && sh ./setting_scripts/unset_psram.sh && npm run build working-directory: ./firmware - name: Build CoreS3 - run: source $HOME/.local/share/xs-dev-export.sh && sh ./setting_scripts/setting_unset_psram.sh && npm run build --target=esp32/m5stack_cores3 + run: source $HOME/.local/share/xs-dev-export.sh && sh ./setting_scripts/unset_psram.sh && npm run build --target=esp32/m5stack_cores3 working-directory: ./firmware - name: Check Format run: npm run format diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index 8e37ac8..88b425f 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -75,13 +75,13 @@ If you cannot setup xs-dev(CLI) properly, please do this. To configure the PSRAM settings, execute the following command. ```console -$ ./setting_scripts/setting_unset_psram.sh +$ ./setting_scripts/unset_psram.sh ``` Next, run the following command to automatically add source `~/.local/share/xs-dev-export.sh` to your shell's configuration file. This ensures that the necessary environment variables are set each time the shell is started. ```console -$ ./setting_scripts/setting_xs-dev_env.sh +$ ./setting_scripts/set_xs-dev_env.sh ``` By completing these steps, your shell environment will be configured correctly for the Moddable SDK and ESP-IDF. diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index 36e5e28..61ac7f0 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -71,13 +71,13 @@ xs-dev(CLI)でうまくセットアップできない場合はこちらを 次のコマンドを実行して、PSRAMの設定をします。 ```console -$ ./setting_scripts/setting_unset_psram.sh +$ ./setting_scripts/unset_psram.sh ``` 次のコマンドを実行し、Shellの設定ファイルに`source ~/.local/share/xs-dev-export.sh`を追加します。これにより、Shellの起動時に環境変数を設定されます。 ```console -$ ./setting_scripts/setting_xs-dev_env.sh +$ ./setting_scripts/set_xs-dev_env.sh ``` ## 環境のテスト From 5ee083a40dab42ae945193ac6526e7161e3ccdfe Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 16:07:17 +0900 Subject: [PATCH 24/27] =?UTF-8?q?=E5=BF=85=E8=A6=81=E3=81=AA=E3=82=BD?= =?UTF-8?q?=E3=83=95=E3=83=88=E3=82=A6=E3=82=A7=E3=82=A2=E3=83=84=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=81=ABcmake=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started.md | 14 ++++++++------ firmware/docs/getting-started_ja.md | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index 88b425f..1e9616d 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -13,12 +13,14 @@ Stack-chan can be developed on Windows 11, MacOS, and Linux. For Windows 11, ple * Tested on MaxOS (Sonoma 14 Apple silicon) * [Stack-chan RT ver.](https://rt-net.jp/products/rt-stackchan/) or its compatible product * USB type-C cable -* [git](https://git-scm.com/) -* [Node.js](https://nodejs.org/en/) - * As for the mod for cherrup_ble_lite, you need to use V18.x.x as it does not support the new Node.js. - * I've confirmed that other mods work with v22.8.x. -* The operation has been confirmed with Python 3.12. (Please download and install macOS from https://www.python.org instead of installing it with brew.)) -* xcode-select (macOS only) +* Tools + * [cmake](https://cmake.org/) + * [git](https://git-scm.com/) + * [Node.js](https://nodejs.org/en/) + * As for the mod for cherrup_ble_lite, you need to use V18.x.x as it does not support the new Node.js. + * I've confirmed that other mods work with v22.8.x. + * The operation has been confirmed with Python 3.12. (Please download and install macOS from https://www.python.org instead of installing it with brew.)) + * xcode-select (macOS only) ## Clone the Stack-chan repository and install the module on node diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index 61ac7f0..dab1232 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -14,6 +14,7 @@ * [スタックチャン アールティver.](https://rt-net.jp/products/rt-stackchan/) または その互換品 * USB type-Cケーブル * 事前にインストールしておくアプリ + * [cmake](https://cmake.org/) * [git](https://git-scm.com/) * [Node.js](https://nodejs.org/en/) * cherrup_ble_liteのmodに関しては、新しいNode.jsに対応していないためV18.x.xを使用する必要があります。 From b18850799bbb2f2b1016b72c16783073aeb64631 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Wed, 8 Jan 2025 16:31:06 +0900 Subject: [PATCH 25/27] =?UTF-8?q?Web=E6=9B=B8=E3=81=8D=E8=BE=BC=E3=81=BF?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=81=AE=E3=83=AA=E3=83=B3=E3=82=AF=E3=81=A8?= =?UTF-8?q?=E6=89=8B=E9=A0=86=E3=82=92=E3=83=88=E3=83=83=E3=83=97README?= =?UTF-8?q?=E3=81=AB=E8=BF=BD=E8=A8=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ README_ja.md | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 21edd94..7d26d17 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,11 @@ This repository includes the following contents. * For Windows: [(WSL2) Windows 11 Stack-chan Environment Setup Manual (Japanese)](firmware/docs/getting-started-wsl2_ja.md) * For MacOS/Linux: [Getting Started (MacOS/Linux)](./firmware/docs/getting-started.md) +* For Web: Follow the steps below: + 1. Access the web-flash page from your PC. + 2. Connect Stack-chan to the PC using a cable. + 3. Select `M5Stack CoreS3`. + 4. Press the `Flash Stack-chan firmware [・_・]` button. ## Contribution diff --git a/README_ja.md b/README_ja.md index e4daa55..45f820d 100644 --- a/README_ja.md +++ b/README_ja.md @@ -54,6 +54,11 @@ * Windowsの場合:[Windows 11 のスタックチャン環境構築マニュアル(WSL2)](firmware/docs/getting-started-wsl2_ja.md) * MacOS/Linuxの場合:[環境構築(MacOS/Linux)マニュアル](./firmware/docs/getting-started_ja.md) +* Webの場合:以下の手順を実行 + 1. PCから[web-flahページ](https://rt-net.github.io/stack-chan/web/flash/)にアクセス + 2. スタックチャンとPCをケーブルで接続 + 3. `M5Stack CoreS3`を選択 + 4. `Flash Stack-chan firmware [・_・]`ボタンを押下 ## コントリビューション From e48edf75f51ba0b03c65b31430142815ac070600 Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Thu, 9 Jan 2025 14:29:37 +0900 Subject: [PATCH 26/27] =?UTF-8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E9=A1=9E=E3=81=AE=E8=A1=A8=E7=8F=BE=E3=82=84?= =?UTF-8?q?=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- README_ja.md | 2 +- firmware/docs/flashing-firmware.md | 3 +- firmware/docs/flashing-firmware_ja.md | 2 +- firmware/docs/getting-started-wsl2_ja.md | 51 +++++------------- firmware/docs/getting-started.md | 37 ++----------- firmware/docs/getting-started_ja.md | 37 ++----------- .../grep_config_spiram.jpg | Bin 0 -> 20156 bytes .../set_xs-dev_env.jpg | Bin 0 -> 18961 bytes .../getting-started-wsl2_ja/unset_psram.jpg | Bin 0 -> 62774 bytes 10 files changed, 24 insertions(+), 110 deletions(-) create mode 100644 firmware/docs/images/getting-started-wsl2_ja/grep_config_spiram.jpg create mode 100644 firmware/docs/images/getting-started-wsl2_ja/set_xs-dev_env.jpg create mode 100644 firmware/docs/images/getting-started-wsl2_ja/unset_psram.jpg diff --git a/README.md b/README.md index 7d26d17..2011a47 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ This repository includes the following contents. * For Windows: [(WSL2) Windows 11 Stack-chan Environment Setup Manual (Japanese)](firmware/docs/getting-started-wsl2_ja.md) * For MacOS/Linux: [Getting Started (MacOS/Linux)](./firmware/docs/getting-started.md) -* For Web: Follow the steps below: +* For Web: Follow the steps below (Reference: [Tried Flashing a Program to Stack-chan via Web Browser (Japanese)](https://rt-net.jp/humanoid/archives/5907)): 1. Access the web-flash page from your PC. 2. Connect Stack-chan to the PC using a cable. 3. Select `M5Stack CoreS3`. diff --git a/README_ja.md b/README_ja.md index 45f820d..81eaafa 100644 --- a/README_ja.md +++ b/README_ja.md @@ -54,7 +54,7 @@ * Windowsの場合:[Windows 11 のスタックチャン環境構築マニュアル(WSL2)](firmware/docs/getting-started-wsl2_ja.md) * MacOS/Linuxの場合:[環境構築(MacOS/Linux)マニュアル](./firmware/docs/getting-started_ja.md) -* Webの場合:以下の手順を実行 +* Webの場合:以下の手順を実行(参考:[Webブラウザからスタックチャンにプログラムを書き込んでみた](https://rt-net.jp/humanoid/archives/5907)) 1. PCから[web-flahページ](https://rt-net.github.io/stack-chan/web/flash/)にアクセス 2. スタックチャンとPCをケーブルで接続 3. `M5Stack CoreS3`を選択 diff --git a/firmware/docs/flashing-firmware.md b/firmware/docs/flashing-firmware.md index 2030f4d..07883ea 100644 --- a/firmware/docs/flashing-firmware.md +++ b/firmware/docs/flashing-firmware.md @@ -37,7 +37,8 @@ Additionally, you can specify the paths of other manifest files in a list format As stated above, Stack-chan's firmware comprises a base program (host) and a user application (MOD). -**The handling of PSRAM connected to esp32 has changed from esp-idf version 5.x. The default settings do not work smoothly, so we changed some of them. `~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`, `CONFIG_SPIRAM=y` to `CONFIG_SPIRAM_n` with the** [Set up PSRAM and Environment Variable](./getting-started.md#set-up-manual). +**The handling of PSRAM connected to esp32 has changed from esp-idf version 5.x. The default settings do not work smoothly, so we changed some of them.** +**When [setting the PSRAM environment variables](./getting-started.md#set-up-manual), `CONFIG_SPIRAM=y` in `~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults` is rewritten to `CONFIG_SPIRAM=n`.** The following commands are used to build and write a host. diff --git a/firmware/docs/flashing-firmware_ja.md b/firmware/docs/flashing-firmware_ja.md index fa21b8c..90ad097 100644 --- a/firmware/docs/flashing-firmware_ja.md +++ b/firmware/docs/flashing-firmware_ja.md @@ -42,7 +42,7 @@ 前述の通りスタックチャンのファームウェアは基本プログラム(ホスト)とユーザアプリケーション(MOD)から構成されます。 **esp-idfのバージョンが`5.x`からesp32に接続しているPSRAMの扱いが変わっています。デフォルト設定ではスムーズに動かないため一部変更しています。** -**[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`に記述された`CONFIG_SPIRAM=y`が`CONFIG_SPIRAM_n`に書き換えています。** +**[環境構築の設定変更スクリプト実行時](./getting-started_ja.md#設定の変更)に、`~/.local/share/moddable/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`に記述された`CONFIG_SPIRAM=y`を`CONFIG_SPIRAM=n`に書き換えています。**
diff --git a/firmware/docs/getting-started-wsl2_ja.md b/firmware/docs/getting-started-wsl2_ja.md index 945190b..acfa6ab 100644 --- a/firmware/docs/getting-started-wsl2_ja.md +++ b/firmware/docs/getting-started-wsl2_ja.md @@ -232,15 +232,21 @@ $ npm run setup -- --device=esp32 次のコマンドを実行して、PSRAM無効化の設定をします。 ```sh -$ ./setting_scripts/setting_unset_psram.sh +$ ./setting_scripts/unset_psram.sh ``` -次のコマンドを実行し、Shellの設定ファイルに`source ~/.local/share/xs-dev-export.sh`を追加します。これにより、Shellの起動時に環境変数を設定されます。 + + + +次のコマンドを実行し、Shellの設定ファイルに`source ~/.local/share/xs-dev-export.sh`を追加します。これにより、Shellの起動時に自動で環境変数が設定されるようになります。 ```sh -$ ./setting_scripts/setting_xs-dev_env.sh +$ ./setting_scripts/set_xs-dev_env.sh ``` + + + ### 構築した環境の確認 #### Moddableの環境確認 @@ -260,44 +266,13 @@ $ npm run doctor 以下のコマンドでM5Stack CoreS3のPARAMの設定を確認します。 ```bash -$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults +$ grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults ``` -設定が完了していれば、`CONFIG_SPIRAM=n`という記述を確認できます。 + -```bash -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -CONFIG_ESP_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 - -CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n -CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n -CONFIG_ESP_COREDUMP_ENABLE=n - -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE="4MB" -CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y -CONFIG_ESPTOOLPY_FLASHSIZE="16MB" - -#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y -#CONFIG_FLASHMODE_QIO=y - -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y - -CONFIG_SPIRAM=n -CONFIG_SPIRAM_MODE_OCT=n -CONFIG_SPIRAM_MODE_QUAD=y -CONFIG_SPIRAM_SPEED_120M=n -CONFIG_SPIRAM_SPEED_80M=n -CONFIG_SPIRAM_SPEED_40M=y -CONFIG_SPIRAM_TYPE_AUTO=y -CONFIG_SPIRAM_IGNORE_NOTFOUND=y -CONFIG_SPIRAM_USE_MALLOC=y -# CONFIG_SPIRAM_MEMTEST=y - -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y -``` + +`CONFIG_SPIRAM=n`と表示されれば成功です。 ここまで完了次第、Ubuntuのウインドウを閉じてください。 diff --git a/firmware/docs/getting-started.md b/firmware/docs/getting-started.md index 1e9616d..fbac210 100644 --- a/firmware/docs/getting-started.md +++ b/firmware/docs/getting-started.md @@ -115,43 +115,12 @@ xs-dev environment info: ``` -You can check the PARAM settings for the M5Stack CoreS3 with the `$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults` command. -If the settings are correctly configured, you will find a line stating `CONFIG_SPIRAM=n`. +You can check the PARAM settings for the M5Stack CoreS3 with the `grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults` command. +If the setting are correctly, `CONFIG_SPIRAM=n` will be displayed ```console -$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults - -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -CONFIG_ESP_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 - -CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n -CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n -CONFIG_ESP_COREDUMP_ENABLE=n - -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE="4MB" -CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y -CONFIG_ESPTOOLPY_FLASHSIZE="16MB" - -#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y -#CONFIG_FLASHMODE_QIO=y - -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y - +$ grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults CONFIG_SPIRAM=n -CONFIG_SPIRAM_MODE_OCT=n -CONFIG_SPIRAM_MODE_QUAD=y -CONFIG_SPIRAM_SPEED_120M=n -CONFIG_SPIRAM_SPEED_80M=n -CONFIG_SPIRAM_SPEED_40M=y -CONFIG_SPIRAM_TYPE_AUTO=y -CONFIG_SPIRAM_IGNORE_NOTFOUND=y -CONFIG_SPIRAM_USE_MALLOC=y -# CONFIG_SPIRAM_MEMTEST=y - -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y ``` ## Next step diff --git a/firmware/docs/getting-started_ja.md b/firmware/docs/getting-started_ja.md index dab1232..9ea2c58 100644 --- a/firmware/docs/getting-started_ja.md +++ b/firmware/docs/getting-started_ja.md @@ -107,43 +107,12 @@ xs-dev environment info: ESP32 IDF Directory /home/ubuntu/.local/share/esp32/esp-idf ``` -`cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`コマンドでM5Stack CoreS3のPARAMの設定を確認できます。 -設定が完了していれば、`CONFIG_SPIRAM=n`という記述を確認できます。 +`grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults`コマンドでM5Stack CoreS3のPARAMの設定を確認できます。 +設定が完了していれば、`CONFIG_SPIRAM=n`と出力されます。 ```console -$ cat $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults - -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -CONFIG_ESP_CONSOLE_UART=y -CONFIG_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 - -CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n -CONFIG_ESP_COREDUMP_ENABLE_TO_UART=n -CONFIG_ESP_COREDUMP_ENABLE=n - -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE="4MB" -CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y -CONFIG_ESPTOOLPY_FLASHSIZE="16MB" - -#CONFIG_ESPTOOLPY_FLASHMODE_QIO=y -#CONFIG_FLASHMODE_QIO=y - -CONFIG_ESPTOOLPY_FLASHMODE_DIO=y - +$ grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults CONFIG_SPIRAM=n -CONFIG_SPIRAM_MODE_OCT=n -CONFIG_SPIRAM_MODE_QUAD=y -CONFIG_SPIRAM_SPEED_120M=n -CONFIG_SPIRAM_SPEED_80M=n -CONFIG_SPIRAM_SPEED_40M=y -CONFIG_SPIRAM_TYPE_AUTO=y -CONFIG_SPIRAM_IGNORE_NOTFOUND=y -CONFIG_SPIRAM_USE_MALLOC=y -# CONFIG_SPIRAM_MEMTEST=y - -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y ``` ## 次のステップ diff --git a/firmware/docs/images/getting-started-wsl2_ja/grep_config_spiram.jpg b/firmware/docs/images/getting-started-wsl2_ja/grep_config_spiram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..835d9deee0d88c29f39db9edcaf7536610a08fd1 GIT binary patch literal 20156 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 Ef7zhH@&Et; literal 0 HcmV?d00001 diff --git a/firmware/docs/images/getting-started-wsl2_ja/set_xs-dev_env.jpg b/firmware/docs/images/getting-started-wsl2_ja/set_xs-dev_env.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b864801307c8d6c51a36657fa00205e63cadebc9 GIT binary patch literal 18961 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

cu%69Y;N>ImlU zwIsZ$iSR*b%Dvpw1VvFlaiw>k!id56()=N)+`$sG!8AK#sh+hLt zQ0(y|m5`MDk^Y=)GyVreAFBi*mex!p?MOeC8O7GmMcDqgp!v{Q+w}FkXXKo8umTDr zsUfl=e?>D2ebuFoLhVm#w~{h^o5^lVrIOy=#doKH}G!R1!g&ILXB&YI1&Sl90e5XCp9c(2fH=0LjUPHO2f%yBCrS>$pTH!U{8ithWiugDNe4b{CA=K zaCmU;GDT}>YnZH-##CTMtpEG7PY4_S4jHAyTa2-tw0C-A9^*v4HE0Imyb~y+s;;!s z3@Dt;yxx6od{boGMKszc^8F)cHeVn!U8XOWM#8A0o>qNaQBBtE282PRb4GXn-jAR2 zhM2UAJ^_L8BG!pEWd;@v?psBQe`(QPzt9_ccZeOFNaZ2Kp{x;+hu)wxNdr z7lQBk87B}wAci>(O|ERH;NAL%$J}z?hiI~w@_Zuk+9R222!~$C<4&zicE7GQEDR1Da|1>>Df|w3`bCtBP76 zdUiIxnF754V`F*q6~lpg$=iD4|FImr7Vf$ne2H}&MXb(8PdVyyPZW2+Rr;Aqe1VhE zVeNR(*{ACqcT>x{RUVtYrA~N^B_yuQWJEwrqJq9O*EBL*l zEUSk2+mbM1&edUDlg_T_z{os7go9ic<;aq{J5f1_k#8l5?H0n=AonTp6VD;o8WDU% z>Oi_Vjb4NauFGCP6~TMlFEKI6f!aE$KDxuZFWYYUd?a*EAX~1DvN7-th^KEM`dUcB zcZX)6Qn+V9`P$GorFzD(Kg*6i6}x!Ca~YD1&|TVeDi-bP=z_lro4bR@e#$;i z?tbt_ifVj_qC{7es6@MLtzKzU4;Mzty^f4)neWV=i_*g>L_bXK%BXiz#SqCEeV1v0 zF+doLNLl-DHtidp|8tJ2=(I}p)tM0kkl_^<#ODx^IS^6K{>c11C3XBS!H`cLO}rt> z^vQz4FnvQlwnOvC$~#Dk(WxpKbLOOPD^yh8GZU;=3;JP^xG(5uu@5o}KEfOwYftN3 z2Cn1r2JTi3{t{4vxI+X%xGHdH`?YRMeej&_)Sufo3H`SpTyH+V>+8D=4Yx-4T{>Ks zocP(d(EhDh{~gBH-N$`p_kT~)^QL6KCi%Oaxv54FZQOq%`KM{RCi%O&xF-3hkwa`d zf0`GBlp24L{L>);viNQ~Lj*~@9NxeBu$9|B?0M2{kAyy$blV&9+uim0+O#enceiDH&n~csILI>fEyB;9*AE6X8#s}S*ZOA zFeq}vFDBK{Yc&mJE$L|~x4u|fxb-IZ72`pPOc3o{!-m(=7q7)Dz}vM#vM2D?ApGq# UORwNv>lM|9yMnVEtXJdz1K$*+r~m)} literal 0 HcmV?d00001 diff --git a/firmware/docs/images/getting-started-wsl2_ja/unset_psram.jpg b/firmware/docs/images/getting-started-wsl2_ja/unset_psram.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e14b366cfd6331c1960347fab1846f96777cd3ad GIT binary patch literal 62774 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 z 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�kQ~|sayiLC*Vbk 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 z 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 literal 0 HcmV?d00001 From cd894a7d97b7329f32d4ae459cc10bc2a67b38ba Mon Sep 17 00:00:00 2001 From: KuraZuzu Date: Thu, 9 Jan 2025 16:07:52 +0900 Subject: [PATCH 27/27] =?UTF-8?q?WSL2=E3=83=9E=E3=83=8B=E3=83=A5=E3=82=A2?= =?UTF-8?q?=E3=83=AB=E3=81=AEPSRAM=E7=A2=BA=E8=AA=8D=E3=82=B3=E3=83=9E?= =?UTF-8?q?=E3=83=B3=E3=83=89=E7=94=A8=E7=94=BB=E5=83=8F=E3=82=B5=E3=82=A4?= =?UTF-8?q?=E3=82=BA=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- firmware/docs/getting-started-wsl2_ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware/docs/getting-started-wsl2_ja.md b/firmware/docs/getting-started-wsl2_ja.md index acfa6ab..3d729f6 100644 --- a/firmware/docs/getting-started-wsl2_ja.md +++ b/firmware/docs/getting-started-wsl2_ja.md @@ -269,7 +269,7 @@ $ npm run doctor $ grep CONFIG_SPIRAM= $MODDABLE/build/devices/esp32/targets/m5stack_cores3/sdkconfig/sdkconfig.defaults ``` - + `CONFIG_SPIRAM=n`と表示されれば成功です。