170x320 1.9"TFTカラーLCD&SD-Card for ESP32S3-Dev Board

# はじめに

ESP32S3開発ボード向けの『**170x320 1.9"TFTカラーLCD&SD-Card**』ボードを設計したのでメモっておく。

SDカードソケットとプッシュスイッチも4つ搭載した。反面、TXD/RXDやUSB-/+を除き、ほぼすべてのGPIOを使用しているので、空きは、IO3, IO45, IO46, IO48だけとなっている。


# 特徴

- LCDは、8ビットパラレル接続とSPI接続をプログラムにより選択可能
- LCDのFFC（0.5mmピッチ30p）を直接ハンダ付できるパッドを有す（FFCコネクタも実装可）
- microSDカードソケットは、カード挿入検出可能
- スルーホールは約φ7.8mmと細くしているので、開発ボードのピンヘッダーに刺して抜けにくい


# 対象としている開発ボード


|ESP32S3<br><img width="100" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/db8d99e6-29ec-3c32-d6a8-5d529459f779.png">|左に示すピンアウトの並びであるESP32S3ボード<br>（ボード幅は10ピンか11ピン幅）|ボード幅|
|:-:|:-|:-:|
|<img width="150" src="https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/_images/esp32-s3-devkitc-1-v1.1-isometric.png">|Espressif Systems<br>[ESP32-S3-DevKitC-1](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitc-1.html#esp32-s3-devkitc-1-v1-1)|11ピン幅|
|<img width="90" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/9f338372-3e9a-a188-6d81-dc87ea8a126d.jpeg">|VCC-GND<br>[YD-ESP32-S3](https://ja.aliexpress.com/item/1005004025123046.html)|11ピン幅|
|<img width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/4e74aeab-312a-b082-cee6-4b0f5f8207c5.jpeg">|Booth@74th<br>[ESP32-S3 USB-C 開発ボードキット](https://74th.booth.pm/items/4179263)|10ピン幅|





# パーツ紹介

- [170x320 1.9インチ TFTカラー液晶ディスプレイ](#1-170x320-19%E3%82%A4%E3%83%B3%E3%83%81-tft%E3%82%AB%E3%83%A9%E3%83%BC%E6%B6%B2%E6%99%B6%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4)
- [0.5ミリピッチ30ピンFFCコネクタ](#2-05%E3%83%9F%E3%83%AA%E3%83%94%E3%83%83%E3%83%8130%E3%83%94%E3%83%B3ffc%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF)
- [マイクロSDカードソケット](#3-%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%ADsd%E3%82%AB%E3%83%BC%E3%83%89%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88)
- [プッシュスイッチ](#4-%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81) x4



## 1) 170x320 1.9インチ TFTカラー液晶ディスプレイ

使用したLCDは〔[AliExpress](https://ja.aliexpress.com/item/1005004604305753.html)〕で購入

|![](https://ae01.alicdn.com/kf/Sd36025f612d1418cbc1c198e7dbbcf8bN.jpg)|
|:-:|
|![](https://ae01.alicdn.com/kf/S144ebb01947d47bb819c1510bd4958b96.jpg)|
|![](https://ae01.alicdn.com/kf/S39bd999379c54c509ea52a0ddde50e8b8.jpg)|


## 2) 0.5ミリピッチ30ピンFFCコネクタ

使用したFFCコネクタ〔[マルツ](https://www.marutsu.co.jp/pc/i/2565791/)〕で購入可能

|30FLZ-SM2-TB-LF-SN<br>![](https://www.marutsu.co.jp/contents/shop/marutsu/img/goods/020/2565791/2565791_2.jpg)|
|:-:|
|[データシート](https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/30FLZ-SM2-TB(LF)(SN).pdf)|


## 3) マイクロSDカードソケット

使用したマイクロSDカードソケットは〔[aitendo](https://www.aitendo.com/product/16398)〕で購入

|DM3AT-SF-PEJM5<br>![](https://www.aitendo.com/data/aitendo/_/70726f647563742f32303137313030375f3864656435612e706e67003235300000660066.jpg)|
|:-:|
|[データシート](http://aitendo3.sakura.ne.jp/aitendo_data/product_img/parts/card_socket/DM3AT-SF-PEJM5/DM3AT-SF-PEJM5.pdf)|


## 4) プッシュスイッチ

使用したプッシュスイッチは〔[AliExpress](https://ja.aliexpress.com/item/4000555847543.html)〕で購入

|3x4mmプッシュボタン<br><img width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/e3d236a1-1386-8b3c-c906-9d624bb8536a.jpeg">|
|:-:|
||


# PCB

このPCBは、開発ボードの裏側に取り付ける想定で、11ピン幅の開発ボードと同じサイズで設計した。また、10ピン幅の開発ボードにも使用できるように10ピン幅と11ピン幅のスルーホールを併設。


## PCBイメージ図

|おもて|うら|
|:-:|:-:|
|LCD, スイッチx4|FFCコネクタ, SDカードソケット|
|![pcb_front.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/053219ff-4b27-5b7d-9e95-49c65ab12f79.png)|![pcb_back.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/27c1940f-2fcc-7714-3fd9-df2fefcddf44.png)|


## 出来上がったPCB


|おもて|うら|
|:-:|:-:|
|![pcb_omote.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/a5e33ce7-3dd8-c123-b7bc-c48c949805c7.png)|![pcb_ura.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/3563954d-cb36-e4f4-3f14-951f71c034c7.png)|



## 実装後

|おもて|![omote.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/c51f2acc-0f48-7586-af61-bb94e815a39f.png)|
|:-:|:-:|
|うら|![ura.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/acece939-52bc-6cef-8c80-952b54927a59.png)|

_ピンソケットをハンダ付けする前の撮影を忘れた。_


## ESP32S3開発ボードに装着した様子


<img width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/ae6ccbf2-962d-2adb-9e96-df5b9229b072.png">
<img width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/b5fcbcab-9b2d-9d4d-689e-473a8c51fdcf.png">
<img width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3346542/9b942e43-f41a-1896-af87-7160c1ba27d7.png">

背の低いピンソケットを使えば もっと格好よくなるはず（手持ちに無かった）。取り外しの必要がないなら、ピンヘッダに直接ハンダ付けしてもよい。




# ピンアサイン

ピンアサインは以下のとおり。

- [TFT LCD](#1-tft-lcd)
- [SDカードソケット](#2-sd%E3%82%AB%E3%83%BC%E3%83%89%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88)
- [プッシュスイッチ](#3-%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81)


## 1) TFT LCD

TFT LCDは8ビットパラレルおよびSPIの両方をサポート。

### 8ビットパラレルおよびSPI共通

|TFT LCD|esp32s3<br>GPIO|メモ|
|:-:|:-:|:-:|
|VDD|15|TFT-LCD電源：0(Lo)でOFF / 1(Hi)でON<br>（常時ONとするなら、3V3へワイヤジャンパ要）|
|IM1&IM2|16|8ビットパラレル接続 / SPI接続の選択<br>0(Lo)で8ビットパラレル接続 / 1(Hi)でSPI接続 /|
|BL|39|TFTバックライト(PWM制御可)<br>（常時点灯とするなら、3V3へワイヤジャンパ要）|
|GND|GND||

### 8ビットパラレル接続

|TFT LCD|esp32s3<br>GPIO|仕様|
|:-:|:-:|:-:|
|IM1&IM2|16|0(Lo)とする|
|RES|17||
|CS|18||
|DC|8||
|WR|9||
|RD|10||
|SDA|11|0(Lo)とする|
|DB0|12||
|DB1|13||
|DB2|14||
|DB3|21||
|DB4|47||
|DB5|35||
|DB6|36||
|DB7|37||
|SDO|38||


### SPI接続

|TFT LCD|esp32s3<br>GPIO|仕様|
|:-:|:-:|:-:|
|IM1&IM2|16|1(Hi)とする|
|CS|18|CS|
|DC|8|SCL|
|WR|9|DC|
|SDA|11|SDA|



## 2) SDカードソケット

SPI接続のみ

|SDカードソケット|esp32s3<br>GPIO|仕様|
|:-:|:-:|:-:|
|DAT3/CD|40|CS|
|CMD|41|MOSI|
|VSS|GND||
|VDD|3V3||
|CLK|42|SCK|
|DAT0|2|MISO|
|DAT1|-|オープン|
|DAT2|-|オープン|
|DET_A|GND||
|DET_B|1|pull_up指定する<br>Hi：SDカード未挿入<br>Lo：SDカード挿入済|



## 3) プッシュスイッチ

|プッシュスイッチ|esp32s3<br>GPIO|仕様|
|:-:|:-:|:-:|
|SW1|7|pull_up指定する<br>Lo：プッシュ状態|
|SW2|6|〃|
|SW3|5|〃|
|SW4|4|〃|



# ソフトウェア

|環境<br>＼<br>hardware|ESP-IDF<br>環境 |Arduino<br>環境 |MicroPython|CircuitPython|
|:-:|:-:|:-:|:-:|:-:|
|TFT LCD<br>$^{(8ビットパラレル接続)}$|○|◎<br>（[TFT_eSPI](https://github.com/Bodmer/TFT_eSPI) /<br> [LovyanGFX](https://github.com/lovyan03/LovyanGFX)）|×|×|
|TFT LCD<br>$^{(SPI接続)}$|○|◎<br>（LovyanGFX）|○|◎<br>（[adafruit_st7789](https://github.com/adafruit/Adafruit_CircuitPython_ST7789)）|
|SDカードアクセス|○|◎|◎|○|
|プッシュスイッチ|○|◎|◎|◎|

<凡例> ◎：使用可（確認済み）　○：使用可（未確認）　×：使用不可

早く MicroPython	/ CircuitPython でパラレル接続をサポートしてもらいたい。

https://qiita.com/nak435/items/e271cdf3713ff3c88731


**以上**