ESP8266は中国の上海に拠点を置く企業Espressif Systemsによって製造されているTCP/IPスタックとマイクロコントローラを備えたWi-Fiモジュールである。

2014年8月にサードパーティの製造元であるAI-ThinkerによってESP-01モジュールが発売されたことで欧米のメイカーの関心を集めた。低価格かつ小面積で、マイクロコントローラからWi-Fiネットワークに接続し、ヘイズスタイルのコマンドで簡単なTCP/IP接続を行うことができる。発売当時はチップやコマンドに関する英語の資料がほとんどなかったが、前述の利点に加えて大口ではさらに安くなると予想されたため、数多くのハッカーたちによって中国語の資料の翻訳や、モジュール、チップ、そしてソフトウェアの解析が進められた。

ESP8285はESP8266に1MBのフラッシュメモリを搭載したものであり、シングルチップのデバイスをWi-Fiに接続できる。

## 特徴

- 32ビットRISC CPU: Tensilica Xtensa LX106 running at 80 MHz\*
- 命令RAM 64KiB、データRAM 96KiB
- 外部QSPIフラッシュメモリ - 512 KiB~4 MiB\*(16MiBまでサポート)
- IEEE 802.11 b/g/n Wi-Fi
  - 統合された送受信スイッチ、バラン、LNA、パワーアンプ、インピーダンス整合回路
  - WEPもしくはWPA/WPA2による認証およびオープンネットワーク
- 16ピンのGPIO
- SPI, I2C,
- DMA付きのI2S(GPIOとピン共用)
- 専用のピン上のUARTとGPIO2で有効化できる送信専用UART
- 10ビットADC 1基

\*いくつかのデバイスではオーバークロックすることによりCPUとフラッシュメモリの両方のクロックを倍にすることができる。CPUは160MHz、フラッシュメモリは40MHzから80MHzに高速化できる。成功するかはチップにより異なる。

## SDK

2014年10月後半、Espressifはチップをプログラムすることができるソフトウェア開発キット(SDK)をリリースし、別途マイクロコントローラを用意する必要がなくなった。それ以来、多くの公式SDKがEspressifからリリースされた。Espressifは2つのバージョンのSDKを保守している。1つはRTOSベースのものであり、もう一つはコールバックベースのものである。

Espressifの公式SDKの代替としてはGCCツールチェーンをベースにしたオープンソースのesp-open-sdkが存在する。ESP8266はCadence Tensilica LX106マイクロコントローラを用いており、そのGCCツールチェーンはオープンソースであり、Max Filippovによって保守されている。もう一つの選択肢はMikhail Grigorevによる"Unofficial Development Kit"である。

他のオープンソースのSDKとしては以下が存在する。

- NodeMCU:Luaベースのファームウェア
- Arduino: C++ベースのファームウェア。このコアはESP8266 CPUとそのWi-Fi機能を他のArduinoデバイスと同様にプログラムすることを可能にする。ESP8266 Arduino CoreはGitHubから入手可能である。
- MicroPython:ESP8266プラットフォームへのMicroPython(組み込み機器向けのPythonの実装)の移植。
- ESP8266 BASIC:IoT専用に作られたオープンソースのBASICインタープリンタ。セルフホスティングされたブラウザベースの開発環境である。
- Mongoose Firmware:無料のクラウドサービスのついたオープンソースのファームウェア

## Espressif製モジュール

Espressif自身によって開発されたESP8266ベースのモジュール

| 名称 | 有効ピン数 | ピッチ | 形状 | LED | アンテナ | シールドの有無 | 寸法(mm) | 備考 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ESP-WROOM-02 | 18 | 0.5mm | 2×9 DIL | No | プリント基板トレースアンテナ | Yes | 18 × 20 | FCC ID 2AC7Z-ESPWROOM02 |

上の表(および下記の2つの表)において、"有効ピン数"は外部のデバイスをESP8266 MCUに接続することができるGPIOとADCピンを含んでいる。"ピッチ"はESP8266モジュールのピン間の距離であり、ブレッドボードで回路を組む際に重要である。"形状"はモジュールのパッケージングが"2 x 9 DIL"であることを示しており、DIPのICと同様の9ピン2列のデュアルインラインであることを意味している。多くのESP-xxモジュールは小さなLEDをオンボードで搭載しており、点滅するようプログラムでき、動作状況を表すことができる。ESP-xxボードにはトレースアンテナやオンボードのセラミックアンテナ、外付けのWi-Fiアンテナを接続することができる外部コネクタなど、いくつかのアンテナの種類が存在している。Wi-Fi通信は多くの電波干渉を引き起こすため、FCCのような政府機関は他の機器への干渉を最小化するためにシールドされた電子機器を好む。いくつかのESP-xxモジュールはFCCによる認証を示す刻印の押された金属製の箱に入った状態で提供されている。

