macsbug

macsbug ESP32 S3

leave a comment »

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
1pcs , ¥110

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

 

Written by macsbug

5月 5, 2023 at 9:13 am

カテゴリー: ESP32

ESP32 S3 and Arduino IDE

leave a comment »

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

Written by macsbug

4月 13, 2023 at 4:51 am

カテゴリー: ESP32

ESP32 minikit and LDO(ME6211)

leave a comment »

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 ,

Written by macsbug

3月 30, 2023 at 5:16 pm

カテゴリー: ESP32

LILYGO T7-S3

leave a comment »

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
ESP32­S3 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 ,

Written by macsbug

2月 19, 2023 at 2:38 pm

カテゴリー: ESP32

MRB3973 and ESP32 S3

with 2 comments

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 ,

Written by macsbug

1月 11, 2023 at 12:23 pm

カテゴリー: ESP32

MAR4018 and ESP32 S3

leave a comment »

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 )

, 2pcs

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 ,

Written by macsbug

12月 31, 2022 at 5:06 pm

カテゴリー: ESP32

ESP32-8048S043

with 2 comments

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 ,

Written by macsbug

11月 29, 2022 at 4:11 pm

カテゴリー: ESP32

Super M5Stack

with 5 comments

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 LCDESP32 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
2×15 pin
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 溶剤:アセトン, ネイル用
. Panelの塗装を剥がす
ダイソー, 百均 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(&amp;_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(&amp;_light_instance);//バックライトをパネルにセットします。
  }
  setPanel(&amp;_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 ,

Written by macsbug

10月 25, 2022 at 6:46 am

カテゴリー: ESP32, M5STACK

WiFi Console

leave a comment »

レトロ な ワイヤレス コントローラーを作ります。        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 ,

Written by macsbug

10月 3, 2022 at 9:03 am

カテゴリー: ESP32

ESP32-3248S035

with 4 comments

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

Written by macsbug

10月 2, 2022 at 3:35 am

カテゴリー: ESP32