M5 ATOM GPSでGPSロガーを作った話

M5 ATOM GPSでGPSロガーを作ってみました。詳細は英語ブログの方に書いたのですが、概要を日本語でも紹介しておきます。

英語記事はこちら。http://takyanagida.com/gpslogger-m5_version.html

M5で使われているESP32というチップ、以前に使ったAdafruit Feather M0に比べて大きいので、いろいろと苦労しました。
苦労した点はこんな感じ。

  • ESP32用のSD.hは、Arduino標準のSD.hとまったく別のファイルである。
  • ESP32用のコードは階層が深い。例: class SDFS < FS < Stream
  • ESP32はFreeRTOS上で動き、よく分からないGuru Meditation Errorが出る。
  • M5Atom.hは一応動くが、NeoPixel制御がFreeRTOSの別タスクになってたりしてイマイチ。

書いた内容はこんな感じ。

  • Arduino IDEのコンパイルログを詳細化する方法。
  • FastLEDをGRBオーダーで初期化する方法。
  • xtensa-esp32-elf-addr2lineでGuru Meditation errorをデコードする方法。
  • CPUクロックを落として少し省電力化する方法。

日本語で得た情報をいろいろ活用させてもらってます。英語記事中からもリンクを張っていますが、以下の情報は大変参考になりました。どうもありがとうございます。

M5 ATOM GPSのLEDが隠れている様子
https://twitter.com/n602_NA/status/1299603572376576000

M5 ATOM GPSのRXが接続されていない様子
https://twitter.com/norifumi5001/status/1271594286660726785

M5Atom.hを使わずにFastLEDを直接使う話
https://tomoto335.hatenablog.com/entry/m5atom-dont-use-library

Guru Meditation Errorのデコード方法
https://wamisnet.github.io/blog/2020-07-14-esp32-backtrace/