Waveshare ESP32-S3 3.16 inch Display Development Board waveshare社が制作しているESP32-S3シリーズの製品に関する記事です。開発環境とDEMOプログラムを実施しています。 waveshare社https://www.waveshare.com 概要 Waveshare社の「ESP32-S3 3.16 inch Display Development Board」のテスト記事です。 https://www.waveshare.com/esp32-s3-lcd-3.16.htm?srsltid=AfmBOopPggCIAC7F56JY71jDe06gGVmuWBrhWALoudsOtTmsVcLbWL-4 Wiki https://www.waveshare.com/wiki/ESP32-S3-LCD-3.16 概要 320×820 Pixels 262K Color 32-bit LX7 Dual-core Processor Up to 240MHz Frequency WiFi & Bluetooth 5 ESP32 With Display 大きめのLCDとESP32-S3を組み合わせた開発用ボードという位置付けの商品の様です。 ESP32-S3 (ESP32-S3R8) > 内蔵 384KB ROM、512KB SRAM > 内蔵 8MB Flash/PSRAM > dual-core 240MHz 32bit RISC-Vプロセッサ ー > WiFi 2.4GHz IEEE 802.11b/g/n > Bluetooth LE: Bluetooth 5, Bluetooth Mesh (オンボードアンテナ) 3.16インチLCDディスプレイ > 解像度320×820 > 64Kカラー > RGB565通信インターフェース アンテナ > 2.4GHzのWi-FiおよびBluetooth 5(LE)を内蔵内アンテナ > 外部アンテナ設定用にははんだジョイントを内蔵 加速度センサーとジャイロセンサー搭載 > QMI8658 6軸センサー(3軸加速度計と3軸ジャイロスコープ) 内蔵PCF85063 RTCチップ > 予備のSH1.0バッテリースロット RST(リセット) ボタン/BOOTボタン 充電制御 > 接続 MX1.25 > 制御IC ETA6098(リチウムイオン電池充電をサポート) Type-Cコネクタ(プログラム書き込みおよびログ出力用) 複数のI/Oインターフェースに対応、フルスピードUSB規格をサポート 低ドロップアウトレギュレータ > MP1605GTF-Z(最大2A、入力:2.3V~5.5V、最小出力:0.6V) > https://www.monolithicpower.com/jp/mp1605.html > ボードの部品状態 ESP32-S3R8 WiFiおよびBluetooth搭載SoC、最大240MHz動作周波数、オンボード8MB PSRAM 16MB NORフラッシュメモリ IPEX1コネクタ 基板上の抵抗を再はんだ付けし、外部アンテナの使用に切り替え可能 内蔵セラミックアンテナ 2.4GHz Wi-Fi(802.11 b/g/n)およびBluetooth 5(LE)機能用 QMI8658センサー 6軸IMUは3軸ジャイロスコープと3軸加速度計を含む PCF85063 リアルタイムクロックチップ アルタイムクロックチップ用電池ヘッダー SH1.0 4PIN I2C ヘッダー MX1.25 4PIN USB ヘッダー SH1.0 4PIN UART ヘッダー RST(リセット) ボタン BOOTボタン BOOTボタンを押し続けながら、RSTボタンをクリックするとダウンロードモード スライドスイッチ システム電源ON/OFF用 TFカードスロット TFカードは使用前にFAT32でフォーマット Type-Cコネクタ ESP32-S3 USBインターフェース(プログラム書き込みおよびログ出力用) MX1.25 バッテリーヘッダー MX1.25 2ピンコネクタ、3.7Vリチウム電池用、充電・放電対応 スタンドオフ M2×3.5×3.5+2.0×1.2 インターフェース 主な仕様 ESP32-S3R8 > ESP32-S3 Series Datasheet Version 2.1 からの抜粋 https://documentation.espressif.com/esp32-s3_datasheet_en.pdf 主な機能一覧 2.4 GHz帯 IEEE 802.11b/g/n > 20 MHzおよび40 MHzの帯域幅 > 1T1Rモード、最大データレート150 Mbps Bluetooth ® > Bluetooth LE: Bluetooth 5 > Bluetooth mesh > 最大送信パワー  20 dBm (100mW) > Speed: 125 Kbps, 500 Kbps, 1 Mbps, 2 Mbps CPU > デュアルコア32ビットLX7マイクロプロセッサ(RISC-V) > 最大 240 MHz > 4段 バイブライン構造 メモリ > ROM: 384 KB > SRAM: 512 KB > SRAM in RTC: 16 KB 各種IO > 45個のプログラム可能なGPIO > 3 * UART > 2 * I2C > 2 * I2S > 1 * LCDインタフェース > 1 * 8ビット~16ビット DVPカメラインターフェース > 2 * SPI > 2 * 汎用SPI > 1 * TWAI ISO 11898-1 (CAN Specification 2.0) > 1 * フルスピードUSB OTG > 1 * USB Serial/JTAG コントローラー > 2 * SD/MMCホストコントローラー > 8 * LED PWMコントローラー > 2 * モーター制御PWM(MCPWM) > 1 * RMT (TX/RX) > 1 * パルスカウントコントローラー > 2 * 12-bit SAR ADC (逐次比較型) (最大20チャンネル) > 1 * 温度センサー > 14 * 静電容量式タッチセンシング入出力端子 > 4 * 54ビット汎用タイマー > 1 * 52ビットシステムタイマー > 3 * ウォッチドッグタイマー 電力管理 > コンポーネントの電力制御(クロック周波数、デューティサイクル、Wi-Fi動作モード、個別内部コンポーネント制御) > 電力モード-4種:アクティブ、モデムスリープ、ライトスリープ、ディープスリープ > ディープスリープモード時の消費電力は7µA > ディープスリープモード時でもRTCメモリは通電状態を維持 セキュリティ > セキュアブート - 内部および外部メモリへのアクセス権制御 > フラッシュ暗号化 - メモリの暗号化および復号化 > 暗号ハードウェアアクセラレーション:  – AES-128/256(FIPS PUB 197)  – SHA (FIPS PUB 180-4)  – RSA  – RNG(乱数生成器)  – HMAC  – デジタル署名 RFモジュール > アンテナスイッチ、RFバラン、パワーアンプ、低雑音受信増幅器 > 802.11b 伝送時最大 +21 dBmの出力 > 802.11ax伝送時最大 +19.5 dBmの出力 > Bluetooth LE受信機(125 Kbps)時最大 -106 dBmの感度 ESP32-S3R8 8MB PSRAM (Quad SPI接続) 動作温度 -40度~65度 LCD画面パラメータ 開発環境の構築 開発環境のインストールを実施します。 Arduino IDE 2 に環境をインストールしていきます。 ESP32 Development Board のインストール Arduino IDE で ESP32 関連のマザーボードを使用する前に、 Espressif Systems 開発ボード用の esp32 ソフトウェアパッケージをインストールする必要があります。 Waveshare ESP32-S3 1.64 inch AMOLED Touch Display Development Board と基本的には同じ様に構築しテストします。 DEMO プログラムを動作させるには次のライブラリをインストールする必要が有ります。 lvgl Graphical library v8.4.0 "Install Online" (demos フォルダを src にコピーします) アップデート確認とアップデートのインストール (今回は最新版の3.3.5に更新します。) ボードとポートの選択 ボード:    ESP32S3 Dev Mocule ポート: 動作テスト Hello, World! で動作を確認します。 void setup() { // put your setup code here, to run once: Serial.begin(115200); } void loop() { // put your main code here, to run repeatedly: Serial.println("Hello, World!"); delay(2000); } シリアルモニタの出力結果 DEMOプログラム DEMOプログラム DEMOプログラムを以下のURLからダウンロードしテストします。 https://drive.google.com/file/d/1fsIRFZ7HQxAZFpMyKR3LApBGr8H7ttXK/view?usp=sharing 01_ADC_Test システムの電流電圧値を読み取りコンソールに出力するテストプログラムです。 以下のライブラリを使用   lvgl  v9.1.0 結果 コンソール出力結果 >> 02_PCF85063_Test I2Cプロトコルを使用して、PCF85063チップを初期化し、時刻を設定してから定期的に時刻を読み、コンソールに出力するテストプログラムです。vido i2c_rtc_loop_task(void *arg):RTC機能を実装するためのRTCタスクを作成し、1秒ごとにRTCチップの時計を読み取り、それをコンソールに出力します 以下のライブラリを使用   lvgl  v9.1.0 結果 コンソール出力結果 >> 03_QMI8658_Test  I2Cプロトコルを使用して、QMI8658チップを初期化し、200ミリ秒ごとに対応する態度情報を読み取り、コンソールに出力するテストプログラムです。vido i2c_qmi_loop_task(void *arg):態度情報を取得するためのQMIタスクを作成します。タスクでは、加速度センサーとジャイロスコープのデータを読み取って印刷し、得られた結果を200ミリ秒間隔でシリアルポートコンソールに出力します。 以下のライブラリを使用   lvgl  v9.1.0 結果 コンソール出力結果 >> 04_SD_Card SDMMC経由でTFカードを駆動し、正常に取り付けた後にTFカードへログ出力します。     sdcard_init(void):4線式SDMMC方式を使用してTFカードを初期化します。     loop():TFカードの読み取りおよび書き込み関数をテストするには、コメントを控える必要があります#define sdcard_write_Testマクロ定義。 以下のライブラリを使用   lvgl  v9.1.0 結果 コンソール出力結果 >> 06:05:33.043 -> Name: SA16G 06:05:33.043 -> Type: SDHC 06:05:33.043 -> Speed: 40.00 MHz (limit: 40.00 MHz) 06:05:33.043 -> Size: 14832MB 06:05:33.043 -> CSD: ver=2, sector_size=512, capacity=30375936 read_bl_len=9 06:05:33.043 -> SSR: bus_width=1 04_sd_card_SDMMC TFカードへの書き込み/読み出しテスト、Arduinoライブラリのみを使用します。 結果 コンソール出力結果 >> 04_sd_card_SDMMC 2026-01-03 23:02 SD Card Type: SDHC SD Card Size: 14832MB Deleting file: /foo.txt File deleted Deleting file: /test.txt File deleted Listing directory: / Creating Dir: /mydir Dir created Listing directory: / DIR : mydir Removing Dir: /mydir Dir removed Listing directory: / Writing file: /hello.txt File written Appending to file: /hello.txt Message appended Reading file: /hello.txt Hello World! Renaming file /hello.txt to /foo.txt File renamed Reading file: /foo.txt Hello World! File not found, creating: /test.txt 1048576 bytes read for 342 ms 1048576 bytes written for 769 ms Total space: 14824MB Used space : 4MB 05_WIFI_AP このデモプログラムは開発ボードをホットスポットとして設定でき、STAモード内の電話機やその他のデバイスが開発ボードに接続できるようにします。 結果 コンソール出力結果 >> ---------------------------------------------- 05_WIFI_AP 2026-01-03 23:02 WiFi AP Started AP IP Address: 192.168.4.1 Connected Devices: 0            >> このデバイに接続指定なので何も出ない Connected Devices: 0 06_WIFI_STA この例では、開発ボードをSTAデバイスとして設定してルーターに接続し、システムネットワークにアクセスできるようにすることができます。 結果 コンソール出力結果 >> ---------------------------------------------- 06_WIFI_STA 2026-01-03 23:36 Connecting to WiFi ...... IP Address: 192.168.1.154 今回のテストプログラムの動作テストはここまでです。表示関係のテストは実施していませんが、別のテストプログラムを作成しています。 LVGL TEXT  lvgl  v9.1.0 使用して TEXT を描画してテストしています。