stack-chan / stack-chan

A JavaScript-driven M5Stack-embedded super-kawaii robot.
Apache License 2.0
794 stars 96 forks source link

m5stack core2 v1.1でファームウェアが全く機能しません #237

Closed RChikamura closed 2 months ago

RChikamura commented 5 months ago

不具合の概要 ファームウェアをビルドし、書き込んでみたのですが、画面に何もつかず、モーターも反応しません ターミナルやデバッガーを見ても、目立ったエラーコードは特に出ていません。

再現手順 node js および npm の最新版を導入した環境で、 https://github.com/meganetaaan/stack-chan/blob/dev/v1.0/firmware/docs/getting-started_ja.md https://github.com/meganetaaan/stack-chan/blob/dev/v1.0/firmware/docs/flashing-firmware_ja.md のコードを用いて環境構築をし、ファームウェアを書き込みました。

環境:

その他 stack-chan-testerはPlatform IOを通して書き込みに成功しており、画面やモーターなども正しく動作することを確認しています。

meganetaaan commented 5 months ago

報告ありがとうございます!Core2 v1.1はModdable側がまだ対応しておらず、改修が必要です。 私も手元にテスト用機体はありますが手が回っていない状況でした🙇 今週中を目処に、必要な改修箇所について確認しますね。

meganetaaan commented 4 months ago

進捗共有です。M5Stackが提供するソースコードを見つつ改修箇所を確認しました。 Core2 v1.1の電源管理ICはAXP192からAXP2101に変わっており、初期化のためのコマンドが若干異なるため修正が必要です。ただし旧モデルと新モデルともに「m5stack_core2」ターゲットとして動作させたいので、端末の初期化時にICを自動判別して処理を振り分けます。 ちなみにAXP2101はCoreS3でも使われているものでModdableの実装が既にあります。他にもINA3221という電流センサICが追加されています。

最低限、必要な実装としては

が、できれば良さそうです。

RChikamura commented 4 months ago

上記、お調べいただいた情報をもとに、私のほうでも独自に調査し、改修をしていたのですが、前進があったので共有いたします Core2のsetup-target.js, manifest.jsonと、モジュールaxp2101.jsを改修することにより、初期化処理が一部進行するようになった模様です。ただし、タッチパネルのセットアップに失敗しているようで、スタックちゃんの起動までは至らず、下部LEDのみが点灯している状態となります。 https://github.com/RChikamura/Moddable_Repair_RChikamura (Privateリポジトリです)

RChikamura commented 4 months ago

さらに修正を加え、プログラムが1回起動するところまでは持っていけましたが、2回目以降は正常起動ができず、わずか数秒で落ちてしまう状態になってしまいます。

問題点として、AXP2101.jsにピン設定が大幅に不足していたり、AXP192.jsから変更されていないままの部分があったりしている点が見受けられ、それが影響を及ぼしているように思えます。 https://github.com/RChikamura/moddable_core2v1.1_try

RChikamura commented 4 months ago

さらに修正を加え、おそらく正常起動可能になりました。 https://github.com/RChikamura/moddable_core2v1.1_try

meganetaaan commented 4 months ago

ありがとうございます!いまコード読んでいます。 AXP2101のDCDCやLDOなど足りていない機能を色々実装してくださったんですね。

DCDCの電圧のステップ数などの設定がピンによって違うんですね。たしかにデータシートの5.5 (Electrical Characteristics)に書いてますね。

後ほど実機で動かしてみます!

ちなみにModdable本家に今回の対応をコントリビュートするのは興味ありますか?コードを他のデバイスでも動くように修正したり、プルリクエストを作ったりする感じです。慣れない点がありましたら私もサポートできればと思います。

RChikamura commented 3 months ago

返信遅れて申し訳ございません。 このようにgithubで連携を取って開発を進めたことがなく、まだどのような作業を行えばよいかわかっていないのですが、できることがあればお手伝いしたいと思います。

meganetaaan commented 3 months ago

私の方でも動作確認ができました!ありがとうございます!

いただいた変更を私の方でModdableに取り込んで微修正し、旧バージョンのCore2と共存して動くようにできました。

https://github.com/meganetaaan/moddable/tree/feature/m5stack_v2.1

Moddable最新版からの差分は下記のプルリクエストのとおりです。 https://github.com/meganetaaan/moddable/pull/1

このあともう少しセルフレビューしたら、RChikamuraさんを「共同編集者」としてModdable本家のほうにプルリクを出そうと思います。その際RChikamuraさんにContributor License Agreement(CLA:Moddableが指定するライセンスでコードを公開してよいですという同意書)を書いていただく必要がありますが、この段階になったらまた連絡します。CLAの詳細は↓にあります。

https://github.com/Moddable-OpenSource/moddable/blob/public/contributing.md#submitting-pull-requests

meganetaaan commented 3 months ago

プルリク作りました!

https://github.com/Moddable-OpenSource/moddable/pull/1324

@RChikamura 前述の通り、ModdableにCLAを提出していただけますでしょうか。

https://github.com/Moddable-OpenSource/moddable/blob/public/licenses/Moddable%20CLA%20-%20individual.pdf

で完了です。ご不明点ありましたらお尋ねください :bow:

meganetaaan commented 3 months ago

上記のプルリクがマージされました。 https://github.com/Moddable-OpenSource/moddable/pull/1324

既にModdableのpublicブランチで利用できるほか、来月のModdable月次リリースにもこの修正が含まれる見込みです。

meganetaaan commented 2 months ago

https://github.com/Moddable-OpenSource/moddable/releases/tag/4.6.0 4月のリリースで修正が取り込まれたので試しているんですが、LCDが付かないですね…なにか修正を間違えたかな。 デバイス本体下の青色LEDがずっと点滅しているのも気になります。

meganetaaan commented 2 months ago

あ、勘違いだった。 M5Stack Core2 v1.1とModdable v4.6.0の組み合わせで無事にスタックチャンが動作しました :tada:

meganetaaan commented 2 months ago

クローズします。v1.1でまだ問題があれば再オープンしてください。