## AI-Thinker製モジュール

これらはサードパーティの製造元であるAI-Thinkerから発売された最初のESP8266モジュールであり、いまだに最も手に入りやすいものである。これらはまとめて"ESP-xxモジュール"と呼ばれ、開発システムとして利用するためには特にシリアルTTL-to-USBアダプタ(USB-to-UARTブリッジとも呼ばれる)と3.3V電源のような外付け部品を要求する。新参のESP-8266開発者はNodeMCUのようなUSB-to-UARTブリッジと3.3Vレギュレータ付きのMicro-USBコネクタが基板に搭載されたより大きなESP8266 Wi-Fi開発基板を検討することが推奨される。プロジェクトの開発が完了した際には、これらの部品が不要になる可能性があるため、量産用のより省電力で小さい選択肢としてESP-xxモジュールの使用を検討することができる。

| 名称 | 有効ピン数 | ピッチ | 形状 | LED | アンテナ | シールドの有無 | 寸法(mm) | 備考 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ESP-01 | 6 | 0.1" | 2×4 DIL | Yes | プリント基板トレースアンテナ | No | 14.3 × 24.8 |  |
| ESP-02 | 6 | 0.1" | 2×4 キャスタレーション | No | U.FLソケット | No | 14.2 × 14.2 |  |
| ESP-03 | 10 | 2 mm | 2×7 キャスタレーション | No | セラミック | No | 17.3 × 12.1 |  |
| ESP-04 | 10 | 2 mm | 2×4 キャスタレーション | No | なし | No | 14.7 × 12.1 |  |
| ESP-05 | 3 | 0.1" | 1×5 SIL | No | U-FLコネクタ | No | 14.2 × 14.2 |  |
| ESP-06 | 11 | misc | 4×3 ダイス | No | なし | Yes | 14.2 × 14.7 | FCC認証なし |
| ESP-07 | 14 | 2 mm | 2×8 ピンホール | Yes | セラミック+U.FLソケット | Yes | 20.0 × 16.0 | FCC認証なし |
| ESP-08 | 10 | 2 mm | 2×7 キャスタレーション | No | なし | Yes | 17.0 × 16.0 | FCC認証なし |
| ESP-09 | 10 | misc | 4×3 ダイス | No | なし | No | 10.0 × 10.0 |  |
| ESP-10 | 3 | 2 mm? | 1×5 キャスタレーション | No | なし | No | 14.2 × 10.0 |  |
| ESP-11 | 6 | 0.05" | 1×8 ピンホール | No | セラミック | No | 17.3 × 12.1 |  |
| ESP-12 | 14 | 2 mm | 2×8 キャスタレーション | Yes | プリント基板トレースアンテナ | Yes | 24.0 × 16.0 | FCCおよびCE認証済み |
| ESP-12E | 20 | 2 mm | 2×8 キャスタレーション | Yes | プリント基板トレースアンテナ | Yes | 24.0 × 16.0 | 4MBフラッシュメモリ搭載 |
| ESP-12F | 20 | 2 mm | 2×8 キャスタレーション | Yes | プリント基板トレースアンテナ | Yes | 24.0 × 16.0 | FCCおよびCE認証済み。アンテナ性能向上。4MBフラッシュメモリ搭載。 |
| ESP-13 | 16 | 1.5 mm | 2×9 キャスタレーション | No | プリント基板トレースアンテナ | Yes | W18.0 x L20.0 | "FCC"刻印あり。ESP-12と比較してシールドされたモジュールが横向きになっている。 |
| ESP-14 | 22 | 2 mm | 2×8 キャスタレーション +6 | No | プリント基板トレースアンテナ | Yes | 24.3 x 16.2 |  |

## 他の基板

