【ESP32】USBシリアル変換モジュールで手動書き込み（Linux）

# そもそもESP32って👀
Espressif Systems社製のWi-FiとBluetoothを内蔵するマイクロコントローラ
電子工作などで最近見られるいわゆる“ ESP32 ”は，Espressif Systems社製品の中でESP32 DevKitsやESP32 Modulesと呼ばれるものです．


### ESP32 DevKits 開発用ボード
ESP32 DevKits 開発用ボードは，例えばこのようなボードたちのことです．
購入してすぐにUSBがさせて，これ一つでいろいろなESP32の機能を試すことができます．
まずESP32入門であれば，ESP32 DevKits 開発用ボードを購入するのがおすすめです．

|![Screenshot from 2024-05-01 08-00-49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625784/f66cefbc-5980-c644-0f2e-cd79001a978a.png)|![Screenshot from 2024-05-01 08-09-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625784/0f2d06aa-53c5-d149-454e-291c6d02be13.png)|
|:-:|:-:|
|[Espressif Systems社公式ページ DevKit製品一覧](https://www.espressif.com/en/products/devkits)|[秋月電子製品ページ](https://akizukidenshi.com/catalog/g/g115673/)|

### ESP32 Modules モジュール
ESP32 Modules モジュールは，例えばこのようなモジュールたちのことです．
開発ボードとは異なり，周辺回路が準備されていないのでUSBポートやリセットボタンなどは準備する必要があります．ただ，必要な機能だけを実装できるので開発ボードと比べて省電力化できたり自作基板などに実装できます．


|![Screenshot from 2024-05-01 08-18-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625784/97a61022-8333-002c-3904-fac0c7278509.png)|![Screenshot from 2024-05-01 08-19-51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625784/a4c2ec62-5e17-e8fb-ab5d-a8cc1ea6fe4f.png)|
|:-:|:-:|
|[Espressif Systems社公式ページ Module製品一覧](https://www.espressif.com/en/products/modules)|[秋月電子製品ページ](https://akizukidenshi.com/catalog/g/g115675/)|

### ESP32シリーズ(Module)
いま上記で紹介したESP32は，ESP32というモジュールは一種類ではなく高性能版や種類などがありESP32シリーズと呼ばれます．

<table>

  <tr>
    <th colspan="9">Modules</th>
  </tr>
  <tr>
    <th>大分類</th>
    <th colspan="2">S Series</th>
    <th colspan="3">C Series</th>
    <th>H Series</th>
    <th align="center">無印</th>
    <th>ESP8266 Series</th>
  </tr>
  <tr>
    <th>中分類</th>
    <th>ESP32-S3</th>
    <th>ESP32-S2</th>
    <th>ESP32-C6</th>
    <th>ESP32-C3</th>
    <th>ESP32-C2</th>
    <th>ESP32-H2</th>
    <th>ESP32</th>
    <th>ESP8266</th>
  </tr>
    <tr>
    <th>コア</th>
    <th>Xtensa 32-bit LX7 dual-core</th>
    <th>Xtensa 32-bit LX7 single-core</th>
    <th>RISC-V 32-bit single-core</th>
    <th>RISC-V 32-bit single-core</th>
    <th>RISC-V 32-bit single-core</th>
    <th>RISC-V 32-bit single-core</th>
    <th>Xtensa 32-bit LX6 dual or singl-core</th>
    <th>Xtensa 32-bit LX6 single-core</th>
  </tr>
    <tr>
    <th>クロック周波数</th>
    <th>240 MHz</th>
    <th>240 MHz</th>
    <th>160 MHz</th>
    <th>160 MHz</th>
    <th>120 MHz</th>
    <th>96 MHz</th>
    <th>80 MHz to 240 MHz</th>
    <th>160 MHz</th>
  </tr>

  </table>


# ESP32へUSBシリアル変換モジュールで手動書き込み
準備したもの
* ESP32（[ESP32-WROOM-32E](https://akizukidenshi.com/catalog/g/g116108/)）
秋月電子さんが作成したマイコンボード．
* USBシリアル変換モジュール（[FT234X 超小型USBシリアル変換モジュール](https://akizukidenshi.com/catalog/g/g108461/)）

動作環境
* OS：Ubuntu 22.04
* Arduino IED ver. 1.8.19
最新バージョンではなぜかうまく行かなかった．

![Peek 2024-05-01 09-08.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625784/fd42b90b-f246-0447-3708-34db71415a41.gif)


USBシリアル変換モジュールドライバは，特に入れなくても認識したのでSKIP
Windows環境だと必須かも


### 手動書き込みと自動書き込み
https://klab.hateblo.jp/entry/2021/05/28/172843


### USBシリアル変換モジュール

![Screenshot from 2024-05-01 09-26-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/625784/98517b35-e496-b0e2-256a-8a677ccf1754.png)

| FT234X | ↔ | ESP32-WROOM-32E |
|:-:|:-:|:-:|
|+5V|↔|5V|
|GND|↔|GND|
|TxD|↔|R↑|
|RxD|↔|T↓|


### ESP32について
参考サイト
* https://lang-ship.com/blog/work/esp32-2022-01/
* https://www.switch-science.com/blogs/magazine/core2-vs-cores3-psram-performance-comparison


* ESP32とESP32-C3/S3の最大の違いは，USBシリアル変換モジュールが不要
https://note.com/rcat999/n/n8d6cf1134b57