M5Stack 開発環境は複数あるが、公式版は micropython に Microsoft Makecode を被せて web service 経由でコードを書き込む UIFlow が代表的。 arduino esp32 target として作る方法もあるし、espressif ライブラリと C++ で作る方法もある。
M5Stack の USB シリアル接続は一般的な esp32 直接接続ではなく、CP210x を経由するようになっている。 この USB ドライバが正常動作するようになると、シリアルポートとして見えるようになる。
M5 Burnerという公式ツールがあり、esp32のイメージ書き込みができる。 またいわゆるストアのような側面も持っており、UIFlowの公式イメージもこれで簡単に書き込める。 一般的な esptool を内蔵していて、それを呼び出している。 UIFlow の公式イメージには、micropython 環境と UIFlow ウェブサービスへの繋ぎこみのコードが入っている。
公式イメージのうちの micropython 部分のみを取り出したのが UIFlow-Code となる。 リポジトリに入っているイメージを書き込む。その際 Windows では M5 Burner 同梱の esptool を使うと簡単。 UIFlow-Code の README にあるように C ボタンを押しながら起動させて、 Microsoft VSCode extension(vscode-m5stack-mpy) で接続して開発することができる。 API ドキュメントは「かなり」読みづらいが、UIFlow-Code のwiki が基本となり、 micropython のポートのドキュメント、micropython 自体のドキュメント、と足りない部分を読む。 現行版と一致しない部分もままあるので注意。 m5stack module は micropython 自体に対応するもの、m5ui module は M5UI ライブラリと対応する。