ESP-xxモジュールと比べて多くの"他の基板"が人気を集める理由はオンボードのUSB-to-UARTブリッジ(例えばSilicon Labs CP2102やWHC CH340G)と3.3Vレギュレータ付きのMicro-USBコネクタが基板への電力とよくコンソールと呼ばれるホスト(ソフトウェア開発用)コンピュータへの接続を提供するからである。ESP-xxモジュールではこれら二つは別途購入し、ESP-xxの回路に接続する必要があった。NodeMCUのような現代的なESP8266基板はより手間が少なく、より多くのGPIOピンを提供している。ほとんどのこれら"他の基板"はESP-12Eモジュールに基づいているが、新たなモジュールが数か月ごとに登場しているようである。

| 名称 | 有効ピン数 | ピッチ | 形状 | LED | アンテナ | シールドの有無 | 寸法(mm) | 備考 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Bolt IoT | 14 | 0.1" | 2×14 DIL | Yes | プリント基板トレースアンテナ | Yes | 30 × 40 | オンボードのSDカードとLib-Discoveryやフェールセーフモードのような機能を搭載。IoTのための独自のクラウドを用意。. |
| Olimex MOD-WIFI-ESP8266 | 2 | 0.1" | UEXTモジュール | Yes | プリント基板トレースアンテナ | No | ? | RX/TXのみUEXTコネクタと接続 |
| Olimex MOD-WIFI-ESP8266-DEV | 20 | 0.1" | 2×11 DIL + キャスタレーション | Yes | プリント基板トレースアンテナ | No | ? | すべての利用可能なGPIOピンが接続されている。UEXTコネクタ(RX/TXとSDA/SCL信号) 取り付け用のパッドも搭載。 |
| NodeMCU DEVKIT | 14 | 0.1" | 2×15 DIL | Yes | プリント基板トレースアンテナ | Yes | ? | ESP-12モジュールを使用。USBシリアルインターフェース搭載。 |
| Adafruit Huzzah ESP8266 breakout | 14 | 0.1" | 2×10 DIL | Yes | プリント基板トレースアンテナ | Yes | 25 × 38 | ESP-12モジュールを使用 |
| SparkFun ESP8266 Thing WRL-13231 | 12 | 0.1" | 2×10 DIL | Yes | プリント基板トレースアンテナ+U.FLソケット | No | 58 × 26 | FTDIシリアルヘッダ、電源用Micro-USBソケット、Li-ionバッテリ充電回路搭載 |
| KNEWRON Technologies smartWIFI | 12 | 0.1" | 2×20 DIL | Yes 1 RGB | プリント基板トレースアンテナ | Yes | 25.4 × 50.8 | CP2102 USBブリッジ、バッテリ充電回路、電源及び充電用Micro-USBソケット、1 RGB LED、ユーザ/リフラッシュボタン搭載 |
| WeMos D1 | 12 | 0.1" | Arduino Uno | Yes | プリント基板トレースアンテナ | Yes | 53.4 × 68.6 | ESP-12Fモジュールを使用、Micro-USBソケット搭載 |
| WeMos D1 R2 | 12 | 0.1" | Arduino Uno | Yes | プリント基板トレースアンテナ | Yes | 53.4 × 68.6 | ESP-12Fモジュールを使用、Micro-USBソケット搭載 |
| WeMos D1 Mini | 12 | 0.1" | 2×8 DIL | Yes | プリント基板トレースアンテナ | Yes | 25.6 × 34.2 | ESP-12Fモジュールを使用、Micro-USBソケット搭載 |
| ESPert ESPresso Lite | 16 | 0.1" | 2×8 DIL | Yes | プリント基板トレースアンテナ | Yes | 26.5 × 57.6 | Espressif ESP-WROOM-02モジュールを使用。数量限定でベータ版として生産。 |
| ESPert ESPresso Lite V2.0 | 24 | 0.1" | 2×10 DIL | Yes | プリント基板トレースアンテナ | Yes | 28 × 61 | ESPresso Liteの設計と機能を改善 |
| In-Circuit ESP-ADC | 18 | 0.1" | 2×9 DIL | No | U.FLソケット | No | 22.9 × 14.9 | ESP8266EXを使用 |
| Watterott ESP-WROOM02-Breakout | 14 | 0.1" | 2×10 DIL | Yes | プリント基板トレースアンテナ | Yes | 40.64 × 27.94 | Espressif ESP-WROOM-02モジュールを使用 |