Archive for 12月 2022
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 ,