Mac環境でm5stackを動かすための準備メモ

Mac環境でm5stackを動かすための準備メモです（主に自分用）

# 環境
- MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports) --> 結局MacBookでは書き込みできておらず代わりにlinux環境(ubuntu)を使った
- [M5Stack Basic V2.6](https://www.switch-science.com/products/7362)
- sdカードを用意する [KIOXIA(キオクシア) 旧東芝メモリ microSDHCカード 16GB UHS-I Class10](https://www.amazon.co.jp/gp/product/B08PTP6KKS/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&th=1)
（※m5stackは[16GB以下じゃないと認識しないとの噂](https://m5stack-build.hatenablog.com/entry/2019/09/15/000224)のため）

# 準備
- 前述の環境を用意する
- SDカードを[こちらを参考](https://blog.websandbag.com/entry/2018/02/15/040004)にFAT32でフォーマット
- [arduinoIDEをインストール](https://www.arduino.cc/en/software)
- [m5stack Library](https://www.mgo-tec.com/m5stack-library-install)をインストール（tool-->install-->Manage-->"Library for M5Stack"記載のものを選択）
- `device:M5Stack-core-ESP32`、`port:(m5stackをusb接続した際に/dev/tty***に表示されるやつ、ここは環境毎に異なる様子)`を選択
- arduinoIDEのBoardMansgerにESP32を未追加であれば、[こちら](https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/)を参考に追加しておく。

# プログラムの書き込み&起動

[こちら](https://www.1ft-seabass.jp/memo/2022/10/19/m5stack-sdcard-load-jpg-image-from-button/
)を参考にプログラムを書き込むとディスプレイに色が表示されるところまでとりあえず進める。
先人の知恵により短時間でできると思いきや、私の環境ではエラー出て割と悩んだので以下エラー内容と解決策を残しておきます。


# error対策

書き込み時にエラー

```
A fatal error occurred: Failed to write to target RAM (result was 01070000)
```

or

```
$ sudo dmesg
...
CH34xVCPDataDriver stop.
CH34xVCPControlDriver stop.
CH34xVCPDeviceDriver stop.
CH34xVCPControlDriver start.
devfs: cu.wchusbserial54D8028940ZF\M^@\M^?\M^?\M^?1: name slot allocation failed (Errno=63)
devfs: tty.wchusbserial54D8028940ZF\M^@\M^?\M^?\M^?1: name slot allocation failed (Errno=63)
CH34xVCPDataDriver start - successful and IOModemSerialStreamSync created.
CH34xVCPDeviceDriver start.
com.apple.p2p: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from AUTO to SUSPENDED
com.apple.p2p: AWDL is suspended
com.apple.p2p: IO80211AWDLPeerManager::setAwdlOperatingMode Setting the AWDL operation mode from SUSPENDED to AUTO
com.apple.p2p: AWDL is off
```


おそらくMac側にドライバインストールが必要、以下を参考にして解決できる。

~~https://qiita.com/shiura/items/e987004c23b1dbb7e9d7~~

できなかった！！！
m5stack-v2-6からは以下のドライバをインストール必要になったとのことでした
以下の方のドライバをインストールして解決

https://mag.switch-science.com/2021/11/01/m5stack-v2-6-changes/
> 先日もお伝えしましたが、このたびM5Stack Coreシリーズのv2.6が発売となりましたので、そのご紹介です。
シリアル変換ICの変更
CP2104→CH9102Fに変更となりました。転送速度などは変わりませんが、接続するパソコンに新しくドライバを入れる必要があります。

CH9102Fのドライバの入れ方
https://docs.m5stack.com/en/download
CH9102_VCP_SER_MacOS v1.7


# エラー２

書き込み時にエラー

```
A fatal error occurred: Timed out waiting for packet header
```

Arduino IDEのUpload Speedをゆっくり（921600-->460800）にして。。。も解決しない。困った。
（その後）Apple M1 Macで試してもダメでした。困った。
--> 結局Macでは諦めて、ubuntuで実行して回避（Macでは未解決問題です、助けてください。。）

https://dotstud.io/docs/nefrybt-error-handling-2/
> Arduino IDEのUpload Speedを遅くするとうまくいきます（921600になっていたものを460800にする

https://www.mgo-tec.com/blog-entry-trouble-shooting-esp32-wroom.html/3

# エラ−３

IDEからのビルド実行時に以下のようなエラーが発生

```
Traceback (most recent call last):
File "/home/sugi/.arduino15/packages/esp32/tools/esptool_py/2.6.0/esptool.py", line 35, in <module>
import serial.tools.list_ports as list_ports
ImportError: No module named serial.tools.list_ports
exit status 1
ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。
```

pyserial、esptool installのあとIDE再起動して解決

```
sudo apt-get install python-pip
sudo pip install pyserial
sudo pip install esptool
```

https://blog.goo.ne.jp/field_light/e/b5f54680844c832b437d114decb8603f

# エラー4

m5stackにプログラムを書き込んで起動するも、どうもSDカード内の画像が表示されない。
そもそもsdカード(64GB)が認識されてないような気がする、、
（※m5stackは[16GB以下のsdカードじゃないと認識しないとの噂](https://m5stack-build.hatenablog.com/entry/2019/09/15/000224)が、、）

-->(追記)16GB以下だと無事に認識されました！よかった。。
[KIOXIA(キオクシア) 旧東芝メモリ microSDHCカード 16GB UHS-I Class10](https://www.amazon.co.jp/gp/product/B08PTP6KKS/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&th=1)

-->(追記)ちなみに画像は、サイズが320*240、JPEGであればOKでした

# 最終的に完成したもの

名刺を兼ねて以下のようなものを表示できた

https://challenge-club.connpass.com/
https://github.com/seigot

![IMG_7228.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/344880/ce0044c3-3879-93d6-c76f-278293053e44.jpeg)


# 参考

https://www.1ft-seabass.jp/memo/2022/10/19/m5stack-sdcard-load-jpg-image-from-button/

https://blog.websandbag.com/entry/2018/02/15/040004

https://mag.switch-science.com/2021/11/01/m5stack-v2-6-changes/

https://dotstud.io/docs/nefrybt-error-handling-2/

https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/

https://blog.goo.ne.jp/field_light/e/b5f54680844c832b437d114decb8603f