macsbug ESP32 S3
macsbug ESP32 S3: 2023.05.05
ESP32 S3 の基板を製作しました。
費用は 900円。
![]() |
![]() |
.
作例:
_ 1.3inch 240×240 SPI ST7789 Display;
_ LovyanGFXでのSPI Frequencyは 80MHzで動作をしています。
_ 部品とパターンのレイアウトにより高速動作が実現しています。
![]() |
![]() |
.
.
開発環境:
_ PC:Windows 又は Mac + Windows環境
_ プリント基板エディタ (無料):PCBE
_ PCB製造:JLCPCB
設計:
_ 参考基板と部品:
ESP32 miniKit (670円) と ESP32 S3 版の T7-S3 (1865円)。
2つから、ESP32-S3-WROOM-1 N16R8(Flash 16MB, PSRAM 8MB)を
使用し低価格と性能向上を目指しました。以降 ESP32 S3を S3 と表現。
Minikit と T7-S3の LDOは ME6211(500mA)。これをピンコンパチの
TPS74033SF5(600mA)に置き換え 20%のパワーアップを実現します。
部品点数は 16個で 組み立て容易で コストは低くなります。
S3は GPIO数(34)多く 16bit parallel Displayの高速表示が可能です。
_ レイアウト:
1. GPIO Connector (CN2,CN3,CN4);2列にし基板を小型化。
2. GPIO Connector:S3のGPIOと最短距離に配線。(左)
3. GPIO端子からの引き出しは太くする。線は丸みを持たせる。
4. LDO:TPS74033SF5(600mA)を S3 3V3 と最短距離に配置。(右)
5. USB D-,D+:USB C Connectorから S3 D-(19),D+(20)を最短距離に配置。(右)
6. ESD Protection:USB D-,D+ に USB用TVS (USBLC6-2SC6) を使用。(右)
![]() |
![]() |
パターンについて: 右端GPIO端子部は 線を太くする(Green) 線は 角を作らず丸みを持たせる(Green) GNDにビア(小さい丸)を打つ(Yellow) 電源3.3VとGNDの線は極力太くする。 |
![]() |
メモ:数多くのESP32基板の速度の検証では、
_ 長い基板は Displayの表示速度が遅い経験を体験しています。
_ 検証の結果、小型のESP32 minikit基板の性能は一番です。
検証:LCD and ESP32 speeds with LovyanGFX
.
回路図:
基本は ESP32 minikitの回路図 及び T7-S3の回路図を参照。
LDO は TPS74033SF5 ( 600mA ) を採用。U2。
ESD Protection に USBLC6-2SC6 を採用。U3。
S3は ESP32-WROOM-1 NR16R8 ( Flash 16MB, PSRAM 8MB)。U1。
S3は 530円で全体の60%です。低価格で入手できれば良いですね。
_ 省電力対策:
RED LED(PWR:5V)とBLUE LED(GPIO 45)は カットできるPADを採用。
Battery使用時にPADをカットし 省電力が可能です。
さらに ESP32のDeepSleep(10μA,100μA,150μA)を使用せず
TPL5110モジュールを使用すると TPL5110の消費電流 30nAで動作が可能です。
S3 abaracadabra.pdf:PDF版です。
_ 部品レイアウト:16個の部品で構成されています。
.
.
部品リスト:費用:854円 /1個 (廉価部品を含んだ価格:白枠の色)
- 購入先:主な部品は 秋月(秋月電子通商)。廉価版は Aliexpress。
- 注意:Aliexpressの商品は正しい部品とは限りませんので検証が必要です。
- 参考:Make an ESP32 S3 MiniKit(1070円):ESP32 Minikit の ESPをS3化。
- メモ:必ずしも必要でない部品として Reset スイッチ, PWR LEDと抵抗があります。
No. | Nomen Symbol |
Spec Quantity |
Size unit |
Purchase pcs, Price |
Price ¥/1 Set |
1 | macsbug S3 PCB![]() |
macsbug⚓️ 1 pcs |
31 x 39 x 1 mm |
JLCPCB 1 pcs ,¥100 |
100 |
2 | Chip Resistor, R1![]() |
10KΩ 1/10W 1 pcs |
1608 | 秋月: R-15029 5000 pcs , Y980 |
1 |
3 | Chip Resistor, R2,R3![]() |
2KΩ 1/10W 2 pcs |
1608 | 秋月: R-16120 5000 pcs , ¥980 |
1 |
4 | MLCC, C1, C3![]() |
1μF/25V X7R 1 pcs |
1608 | 秋月: P-14526 20 pcs , ¥100 |
10 |
5 | MLCC, C2![]() |
22μF/25V X5R 1 pcs |
2022 | 秋月: P-08240 10 pcs , ¥120 |
12 |
6 | MLCC, C4, C6![]() |
10μF/35V X5R 2 pcs |
1608 | 秋月: P-13161 10 pcs , ¥150 |
30 |
7 | MLCC, C3, C5![]() |
1μF/35V X5R 2 pcs |
1608 | 秋月: P-13583 20 pcs , ¥120 |
12 |
8 | Chip RED LED PWR ![]() |
150 mcd 1 pcs |
2012 (0805) |
秋月: I-06419 10 pcs , ¥150 |
15 |
8 | Chip RED LED PWR ![]() |
150 mcd 1 pcs |
2012 (0805) |
IBUW Electron Component Store 100 pcs , ¥212 輸送期間=10day |
2 |
9 | Chip BLUE LED GPIO_45 ![]() |
80 mcd 1 pcs |
2012 (0805) |
秋月: I-06424 10 pcs , ¥180 |
18 |
9 | Chip BLUE LED GPIO_45 ![]() |
80 mcd 1 pcs |
2012 (0805) |
IBUW Electron Component Store 100 pcs , ¥213 輸送期間=10day |
2 |
10 | ESP32-S3-WROOM-1 U1 ![]() |
32bitLX7 FLASH 16MB PSRAM 8MB with TELEC 201-220052 1 pcs |
18 x 25.5 x 3.1 mm |
秋月:M-17256 1pcs , ¥530 |
530 |
10 | ESP32-S3-WROOM-1 U1 ![]() |
32bitLX7 FLASH 16MB PSRAM 8MB with TELEC 201-220052 1 pcs |
18 x 25.5 x 3.1 mm |
BOM LIST Store 30pcs , ¥16224 |
540 |
11 | TPS74033SF5, U2![]() |
3.3V LDO 1 pcs |
SOT-23-5L | 秋月: I-17230 5 pcs , ¥200 |
40 |
12 | USB Connector, CN1![]() |
USB-C Female 1 pcs |
8.94 x 7.35 x 2.56 mm |
秋月: C-14356 |
110 |
12 | USB Connector, CN1![]() |
USB-C Female 1 pcs |
8.94 x 7.35 x 2.56 mm |
XPSD official 30 pcs , ¥582 輸送期間=8day |
15 |
13 | TACT Switch, SW1![]() |
16Vdc/50mA 1 pcs |
4.2 x 3.2 mm |
秋月:P-06185 5pcs , ¥100 |
20 |
14 | USBLC6-2SC6, U3![]() |
TVS Diode 1 pcs |
SOT-23-6 | DigiKey 5pcs , ¥710 |
142 |
14 | USBLC6-2SC6, U3![]() |
TVS Diode 1 pcs |
SOT-23-6 | Fantasy Elec 10pcs , ¥635 輸送期間=8day |
64 |
TOTAL | ———- | ———- | ¥4865 | ¥854 | |
TOTAL | SW1,RED LED無し | ———- | ¥4865 | ¥833 |
ESP32-S3-WROOM-1:with TELEC (技術基準適合証明) | |
秋月電子通商は シートが同封されています。 |
BOM LIST Storeは チップの 金属部に表示されています。 |
![]() |
![]() |
with TELEC の購入は BOM LIST Storeにお聞きすると良いです。
BOM LIST Storeの返事は 以下の画像で TELECの表示があります。
無くても良い部品:計 55円。
1. Reset用の SW1 Switch。20円
_ OTGで使用しますと自動起動しますので不要になります。
2. USB 5V PWRのRED LED。R2 Registor。15円 + 1円。
3. GPIO45 BLUE LED。R3 Registor。18円 + 1円。
コネクター:用途に合わせた高さを使用します。(8.5mm, 6.54mm, 5.5mm)
8.5 mm Mounting height | |||||
No. | Nomen Symbol |
Spec Quantity |
Size unit |
Purchase pcs |
Price ¥/ 1Set |
1 |
Pin Header, CN2, CN3 |
2.54mm pitch 2 pcs |
2×5 | 秋月: C-13635 1pcs , ¥15 |
30 |
2 | Pin Header, CN4![]() |
2.54mm pitch 1 pcs |
2×10 | 秋月: C-00078 1pcs , ¥50 |
50 |
3 |
Pin Socket, CN2, CN3 |
2.54mm pitch 2 pcs |
2×5 | 秋月: C-00168 1pcs , ¥50 |
100 |
4 |
Pin Socket, CN4 |
2.54mm pitch 1 pcs |
2×10 | 秋月: C-00083 1pcs , ¥50 |
50 |
TOTAL | ———- | ———- | ———- | ¥230 |
.
6.54 mm Mounting height | |||||
No. | Nomen Symbol |
Spec Quantity |
Size unit |
Purchase pcs |
Price ¥ /1Set |
2 | Pin Header CN2,CN3,CN4 ![]() |
2.54mm pitch 1 pcs |
2 x 20 | 秋月: C-10460 1pcs , ¥40 |
40 |
Connector : Mounting height = 5.7 mm | |||||
3 | Pin Socket, CN2, CN3![]() |
2.54mm pitch 2 pcs |
2 x 5 | 秋月: C-02903 1 pcs , ¥40 |
80 |
4 | Pin Socket, CN4![]() |
2.54mm pitch 1 pcs |
2 x 10 | 秋月: C-02904 1pcs , ¥40 |
40 |
TOTAL | ———- | ———- | ———- | ¥160 |
.
5.5 mm Mounting height | |||||
No. | Nomen Symbol |
Spec Quantity |
Size unit |
Purchase pcs |
Price ¥/1Set |
1 | Pin Header CN2, CN3,CN4 ![]() |
2.54mm pitch 1 pcs |
2 x 40 | 秋月: C-02901 1pcs , ¥40 |
40 |
Connector : Mounting height = 3.6mm | |||||
2 | Pin Socket CN2, CN3,CN4 ![]() |
2.54mm pitch 2 pcs |
2 x 13 | 秋月: C-03139 1 pcs , ¥80 |
160 |
TOTAL | ———- | ———- | ———- | ¥200 |
.
.
minikit と T7-S3 基板の配線:分析と最短距離化
一部 配線が散らばっています | 配線が各部に散らばっています ピン間3本を通す細かさ |
![]() |
![]() |
.
![]() |
ESP32 S3 GPIO端子 と コネクタ端子の配線は最短に配置。 表が黄色、裏が水色。 . ピン間一本の配線。 . GPIOピンの根本の線は太くする。 . 3V3ラインは太くする。 . GNDはベタアース,ビアを打つ。 |
.
.
USBの配線 と レギュレーターの レイアウトと配線:分析と最短距離。
:
USBのレイアウト:
Raspberry Pi Pico基板のUSB線幅から学ぶ事:
USB ConnectorからPi Tipまでの距離は とても長いです。
その為 D-,D+の配線パターンは かなり太くなっています。
インピーダンスマッチングを取っていると考えられます。
他のボードでは D-, D+のラインにコモンモード・チョーク・トランス
(CMT)装着の例があります。
USB配線インピーダンスは 90Ω です。
ESP32 S3の USB は GPIO_19=D-, GPIO_20=D+ です。
USB-C(D-,D+)と S3 (19, 20)の配線は 最短距離にします。
最短は 配線は細くても良い事とインピーダンス考慮が不要になります。
レギュレーターのレイアウト:
ESP32 S3_3V3 Pin 直下にレギュレータ(TPS74033SF5)を配置します。
そして 1000pF,0.1uF,1uF,10uF に並列接続しますと
広範囲に渡り高周波インピーダンスを下げられます。
今回は 1uF,10uF としました。
LDOの入出力に並列実装するMLCCは 容量の小さな順にLDOの至近に実装します。
例:Input – 10uF – 1uF – LDO – 1uF – 10uF – output
理由:容量が小さなMLCCのパターンを遠くにすると
_ そのインダクタンス成分で容量成分が制限されます。
.
.
PCBE と JLCPCB :PCB基板を容易に作る方法。
- PCB設計のEAGLE等を使用しなくとも基板の設計は可能で容易です。
- 事前に回路図は必要ですが PCBEでパターンを作成します。
- ファイル / 基板製作見積 / 基板メーカー / データー作成 (ドリル=NC) ,
- 部品面 B面 / データー作成 でガーバーデーターを出力します(zip ファイル)。
- zip ファイルを JLCPCBのAdd gerber fileにアップし Gerver Viewer で
- 基板の出来具合を見ることができます。
- 以下は expander boardのサンプルです。pdf形式でDL後に.pdfを取り除きます。
- このデーターを基にPCB基板を作る事ができます。
- expander board sourece:expanver_board_source.pcb.zip
- PCBEで編集できます。
- expander board zip:expanver_board_pcbe.zip
- JLCPCBで見る事ができます。画像は JLCPCBのGerver Viewerの表示です。
.
.
感想:
- 低価格と物作り。
- macsbug ESP32 S3基板の費用は 900円 です。
- 安いと沢山作る事ができ 思い立った時に直ぐ使用できる事です。
- 16個の部品で構成され部品取り付けは容易です。
- アイデアを直ぐ試す事ができ 物作りが豊富になります。
- これまで 多くのESP基板を購入していましたが
- この基板の製作により購入の必要が無くなりました。
- 比較:minikit が 670円。minikit S3化 改造は 1070円。
- 内訳: 約60%が ESP32 S3 代です。
- S3 は ESP32-S3−WROOM−1 N16R8 ( Flash 16MB, SPRAM 8MB) を示します。
- ESP32 S3 は 秋月電子通商で 530円, TELEC(シール)付きです。
- Aliexpress : ESP32 S3 単体価格は911円で 秋月より高い。with TELEC。
- 30個購入は 16224円で1個540円になります。
- Aliexpress : ESP32 S3 ロット販売(650個:314,554円)で 1個484円です。
- Alibaba : ESP32-S3-WROOM-1 N16R8
- S3基板情報:2023.05.05
- Aliexpressの基板は without TELECが多く日本では使用できません。
- 国内での ESP32 S3(SS) は 2840円と高い。
- チップを変えただけの物で 進化も無く 基板はとても長い。
- ESP32 S3を使用した M5Stack CoreS3 ESP32S3 IoT開発キットは
- 多数のセンサー、インターフェースが装備されていますが
- 価格は国内で8382円(SS)と 容易に購入できる価格ではありません。
- 残念なのは DisplayがSPI接続の設計である事です。
- 結果、価格が高いと作れる数が限られてきます。
. 10台で8万3千円。今回の基板であれば 9千円で済みます。
.
.
.
.
.
.
ESP32 minikit , T7-S3 , ESP32-S3-WROOM-1 , TPS74033SF5 , USBLC6-2SC6
ESP32 S3 and Arduino IDE
ESP32 S3 と Arduino IDE の メモ 2023.04.13
macsbug ESP32 S3 と Arduino IDE のメモ。
* 近々公開予定の 900円のESP32 S3 基板の備忘録です。
1. はじめに
2. Arduino IDE開発環境
3. ESP32S3 Dev Module の選択
4. Boardの設定と接続 🟢
5. スケッチを書き込む
6. USB-OTG Mode
7. Reset Button 操作
.
1. はじめに;
設定の中で 示した通りに表示しない場合があるかもしれません。
その場合は 各自の環境の見直しが必要です。
開発環境:
_ MacBook Pro (16-inch, 2019) , macOS Catalina ver 10.15.7
_ Arduino IDE 1.8.19
_ arduino-esp32 2.0.5 , 投稿時 2.0.7 でお試し中。
.
Arduino IDE 開発環境:
Arduino IDE 1.8.19 にします。以下のURLからDLします。
Arduino IDE 2 以上は Libraryとの組み合わせで でエラーが出る場合があります。
.
2. Arduino IDE 開発環境:
Arduino IDE : preferences を選択します。
ESP32 S3 の開発環境を読み込める状態にします。
一番下にある、Additional Boards Manager URLs を開きます。
中身は以下の様に設定してあります。
沢山、ありますが、ESP32 S3 用は以下の中のどれかです。多分 下の2つ。
念の為に全部書き込んでも良いです。
以下のURLをコピペして書き込むと良いでしょう。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json https://dl.espressif.com/dl/package_esp32_index.json https://arduino.esp8266.com/stable/package_esp8266com_index.json https://dl.espressif.com/dl/package_esp32_index.json https://dl.espressif.com/dl/package_esp32_dev_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Tools / Boards Manager を選択します。
arduino-esp32 のインストール:
右の検索欄に esp32 を入力し検索します。
esp32 version 2.0.7 をインストールします。
表示しない場合は Arduino IDEを再起動します。
.
3. ESP32S3 Dev Module の選択:
Toolsに 以下の様なリストが出てきます。
表示しない場合は、Arduino IDEを再起動します。
Tools / Board: から ESP32 Arduino / ESP32S3 Dev Module を選択します。
.
4. Boardの設定と接続:🟢
ESP32S3 Dev Module を選択すると Board:”ESP32S3 Dev Module” が表示されます。
設定は、以下の様にします。設定内容の意味は重要ですが、詳細は省きます。
Boardの設定は 以下です。
S3 の書き込み方法は 2つ(UART / Hardware CDC, USB-OTG Mode)あります。
以下は 最初から 「Upload Mode:”USB-OTG CDC (TineyUSB)」です。
初回書き込み時に エラーが出る場合は、
Upload Mode : UART0/Hardware CDC にします。
ESP32 S3 の認識:
S3 Board を接続すると、
Port: の欄の右に “dev/cu/usbmodem142301 (ESP32S3 Dev Module)”が
表示されますので、”dev/cu,,,,”を選択します。
表示されない場合は USB-Cの接続を再確認します。
もしくは S3ボードの接続不良や部品組み立てに不備が有るかも知れません。
選択すると Port: に USBが表示されます。
PSRAM:
S3は多種あり 秋月電子通商は N16R8 です。
ROM 384KB , SRAM 512KB , SPIflash 16MB , PSRAM 8MB
表によると PSRAM は 8(Octal SPI)です。
よって PSRAM使用時の設定は “OPI PSRAM” になります。
.
5. スケッチを書き込む:
macsbug ESP32 S3 ボードは GPIO_45 に BLUE LED が接続されています。
LEDを点滅させます。
delay:delay(25) と delay(250) に分けています。
_ 理由は HIGH か LOW で点灯 又は 消灯しているかの判断ができます。
_ 一般的な delay(1000) では HIGH と LOW が同時間で判別できません。
void setup() { pinMode(45,OUTPUT); } void loop() { digitalWrite(45,HIGH); delay( 25); // LED ON digitalWrite(45,LOW ); delay(250); // LED OFF }
上のスケッチをS3ボードにUpload します。白丸と矢印。
しばらくすると 書き込みが始まり 完了します。
書き込みでエラーがでる場合は、もう一度、同じ方法で書き込みしてみます。
各自の開発環境やS3ボードの状態でどうなるかがあります。
うまくいけば BLUE LED が点滅します。
これで一つの書き込み方法ができました。
.
6. USB-OTG Mode:
BLUE LED点滅と同時にデスクトップにアイコンが出てきます。
これは Boardの設定によりUSB-OTG Modeが動作している状態です。
パソコンが S3ボードをUSBとして認識しています。
このアイコンを使用し書き込みができます。
2つ目の書き込みの方法:
プログラムを以下の選択でコンパイルします。
コンパイルできると、スケッチフォルダーの中に .bin ファイルができます。
この .bin ファイルを 以下のアイコンの中にドラック アンド ドロップすると
ESP32 S3 に書き込まれ ESP32 S3が起動します。
マック上で USB-OTG Modeのものを書き込んだり、接続を外すと
マックの通常のUSB装置の接続解除の方法と異なる為に メッセージが出ます。
でも、問題は ありません。
.
7. Reset Button 操作:
_ Upload Mode : UART0/Hardware CDC の場合は
_ Reset Buttonを押して起動させる必要があります。
_ Upload Mode : USB-OTG CDC(TinyUSB) の場合は
_ Reset Buttonを押す必要は無く 自動的に再起動します。
_ この方法を使用しますと 基板に Reset Button は 不要になります。
以上です。
.
感想:
備忘録として、些細な事もメモしました。
GPIO_0 にスイッチを設けなくとも書き込みは出来ています。
Boardの設定:
投稿時 ネット上には 一つ一つの詳しい設定の意味や説明が見つかりません。
設定の組み合わせは 多数あり 動いた、動かないの話になるかも知れません。
USB-C コネクター:
USB-C コネクターは 価格が高い部類に入ります。
USB-C コネクターを廃止し Magnet USB コネクターを装備しようと
しましたが、今回はパスしました。
USB-C コネクターが不要になれば 差込時にコネクターの位置を
見て差し込む必要が無くなります。
USB-OTG Mode と デスクトップアイコン
.bin ファイルを入れますが S3をUSBと認識していますので
.bin 以外のモノも入ります。何かハック的な使い方が できるかも知れません。
.
.
.
.
.
macsbug ESP32 S3 , UART , Hardware CDC , USB-OTG Mode ,
ESP32S3 Dev Module , Arduino IDE 1.8.19 , arduino-esp32 2.0.5 ,
arduino-esp32 2.0.7 , Magnet USB
ESP32 minikit and LDO(ME6211)
ESP32 minikitとLDO(ME6211)について 2023.03.30
MH-ET LIVE ESP32 minikit
コピー品の対策と電源パワーアップの方法。
このボードは、小型で部品点数少なく低価格です。
価格は 1個464円(10個販売の物)でコストパフォーマンス1番です。
小型でパターン配線が短く安定した動作をします。
販売店:https://ja.aliexpress.com/item/33043305592.html
:
現在、販売されているか不明ですが、このボードのコピー品があります。
LDO は XC6402を使用し出力電流が少なく再起動する場合があります。
本物:LDO ME6211(SMD Code S2TL)(S2xx)
偽物:LDO XC6402B332MR-G(SMD Code 4B2X 🟠)
:
偽物:SMD Code 4B2X:OUTPUT Current = 150mA
_ 仕様書:XC6204 pdf
_ 参考:MCU City:
本物:SMD Code S2UG:OUTPUT Current = 500mA
LDO ME6211 datasheet:CODE S2xx で SOT23-5 output Current 500mA
.
対策:
偽物:SMD Code 4B2X:である場合、秋月電子通商販売の
TPS74033SF5 に交換すると ME6211より高出力電流で動作します。
ME6211 と TPS74033SfF5 はピンコンパチでそのまま取り付けられます。
🟢 TPS74033SF5 (SMD Code 74033), 秋月 通販コード I-17230, 5個200円。
メモ:
1. TPSxxの劣る点は出力の初期電圧精度とPSRRの値。
2. ドロップ電圧は電流との比例関係で同等。
3. ピンアサインは同じ。そのまま交換できます。
4. 出力電流値:🟢 ME6211の20%増。
TPS74033F5 | ME6211 | |
入力電圧 | 0~6.5V | 1.2~6V |
出力電圧 | 3.3V(-3%/+2%max) | -1%/+1%typ |
最大出力電流 | 600mAmax | 500mA |
ドロップアウト電圧 | 300mVtyp@Iout=300mA | 100mVtyp@Iout=100mA |
リップル除去比(PSRR) | 55dBtyp | 70dBtyp |
パッケージ | SOT-23-5L | SOT-23-5 |
保護機能 | 熱遮断:155℃typ@Iout=10mA ,過電流:1300mAtyp |
スペック無し |
EN端子機能 | 0.4V以下=シャットダウン、 2.0V以上=イネーブル |
同等と思われる |
.
参考:
ブログ:ESP32 MiniKit : 2017.07.10
アマゾンの製品とプレビュー:150mAと書かれています。
.
感想:
記事としては古いですが、メモとしました。
秋月電子通商の TPS74033SF5 は ESP32 S3 に十分使用できます。
.
.
.
.
TPS74033SF5 , ESP32 minikit , ME6211 , XC6402 ,
LILYGO T7-S3
LILYGO T7-S3 2023.02.19
LILYGO T7-S3 V1.2 は ESP32-S3 を使用したボードです。
USB-OTG対応で UART機能を内蔵しています。
価格は 1300円。
without TELECですので記事中の対策をお読みください。
価格・販売店:2023.02.19現在
- 1266円(US $12.98):lilygo Official Store ; -30%
- 1770円(US $12.85 ($9.0+$3.85):Shenzhen Duoweisi Tech Co., Ltd
- 1731円 (1223円+送料 508円):輸送期間=15日。2023.1.30
- 1906円(US $13.86 ($9.9+$3.96):FSLX Store
- 尚 ESP32 MiniKitの価格は 700円程度です。
参考:世界初の UART IC無しのボードは LOLIN S2 mini です。
1. Bug Report for S2 mini v1.0.0:43 GPIO:2021.09.18
2. 5″ 800×480 LCD and ESP32 S2 mini:2022.04.07
3. GPIO数:LOLIN S2 Mini = 27 , LILYGO T7-S3 = 31(改造で34) , MiniKit S3=34
4. T7-S3の詳細:github / Xinyuan-LilyGO / T7-S3:Pin Map, schematicがあります。
.
HARD;T7-S3
- 型番:ESP32-S3-WROOM-1-N16R8, Flash=16MB, PSRAM=8MB.
- S3は USB OTG機能があり USBデバイスやUSBホストが可能です。
- OTG;USB機器同士を接続して使うために制定された
- USBインターフェース規格です。ESP32の中にUSB機能があります。
- UART_IC(CP2102等) は ありません。
- 配線:USB – : GPIO 19, USB + : GPIO 20 を接続し使用します。
- 配線図:USB C ESP32 S3
- LDO:ME6211(500mA) で ESP32 MiniKit と同じです。
- EN端子:τ(タウ 時定数)は 10KΩ+1μF(470μsec)で安定した起動。
- 他に 470μsecの基板は M5Core2, M5Stack Tough,
- ESP32-S3-HMI-DevKIt, ESP32-S3-DevKItC-1 があります。
- ちなみに ESP32 Dev Kit は 470Ω+1nF(0.22μsec) で 設計ミス。
- GPIO数:29 (U0TXD,U0RXD含む) で多数あります。
- ESP32 S3 MiniKit と同じ端子数です。
- LED:GPIO 17
- Battery Detection:GPIO 2
- Battery Connector:基板裏側にあります。
- GPIO 2pin:3.3V, GND, GPIO 3, GPIO 4 専用の2J4 4pin コネクタがあります。
- 付属品:10pin 2.54mm ピンヘッタ ピンソケット 形6個。Battery Connector。
- 厚さ;基板は 1.2mm。裏側のコネクターを含め7.8mmの厚さです。
- UART ICとAuto Program回路:ありません。
- これまでの ESP32は USB UART, Auto Program回路により
- 不安定要素がありましたが これらの不具合は 解消されます。
- 部品が不要になり費用の削減ができます。
- TELEC:without TELEC です。送信が必要な場合は
- 1. 技適番号(201-220052)のある ESP32-S3に交換します。
![]() |
201-220052 |
- 2. 秋月の ESP32-S3 (技適シール付) に交換します。
-
- 3. WiFi出力部に ダミーロード(50Ω)を付けします。
- 4. プログラムで WiFi出力をオフにします。
.
書き込み方法:2つの方法。
1. DownLoad Mode:Boot Switch と Reset Switch を操作します。
2. CDC On Boot:USB Deviceの認識とICON表示します。
*
1. DownLoad Mode:書き込み
- 5V Switch を ON。( BLUE )。USB5V or BAT が供給されます。
- Boot Switch と Reset Switch を操作します。( RED )
- 🟢 Boot Push → Reset Push → Reset Pull → Boot Pull
- で DownLoad Modeになります。 Arduino IDE の Port に
- “/dev/cu.wchusbserial54320208481” が表示されます。
Arduino IDE:設定
Dev environment : Arduino IDE 1.8.19
Board Manager : arduino-esp32 2.0.5
Board : “ESP32S3 Dev Module” Upload Speed : “921600” USB Mode : “USB-OTG (tineyUSB)” USB CDC on Boot : “Disabled" USB Firmware MSC On Boot: “Enabled (Requires USB-OTG Mode)” USB DFU On Boot : “Enabled (Requires USB-OTG Mode)" Upload Mode : USB-OTG CDC (TinyUSB)” CPU Frequency : “240MHz (Wifi)” Flash Mode : “QIO 120MHz” Flash Size : “16MB (128Mb)” Partition Scheme : “16M Flash (3MB APP/9MB FATFS)” Core Debug Level : “None” PSRAM : “OPI PSRAM” Arduino Runs On : “Core 1” Events Run On : “Core 1” Erase All Flash Before Sketch Uoload : "Disabled" Port : “/dev/cu.wchusbserial54320208481”
.
2. CDC ON Boot Mode:
- USB Device として認識します。
USB Device ICON![]() |
USB Device ICON の中身![]() |
- Arduino IDEでコンパイル(Sketch/Export compiled Binary) した
- xxx.bin を USB Device ICON(ESP32-FWMSC) に移動すると
- プログラムが起動します。
- UART ICでの書き込み速度は 921600bpsで、時間がかかりましたが
- .bin のドラック&ドロップと同時に起動します。この速さは便利です。
- Arduino IDE 設定:
- 以下4行目の USB CDC on Boot を “Enabled” にします。
Board : “ESP32S3 Dev Module” Upload Speed : “921600” USB Mode : “USB-OTG (tineyUSB)” USB CDC on Boot : “Enabled" USB Firmware MSC On Boot: “Enabled (Requires USB-OTG Mode)” USB DFU On Boot : “Enabled (Requires USB-OTG Mode)" Upload Mode : "USB-OTG CDC (TinyUSB)” CPU Frequency : “240MHz (Wifi)” Flash Mode : “QIO 120MHz” Flash Size : “16MB (128Mb)” Partition Scheme : “16M Flash (3MB APP/9MB FATFS)” Core Debug Level : “None” PSRAM : “OPI PSRAM” Arduino Runs On : “Core 1” Events Run On : “Core 1” Erase All Flash Before Sketch Uoload : "Disabled" Port : “/dev/cu.wchusbserial54320208481”
.
Serial.print:
_ Serial.begin(115200); の後に Serai.print しますと
_ Arduino IDEのSerial Monitorに出力が表示されます。
_ 出力は USB-Cコネクター(D+,D-)経由になります。
_ CDC ON Boot Modeで Port: “/dev/cu.wchusbserial54320208481”が表示されます。
_ 端子に配線されていませんが TXD(GPIO_43), RXD(GPIO_44) には出力しません。
.
TX, RX:
_ TX(GPIO_43), RX(GPIO_44) は USB Connectorに接続されていません。
_ 一般的な IO として使用するか 外部にUART ICを接続して使用します。
_ USB CDC on Boot Mode にして 一般的な GPIOで使用した方が良いです。
.
Parts Layout:部品、配線、電圧等のレイアウトです。
– Schematic T7S3-V1.2.pdf と合わせて利用すると便利です。
T7_Front_parts:PDF版。文字を検索できます。
T7_Rear_parts:PDF版。文字を検索できます。
.
T7-S3 Power Supply:レイアウト。
T7-S3の優れた設計は Power Supply LDOの配置です。
ESP32 3V3 端子と最短距離に配置し基板の裏側にあります。
多くのESP32基板は LDOからESP32 3V3への距離が長く
大電流や、立ち上がり、リップルに影響がある設計でした。
最短距離の配置しこれらの問題を解決しています。
.
GPIOの増設:オリジナルの3つの端子配線は不便です。
条件は Arduio IDEの設定で PSRAMを使用しなければ可能です。
理由は GPIO_35,36,37 は PSRAMに使用している為です。
3つの端子を改造しGPIO数を3つ増設できます。
_ JP2-2(NC) は未使用の, GPIO35を接続しGPIOを増加できます。
_ JP1-19(3), JP1-18(12) と JP1-5(3-1), JP1-6(12-1)は重複しています。
_ JP1-5(3-1), JP1-6(12-1)は resistor 0Ωを介して接続されています。
_ R23,R24を取り除き GPIO-37,GPIO-36を接続しGPIOを増加できます。
![]() |
![]() |
.
資料:
github:Xinyuan-LilyGO / T7-S3
- T7-S3:schematic:T7S3-V1.2.pdf
- T7-S3:t7-s3_v1.1_pinmap.jpg
memo : 上記の画像にある 4pin connector 3V3 GND 14 13 は誤記。
- 正しくは GND 3V3 14 13 です。
- T7-S3:t7-s3_v1.1_specification.jpg
LILYGO®:T7-S3 ESP32-S3 Development Board
lilygo official Store:LILYGO® T7 S3 ESP32-S3 Development Board
ESP32S3 Technical Reference Manual Version 1.1
ESP32-S3-USB-OTG
ESPRESSIF ESP32-S3:USB OTG Console
ESP32-S3 Getting Started:DOWNLOAD Mode, Bootloader Mode
ESP32-S3:new ESP32-S3 boards (TinyS3 ,FetherS3,ProS3). Amazon
CNX SOFTWARE – EMBEDDED SYSTEMS NEWS:LILYGO T7-S3
.
感想:
T7-S3は without TELEC を除き期待したボードです。
ただし NC, 3-1, 12-1 端子の3つがGPIO数を低下させています。
最高のボードは ESP32 MiniKit。安価、小型でGPIO数多い。
最高のMPUのは ESP32 S3。
S3 のパラレルアーキテクチャーは
TFT 16bit Parallel Displayを使用でき大きな表示と高速表示が可能です。
大きなサイズと高速表示は見やすさの点で重要なポイントです。
USB OTG機能は UART不要で安定した書き込みと安価になります。
上記2つを組み合わせたボードが LOLINかLILYGOから出ない為に
「Make an ESP32 S3 MiniKit」を製作。2022.08.01
基板を作る能力があれば作りたい所です。
ところが 2023年1月頃に 同じ設計内容の T7-S3の販売を知りました。
Schematicの日付は Tuesday, December 15,2020 です。
設計早く販売は遅かった事になります。
結果 w/o TELEC である事は とても残念です。
LOLIN, LILYGO は日本市場への考慮がかけています。
そして MiniKit S3よりも GPIOが少ない事が解りました。
16bitで使用する為に改修しました。
GPIO3, GPIO12:3-1, 12-1
3-1, 12-1 という端子があり GPIO-3, GPIO-12 から直列に0Ω抵抗を
介して端子があります。抵抗は 0603タイプでとても小さいです。
2つの端子を使用し何に使用するか不明です。
NC:
空きの端子です。GPIOを配置すれば良いのですが配線していません。
.
スイッチサイエンスは M5Stackに押される中で OTGの流れを知ってか
同様な基板を久々に販売開始し2,640円です。相変わらず高い。
T7-S3にある バッテリ接続や電源スイッチはありません。
GPIO数は31で3つ足りない。
基板のサイズは2倍の大きさで組み込みしにくいサイズです。
感心したのは S3 with TELECを入手した事です。
LILYGOとスイッチサイエンス 共に抜けのある設計です。
.
.
.
.
ESP32 S3, UART , OTG , MiniKIt S3 , USB CDC on Boot , USB Device ,
MRB3973 and ESP32 S3
MRB3973 and ESP32 S3 2023.01.11
SKU MRB3973 LCD Display のサイズは 3.97 inch です。
解像度は 800×480です。
Driverは NT35510 8/16Bit parallel interface で 高速に表示します。
ケースは メイクパレットを使用し 持ちやすく 操作しやすいです。
参照:Driver NT35510 の記事。
_ MAR4018 and ESP32 S3:2022.12.31
_ SD SLOT付, 3890円。( MRB3973 は SD SLOT無し, 4630円 )
.
.
仕様:
Display:SKU MRB3973( NT35510 )
_ 3.97inch 16BIT Module NT35510 🟢 詳細なデーターの記載。
_ Screen Size:3.97(inch)
_ Driver IC:NT35510
_ Resolution:800*480 (Pixel)
_ Module Interface:8Bit or 16Bit parallel interface
_ Touch IC:XPT2046
_ Module PCB Size:59.18×111.51 (mm)
ESP32 S3 : 16R8 : Flash 16MB , PSRAM 8MB
Library:LovyanGFX NT35510 Driver
_ 謝辞:らびやん氏に開発して頂きました。感謝!!
_ 投稿時は LovyanGFX Develop にあります。
.
.
開発環境:
Dev environment : Arduino IDE 1.8.19 Board Manager : arduino-esp32 2.0.5 Board : “ESP32S3 Dev Module” Upload Speed : “921600” USB Mode : “Hardware CDC and JTAG” USB CDC on Boot : “Disabled” or "Enabled" USB Firmware MSC On Boot: “Disabled” USB DFU On Boot : “Disabled” Upload Mode : “UART0 / Hardware CDC” CPU Frequency : “240MHz (Wifi)” Flash Mode : “QIO 120MHz” Flash Size : “16MB (128Mb)” Partition Scheme : “16M Flash (3MB APP/9MB FATFS)” Core Debug Level : “None” PSRAM : “OPI PSRAM” Arduino Runs On : “Core 1” Events Run On : “Core 1” Port : “/dev/cu.wchusbserial54320100871” Library : LovyanGFX develop https://github.com/lovyan03/LovyanGFX/tree/develop
.
.
Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Down Load:Web_Radio_MRB3973_S3_I2S_LGFX.zip
🟢 Down Load:Maze_generator_MRB3973_S3_LGFX.zip
🟢 Down Load:PDQgraphicstest_MRB3973_S3_LVGL.zip
🟢 Down Load:Raytrace_MRB3973_S3_LGFX.zip
🟡 If you can’t download in your browser
– ブラウザーでダウンロードできない場合は ファイル > 別名でページを保存…。します。
– Then save with the following selections:
– Browser > File > Save Page As…
.
.
部品リスト:費用:4630円 ( No. = RED )
No. | Nomen | Purchase | Price |
1 | MRB3973 ( NT35510 ) . 3.97″ 800×480 8/16bit . display ![]() |
Shenzhen High-quality new products . $16.02 |
2170円 |
2 | ESP32 S3 MIniKIT . ![]() |
Make an ESP32 S3 MiniKit | 1070円 |
3 | メイクパレット・S 111x71x15mm . ![]() |
無印良品 | 990円 |
3 | Eyeshadow Palette 110x75x15mm | Confident Women Store | 391円 |
3 | Eyeshadow Palette 110.5×76.7x15mm | BeautyBee Store Store | 360円 |
4 | 0.3mm厚ユニバーサル基板 | 秋月電子通称 | 200円 |
4 | 0.3mm厚ユニバーサル基板 | しまりす堂 , (2500円/12) | 200円 |
5 |
ロープロファイルピンヘッダ . (低オス) 2×40, 5.5mm |
秋月電子通商 | 40円 |
6 | ロープロファイルピンソケット . (低メス) 2×13, 3.6mm |
秋月電子通商 | 160円 |
7 | 0.26mm ジュンフロン線 | 千石電商 | |
8 | Total | 4630円 | |
9 | MAX98357A . I2S 3W D級アンプボード . ![]() |
WCMCU store | 379円 |
10 | Speaker 8R1W 40mm![]() |
Hongtaoxin E-lectronics | 278円 |
10 | Speaker 4R2W 20x40mm![]() |
YUXI Store ,223円x2個 | 446円 |
11 | USB C to USB Micro cable![]() |
FEIJI 3C Store | 369円 |
11 | USB C to USB Micro Connector![]() |
FEIJI 3C Store | 180円 |
.
.
配線図:
– ESP32 S3:電源, Controll, BUSは 3.3Vdc。
– MRB3973:電源 VCC は 5Vdc 又 は3.3Vdc。( U1 RT8059 LDO )
- Controll, BUSは 3.3Vdc。
- 16bit Parellel:R3 (IM0) = 3.3V), R4 (IM1) = GND。
- 8bit Parellel:R4 (IM1) = 3.3V), R2 (IM0) = GND。
- 注意:R2=R3=GND, R4=R6=GND にしない事。3.3VがGNDされる為。
- 参照:回路図 ( Schematic )
Power : pin Assign | ||
LCD | 5V | GND |
S3 | VCC | GND |
Controll | |||||
LCD | RST | CS | RS | WR | RD |
S3 | RST | 10 | 12 | 46 | 11 |
D0 – D7 | ||||||||
LCD | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
S3 | 9 | 6 | 19 | 16 | 1 | 7 | 40 | 5 |
D8 – D15 | ||||||||
LCD | D8 | D9 | D10 | D11 | D12 | D13 | D14 | D15 |
S3 | 39 | 3 | 18 | 4 | 38 | 14 | 13 | 47 |
Touch | |||||
LCD | CLK | CS | MOSI | MISO | IRQ |
S3 | 17 | 8 | 48 | 42 | 2 |
MAX98357A | |||||||
I2S | Vin | GND | SD | GAIN | DIN | BLCK | LRC |
S3 | 5V | GND | open | open | 45 | 20 | 15 |
.
.
製作:
– LCD Display の加工:
- メイクパレット内の幅は 104mm です。
- LCDの幅は 111.51mm です。Displayの方が幅が広い為に
- LCDのコネクター側でない方をカットします。
- 注意:LCDのガラスに近い為 ガラスを破損しないように
- 工作事はガード等をします。
.
– LCD Display の Connector交換:
- Connectorは 高さ 7mmの為 取り外し 高さ 5.5mmの
- 2×18 ロープロファイルピンヘッダ(低オス) を取り付けます。
- ピンの長い方をPCB側に 取り付けます。
- ピンの長い方のLCD側は 平らにします。
- 結果 PIn の高さは 5.0mm になります。
– メイクパレット内の高さに収めるために 以下の厚さ を使用します。
- メイクパレット内の高さは 10mm。
- 🟢 製作基板(ESP32 S3)とLCD基板は 10mmの中に入る サイズにします。
- LCD基板(2.5), オスコネクター(2.5), メスコネクター(3.6),
- PCB基板(0.3), Wire(0.3), Space(0.3), Space(0.3);合計 9.5mm。
- メイクパレットと基板の隙間は 0.5mmでピッタリ入る大きさです。
- PCB は 0.3mm厚ユニバーサル基板を使用します。
- オスコネクターとメスコネクター は 低メスを使用します。
- ESP32 S3 PCB:配線図に従い配線します。
- I2S MAX98357A と Speaker ( 4Ω 2個直列 ) も配線。
![]() |
![]() |
.
ケース:ケースとLCDのサイズ。
– LCDが入るサイズに削ります。SDの部分も削ります。
– ESP32 S3 Minikit の部分も削ります。
– メイクパレット内の底辺を平らに削ります。
– ケース内部に収まる高さは ギリギリに入ります。
参照:メイクパレット S:
– Web Radio ESP32-2432S028-I2S
– ESP32-3248S035
![]() |
![]() |
![]() |
![]() |
.
.
LovyanGFX : 800×480 16bit Parallel NT35510
//===================================================================== class LGFX : public lgfx::LGFX_Device{ lgfx::Panel_NT35510 _panel_instance; lgfx::Bus_Parallel16 _bus_instance;//16bit Parallelのインスタンス(ESP32) lgfx::Touch_XPT2046 _touch_instance; public:LGFX(void){ // バス制御の設定を行います。 auto cfg = _bus_instance.config(); // バス設定用の構造体を取得します。 // 16ビットパラレルバスの設定 cfg.freq_write =20000000;// 送信クロック(最大20MHz,80MHzを整数割の値に丸める) cfg.pin_wr = 46; // WR を接続しているピン番号 cfg.pin_rd = 11; // RD を接続しているピン番号 cfg.pin_rs = 12; // RS(D/C)を接続しているピン番号 cfg.pin_d0 = 9; // D0 を接続しているピン番号 cfg.pin_d1 = 6; // D1 を接続しているピン番号 cfg.pin_d2 = 19; // D2 を接続しているピン番号 cfg.pin_d3 = 16; // D3 を接続しているピン番号 cfg.pin_d4 = 1; // D4 を接続しているピン番号 cfg.pin_d5 = 7; // D5 を接続しているピン番号 cfg.pin_d6 = 40; // D6 を接続しているピン番号 cfg.pin_d7 = 5; // D7 を接続しているピン番号 cfg.pin_d8 = 39; // D8 を接続しているピン番号 cfg.pin_d9 = 3; // D9 を接続しているピン番号 cfg.pin_d10 = 18; // D10を接続しているピン番号 cfg.pin_d11 = 4; // D11を接続しているピン番号 cfg.pin_d12 = 38; // D12を接続しているピン番号 cfg.pin_d13 = 14; // D13を接続しているピン番号 cfg.pin_d14 = 13; // D14を接続しているピン番号 cfg.pin_d15 = 47; // D15を接続しているピン番号 _bus_instance.config(cfg);// 設定値をバスに反映します。 _panel_instance.setBus(&_bus_instance); // バスをパネルにセットします。 {// 表示パネル制御の設定 auto cfg = _panel_instance.config(); // 表示パネル設定用の構造体を取得します。 cfg.pin_cs = 10; // CSが接続されているピン番号 (-1 = disable) cfg.pin_rst = -1; // RSTが接続されているピン番号 (-1 = disable) cfg.pin_busy = -1; // BUSYが接続されているピン番号 (-1 = disable) cfg.memory_width = 480; // ドライバICがサポートしている最大の幅 cfg.memory_height= 800; // ドライバICがサポートしている最大の高さ cfg.panel_width = 480; // 実際に表示可能な幅 cfg.panel_height = 800; // 実際に表示可能な高さ cfg.offset_x = 0; // パネルのX方向オフセット量 cfg.offset_y = 0; // パネルのY方向オフセット量 cfg.offset_rotation = 0; // 回転方向の値のオフセット 0~7 (4~7は上下反転) cfg.dummy_read_pixel= 8; // ピクセル読出し前のダミーリードのビット数 cfg.dummy_read_bits = 1; // ピクセル以外のデータ読出し前のダミーリードのビット数 cfg.readable = false; // データ読出しが可能な場合 trueに設定 cfg.invert = false; // パネルの明暗が反転してしまう場合 trueに設定 cfg.rgb_order = true; // パネルの赤と青が入れ替わってしまう場合 trueに設定 cfg.dlen_16bit = true; // データ長を16bit単位で送信するパネルの場合trueに設定 cfg.bus_shared = false; // SDカードとバス共有はtrueに設定 _panel_instance.config(cfg); } { // タッチスクリーン制御の設定を行います。(必要なければ削除) auto cfg = _touch_instance.config(); cfg.x_min = 300; // タッチスクリーンから得られる最小のX値(生の値) cfg.x_max = 3800; // タッチスクリーンから得られる最大のX値(生の値) cfg.y_min = 180; // タッチスクリーンから得られる最小のY値(生の値) cfg.y_max = 3900; // タッチスクリーンから得られる最大のY値(生の値) cfg.pin_int = 2; // INTが接続されているピン番号 cfg.bus_shared = true; // 画面と共通のバスを使用している場合 trueを設定 cfg.offset_rotation = 6; // 表示とタッチの向きのが一致しない場合の調整 0~7の値で設定 // SPI接続の場合 cfg.spi_host = SPI2_HOST;// 使用するSPIを選択 (HSPI_HOST or VSPI_HOST) cfg.freq = 1000000; // SPIクロックを設定, Max 2.5MHz, 8bit(7bit) mode cfg.pin_sclk = 17; // SCLKが接続されているピン番号, TP CLK cfg.pin_mosi = 48; // MOSIが接続されているピン番号, TP DIN cfg.pin_miso = 42; // MISOが接続されているピン番号, TP DOUT cfg.pin_cs = 8; // CS が接続されているピン番号, TP CS _touch_instance.config(cfg); _panel_instance.setTouch(&_touch_instance); // タッチスクリーンをパネルにセットします。 } setPanel(&_panel_instance); // 使用するパネルをセットします。 } }; LGFX tft; // 準備したクラスのインスタンスを作成します。
.
.
感想:
3.97inch Display は 無印 Makepallet S ケースにピッタリのサイズです。
解像度は 800×480 で見やすく多彩な表示が可能です。
16bit Parallel 接続により高速に表示します。
.
ケース:メイクパレットは 3D Printerで作るよりも綺麗です。
- 1千万円クラスの 3D Printer でも この既製品の精度は作れません。
.
Board Manager : arduino-esp32 2.0.5 を使用。
- 投稿時の最新版 2.0.6 は しばらくして表示不可になります。
.
USB 接続:
- マグネット式のUSB Micro Connector を使用すると便利です。
- そして 綺麗に仕上がります。
- 丸い接続部の種類は 2種類あり よく調べましょう。
.
MRB3973:SD SLOT はついていません。
- MAR4018 and ESP32 S3 は SD SLOT 付きです。
.
.
.
.
.
ESP32 S3 , ESP32 S3 MiniKit , MRB3973 , NT35510 , LovyanGFX , 4inch , 800×480
16bit Palallel ,
MAR4018 and ESP32 S3
MAR4018 and ESP32 S3 2022.12.31
SKU MAR4018 Display は 4inch size , 解像度は 800×480です。
Driverは NT35510 8/16Bit parallel interface で高速に表示します。
持ちやすく 大きな画面で操作しやすいです。
.
仕様:
Display:SKU MAR4018 ( NT35510 )
_ 4.0inch Arduino Display-Mega2560 NT35510 🟢
_ Screen Size:4.0(inch)
_ Driver IC:NT35510
_ Resolution:800*480 (Pixel)
_ Module Interface:8Bit or 16Bit parallel interface
_ Touch IC:XPT2046
_ Module PCB Size:58.65×108.48 (mm)
ESP32 S3 : 16R8 : Flash 16MB , PSRAM 8MB
Library:LovyanGFX NT35510 Driver
_ 謝辞:らびやん氏に開発して頂きました。感謝!!
_ 投稿時は LovyanGFX Develop にあります。
.
開発環境:
Dev environment : Arduino IDE 1.8.19 Board Manager : arduino-esp32 2.0.5 Board : “ESP32S3 Dev Module” Upload Speed : “921600” USB Mode : “Hardware CDC and JTAG” USB CDC on Boot : “Disabled” or "Enabled" USB Firmware MSC On Boot: “Disabled” USB DFU On Boot : “Disabled” Upload Mode : “UART0 / Hardware CDC” CPU Frequency : “240MHz (Wifi)” Flash Mode : “QIO 120MHz” Flash Size : “16MB (128Mb)” Partition Scheme : “16M Flash (3MB APP/9MB FATFS)” Core Debug Level : “None” PSRAM : “OPI PSRAM” Arduino Runs On : “Core 1” Events Run On : “Core 1” Port : “/dev/cu.wchusbserial54320100871” Library : LovyanGFX develop https://github.com/lovyan03/LovyanGFX/tree/develop
.
Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Down Load:Life_Game_NT35510_S3_LGFX.zip
🟢 Down Load:Maze_generator_NT35510_S3_LGFX.zip
🟢 Down Load:MovingCircles_NT35510_S3_LGFX.zip
🟢 Down Load:Raytrace_NT35510_S3_LGFX.zip
🟢 Down Load:Test_PDQ_NT35510_S3_LGFX.zip
🟢 Down Load:Web_Radio_I2S_MAR4018_S3_LGFX.zip
- rev 1 : 2023.01.07;Touch範囲修正。
Web Radio は 見やすい大きさと操作しやすいサイズです。
.
部品リスト:費用:3890円 ( No. = RED )
No. | Nomen | Purchase | Price |
1 | MAR4018 ( NT35510 ) . 4inch 800×480 8/16bit display ![]() |
Veeket store . $10.58 |
1428円 |
2 | ESP32 S3 MIniKIT . ![]() |
Make an ESP32 S3 MiniKit | 1070円 |
3 | メイクパレット・S 111x71x15mm . ![]() |
無印良品 | 990円 |
4 | 0.3mm厚ユニバーサル基板 | 秋月電子通称 | 200円 |
4 | 0.3mm厚ユニバーサル基板 | しまりす堂 , (2500円/12) | 200円 |
5 |
ロープロファイルピンヘッダ . (低オス) 2×40, 5.5mm |
秋月電子通商 | 40円 |
6 | ロープロファイルピンソケット . (低メス) 2×13, 3.6mm |
秋月電子通商 | 160円 |
7 | 0.26mm ジュンフロン線 | 千石電商 | |
8 | Total | 3890円 | |
9 | MAX98357A . I2S 3W D級アンプボード . ![]() |
WCMCU store | 379円 |
10 | Speaker 8R1W 40mm![]() |
Hongtaoxin E-lectronics | 278円 |
. | Total | 円 |
.
配線図:
– ESP32 S3:電源, Controll, BUSは 3.3Vdc。
– MAR4018:電源, Controll, BUSは 5Vdc。
– U2,U3,U4,U5,U6(LV245A)で Level変換(5V -3.3V)されています。
– Controll線により BUSの Read/Writeは 可能です。
– MAR4018 8bit Parellel は R5 を Short。
– MAR4018 16bit Parellel は R4 を Short。
Power : pin Assign | ||
LCD | 5V | GND |
S3 | VCC | GND |
Controll | |||||
LCD | RST | CS | RS | WR | RD |
S3 | RST | 47 | 12 | 46 | 11 |
D0 – D7 | ||||||||
LCD | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
S3 | 18 | 3 | 39 | 5 | 40 | 7 | 1 | 16 |
D8 – D15 | ||||||||
LCD | D8 | D9 | D10 | D11 | D12 | D13 | D14 | D15 |
S3 | 10 | 11 | 46 | 9 | 19 | 14 | 6 | 38 |
Touch | |||||
LCD | CLK | CS | MOSI | MISO | IRQ |
S3 | 8 | 17 | 15 | 2 | 20 |
SD | ||||
LCD | CLK | CS | MOSI | MISO |
S3 | 17 | 42 | 15 | 2 |
MAX98357A | |||||||
I2S | Vin | GND | SD | GAIN | DIN | BLCK | LRC |
S3 | 5V | GND | open | open | 13 | 45 | 21 |
.
製作:
– Display の Connectorは 高さ 7mmの為 取り外し 高さ 5.5mmの
- 2×18 ロープロファイルピンヘッダ(低オス) を取り付けます。
- ピンの長い方をPCB側に 取り付けます。
- ピンの長い方のLCD側は 平らにします。
- 結果 PIn の高さは 5.0mm になります。
– メイクパレット内の高さに収めるために 以下の厚さ を使用します。
- メイクパレット内の高さは 10mm。
- 🟢 製作基板(ESP32 S3)とLCD基板は 10mmの中に入る サイズにします。
- Wire(0.3), 基板(0.3), メスコネクター(4.0), オスコネクター(3.0), LCD基板(1.6)
- , Space(0.3) ;合計 9.5mm。
- PCB は 0.3mm厚ユニバーサル基板を使用します。
- メスコネクター は 3.6mm厚を使用します。
![]() |
![]() |
.
ケース:ケースとLCDのサイズ。
– LCDが入るサイズに削ります。SDの部分も削ります。
– ESP32 S3 Minikit の部分も削ります。
– メイクパレット内の底辺を平らに削ります。
– ケース内部に収まる高さは ギリギリに入ります。
参照:メイクパレット S:
– Web Radio ESP32-2432S028-I2S
– ESP32-3248S035
![]() |
![]() |
.
LovyanGFX : 800×480 16bit Parallel NT35510
//---------------------------------------------------------------------- // https://github.com/lovyan03/LovyanGFX/blob/master/examples/HowToUse/2_user_setting/2_user_setting.ino //===================================================================== class LGFX : public lgfx::LGFX_Device{ lgfx::Panel_NT35510 _panel_instance; lgfx::Bus_Parallel16 _bus_instance;//16bit Parallelのインスタンス(ESP32) lgfx::Touch_XPT2046 _touch_instance; public:LGFX(void){ // バス制御の設定を行います。 auto cfg = _bus_instance.config(); // バス設定用の構造体を取得します。 // 16ビットパラレルバスの設定 cfg.freq_write =20000000;// 送信クロック(最大20MHz,80MHzを整数割の値に丸める) cfg.pin_wr = 4; // WR を接続しているピン番号 cfg.pin_rd = -1; // RD を接続しているピン番号 cfg.pin_rs = 12; // RS(D/C)を接続しているピン番号 cfg.pin_d0 = 18; // D0 を接続しているピン番号 cfg.pin_d1 = 3; // D1 を接続しているピン番号 cfg.pin_d2 = 39; // D2 を接続しているピン番号 cfg.pin_d3 = 5; // D3 を接続しているピン番号 cfg.pin_d4 = 40; // D4 を接続しているピン番号 cfg.pin_d5 = 7; // D5 を接続しているピン番号 cfg.pin_d6 = 1; // D6 を接続しているピン番号 cfg.pin_d7 = 16; // D7 を接続しているピン番号 cfg.pin_d8 = 10; // D8 を接続しているピン番号 cfg.pin_d9 = 11; // D9 を接続しているピン番号 cfg.pin_d10 = 46; // D10を接続しているピン番号 cfg.pin_d11 = 9; // D11を接続しているピン番号 cfg.pin_d12 = 19; // D12を接続しているピン番号 cfg.pin_d13 = 14; // D13を接続しているピン番号 cfg.pin_d14 = 6; // D14を接続しているピン番号 cfg.pin_d15 = 38; // D15を接続しているピン番号 _bus_instance.config(cfg);// 設定値をバスに反映します。 _panel_instance.setBus(&_bus_instance); // バスをパネルにセットします。 {// 表示パネル制御の設定 auto cfg = _panel_instance.config(); // 表示パネル設定用の構造体を取得します。 cfg.pin_cs = 47; // CSが接続されているピン番号 (-1 = disable) cfg.pin_rst = -1; // RSTが接続されているピン番号 (-1 = disable) cfg.pin_busy = -1; // BUSYが接続されているピン番号 (-1 = disable) cfg.memory_width = 480; // ドライバICがサポートしている最大の幅 cfg.memory_height= 800; // ドライバICがサポートしている最大の高さ cfg.panel_width = 480; // 実際に表示可能な幅 cfg.panel_height = 800; // 実際に表示可能な高さ cfg.offset_x = 0; // パネルのX方向オフセット量 cfg.offset_y = 0; // パネルのY方向オフセット量 cfg.offset_rotation = 0; // 回転方向の値のオフセット 0~7 (4~7は上下反転) cfg.dummy_read_pixel= 8; // ピクセル読出し前のダミーリードのビット数 cfg.dummy_read_bits = 1; // ピクセル以外のデータ読出し前のダミーリードのビット数 cfg.readable = false; // データ読出しが可能な場合 trueに設定 cfg.invert = false; // パネルの明暗が反転してしまう場合 trueに設定 cfg.rgb_order = true; // パネルの赤と青が入れ替わってしまう場合 trueに設定 cfg.dlen_16bit = true; // データ長を16bit単位で送信するパネルの場合trueに設定 cfg.bus_shared = false; // SDカードとバス共有はtrueに設定 _panel_instance.config(cfg); } { // タッチスクリーン制御の設定を行います。(必要なければ削除) auto cfg = _touch_instance.config(); cfg.x_min = 300; // タッチスクリーンから得られる最小のX値(生の値) cfg.x_max = 3800; // タッチスクリーンから得られる最大のX値(生の値) cfg.y_min = 180; // タッチスクリーンから得られる最小のY値(生の値) cfg.y_max = 3900; // タッチスクリーンから得られる最大のY値(生の値) cfg.pin_int = 20; // INTが接続されているピン番号 cfg.bus_shared = true; // 画面と共通のバスを使用している場合 trueを設定 cfg.offset_rotation = 6; // 表示とタッチの向きのが一致しない場合の調整 0~7の値で設定 // SPI接続の場合 cfg.spi_host = SPI2_HOST;// 使用するSPIを選択 (HSPI_HOST or VSPI_HOST) cfg.freq = 1000000; // SPIクロックを設定, Max 2.5MHz, 8bit(7bit) mode cfg.pin_sclk = 8; // SCLKが接続されているピン番号, TP CLK cfg.pin_mosi = 15; // MOSIが接続されているピン番号, TP DIN cfg.pin_miso = 2; // MISOが接続されているピン番号, TP DOUT cfg.pin_cs = 17; // CS が接続されているピン番号, TP CS _touch_instance.config(cfg); _panel_instance.setTouch(&_touch_instance); // タッチスクリーンをパネルにセットします。 } setPanel(&_panel_instance); // 使用するパネルをセットします。 } }; LGFX tft; // 準備したクラスのインスタンスを作成します。
.
感想:
4inch Display は 無印 Makepallet S ケースにピッタリのサイズです。
解像度は 800×480 で見やすく多彩な表示が可能です。
16bit Parallel 接続により高速に表示します。
.
ケース:メイクパレットは 3D Printer で作るよりも綺麗に作れます。
- メイク用のケースですのでデザイン良く綺麗で持ちやすいです。
.
.
.
ESP32 S3 , ESP32 S3 MiniKit , MAR4018 , NT35510 , LovyanGFX , 4inch , 800×480
16bit Palallel ,
ESP32-8048S043
ESP32-8048S043 2022.11.29
4.3 inch 800×480 IPS RGB Display
with Capacitive Touch and ESP32-S3
ESP32 で 初の RGB Display Board です。
RGB Display 方式は バッファーに ESP32のPSRAMを使用する為に
_ 速度の低下や 表示のチラツキが発生する場合があります。
4種類あり、ESP32-8048S043C を解説します。
4.3 inch ESP32 module:販売:Sunton store | ||||
2614円 | ESP32-4827S043N | 480×272 | TN Without touch | |
2823円 | ESP32-4827S043R | 480×272 | TN Resistive touch | |
3322円 | ESP32-8048S043R | 800×480 | TN Resistive touch | |
3790円 | ESP32-8048S043C | 800×480 | IPS Capacitive touch |
仕様:
_ サイズ:12.3 x 7.4 cm
_ Chip Type : ESP32-S3
_ ESP32-S3-WROOM-1-N16R8
_ ROM : 384KB, SRAM : 512KB, SPI Flash 16MB, PSRAM (OctalSPI) : 8MB
_ TELEC No. : 201-220052:技適対応品
_ Display:4.3 inch 800×480 IPS RGP Dispay with Capacitive Touch
資料:ESP32-4827S043 download link
資料:4.3inch Capacitive Touch LCD
参考:ESP32-2432S028
参考:ESP32-3248S035
メモ:LovyanGFX、Arduino GFX 共に複雑な画像を表示しますと横の同期が崩れます。
開発環境1:Arduino IDE 設定
// HARD : ESP32_8048S043C ( ESP32-S3 ) // Display : 4.3" 800x480 IPS RGB LCD Touch GT911 // Dev environment : Arduino IDE 1.8.19 // Board Manager : arduino-esp32 2.0.5 // Board : "ESP32S3 Dev Module" // Upload Speed : "921600" // USB Mode : "Hardware CDC and JTAG" // USB CDC On Boot : "Disable" // USB Firmware MSC On Boot : "Disable" // USB DFU On Boot : "Disable" // Upload Mode : "UART0 / Hardware CDC" // CPU Frequency : "240MHz (WiFi/BT)" // Flash Mode : "QIO 120MHz" // Flash Size : "16MB (128Mb)" // Partition Scheme : "16MB Flash (2MB APP/12.5MB FATFS)" // Core Degug Level : "None" // PSRAM : "OPI PSRAM" // Arduino Runs On : "Core 1" // Events Run On : "Core 1" // Erase All Flash Before Sketch Upload : "Disable" // Pord : "dev/cu.wchusbserial14240"
開発環境2:LovyanGFX。尚、暫定設定です。
_ 謝辞:らびやん氏に RGB Driver (Bus_RGB,Panel_RGB)
_ を作成して頂きました。
_ 設定:記事の下に示します。
_ 機能:Graphics命令が多彩、綺麗な漢字も使用できます。
_ Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Down Load:PDQgraphicstest_LGFX.zip
🟢 Down Load:MovingCircles_8043S043_LGFX.zip
開発環境3:Arduino_GFX ( GFX Library for Arduino ) 。
_ 陳亮氏が Adafruit-GFX-Library を改良したものです。
_ gfx-> の書式に慣れる必要があります。
_ LovyanGFXで使用できる Graphics命令が無し(setAddrWindow, pushImage)
_ 綺麗な漢字表示のLibrary無し。
_ Graphics命令の不足は 移植等に難があります。
_ 設定:記事の下に示します。
_ Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Down Load:PDQgraphicstest_AGFX.zip
🟢 Down Load:Clock_AGFX.zip
.
速度の比較:LovyanGFX と Arduino GFX
- ESP32-4827S043C, 800×480
- RGB Display:バッファーに ESP32のPSRAMを使用する為に速度は遅くなります。
- setAddrWindow命令を使用できない為 Arduino GFXのPDQgraphicstestを使用。
他の ボードに於ける Arduino GFX と LovyanGFX:速度の比較
LovyanGFX は 3倍 速い。
_ 2.8 inch ESP32-2432S028 と PDQ graphics test を実施。
_ LovyanGFX の設定は ESP32-2432S028 に記載。
_ Arduino GFX の設定は examples / PDQgraphicstest を使用。
_ That Project : WT32_SC01_Plus (8bit Parallel) の速度比較。
_ LovyanGFX は 3.7倍 速い。
.
部品レイアウト:配置、信号、ピンは色分けしてあります。
ESP32-S3-WROOM-1-N16R8 , with TELEC ( 201-220052 )
ESP32-8048S043 IPS Capacitive Touch
以下のPDF図面は 拡大表示が可能と文字検索が可能です。
配線や設計、改造時に便利です。
🟢 4280S043_Layout
.
ESP32-S3 Pin Assign:
.
GPIO Pin Assign:ESP32-8048S043 ( Resistive or Capacitive touch )
薄緑は GPIO。濃い緑は GPIO共通 | |
Green | Green |
GPIO | 共通 (Common) |
Open Pad ( オープンになっているパッド ) | ||||||||
3.3VESP | 3.3VTFT | LED | INT | U1 | U1 | U1 | U1 | DCLK |
JP1 | JP2 | R10 | R17 | C3 | C4 | C5 | C6 | C22 |
Extended IO ( P1, P2, P3, P4 ) | ||||
共通 (Common)の SD と Touch に注意 | ||||
P1 | 1 | 2 | 3 | 4 |
Name | VIN | TXD2 | RXD2 | GND |
P2 | 1 | 2 | 3 | 4 |
GPIO | 19 | 11 | 12 | 13 |
GPIO | – | SD | SD | SD |
P3 | 1 | 2 | 3 | 4 |
GPIO | 17 | 18 | 19 | 20 |
GPIO | – | – | Touch | Touch |
P4 | 1 | 2 | 3 | 4 |
GPIO | GND | 3.3VESP | 17 | 18 |
GPIO | – | – | – | – |
LCD1 | ||||
Touch | X1 | Y1 | X2 | Y2 |
U1 | X+ | Y+ | X- | Y- |
LED | VDD | GND | VLED+ | VLED- |
LED | 3.3V | GND | LEDA | LEDK |
GPIO | – | – | 2 | 2 |
LCD1 | DCLK | DISP | HSYNC | VSYNC | DE |
GPIO | 42 | 3v3,R16 | 39 | 41 | 40 |
RGB_R | R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 |
GPIO | GND | GND | GND | 45 | 48 | 47 | 21 | 14 |
cfg_pin | – | – | – | d11 | d12 | d13 | d14 | d15 |
RGB_G | G0 | G1 | G2 | G3 | G4 | G5 | G6 | G7 |
GPIO | GND | GND | 5 | 6 | 7 | 15 | 16 | 4 |
cfg_pin | – | – | d5 | d6 | d7 | d8 | d9 | d10 |
RGB_B | B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 |
GPIO | GND | GND | GND | 8 | 3 | 46 | 9 | 1 |
cfg_pin | – | – | – | d0 | d1 | d2 | d3 | d4 |
FPC1 : Touch I2C Capasitive : GT911 | ||||||
Pin No. | 1 | 2 | 3 | 4 | 5 | 6 |
3.3V | – | R4 | R3 | – | R17(∞) | – |
Name | GND | SDA | SCL | REST | INT | VDD |
GPIO | – | 19 | 20 | 38 | (18) | – |
Touch SPI Resistive : XPT2046 | |||||||
3.3V | R5 | – | – | – | – | – | – |
Touch | IRQ | CS | DIN | – | CLK | – | OUT |
GPIO | 18 | 38 | 11 | – | 12 | – | 13 |
SD , TF1 | ||||||||||
Pin No | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Name | DAT2 | DAT3 | CMD | VDD | CLX | VSS | DAT0 | DAT1 | CD | GND |
3.3V | R15 | RN1 | RN1 | – | – | – | RN1 | RN1 | – | – |
TF1 | 3V3 | CS | MOSI | 3V3 | CLK | GND | MISO | 3.3V | open | GND |
GPIO | – | 10 | 11 | – | 12 | – | 13 | 5 | – | – |
lovyanGFX:LCD1 | |||||||||||||||
cfg.pin | d0 | d1 | d3 | d4 | d5 | d6 | d7 | d8 | d9 | d10 | d11 | d12 | d13 | d14 | d15 |
RGB | B0 | B1 | B2 | B3 | B4 | G0 | G1 | G2 | G3 | G4 | R0 | R1 | R2 | R3 | R4 |
cfg.pin | henable | vsync | hsync | pclk | bl |
GPIO | 40 | 41 | 39 | 32 | 2 |
.
分析:
1. ESP32-S3 未使用端子
- GOIO 35, 36, 37 は PSRAM用で GPIOは 使用できません。
2. 3.3V-ESP32 Power Supply
- JP1 : open
3. 3.3V-TFT Power Supply
- JP2 は open
4. XPT2046 Touch ( Resistive Touch )
- C3, C4, C5, C6 は open
5. LCD:WAVESHARE : SKU: 16249
- 4.3inch Capacitive Touch LCD, 800×480
- 4.3inch Capacitive Touch LCD
- User Manual
- Schematic
- GT911
6. LED Driver:
- U5 dv-dc Converter : Code=KDE2H : LT1930 ?。
- Frequeny = 1.2MHz。Peak +15Vdc。
- LEDA = +15.6Vdc。
7. LCD L2
- L2 は 0Ω
8. Capasitive Touch:GT911
- Address は 0x14 ( 0x5D ) です。
9. ESP32-S3:EN 時定数
- R1(10KΩ) と C1(0.1μ) で 時定数 τ(タウ) は 47μsec です。
- 47μsecは ESP32 の起動には 仕様を満たした値です。
.
LovyanGFX:設定
_ Library :lgfx_user/LGFX_ESP32S3_RGB_ESP32-8048S043.h を使用します。
_ Libraryは 暫定処置です。, Touchを追加しています。
//===================================================================== // https://github.com/lovyan03/LovyanGFX/tree/develop/src/lgfx/v1/platforms/esp32s3 // Panel_RGB , Bus_RGB //===================================================================== #define LGFX_USE_V1 #include <LovyanGFX.hpp> #include <lgfx/v1/platforms/esp32s3/Panel_RGB.hpp> #include <lgfx/v1/platforms/esp32s3/Bus_RGB.hpp> class LGFX : public lgfx::LGFX_Device{ lgfx::Bus_RGB _bus_instance; lgfx::Panel_RGB _panel_instance; lgfx::Light_PWM _light_instance; lgfx::Touch_GT911 _touch_instance; public:LGFX(void){ auto cfg = _bus_instance.config(); cfg.pin_d0 = GPIO_NUM_8; // B0 cfg.pin_d1 = GPIO_NUM_3; // B1 cfg.pin_d2 = GPIO_NUM_46; // B2 cfg.pin_d3 = GPIO_NUM_9; // B3 cfg.pin_d4 = GPIO_NUM_1; // B4 cfg.pin_d5 = GPIO_NUM_5; // G0 cfg.pin_d6 = GPIO_NUM_6; // G1 cfg.pin_d7 = GPIO_NUM_7; // G2 cfg.pin_d8 = GPIO_NUM_15; // G3 cfg.pin_d9 = GPIO_NUM_16; // G4 cfg.pin_d10 = GPIO_NUM_4; // G5 cfg.pin_d11 = GPIO_NUM_45; // R0 cfg.pin_d12 = GPIO_NUM_48; // R1 cfg.pin_d13 = GPIO_NUM_47; // R2 cfg.pin_d14 = GPIO_NUM_21; // R3 cfg.pin_d15 = GPIO_NUM_14; // R4 cfg.pin_henable = GPIO_NUM_40; cfg.pin_vsync = GPIO_NUM_41; cfg.pin_hsync = GPIO_NUM_39; cfg.pin_pclk = GPIO_NUM_42; cfg.freq_write = 16000000; cfg.hsync_polarity = 0; cfg.hsync_front_porch = 8; cfg.hsync_pulse_width = 4; cfg.hsync_back_porch = 16; cfg.vsync_polarity = 0; cfg.vsync_front_porch = 4; cfg.vsync_pulse_width = 4; cfg.vsync_back_porch = 4; cfg.pclk_idle_high = 1; _bus_instance.config(cfg); _panel_instance.setBus(&_bus_instance); { auto cfg = _panel_instance.config(); cfg.memory_width = 800; cfg.memory_height = 480; cfg.panel_width = 800; cfg.panel_height = 480; cfg.offset_x = 0; cfg.offset_y = 0; _panel_instance.config(cfg); } { auto cfg = _panel_instance.config_detail(); cfg.use_psram = 1; _panel_instance.config_detail(cfg); } { auto cfg = _light_instance.config(); cfg.pin_bl = GPIO_NUM_2; _light_instance.config(cfg); } _panel_instance.light(&_light_instance); { auto cfg = _touch_instance.config(); cfg.x_min = 0; // タッチスクリーンから得られる最小のX値(生の値) cfg.x_max = 800; // タッチスクリーンから得られる最大のX値(生の値) cfg.y_min = 0; // タッチスクリーンから得られる最小のY値(生の値) cfg.y_max = 480; // タッチスクリーンから得られる最大のY値(生の値) cfg.pin_int = 18; // INTが接続されているピン番号 18 cfg.bus_shared = false; // 画面と共通のバスを使用している場合 trueを設定 cfg.offset_rotation = 0; // 表示とタッチの向きの調整 0~7の値で設定 // I2C接続 cfg.i2c_port = 1; // 使用するI2Cを選択 (0 or 1) cfg.pin_sda = 19; // SDAが接続されているピン番号 cfg.pin_scl = 20; // SCLが接続されているピン番号 cfg.freq = 400000; // I2Cクロックを設定 cfg.i2c_addr = 0x14; // I2Cデバイスアドレス番号 or 0x5D , 0x14 _touch_instance.config(cfg); _panel_instance.setTouch(&_touch_instance);//タッチスクリーンをパネルにセット } setPanel(&_panel_instance); // 使用するパネルをセットします。 } }; LGFX tft; // 準備したクラスのインスタンスを作成します。 //=====================================================================
.
Arduino GFX:設定
// ESP32_4827S043 #include <Arduino_GFX_Library.h> #define TFT_BL 2 // LED K // CS,SCK,SDA,DE,VSYNC,HSYNC,PCLK, // R0,R1,R2,R3,R4, G0,G1,G2,G3,G4,G5, B0,B1,B2,B3,B4 Arduino_ESP32RGBPanel *bus = new Arduino_ESP32RGBPanel( GFX_NOT_DEFINED,GFX_NOT_DEFINED,GFX_NOT_DEFINED,40,41,39,42, 45,48,47,21,14, 5,6,7,15,16,4, 8,3,46,9,1 ); // width ,hsync_polarity,hsync_front_porch,hsync_pulse_width,hsync_back_porch, // height,vsync_polarity,vsync_front_porch,vsync_pulse_width,vsync_back_porch, // pclk_active_neg,prefer_speed,true,auto_flush Arduino_RPi_DPI_RGBPanel *gfx = new Arduino_RPi_DPI_RGBPanel( bus, 800,0,8,4,8, 480,0,8,4,8, 1,16000000,true); void setup(){ pinMode(TFT_BL, OUTPUT); digitalWrite(TFT_BL, HIGH);
.
感想:
4.3 inch 800×480 は ゆとりある解像度、多彩で自由なデザインが可能です。
7.0 inch 800×480 の使用経験から 4.3″ は 小型で持ちやすく見やすいです。
Capasitive Touch は Resistive Touch よりも反応と操作性が良いです。
.
ESP32-4827S043N, ESP32-4827S043R:480×272
_ 低価格の構成としては 良いですが 480×320 より縦が少なく未購入。
ESP32-8048S043R:800×480
_ 解像度は 良いですが Resistive Touch で未購入。
ESP32-8048S043C:800×480
_ 理想的なサイズと解像度、 Capasitive Touch の操作性で購入。
.
.
.
4.3 inch , 800×480 , IPS , ESP32-S3 , GT911 ,
Super M5Stack
M5Stackを魔改造し Super M5Stack を製作しました。 2022.10.25
Super M5Stack の速度は M5Stack の 5.3 倍を達成!!
_ M5Stack Basic Super M5Stack
構成:
M5Stack :2.0″ 320×240 SPI LCD と ESP32-WROOM-32 です。
Super M5Stack:2.0″ 320×240 16bit Parallel LCD と ESP32 S3 です。
Library :LovyanGFX
改造方法:M5Stackに 16bit Parallel LCD と ESP32 S3 を 組み込みました。
つまり M5Stack は ガワ だけを使用しました。
魔改造で 最強の速度を得られます。
![]() |
![]() |
.
.
速度:
Super M5Stack は M5Stack の 5倍の速さです。
SPI, 8bit, 16bit, 320×240, 480×320, 800×480 の比較:
_ Super M5Stack は グラフの中で最高速。(赤矢印)
_ 16bit Parallel + S3 は SPIより遥かに速い。
_ 320×240 SPIで低価格🔵ESP32-2432S028(青)は M5Stack(緑)より速い。
_ 市販のLILY Pi , WT32-SC01 480×320 SPI ボードは Paralell より遅い。
_ 後にParalell の16bit Parallel ILI9488 ESP32 S2 が販売されています。
_ LovyanGFXの効果は速度に表れ 上記の商品にも採用されています。
_ Raspberry Pi 用のSPI ILI9486 Displayは 表に無いがとても遅い。
_ Arduino用 8bit Parallel Dispは動作しますが Touch機能せず未表示。
320×240 SPI接続との比較;
_ ESP32 S3 (赤) は GPIO数多く 16bit が可能です。
_ その中で MiniKit や S2 mini (緑と紫)も高速です。
_ 上記は 短い小型の基板と 短かい配線の効果が現れています。
Super M5Stack 16bit と 8bit の比較:
_ 8bit でも高速で GPIOを必要とする時に良いでしょう。
.
開発環境:
Hard : ESP32 MiniKit S3:ブログ:Make an ESP32 S3 MiniKit
Arduino IDE 設定:
//===================================================================== // HARD : Super M5Stack : S3 modified version of M5Stack // HARD : 2.0 inch 240x320 8/16bit S6D04K1X LCD Display // : https://www.aliexpress.com/item/32358664884.html // https://www.displayfuture.com/Display/datasheet/controller/S6D04K1X.pdf // Dev environment : Arduino IDE 1.8.19 // Board Manager : arduino-esp32 2.0.3-RC1 // Board : “ESP32S3 Dev Module” // Upload Speed : “921600” // USB Mode : “Hardware CDC and JTAG” // USB CDC on Boot : “Disabled” or "Enabled" // USB Firmware MSC On Boot: “Disabled” // USB DFU On Boot : “Disabled” // Upload Mode : “UART0 / Hardware CDC” // CPU Frequency : “240MHz (Wifi)” // Flash Mode : “QIO 120MHz” // Flash Size : “16MB (128Mb)” // Partition Scheme : “16M Flash (3MB APP/9MB FATFS)” // Core Debug Level : “None” // PSRAM : “OPI PSRAM” // Arduino Runs On : “Core 1” // Events Run On : “Core 1” // Port : “/dev/cu.wchusbserial54320100871” // Library : LovyanGFX develop // : https://github.com/lovyan03/LovyanGFX/tree/develop //=====================================================================
Library : LovyanGFX develop
– 謝辞:S6D04K1 LCD の Driver を らびやん氏に開発して頂き感謝致します。
資料:esp32-s3_technical_reference_manual_en
.
.
Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
- LovyanGFX は 投稿時 LovyanGFX develop を使用しています。
🟢 Doun Load:Life_Game_Super_M5Stack.zip
🟢 Down Load:LVGL802_demo_Super_M5Stack.zip:LVGL 8.0.2
🟢 Down Load:Maze_generator_Super_M5Stack.zip
🟢 Down Load:uncannyEyes_Super_M5Stack.zip
🟢 Down Load:Test_PDQ_Super_M5Stack_16bit.zip
🟢 Down Load:Raytrace_Super_M5Stack.zip:991 msec
🟢 Down Load:MovingCircles_Super_M5Stack.zip , 200 ObjCount : 172 fps
🟢 Down Load:Tetris_wifi_Super_M5Stack.zip , Super M5Stack と WiFi Console
- WiFi Console で操作します。
.
.
部品リスト:費用:2765円 (M5Stackのケースや材料等は含まず)
1 | M5Stack . ![]() |
– | – |
2 | ESP32-S3 Module : TELEC 201-220052 . ![]() |
Make an ESP32 S3 MiniKit | 1070円 |
3 | 2.0″ 8/16Bit 320×240 S6D04K1X LCD![]() |
Ecyberspaces | 1355円 |
4 | ピンソケット 2×15 5.7mm, 低メス . ![]() |
秋月電子通商 | 80円 |
5 | ダブルピンソケット 2×13, 低メス . ![]() |
秋月電子通商 2個 | 160円 |
6 |
ロープロファイルピンヘッダ, 低オス .2x40P 7.7mm . ![]() |
秋月電子通商 | 40円 |
7 | 0.3mm厚ユニバーサル基板 47x36mm . ![]() |
秋月電子通商 | 60円 |
8 | M5Stack PROT CASE . ![]() |
自作:PROT CASE , . PROT CASE |
50円 |
9 | Polymorph : 自由樹脂。お湯で溶ける . ![]() |
LI HUA Store . . アマゾンにもあります |
239円 |
10 | 溶剤:アセトン, ネイル用 . ![]() |
ダイソー, 百均 | 100円 |
11 | Wire : 0.26mm ジョンフロン線 | – | – |
.
2.0inch 8/16Bit 320×240 S6D04K1X LCD Display:S6D04K1X pdf
_ 基板は 46x49mmで M5Stackの中(50x50mm)に入ります。
_ 8bit / 16bit の切り替えは 基板上のResistor(183)で行います。
![]() |
![]() |
.
.
製作:
_ 配線:24本。ケースとの位置関係でWR(青)の配線は長くなりました。
_ ESP32 S3:MiniKitを改修しMiniKit S3にします。Make an ESP32 S3 MiniKit
_ BL_CTR(BackLight)は Q1 FET Gate 接続で S3 GPIO_10 に接続可能です。
_ LCDのBackLight(LEDA) は 3.3V で駆動されています。
_ S6D04K1XのRESET(RST)は MiniKit S3の EN (τ=0.47μsec)へ接続します。
_ 資料:Ecyberspaces (販売店に回路図があります)。S6D04K1X pdf。
GNDと両サイドに絶縁処理 | ESP32 S3 の取り付け |
![]() |
![]() |
.
MiniKit S3 のコネクター側, NC 2つあり | MiniKit S3 の部品側, GPIO 2本配線 |
![]() |
![]() |
.
LCDとMiniKit S3の接続基板 connector : 15×2, 13×2 2pcs |
接続基板 と MiniKit S3 Board |
![]() |
![]() |
.
Front Caseを加工します | 水色部の黒をアセトンで剥がす |
![]() |
![]() |
.
ケースとFront Panel 配置狭くSWは ボタンのみ装着 |
ケースとLCD 角はPolymorph 1個をハンダゴテで固定 |
![]() |
![]() |
.
ケースとLCD | LCDにMiniKit S3 Boardを接続 |
![]() |
![]() |
.
ケースと4mm枠とMiniKit S3 Board | MiniKit S3とMicro USBと4mm裏蓋 |
![]() |
![]() |
.
.
LovyanGFX 設定:
cfg.freq_write =20000000;: 20MHz までです。20MHz以上は 画面が崩れてきます。
//---------------------------------------------------------------------- // https://github.com/lovyan03/LovyanGFX/blob/master/examples/HowToUse/2_user_setting/2_user_setting.ino //===================================================================== class LGFX : public lgfx::LGFX_Device{ lgfx::Panel_S6D04K1 _panel_instance; lgfx::Bus_Parallel16 _bus_instance;//16bit Parallelのインスタンス(ESP32) lgfx::Light_PWM _light_instance; public:LGFX(void){ // バス制御の設定を行います。 auto cfg = _bus_instance.config(); // バス設定用の構造体を取得します。 // 16ビットパラレルバスの設定 cfg.freq_write =20000000;// 送信クロック(最大20MHz,80MHzを整数割の値に丸める) cfg.pin_wr = 15; // WR を接続しているピン番号 cfg.pin_rd = 2; // RD を接続しているピン番号 cfg.pin_rs = 8; // RS(D/C)を接続しているピン番号 cfg.pin_d0 = 42; // D0 を接続しているピン番号 cfg.pin_d1 = 47; // D1 を接続しているピン番号 cfg.pin_d2 = 14; // D2 を接続しているピン番号 cfg.pin_d3 = 11; // D3 を接続しているピン番号 cfg.pin_d4 = 9; // D4 を接続しているピン番号 cfg.pin_d5 = 38; // D5 を接続しているピン番号 cfg.pin_d6 = 4; // D6 を接続しているピン番号 cfg.pin_d7 = 18; // D7 を接続しているピン番号 cfg.pin_d8 = 3; // D8 を接続しているピン番号 cfg.pin_d9 = 39; // D9 を接続しているピン番号 cfg.pin_d10 = 5; // D10を接続しているピン番号 cfg.pin_d11 = 40; // D11を接続しているピン番号 cfg.pin_d12 = 7; // D12を接続しているピン番号 cfg.pin_d13 = 1; // D13を接続しているピン番号 cfg.pin_d14 = 16; // D14を接続しているピン番号 cfg.pin_d15 = 6; // D15を接続しているピン番号 _bus_instance.config(cfg);// 設定値をバスに反映します。 _panel_instance.setBus(&_bus_instance); // バスをパネルにセットします。 {// 表示パネル制御の設定 auto cfg = _panel_instance.config(); // 表示パネル設定用の構造体を取得します。 cfg.pin_cs = 17; // CSが接続されているピン番号 (-1 = disable) cfg.pin_rst = -1; // RSTが接続されているピン番号 (-1 = disable) cfg.pin_busy = -1; // BUSYが接続されているピン番号 (-1 = disable) cfg.memory_width = 320; // ドライバICがサポートしている最大の幅 cfg.memory_height= 240; // ドライバICがサポートしている最大の高さ cfg.panel_width = 320; // 実際に表示可能な幅 cfg.panel_height = 240; // 実際に表示可能な高さ cfg.offset_x = 0; // パネルのX方向オフセット量 cfg.offset_y = 0; // パネルのY方向オフセット量 cfg.offset_rotation = 0; // 回転方向の値のオフセット 0~7 (4~7は上下反転) cfg.dummy_read_pixel= 8; // ピクセル読出し前のダミーリードのビット数 cfg.dummy_read_bits = 1; // ピクセル以外のデータ読出し前のダミーリードのビット数 cfg.readable = true; // データ読出しが可能な場合 trueに設定 cfg.invert = true; // パネルの明暗が反転してしまう場合 trueに設定 cfg.rgb_order = true; // パネルの赤と青が入れ替わってしまう場合 trueに設定 cfg.dlen_16bit = true; // データ長を16bit単位で送信するパネルの場合trueに設定 cfg.bus_shared = false; // SDカードとバス共有はtrueに設定 _panel_instance.config(cfg); } { // バックライト制御の設定を行います。(必要なければ削除) auto cfg = _light_instance.config();// バックライト設定用の構造体を取得します。 cfg.pin_bl = 10; // バックライトが接続されているピン番号 BL cfg.invert = false; // バックライトの輝度を反転させる場合 true cfg.freq = 44100; // バックライトのPWM周波数 cfg.pwm_channel = 7; // 使用するPWMのチャンネル番号 _light_instance.config(cfg); _panel_instance.setLight(&_light_instance);//バックライトをパネルにセットします。 } setPanel(&_panel_instance); // 使用するパネルをセットします。 } }; LGFX tft; // 準備したクラスのインスタンスを作成します。
.
.
感想:
最速のM5Stackを目指し LCDは 16bit Parallel。MPU は ESP32 S3 を選択。
M5Stackの中に収めるために 小型LCDを探し S3を基板化し組み込みました。
LCDの基板の厚みは 1.2mm。 コネクターは 細工せず そのまま使用。
MiniKitの基板の厚みは 1.6mm。接続基板は 0.3mm厚を使用。
LCDと接続基板のコネクターは 高さの低い 5.7mmを使用。
MiniKitと接続基板のコネクターは 高さの低い 低メスと低オスを使用。
結果 M5Stackに入るものの 場所的に狭く M5Stackの標準装備は ありません。
工夫をすれば この課題は解決できます。
.
M5Stack Fire:分解使用したもの。
MD5 Error 発生の FireでUSB接続不可。それで本体基板を MiniKitに交換しました。
すると 同じ ESP32 でありながら MiniKitの方が速い。
ところが LCDは 30, 40MHz では動作せず 20MHzでしか動作せず。
他の M5StackのLCDは 80MHzでも表示しました。
M5Stackは 40MHzで動いていたはず。不可解な故障で原因追及もままならず、、。
そこで LCDも変えてしまおうと 魔改造の材料になりました。
.
M5Stack S3 Version は どの様な構成で発売されるか解りませんが
ESP32 S3 のパラレルアーキテクチャーと
16bit Parallel Display を採用し 最強のM5Stackを期待しています。
ただし 多分 この視点は持ち合わせていないと思っています。
.
専用基板を作成すれば 最高速で低価格, 汎用性のあるものが作れますね。
.
.
.
.
.
.
M5Stack , Super M5Stack , Minikit S3 , 改造 , 魔改造 , 最強 , 最速 , 高速 ,
5倍 , 16bit Parallel ,
WiFi Console
レトロ な ワイヤレス コントローラーを作ります。 2022.10.03
ワイヤレスでゲーム:WiFi Console と ESP32-2432S028
構成:FC Console, Swicth, Battery Charger, M5Stamp C3U, Battery
.
.
仕様:
1. WiFi :M5Stamp C3U:3.5 x 2.0 x 5 mm:中に入るサイズ。
2. 電源;USB 又は 内蔵 Battery 。
3. 接続方法;UDP 通信 。
4. USB Power;5V 80mA 。
5. FC Console ; ボタンと送信データー 8bit (1, 2, 4, 8, 16, 32, 64, 128)。
_ 複数ボタンの同時押しは 合計値になります。例:左 UP(16) + 右上(2) = 18
.
開発環境:
Arduino IDE 1.8.19
Board Manager : arduino-esp32 2.0.3-RC1
Library :joshmarinacci / nespad-arduino : Josh Marinacci 氏に感謝。
.
.
Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Doun Load: wifi_console.zip
🟢 Down Load:SpaceShooter_WiFi_2432S028.zip
![]() |
![]() |
🟢 Down Load:Tetris_wifi_2432S028.zip
.
ESP32_2432S028 タッチパネル バージョン
🟢 Down Load : Tetris_ESP32_2432S028.zip
.
.
部品リスト:費用:1490円 (購入時の価格)
No. | Nomen | Purchase | Price |
1 | FC Game console . ![]() |
TECTINTER Official . $3.39 . 輸送期間 : 11日 |
404円 |
2 | M5Stamp C3U . ![]() |
M5Stack Official Store . $31.7 . 5pcs販売 3417円,1個 685円, |
685円 |
3 | Battery Charger . ![]() |
Lithium Battery Charger Module . Type-C protect , 10pcs 590円 . 輸送期間=16日 |
59円 |
4 | Battery:FUJIFILM . NP-40 , 3.6V 750mAh . 40x35x6mm , 厚み<6mm . ![]() |
秋葉原・中古屋 | 100円 |
4 | Battery:ロワジャパン . ( キャノン ) . NB-4L , 3.7V 760mAh . 40x35x6mm |
ロワジャパン | |
5 | スライドスイッチ . ![]() |
秋月電子通商 | 20円 |
6 | ピンヘッダ(低オス) 8.5mm | 秋月電子通商 | 40円 |
7 | ピンソケット(低オス) 3.6mm | 秋月電子通商 | 60円 |
8 | ユニバーサル基板 0.3mm厚 . ![]() |
秋月電子通商 | 120円 |
9 | Spacer:位置調整 | – | |
10 | Wire : | – |
バッテリーの厚みは 6mm 以下が必要です。
🔵 1900円 ESP32 + 2.8″ Display ESP32-2432S028 の販売店は Sunton Store です。
🔵 2.8″ Display の解説は ESP32-2432S028 を参照ください。
.
.
製作:
FC Console の 配線図と信号:
1. スイッチが押されるとDATAはGNDになります。
2. 10個のスイッチから 押された場所の信号(DATA)が出力され 受信されます。
- 複数のスイッチが押された場合は 合計値(足し算)のDATAになります。
3. 受信側は STROBE,CLOCK,DATA信号からスイッチの場所を検出。
3V3,GND 2本と STROBE(21), CLOCK(20), DATA(9) 3本を配線。 (C3U GPIO) |
![]() |
.
🔴 USB Charger(4.2V)から C3U 5Vへ供給。 🟠 Batteryから Switchを介して C3U 5Vへ供給。 🟠 Switch ON で Charger (4.2V) から Battery を充電。 組み込み時 M5Stamp C3UのUSBは 使用しない。 |
![]() |
.
配置:
Front Cover and Front Switch | Battery charge USB connectorの穴を開ける |
![]() |
![]() |
.
Stamp C3U , Conductive switch | PCB , Battery Switch, Spacer |
![]() |
![]() |
.
Battery:NP-40, NB-4L 40x35x6mm 厚み 6mm 以下 |
Rear cover : cut a part 中央の押さえは切り取る。 左右の押さえは残しておきます |
![]() |
![]() |
.
ESP32-2432S028 | WiFi 接続 |
![]() |
![]() |
.
.
//============================================================= // WiFi Console : 2022.08.30 : macsbug // https://macsbug.wordpress.com/2022/10/03/wifi-console/ //============================================================= // HARD : fc console // HARD : M5Stamp C3U // Dev environment : Arduino IDE 1.8.19 // Board Manager : arduino-esp32 2.0.3-RC1 // Board : "ESP32C3 Dev Module" // Upload Speed : "921600" // USB CDC On Boot : "Enabled" // CPU Frequency : "160MHz (WiFi)" // Flash Frequency : "80MHz" // Flash Mode : "QIO" or "DIO" // Flash Size : "4MB(32Mb)" // Partation Scheme : "Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)" // Core Debug Level : "None" // Port : "dev/cu.usbmodem142401 (ESP32S3 Dev Module)" // Library : joshmarinacci / nespad-arduino // https://github.com/joshmarinacci/nespad-arduino // ------------------------------------------------------------ // Wiring : FC : STROBE, CLOCK, DATA // : C3U : 21 , 20 , 9 // FC Console Data : none=0, select=4, start=8 // : L : L=64, R=128, U=16, D=32 // : R : L=2 , R=1 , U=2 , D= 1 //============================================================= /* this example from the NESpad Arduino library displays the buttons on the joystick as bits on the serial port - rahji@rahji.com Version: 1.3 (11/12/2010) - got rid of shortcut constructor - seems to be broken*/ //============================================================= #pragma GCC optimize ("Ofast") #include <WiFi.h> #include <WiFiUDP.h> #include <WiFiClient.h> #include <Adafruit_NeoPixel.h> Adafruit_NeoPixel pixels(1, 2, NEO_GRB + NEO_KHZ800); const char *ssid = "fc"; // SSID const char *pass = "12345678"; // Password const int Port = 9000; // Port static WiFiUDP UDP; // UDP Object IPAddress HostIP (192, 168, 4, 1); // Host IP IPAddress myIP (192, 168, 4, 2); // my IP #include <NESpad.h> // NESPad Arduino Library NESpad nintendo = NESpad(21,20,9); // GPIO:strobe,clock,data //============================================================= void setup() { Serial.begin(115200); pixels.begin(); WiFi.mode(WIFI_STA); UDP.begin (myIP, Port); WiFi.begin (ssid, pass); WiFi.config(myIP, WiFi.gatewayIP(), WiFi.subnetMask()); } //============================================================= void loop() { int dt = nintendo.buttons(); String tx = String(dt); if ( dt>0 && dt<255 && UDP.beginPacket(HostIP, Port) ) { //Serial.println(dt); UDP.println(tx); UDP.endPacket(); pixels.setPixelColor(0,pixels.Color(255,0,0)); // ON RGB pixels.show(); if (dt == 4){delay(2000); ESP.restart();} // re_start } //delay(5); pixels.setPixelColor(0,pixels.Color(0,0,0)); // OFF pixels.show(); } //=============================================================
.
.
感想:
コントローラーは いろいろありますが レトロなデザインを選択。
デザイン:中に全て入る事。
_ 小型の M5Stamp C3U が唯一入ります。
_ バッテリーは 6mm以下でないと入りません。
_ FC Console の工作は なるべく少なくする。
何に使用するのか:
_ とりあえず ESP32-2432S028。
_ 次回の テーマに使用します。
.
プログラム:ワイヤレスとは何か?
_ ワイヤー接続は 連続で信号を送り 消費電力は少ないです。
_ WiFi接続の場合は 連続送信する事で バッテリーの消費が課題になります。
_ Tetris Game は 25msec 間隔でブロックが落下します。
_ スイッチの情報は その25msec より速く送る必要があります。
_ 省電力の為に いろいろ思考しましたが 変化のある時だけ送信するという
_ のは 意味が少ないです。よって 単純な連続送信としました。
.
バッテリー:
_ 中に収める為に 厚み 6mm 以下が必要です。
_ NP-40 FUJIFILM 40x35x6mm
_ NB-4L CANNON 40x35x6mm, 互換 ロワジャパン
_ 通常 価格は 高いので安い所を探しましょう。
_ 秋葉原・中古屋で安く購入しましたが 常にあるかは別です。
.
.
.
.
.
Famicon , Controller , Console , M5Stamp C3U , WiFi , UDP , Battery ,
ESP32-2432S028 ,
ESP32-3248S035
ESP32-3248S035R/C motherboard ORG. 2022.09.16
. rev 1. 2022.09.19
. rev 2. 2022.09.22
3.5″ 320×480 SPI ST7796 with Resistive Touch Panel XPT2046
価格:🟢 2314円 送料込 ($16.13)。輸送期間:14日。
3.5″ 320×480 SPI ST7796 with Capacitive Touch Panel GT911
価格:🟢 2733円 送料込 ($19.04)。輸送期間:未到着。
低価格で ESP32, LCD Display等が1つの基板でできています。
販売店:Sunton Store
輸送期間;14日で Aliexpressの中では早い方でした。
サイズ:Displayは 75x50mmでカードサイズ。全体は 101.5×54.9mm。
無印のメイクパレット・S (990円) に入ります。 |
![]() |
.
.
構成:
1. ESP32 with TELEC(211-161007) : 内部 4MB(32Bit) Flash
2. 外部 4MB(32Mbit) Flash memory, winbond 25Q32JVSlQ
3. LCD ( ST7789 ) with Touch ( XPT2046 抵抗膜方式)
4. Expanded IO x 2
_ P3 ( GND, GPIO_35, GPIO_22, GPIO_21)
_ CN1 ( GND, NC, GPIO_21, 3.3V)
5. SD SLOT ( Micro SD ) : CS=GPIO_5
6. RGB LED ( MHP5050RGBDT )
_ RED=GPIO_4, GREEN=GPIO_17, BLUE=GPIO_16
7. CDS ( GT36516 ) : CS=GPIO_34
8. EXT Power Conn : P1 ( VIN, TX, RX, GND )
9. Audio OUT(Audio amp SC8002B) : GPIO_26
_ P4 SPEAK(1=VO1, 2=VO2)
10. P1 Power Supply Bace Connector(VIN, TX, RX, GND)
11. 付属:Touch pen, 4pin External connector cable, USB Cable。
資料:
– 購売店に ESP32-3248S035Rのdownload linkがあります。重要です。
– Display Libraryは LovyanGFX (ST7789, XPT2046, SPI2_HOST)で動作。
– 3.5inchは 大きく 操作性良く とても見やすい大きさです。
– ボタンやキーボード等を自由に配置でき 物理スイッチは不要です。
.
.
開発環境 :
HARD : ESP32_3248S035R ( R = Resistor Touch の意味 )
– Display : 3.5″ 320×480 SPI ST7796 LCD Touch XPT2046
Dev environment : Arduino IDE 1.8.19
– Board Manager : arduino-esp32 2.0.3-RC1
– Board : “ESP32 Dev Module”
– Upload Speed : “460800” (Mac), “921600” (Win)
– CPU Frequency : “240MHz (WiFi/BT)”
– Flash Frequency : “80MHz”
– Flash Mode : “QIO” or “DIO”
– Flash Size : “4MB (32Mb)”
– Partition Scheme : No OTA (2MB APP/2MB SPISSF)”
– Core Degug Level : “None”
– PSRAM : “Disabled”
– Arduino Runs On : “Core 1”
– Events Run On : “Core 1”
– Pord : “dev/cu.wchusbserial14240”
_ memo :
_ CH340C の為 Upload Speed は Mac と Win では 異なります。
_ LovyanGFX Touch cfg.pin_int = 36; Touchが動作しない場合は -1 にします。
Library : LovyanGFX
.
.
🔴 追記:SPI接続 設計ミス:2022.09.22
ESP32-2432S028 , ESP32-3248S035 の U4 外部 4MB Flash memoryについて。
U2 ESP32-WROOM-32 は 内蔵 4MB Flash です。そして外部Memoryとして
U4 4MB Flash Memory 8Pin W25Q32JV があります。
Flashは SPI接続で VCC以外のPinは全て(CS,DI, DO, WP,CLK, HOLD,GND)共通。CSもです。
マルチサブモードやマルチスレーブにはなっていません。
よって U4のCS並列接続は設計ミスと判断しています。
不具合事例:Arduino IDEでUP LOAD(書き込み)時にエラーが発生し書き込み不可。
_ Flashの破損。他、不可解な現象が発生します。
現象:UP LOAD不可。🔴 Flashが壊れます。
原因:U2内部FlashとU4外部FlashのCS,DI,DO共通によりFlashが重複。
対策:🟢 U4 Flash を取り除きます。
詳細:以降の解説 19 を参照ください。
.
.
🟠 記事修正:2022.09.19
UP LOAD に関し 設計ミスが判明し修理致しました。
.
.
Down Load:DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Down Load : Life_Game_ESP32_3248S035.zip
🟢 Down Load : LVGL802_demo_ESP32_3248S035.zip
🟢 Down Load : Maze_generator_ESP32_3248S035.zip
🟢 Down Load : MovingCircles_ESP32_3248S035.zip : obj_count 100 =11 FPS,
🟢 Down Load : Raytrace_ESP32_3248S035.zip
🟢 Down Load : Test_PDQ_ESP32_3248S035.zip
🟢 Down Load : uncannyEyes_ESP32_3248S035.zip
🟢 Down Load : Tetris_ESP32_3248S035.zip:revision:Bug修正。2022.09.19
.
🟢 Down Load : WebRadio_ESP32_3248S035_SP.zip:revision:2022.09.19
- Web Radio ESP32-3248S035 Speaker版:
- P4 SPEAK 端子にSpeakerを接続し音を再生出来ます。
- 8Ω 2W 40x5mm Speaker と間に100Ωを接続します。過電流防止です。
- ダイソー330円スピーカは 直接接続でき 充分聞ける音質です。
- デジタル Web Radio ESP32-2432S028-I2S方式との比較はノイズが僅か入ります。
- 局の廃止や受信不良が発生する場合があります。
.
.
部品レイアウト:配置、信号、ピンは色分けしてあります。
以下のPDF図面は 拡大表示が可能と文字検索が可能です。
配線や設計、改造時に便利です。
🟢 ESP32-3248S035R_PCB_Layout
.
GPIO Pin Assign:部品とGPIO表です。
1. GPIO39 は 未配線。
2. LCDとTouchの SCLK(14), MOSI(13), MISO(12) は 共有。(薄緑)
3. Touch Resistive CS と Touch Capacitive SDA は 共有。(薄紫)
4. P3 IO21 と CN1 IO21 と Capacitive Touch INT は 共有。(薄橙)
.
Cds | R21 |
GPIO | 34 |
Audio AMP | U5 |
GPIO | 26 |
LED1 | RED | GREEN | BLUE |
GPIO | 4 | 16 | 17 |
U4 Flash | HOLD | WP | CLK | DI | DO | CS |
GPIO | SD2 | SD3 | CLK | SD1 | SD0 | CMD |
GPIO | 9 | 10 | 6 | 8 | 7 | 11 |
LCD SPI | LED | RST | DC(RS) | SCLK | MOSI | MISO | CS |
GPIO | 27 | EN(-1) | 2 | 14 | 13 | 12 | 15 |
Touch SPI Resistive | INT(IRQ) | SCLK | MOSI | MISO | CS |
GPIO | 36 | 14 | 13 | 12 | 33 |
Touch I2C Capasitive | INT(IRQ) | SCL | SDA | RST |
GPIO | 21 | 32 | 33 | 25 |
SD | DATA2 | VSS | VDD | CLK (CLX) |
MOSI (CMD) |
MISO (DAT0) |
CS(CD) |
GPIO | 3V3 | GND | 3V3 | 18 | 23 | 19 | 5 |
.
Connector:
P3 | GND | IO35 | IO22 | IO21 |
CN1 | GND | NC | IO21 | 3V3 |
P1 | VIN | TX | RX | GND |
P4 | VO1 | VO2 |
.
Touch Panel:
1. Touch Calibration:
_ 電源ONでタッチキャリブレーションが始まり四隅の入力が終了で
_ Calibration の値を取得できます。Arduino IDEのSerial Monitorに
_ uint16_t calData[5] = { 200, 3559, 194, 3741, 3 };
_ tft.setTouch(calData);
_ とか表示され calData として使用できます。
_ Library TF-eSPI で setup に記載して使用できます。
2. LGFXで 以下の値でも結構まともにセンスします。
_ cfg.x_min = 360; , cfg.x_max = 4200;
_ cfg.y_min = 180; , cfg.y_max = 3900;
Touch | x_min | x_max | y_min | y_max |
LGFX | 360 | 4200 | 180 | 3900 |
.
3. タッチパネル使用可能条件:
_ Arduino IDE : CPU Frequency : “240MHz” と LGFX cfg.pin_int = -1;
_ Arduino IDE : CPU Frequency : “160MHz” と LGFX cfg.pin_int = 36;
_ スケッチ;Loop中に長いdelayを入れない事。参考:Tetris
.
解説:
- ESP32やESP32ボード共通の情報も含まれます。
1. ESP32 : 内部 4MB(32Bit) Flash
- esptool.py flash_id の表示。
Detecting chip type... ESP32 Chip is ESP32-D0WD-V3 (revision 3) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 40:22:d8:57:f1:fc Uploading stub... Running stub... Stub running... Manufacturer: ef Device: 4016 Detected flash size: 4MB
.
2. U4 External FLASH Memory 4MB(25Q32):
- 外部 4MB(32Mbit) Flash memory, winbond 25Q32JVSlQ
- 拡張用のFLASH 4MB です。CS=GPIO_11。
- 3V 32M-BIT SERIAL FLASH MEMORY WITH DUAL, QUAD SPI
- External Flash : Start Address 0x3F40_0000 End 0x3FF8_0000
- 4MB (4194303バイト):詳細:ESP32 Technical Reference Manual
_ 参考:ESP-WROOM-32の外部フラッシュメモリにアクセスする
.
3. LCD Touch MISO:Arduino IDE の setup に必要な設定。
- このボードでは GPIO_39 Input は使用されていません。
- GPIO_39 は WiFI使用時に Pulseが発生します。(画像:左)
- 対策:以下を記載するとPulseは無くなります。 (画像:右)
- 原因:ESP32チップのバグです。
void setup() { WiFi.begin(); WiFi.setSleep(false);
- GOIO 36 Input
- 同様にESP32のバグで GPIO36も短いスパイクが出るという情報。
- GPIO39, GPIO36 もPulseにより接続部品が壊れる事を想像します。
- 対策:adc_power_acquire(); を setupの先頭に記述します。
- 結果:GPIO36 および GPIO39 のグリッチは除去されます。
void setup() { adc_power_acquire();
WiFi.begin() | WiFi.setSleep(false) |
![]() |
![]() |
.
4. 配線図とボードの差異:
- 部品タイプの変更。
- 配線図:R1, R3, R12, R13, R14, R18, SMD 103 10KΩ。
- ボード:R1, R3, R12, R13, R14, R18, SMD 01C 10KΩ。
–
- Audio Circuit : GAIN の変更。回路図を参照してください。
- 配線図:R7 = 47KΩ。ボード:R7 = 0Ω
- 配線図:R8 = 22KΩ。ボード:R8 = 0Ω
- 部品タイプの変更:R9 SMD 68E (68KΩ)
- ESP32-2432S028 と比較し GAIN の変更。
- Speaker で聞く分には大差ないです。
- 回路図:ESP32-3248S035-LCM-V1.1.jpg
- 回路図:ESP32-2432S028-LCM.jpg
–
- JP0, JP3 端子
- 配線図:0Ω。ボード:Open
- JP0:LDO=AMS1117, 3.3V-TFT:3.3Vdc 4mVac
- JP3:LDO=AMS1117, 3.3V-ESP:3.3Vdc 3mVac
.
5. P1, P3, CN1, P4 Extender Connector Cable:
No. | Nomen | Purchase | Price |
1 | P,P3,CN1 Extender . Cable Connector . HC-1.25-4PWT |
EFEF Store . JST1.25, 10cm, Single head, 4P . 価格:20個283円 |
15円 |
2 | P4 Extender . Cable Connector . JST_1.25_2P |
EFEF Store . JST1.25, 10cm, Single head, 2P . 価格:10個99円。 |
10円 |
.
6. INPUT ONLY GPIO:入力専用GPIOの把握。
- GPIO_36 (RTP_IRQ), GPIO_39 , GPIO_34 (cds), GPIO_35 (P3) は
- INPUT ONLYです。使用時や回路変更時に注意してください。
.
.
7. 共有(Commn) GPIO 21:使用時の注意。
- GPIO_21 は P3 , CN1 , CTP_INT と共有です。
.
- Capacitive Touch CTP_INTは R25(0Ω)経由で基板上にパターンがあります。
- R25(0Ω)は 未装着でOpen になっています。
![]() |
![]() |
.
8. LCD GPIO_12 (TFT SDO ) R24 (0Ω)は 未装着。
- ESP32 GPIO_12 は 起動モード設定に使用される為
- Low にする必要があります。
.
.
.
.
9. 電源:3.3Vは 2系統の電源になっています。
- USB 5VdcからD1 Diodeを経由し LDO AMS1117で3.3Vdc。
- D1 1N5819W Diode の出力は 4.6Vdc 17mvacです。
- 3.3V は 2つのLDOにより 3.3V-ESP と 3.3V-TFT が作られます。
.
.
10. P1 Power Supply Base Connector:使用時の注意。
- USB接続時 VIN には Q1 FET から 4.6V 17mvacが出ています。
- Q1 FET Gate が GNDの為 Q1 は ON です。
- 使用時に検討ください。
- Diode D1 1N5819W pdf:Vf = 0.32V(0,1A), Vf = 0.45V(1.0A), - 5.0-0.45=4.6V
.
.
11. P4 SPEAK と Speaker:スピーカー接続方法。
- P4 コネクターへ 外部スピーカを接続できます。
- ダイソーの330円スピーカーに接続でき充分聞ける音です。
- スピーカーの径が大きいと音質が向上します。
- スピーカー単体の接続は 追加抵抗値が 100Ω程度必要です。
- 直接 4Ω や 8Ω の Speakerを接続しますと電流が流れすぎ
- 3.3V電源が低下し ESP32が停止します。
- 例;8Ω 2W 40x5mm Speaker に 100Ω を直列に接続します。(画像:左)
![]() |
![]() |
.
12. ESP32 EN 時定数:
- R1(10KΩ) と C4(0.1μ) で 時定数 τ(タウ) は 47μsec です。
- 47μsecは ESP32 の起動には 仕様を満たした安全な値です。
.
13. ESP32 Revision:Revision 3 です。
- Serial port /dev/cu.wchusbserial14240
- Detecting chip type… ESP32
- Chip is ESP32-D0WD-V3 (revision 3)
- Revision 1 は 不具合versionですので, 3 で良かったです。
.
14. 速度:
- 3248S035は SPI接続で Parallel 8/16bit との差が解ります。
- 同じ 320×480 の中で 最高速の中に入っています。
- 部品の選択が大きな要素です。
- LovyanGFX使用により高速表示が実現します。
- ILI9486 や M5Stamp C3 は遅いです。
.
.
.
15. R21:GT36516 Photoresistor:Cdsの動作範囲。
- 以下の特性ですので 動作範囲を把握して使用します。
- R21 Cds は GPIO_34 (Input)へ接続されています。
- テスターで対GND電圧と抵抗値測定。
- 暗くする :150mVdc , 抵抗値=25KΩ
- 明るくする;部屋の蛍光灯:20mVdc , 抵抗値=5.5KΩ。窓の光:16mVdc
- プログラム:
- analogSetAttenuation(ADC_0db); // 0dB(1.0倍) 0~800mV
- pinMode(34, ANALOG);
- 計測:Serial.printf(“%d[mV]\n”, analogReadMilliVolts(34) );
- 計測結果;部屋を暗くする:230mVdc.。明るくする;75mVdc
- 指で遮蔽した程度では 変化は少なく 明暗の差が必要です。
.
.
16. LCD Library:
- LovyanGFX を使用し 設定は以降に示します。
- LovyanGFXは 高速である事と FONTが多数用意されている事や
- 漢字が容易に使用できます。
.
17. 速度とタッチセンス
- 速いMPUやLGFXは 表示速度が速くチラツキなく見やすくなります。
- Tetris の Loop は 25msecで表示を繰り返しています。
- ブロックが落下する速度は 25msec が見やすい速度の為です。
- 遅いM5Stackでは 安易に Loop に 25msec delay を入れていました。
- 速度が速くなると delay方式は タッチセンスしない為 使用できません。
- delayを使用しない方法でのプログラムが必要になります。
.
18. PCBは カードサイズ:ケースの製作方法。
- カードサイズの為 市販のカードケースや化粧ケースが使用可能です。
- 加工は伴いますが 3Dプリンターは不要で 綺麗に仕上がります。
無印良品:メイクパレット・S 111x71x15mm ( 990円 )。 位置を決めて 穴を開けます。 USBの位置は 右か左側に決めます。 USBコネクターの位置を十分検討。 |
養生テープを取り付け 穴を開け アセトンを流し込むと 鏡の両面テープ(4x8mm)が取れます。 カッターやヤスリで窓を開けます。 |
![]() |
![]() |
.
ケースの高さに合う ナイロンネジ(M3 5-8mm)を取り付けます。 P4 SPEAK Connector : JST_1.25_2P と 販売店:EFEF store:価格:10個99円。 8Ω 2W 40x5mm Speaker + 100Ω を取り付けます。 ーーーーーーーーーーーーーーーーーーーー P1, P4, CN1 Connector:HC-1.25-4PWT 販売店:EFEF store:価格:20個283円。 |
![]() |
.
隙間がないように仕上げます。 ステレオミニジャックを取り付けて ダイソースピーカに接続も出来ます。 |
表示具合です。 右の配線は 黒テープ等で処理。 光造形3Dプリンタより綺麗です。 |
![]() |
![]() |
.
.
19. U4 SPI 接続:設計ミス。追記:rev 2. 2022.09.22
- U2 ESP32 内蔵 4MB Flash と U4 外部 Flash 4MB 8pin W25Q32JV の配線は
- VCC を除き全て(CS,DI, DO, WP,CLK, HOLD,GND)共通です。CSもです。
- 判断の根拠は マルチサブモードやマルチスレーブには なっていません。
- CSが並列なら DI,DO信号は直列接続にする必要があります。
- DI,DO信号が並列なら CS信号は 別にする必要があります。
- 回路図 及び 実際の配線は 上記の基本の様になっていません。
- 設計者は並列と言い 何の為に 並列にしているか根拠が不明です。
- 設計者に2回 お聞きしても問題ないとの返事で 根拠は述べていませんでした。
- さらに 設計者は並列の制御方法は知らないと述べていました。
現象:UP LOAD不可。🔴 Flashが壊れます。
原因:U2内部FlashとU4外部FlashのCS並列によりFlashが重複。
処置:🟢 U4 Flash 4MBを散り外します。図面を参照ください。
- ハンダゴテで片側4つの端子に並列に熱を加えピンセツトで上に持ち上げます。
- 片側が外れましたらもう片側の端子に熱を加え取り除きます。
- ハンダゴテがない場合 ニッパーやカッター等でピンを全て切り取り外します。
- 特にGNDだけを外す様な 更なるな不具合を発生させる方法はしない事。
- ICの仕様にない接続をしないと言う事です。
- U4は 並列で何の役にも立っていませんので取り外し時に壊れても良いでしょう。
- 実施後は アセトンかアルコールで基板をクリーニングします。
- この件は 私の判断ですので 各自で責任をお持ちください。
-処置:U4取外しでもダメな場合は ESP32内蔵 4MB Flashを交換します。
- この場合 金属の蓋を開け 修理改造になりますので TELECは無くなります。
–
PDF:画像が見え難い場合は PDF を参照ください。S028_S035_SPI_480s
.
🟠 2個並列に書き込んだFlashは どうなるか?
- U2内部FlashとU4外部Flashが 正しく書き込まれている場合と
- 書き込まれていない場合の4通りができます。
- U4外部Flashを外すと
- 1. U2内部Flashが正しく書き込まれていると 以前のスケッチがそのまま動きます。
- 2. U2内部Flashが正しく書き込まれていないと 動作せず表示しません。
🔵 これは この並列接続は 間違っている事を示しています。
;
- 正しく書き込まれていないFlashを混ざて動かすと奇妙な現象が発生します。
- Arduino IDEで書き込み回数が(50〜200回とか)多くなると顕著に発生します。
- 例として GPIO_27使用不可,タッチ操作不可,書き込み不安定,書き込不可,MD5エラー,
- U2内部Flash破損(esptoolでeraseしても不可)(最悪),等々が発生しました。
- esptool.py での erase は esptool.py erase_flash でなく以下が良いです。
- ただし この基板は これだけの問題でなく CH340C の問題があります。
実施前 以下で確認。 esptool.py chip_id esptool.py flash_id erase 実施。 esptool.py erase_region 0x10000 0x1000 実施後 以下で確認。 esptool.py chip_id esptool.py flash_id
;
🟢 MD5エラーは 書き込み回数の多い M5Stackでも発生する現象です。
- 対策は esptool.pyで Flashをeraseすると治ります。
- S028,S035の場合 取り外し後に U2内部Flashが正しく書き込まれていないと
- 2,3回 MD5エラーで書き込みができなくなりますが その後は書き込みが
- 出来る様になります。
- Espressif SystemsのSPI Flashを読むと 私には 極めて難しい事が書かれており
- 奥義もある様で自分の判断が正しいのか疑問に包まれます。
- eraseで 治った様に見えましたが その後も 再び MD5 error が発生。
- 対策は Auto Program で無く Manualで書き込んでいます。
_ Manual program :
_ USB Re-Connect , Boot + Reset Switch, Reset Open, Boot Open です。
_ 経験的ですが CH340C はこの現象が多いです。
.
基板不具合: rev 1. 2022.09.18
タッチ操作の不完全とUP LOAD の2つの不具合に時間を要しました。
最初は時々 発生。その後 かなりの歩度で不具合発生。
投稿後にも不具合が再発し不具合部品の交換を実施。
1. 不具合:Touch IC U3 XPT2046 x,y 入力は良いが pin-11 IRQ Output 無し。
- 原因:XPT2046 IRQ Output Pin-11 の不良。
- 処置:U3 XPT2046 を交換し IRQ OUTPUT は正常になる。
- メモ:U3 Pin-9,10 は GND です。2つあることは重要で 不十分な GNDは
- HI=3.3V が 2.5V とかになり “1” であるはずの Logicが “0” になります。
2. 不具合:USB接続切れが発生する。書き込み時にエラーメッセージ発生し書き込めない。
- 「 A fatal error occurred: Serial data stream stopped: Possible serial noise or corruption.」
- 「 A fatal error occurred: MD5 of file does not match data in flash!』も発生する。
- 原因:U2 ESP32内のFlash 4MB。
- 処置:Flash 4MBを16MBに交換し書き込みは正常になる。
- メモ:esptool で 内蔵 Flash Memory を消去し 治った様に見えましたが治らず。
_ esptool.py erase_region 0x1000 0x8000
_ memoryの不具合は タッチ操作が不安定にもなりました。
_ CPU Frequency : “240MHz (WiFi/BT)” : LGFX cfg.pin_int = -1; と
_ CPU Frequency : “160MHz (WiFi/BT)” : LGFX cfg.pin_int = 36; なら動作する
_ と言う 摩訶不思議な現象が発生しました。
2. CH340C: Arduino IDE Upload Speed は
- Mac で “460800” 。 Win で “921600” です。
- それぞれの OSで過去の速度は遅く 時と共に改善されました。
- Mac で “921600” にしますと MD5 error が多発します。
その後、モニターしていますが 再び MD5 error が発生。
対策は Auto Program で無く Manualで書き込んでいます。
_ USB Re-Connect , Boot + Reset Switch, Reset Open, Boot Open です。
.
.
LIbrary Lovyan GFX 使用により多くの事が容易にできます。
Lovyan GFX 設定:
_ Display:ST7789 SPI:SPI2_HOST , SPI3_HOST 又は HSPI_HOST
_ cfg.freq_write : Max 40000000 ( 40MHz )
_ Touch:XPT2046 SPI:SPI2_HOST , SPI3_HOST 又は HSPI_HOST
_ Touch:cfg.pin_int = 36; Touchが動作しない場合は -1 にします。
_ Arduio IDE :
_ tft.setRotation(1); // USB Right
_ tft.setRotation(3); // USB Left
//---------------------------------------------------------------------- // https://github.com/lovyan03/LovyanGFX/blob/master/examples/HowToUse/2_user_setting/2_user_setting.ino class LGFX : public lgfx::LGFX_Device{ lgfx::Panel_ST7796 _panel_instance; lgfx::Bus_SPI _bus_instance; lgfx::Light_PWM _light_instance; lgfx::Touch_XPT2046 _touch_instance; //---------------------------------------------------------------------- public:LGFX(void){{ // バス制御の設定を行います。 auto cfg = _bus_instance.config();// バス設定用の構造体を取得します。 // SPIバスの設定 cfg.spi_host = SPI2_HOST; // 使用するSPIを選択 (VSPI_HOST or HSPI_HOST) cfg.spi_mode = 0; // SPI通信モードを設定 (0 ~ 3) cfg.freq_write = 40000000; // 送信時のSPIクロック(最大80MHz,80MHzを整数割値に丸め) cfg.freq_read = 16000000; // 受信時のSPIクロック cfg.spi_3wire = false; // 受信をMOSIピンで行う場合はtrueを設定 cfg.use_lock = true; // トランザクションロックを使用する場合はtrueを設定 cfg.dma_channel= 1; // 使用DMAチャンネル設定(1or2,0=disable)(0=DMA不使用) cfg.pin_sclk = 14; // SPIのSCLKピン番号を設定 SCK cfg.pin_mosi = 13; // SPIのMOSIピン番号を設定 SDI cfg.pin_miso = 12; // SPIのMISOピン番号を設定 (-1 = disable) SDO cfg.pin_dc = 2; // SPIのD/C ピン番号を設定 (-1 = disable) RS // SDカードと共通のSPIバスを使う場合、MISOは省略せず必ず設定してください。 _bus_instance.config(cfg); // 設定値をバスに反映します。 _panel_instance.setBus(&_bus_instance);// バスをパネルにセットします。 } { // 表示パネル制御の設定を行います。 auto cfg = _panel_instance.config();// 表示パネル設定用の構造体を取得します。 cfg.pin_cs = 15; // CS が接続されているピン番号(-1 = disable) cfg.pin_rst = -1; // RST が接続されているピン番号(-1 = disable) cfg.pin_busy = -1; // BUSYが接続されているピン番号(-1 = disable) cfg.memory_width = 320; // ドライバICがサポートしている最大の幅 cfg.memory_height = 480; // ドライバICがサポートしている最大の高さ cfg.panel_width = 320; // 実際に表示可能な幅 cfg.panel_height = 480; // 実際に表示可能な高さ cfg.offset_x = 0; // パネルのX方向オフセット量 cfg.offset_y = 0; // パネルのY方向オフセット量 cfg.offset_rotation = 0; // 回転方向の値のオフセット 0~7 (4~7は上下反転) cfg.dummy_read_pixel= 8; // ピクセル読出し前のダミーリードのビット数 cfg.dummy_read_bits = 1; // ピクセル外のデータ読出し前のダミーリードのビット数 cfg.readable = false; // データ読出しが可能な場合 trueに設定 cfg.invert = false; // パネルの明暗が反転場合 trueに設定 cfg.rgb_order = false; // パネルの赤と青が入れ替わる場合 trueに設定 ok cfg.dlen_16bit = false; // データ長16bit単位で送信するパネル trueに設定 cfg.bus_shared = false; // SDカードとバスを共有 trueに設定 _panel_instance.config(cfg); } { // バックライト制御の設定を行います。(必要なければ削除) auto cfg = _light_instance.config();// バックライト設定用の構造体を取得します。 cfg.pin_bl = 27; // バックライトが接続されているピン番号 BL cfg.invert = false; // バックライトの輝度を反転させる場合 true cfg.freq = 44100; // バックライトのPWM周波数 cfg.pwm_channel = 7; // 使用するPWMのチャンネル番号 _light_instance.config(cfg); _panel_instance.setLight(&_light_instance);//バックライトをパネルにセットします。 } { // タッチスクリーン制御の設定を行います。(必要なければ削除) auto cfg = _touch_instance.config(); cfg.x_min = 360; // タッチスクリーンから得られる最小のX値(生の値) cfg.x_max = 4200; // タッチスクリーンから得られる最大のX値(生の値) cfg.y_min = 180; // タッチスクリーンから得られる最小のY値(生の値) cfg.y_max = 3900; // タッチスクリーンから得られる最大のY値(生の値) cfg.pin_int = -1; // INTが接続されているピン番号, TP IRQ 36 cfg.bus_shared = true; // 画面と共通のバスを使用している場合 trueを設定 cfg.offset_rotation = 3; // 表示とタッチの向きのが一致しない場合の調整 0~7の値で設定 // SPI接続の場合 cfg.spi_host = SPI2_HOST;// 使用するSPIを選択 (HSPI_HOST or VSPI_HOST) cfg.freq = 1000000; // SPIクロックを設定, Max 2.5MHz, 8bit(7bit) mode cfg.pin_sclk = 14; // SCLKが接続されているピン番号, TP CLK cfg.pin_mosi = 13; // MOSIが接続されているピン番号, TP DIN cfg.pin_miso = 12; // MISOが接続されているピン番号, TP DOUT cfg.pin_cs = 33; // CS が接続されているピン番号, TP CS _touch_instance.config(cfg); _panel_instance.setTouch(&_touch_instance); // タッチスクリーンをパネルにセットします。 } setPanel(&_panel_instance);// 使用するパネルをセットします。 } }; LGFX tft; // 準備したクラスのインスタンスを作成します。 //=====================================================================
.
感想:
価格:この構成で 2314円 は 超低価格です。
- 部品単価を踏まえ低価格に工夫されています。
- 個別の部品を計算すると 作るより購入した方が安いです。
- M5Stack 1台分の価格 6125円で 2台半も購入できます。
- 低価格は 気楽に電子工作ができます。
基板:インターフェースを追加すると良く出来ている事が解ります。
- GPIOやコネクター配線の変更が容易で 自由に改造できる様になっています。
- Schematicやレイアウトを見ると良く考察された基板です。
- 数ある ESP32ボードの中で 唯一 外部 Flash memory があり活用できます。
内部 Flash と 外部 Flash Memory:
- 初めて見る U4 外部 Flash Memoryが基板上で見れます。
- 購入時 U4 Flash は ESP32 Flash の外付けかと勘違いしていました。
- esptool.py flash_id では 4MB を表示。
- U4 Flash を外しても 購入時の LVGL DEMO は 動作しています。
- つまり ESP32 は 内部 Flash 4MB です。
- 確認の為に 販売店(開発者)に お聞きした所 ESP32 は 内部4MB,
- U4 は拡張用の4MBとの事。でした。
設計ミスの件:FLASH並列接続。
- 店(設計者)に 連絡したところ 「問題ない」との返事。
- 対し 私のボードはFlashが壊れ書き込めない事実。
- 仕様書や電気的にあり得ないSPI接続ですが それには答えずでした。
- FLASHは 並列接続と答え 使用方法は経験が無いとの返事。
- 尚、S045の販売数は さほどにはなっていません。
CH340C:UP- LOAD できない。CH340Cは 採用しないで下さい。
- M5Stack や TTGO は CH340Cは 採用していません。
- CP2102, CP2104, 最近では CH9102を採用しています。
- これは CH340G, CH340C の問題がある事を示しています。
- Arduino IDEで Auto Progできず、Manual ならできる。
- 原因追及していますが確実な所が不明です。
- Mac を使用していますが Mac と Win では Driver が異なります。
- 予想としては 昔からある CH340C の Hard に加え Driverの未完成です。
- CH340CをCP2102 に交換すれば 判明するでしょう。
- この件は 課題とします。
Touch:以下の場合があります。
- CPU Frequency : “240MHz (WiFi/BT)” と LGFX cfg.pin_int = -1; で動作。
- LGFX cfg.pin_int = 36; では 動作しない場合があります。
ポイント:
- 基本的な構成を備えながら 最も重要なポイントは 価格です 。
- ESP32-3248S035 や ESP32-24328S028 は 製品の中で
- コストメリットは 1番で これに対抗できるボードは 無いでしょう。
- これまで多くの基板を試してきましたが 作るよりも安いです。
- 作る時間をプログラム開発に活用できます。
- 2020年7月に販売された ESP32-24328S028R は
- 2022.09.16 に 730 Ordesr を達成しています。祝!
- M5Stackより 遥かに安い。
- 販売数の要因は 1に低価格で 2に基本的な構成の基板であるからと判断しています。
- openHASP:
- 海外では 購入して直ぐ openHASP を使用している人がいます。
-
購入トラブル:ESP32-3248S035C を注文しましたが届きません。
- 原因は 私のミスで届かない内に受領のボタンを押してしまいました。
- 店に連絡しましたが 送らないとの返事。サービスはとても悪いです。
- ESP32-3248S035C には GT911の問題点があると思い注文しましたが
- 手に入らずになりました。
- 連続して購入する気は無くなりました。
.
.
.
.
.
.
ESP32-3248S035R , ESP32-3248S035C , ESP32 , 4MB , ST7789 ,
XPT2046 , GT911