少し前に入手していた M5AtomS3R というデバイスがあります。
これの前機種に当たる M5AtomS3 がとても使いやすく愛用しています。なのでPSRAM搭載版と聞いて喜び勇んで買ってみたのですが、肝心のPSRAMをPlatformIOからサクッと使うことができませんでした…
ネット検索してもピンポイントな情報を見つけられなかったのですが、ヒントになるいくつかのX投稿のおかげで何とかビルド&実行できるようになりました。ありがとうございました。
ATOMS3Rは8MBのPSRAMが付いたのが売りのようですのでせっかくなら使っていきたい。
— つゆきぱぱ (@tsuyukipapa) March 6, 2025
-DBOAD_HAS_PSRAM=1ではだめなのだろうか?
boadをm5stack-atoms3にしているのですがatoms3rというのは見つけられませんでした。🤔 pic.twitter.com/VaoBWzOBbm
AtomS3R のPSRAMはOPIという種類なので、設定は以下であってそう。ただしM5Unifiedと組み合わせて使おうとすると、QPSI PSRAMの設定にしないとリブート繰り返す感じになる気がする。なぜに。 https://t.co/8juJ23tVQZ
— しげき (@shi78ge) September 29, 2024
#M5Stack ATOMS3Rで色々ググってPSRAM認識させたけどあっているだろうか(´・ω・`)
— 紅熊(隣の素子屋のひとりごと) (@9PEO0xNd) September 28, 2024
platform = espressif32@^6.9.0
getPsramSizeは十進で8386231でした pic.twitter.com/0BPiszGCc2
キモは platformio.ini でした。次にPSRAMを触りたくなったとき、またネット検索しなくても済むように、GitHubにサンプルプロジェクト一式を入れておきました。
https://github.com/tarmn3/AtomS3R_PSRAM_simple_sample
(用意した2枚のPNGをPSRAMに入れて、ボタン押すたびに切り替える単純なサンプルコードです)
でも、いちいちリポジトリ覗かなくてもいいように貼っておきます。
[env:m5stack-atoms3r]
platform = espressif32
board = m5stack-atoms3
framework = arduino
; ファイルシステム
board_build.filesystem = littlefs
; PSRAM 有効化
board_build.arduino.memory_type = qio_opi
board_build.flash_mode = qio
board_build.psram_type = opi
build_flags =
-DESP32S3
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue
-DARDUINO_USB_CDC_ON_BOOT=1 ; USB CDC を起動時から有効化
-DARDUINO_USB_MODE=1 ; USB シリアルポートを使う
-DCORE_DEBUG_LEVEL=5
lib_deps =
m5stack/M5Unified@0.2.7 ; 0.2.8 は動作未確認
m5stack/M5GFX
(公式の iniファイルそのままで動かなかったのが謎のまま… 誰か教えてください…)