2020年
明けまして
おめでとうございます!
本年もどうぞよろしくおねがいいたします。
m(_ _)m
さて、2020年一発目の記事なのに、かなり遅ればせながらですが、IPSタイプのディスプレイを搭載したM5Stack Fire というものを初めて使ってみましたので、いろいろ気付いた事を報告したいと思います。
Twitterで見かけるM5Stackユーザー界隈では、1年以上前から愛用している人が多くいますね。
私は、M5Stack Basicで十分だと思っていたので、ずっと買わないでいました。
何しろ、GPIOが少ないので、使い道が限られると思っていました。
でも、前々回記事のプログラミングで、ESP32のSRAMを殆ど使い果たしていたので、PSRAM付きのM5Stackが必要と思うに至り、M5Stack Fireを使ってみたという次第です。
いざ、使ってみると、初代M5Stackからかなり進化していました。
特に IPSタイプのLCD(液晶ディスプレイ)は視認角が格段に良いですね。
IPSディスプレイはM5Stack BasicおよびFIREとも、2019年7月以降の生産で変更になったので、現在流通しているものの多くはIPSタイプなのではないかなと思います。
これだけでも、新型M5Stackを買う意味があると思いました。
そして、M5Stack FIREは、ESP32の発熱が抑えられている点が良いですね。
かなりハードなWiFi UDP送受信をしても冷却ファンなしで十分でした。
また、分解してみた結果、Basicよりもボディーの収まりが良い感じで、頑丈な感じがしました。
良く練られて作られた感じがします。
あとは、FLASHメモリが16MBになっていて、膨大なプログラミングでも容量を気にしなくても良いというのは有難いですね。
ただ、PSRAMが認識しなかったり、WiFiの受信状態が悪かったり、気になる点が少々ありましたので、自分なりにまとめてみました。
なお、私は電子回路やプログラミングに関してはアマチュア素人です。
間違えや勘違いがあるかもしれませんので、気になる点がありましたらコメント投稿等でご連絡いただけると助かります。
- 初代M5Stack Basicを1年以上使い続けて、Bottomケースが割れたり、いろいろ思った事
- M5Stack FIRE およびBasicについて、購入する時の注意点
- M5Stack FIREを分解してみる
- IPS(In-Plane-Switching)ディスプレイ ILI9342C について
- PSRAMを認識しない場合のトラブル対処
- Arduino core for the ESP32 のインストール
- M5Stack FIREの Arduino core for the ESP32設定
- PSRAMを使った Arduino IDE スケッチ(プログラミング)例
- M5Camera と M5Stack FIRE で、WiFi UDP で動画表示するスケッチ
- PSRAM と SRAM の描画速度の違い
- 新型M5Stack FIREのWiFi受信が旧型Basicより悪いかも?
- 送信側M5Camera CPUの発熱がひどくなるのは、M5Stack FIREの受信状態が悪くなった時
- 新型M5Stack FIREの方がCPU発熱少ないかも?
- 編集後記
初代M5Stack Basicを1年以上使い続けて、Bottomケースが割れたり、いろいろ思った事
M5Stack Fire を購入する切っ掛けとなったのは、M5Stack Basicを使っていて、画像処理でメモリが足りなくなり、PSRAM搭載のものが欲しかったことと、M5Stack Basicのバッテリーが寿命を迎えたこと、それにBottomケースが割れてしまったことでした。
M5Stackを使い始めたのは、2018年4月頃でした。
最初はGrayを使い始め、その後しばらく経ってBasicを使い始めました。
Basicを使い始めて半年くらい経った時ですが、以下のようにBottomケースの角が割れてしまいました。
これは自分のネジの締めすぎかな? と思っていました。
ただ、このままでも動作に支障なかったので使い続けていました。
しばらく使い続けていると、今度はBottomケースが以下のように割れてしまいました。
これは、Li-Poバッテリーが劣化して膨らんできて、Bottomケースと本体との間に隙間が出てきたので、手で押し込んでいるうちに割れてしまいました。
真横から見るとこんな感じです。
このバッテリーは、充電しても直ぐに電圧が規定値より下がってしまうので、寿命を迎えてしまいました。
かなりハードに使ったので、バッテリー自体は1年も持ちませんでした。
寿命を迎えたバッテリーを使い続けていれば、当然、膨らんでしまいますね。
これ以上使い続けると、破裂および発火の危険性を感じたので、これは即廃棄せねばなりません。
リチウム系のバッテリーはこれが怖いですね。
M5Stackの人気が出始めた当初、こちらの記事で紹介したように、とっても感心しました。
ただ、1年以上使い続けていると、このバッテリーが膨らんできて割れてしまうということまではメーカー側も想定していなかったのかも知れませんね。
たぶん、M5Stack社にはこれからいろいろな情報が集まってきて、どんどん改良されていくんでしょうね。
後で述べますが、M5Stack Fireではバッテリーが多少膨らんでも、ケースが割れないような構造になっていました。
ところで、ちょっと不思議に思うのは、Bottomケースについて、本家M5Stack社では販売しているのに、なぜか日本代理店のスイッチサイエンスさんやAmazon.co.jpの日本代理店で販売していないのです。
Twitterでも割れた報告を数人見かけたのですが、絶対数が少ないんでしょうか?
とりあえず、今は自分が調べたところ、日本の販売店ではBottomケースが売っていなかったので、オプションバッテリーを買って、下図の様に紙で覆うなどしながら使い続けています。
M5Stack用電池モジュール
アクリル板や塩ビ板で切り出して貼ってもいいかも知れませんね。
今のところこれで不便無く使っています。
そんなこんなで、思い切って高価なM5Stack Fireを買って使ってみることにしたのです。
M5Stack FIRE およびBasicについて、購入する時の注意点
M5Stack Basic および M5Stack FIRE では、生産された時期、ロットによって、LCD(液晶ディスプレイ)のタイプが異なります。
発売当初はLCDドライバーが ILI9341 だったのですが、2020年1月時点で現在流通している多くはIPS(In-Plane-Switching)タイプの ILI9342C になっています。
M5Stack公式サイトの以下のページを参照してください。
https://docs.m5stack.com/#/en/core/basic
https://docs.m5stack.com/#/en/core/fire
これによると、M5Stack BasicおよびFIREのロットによる違いは以下です。
2017年7月 | 初期リリース |
---|---|
2019年7月 | TNタイプスクリーンをIPSタイプに変更 |
2018年6月 | 初期リリース |
---|---|
2019年7月 | TNタイプスクリーンをIPSタイプに変更。 センサ MPU9250 を SH200Q+BMM150 に変更。 |
2019年8月 | センサ SH200Q を MPU6886 に変更。 |
2019年11月 | バッテリー容量を600mAhから500mAhに変更。 |
古いプログラムを新しい IPSタイプLCD のM5Stackで使おうとすると、白黒反転および輝度反転する場合があります。
最新のM5Stack公式ライブラリを使う分には問題無く動作しますが、その他のプログラムを使う場合はLCDドライバーに反転(Invertion)コマンドを送る必要があります。
それについては後で述べます。
この他、M5Stack FIRE では、PSRAMを認識しない場合があります。
スイッチサイエンスウェブショップの以下ページを見て下さい。https://www.switch-science.com/catalog/3953/
それと、本家M5Stack社の以下のサイトを見てください。
https://docs.m5stack.com/#/en/core/fire
これによると、初代M5Stack FireはPSRAMを認識しない問題があったようで、スイッチサイエンスさんで最近出荷されているものは、その問題が解消されているそうです。
ですから、M5Stack FIREを購入する場合は、スイッチサイエンスさんで購入した方が安心できますね。
Amazonでもスイッチサイエンスさん販売のものがあります。
結構高価ですよね。
M5Stack Basicより2,000円くらい高いです。
Flashサイズが16MBになって、PSRAMやマイクロフォン、6軸センサ、RGB-LED付きだから、仕方ないですね。
なかなか家計が厳しいですが、私は今回、サポーターの皆さまのおかげで購入することができました。
本当にありがとうございます。
m(_ _)m
ただ、私が購入したものは、2019年8月以降に生産されたロットのはずなのに、PSRAMを認識しないことが多々ありました。
それによって、再起動を繰り返してしまったのです。
たまに正常認識することもありましたが、ほとんどPSRAM認識不良でした。
スイッチサイエンスさんのサイトによれば、PSRAM問題サポートは終了しているようですので、自力で解決してみました。
それについては後で紹介します。
では、次の節ではM5Stack FIREを分解してみます。
コメント
はじめまして。サーボ と申します。
ついこの前に M5StackFire と M5Camera を購入し、いろいろ勉強しているところです。
mgo-tec さんの記事を見つけ、参考にさせていただいおり大変ありがたいです。
お忙しいところお疲れさまです。
「PSRAMを使った Arduino IDE スケッチ(プログラミング)例」で、
PSRAM data size が 220 となっている理由につきまして、ちょっと心当たりがあります。
c_buf1 には、ヌル文字を含む10文字の配列を5個分だけ格納する領域へのポインタを設定され、
c_buf2 には、上記領域を5分割してそれぞれの領域の先頭へのポインタを設定されているのかなと思います。
ps_malloc() で c_buf1 の領域を確保する処理につきまして、sizeof(char *) の代わりに
sizeof(char) で領域を確保してはいかがでしょうか。”char *” は M5StackFire では 4 バイトの変数なので、
確保したいメモリ量の 4 倍の量を確保してしまいます。
sizeof(char) に変更した場合の領域の量は、10 * 5 + 5 * 4 = 70 bytes かと思います。
修正して動作を確認すると、PSRAM data size は 72 となっておりました。
70 となっていないのは、mgo-tec さんのおっしゃる「4byte単位で」読み書きするため、4 バイト単位で
領域が確保されるのかなと思います。
少しでも参考になればと、コメントさせていただきました。
サーボさん
記事をご覧いただき、ありがとうございます。
おー!
そう言えば、sizeof(char *)はESP32では4byteでした。
すっかり忘れていました。
というか、2次元配列のps_malloc()確保は、ポインタ型でしか初期化できないと思い込んでいました。
今取組中の課題が終わったら試してみようと思います。
ありがとうございました。
m(_ _)m
mgo-tec さん
お役に立てて何よりです!
お体に気を付けながら、時間があるときにでも試してみてくださいませ (^^
はーい! ありがとうございまーす!!!