ESP32 breakout boardでLチカ!


魔法の大鍋(http://www.eldhrimnir.com/)さんのブレイクアウトボードを入手したのでArduinoでLチカまでやった。

ブレイクアウトボードについて

今回使ったブレイクアウトボードはこんなやつ。

まだテスト中なので、パブリックな入手ルートはない。
今後配布されることがあっても仕様変更してるかもしれないのであくまで参考までに。

その他のブレイクアウトボード(および直配線)でも手順はだいたい同様かなと。

実装

チップ部品が1608サイズなので、出来る人には手実装出来るレベル。

個人的にはUSBコネクタを一番最初に、次にシリアルICを先に載せるといいと思った。一枚目を実装する時、USBコネクタを最後に残したらこてを当てづらかった。

一部シルクがないところがある

  • 表面シリアルのTX/RX近くの抵抗*2:1kΩ
  • 表面その他のシルクなし*3:0.1uF
  • 裏面右下:1uF

Arduino開発環境

ESP32は ESP8266と同様Arduino互換機として使える。しかもESP8266のときは有志による開発であったが、ESP32ではespressif本家がサポートしている。

arduino-esp32 https://github.com/espressif/arduino-esp32

Arduino IDEがインストールしてあれば、README.mdにあるとおおりshellをコピペするだけ、一発でインストール完了。

今回自分の環境(Mac)では事前にインストール済みだったが、おそらくFTDIのドライバインストールが必要。インストールはこちらから http://www.ftdichip.com/Drivers/VCP.htm

Arduino IDEを再起動して
Tool→Board→ESP32 Dev Module
Tool→Port→/dev/cu.usbserial-XXXXX

を選択。

シリアルモニターを開いてbaud rateを115200にし、リセットボタンを押すと以下が出力される。

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
ets Jun 8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0x00
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3ffc0000,len:0
load:0x3ffc0000,len:2304
load:0x40078000,len:3788
ho 0 tail 12 room 4
load:0x40098000,len:532
entry 0x4009813c
�[1;36m

�[0m�[1;36m**************************************
�[0m�[1;36m* hello espressif ESP32! *
�[0m�[1;36m* 2nd boot is running! *
�[0m�[1;36m* version (V0.1) *
�[0m�[1;36m**************************************
�[0m�[0;36mcompile time 18:16:58

�[0m�[0;36m SPI Speed : 40MHz
�[0m�[0;36m SPI Mode : DIO
�[0m�[0;36m SPI Flash Size : 4MB
�[0m�[1;36mPartition Table:
�[0m�[1;36m## Label Usage Type ST Offset Length
�[0m�[1;36m 0 factory factory app 00 00 00010000 00100000
�[0m�[1;36m 1 rfdata RF data 01 01 00110000 00040000
�[0m�[1;36m 2 wifidata WiFi data 01 02 00150000 00040000
�[0m�[1;36mEnd of partition table
�[0m�[1;36mLoading app partition at offset 00010000
�[0m�[0;36msection 0: paddr=0x00000020 vaddr=0x00000000 size=0x0ffe8 ( 65512)
�[0m�[0;36msection 1: paddr=0x00010010 vaddr=0x3f400010 size=0x05b64 ( 23396) map
�[0m�[0;36msection 2: paddr=0x00015b7c vaddr=0x3ffba720 size=0x01378 ( 4984) load
�[0m�[0;36msection 3: paddr=0x00016efc vaddr=0x40080000 size=0x00400 ( 1024) load
�[0m�[0;36msection 4: paddr=0x00017304 vaddr=0x40080400 size=0x126ac ( 75436) load
�[0m�[0;36msection 5: paddr=0x000299b8 vaddr=0x00000000 size=0x06658 ( 26200)
�[0m�[0;36msection 6: paddr=0x00030018 vaddr=0x400d0018 size=0x325b4 (206260) map
�[0m�[0;36mstart: 0x400807ac

�[0mInitializing heap allocator:
Region 19: 3FFBBA98 len 00024568 tag 0
Region 25: 3FFE8000 len 00018000 tag 1
Pro cpu up.
Pro cpu start user code
nvs_flash_init
frc2_timer_task_hdl:3ffbc564, prio:22, stack:2048
tcpip_task_hdlxxx : 3ffbeca8, prio:20,stack:2048
phy_version: 80, Aug 26 2016, 13:04:06, 0
pp_task_hdl : 3ffc34f0, prio:23, stack:8192

:>enter uart init
uart init wait fifo succeed
exit uart init

IDF version : master(db93bceb)

WIFI LIB version : master(934d079b)

ssc version : master(r283 4d376412)

!!!ready!!!
mode : softAP(26:0a:c4:03:83:34)
dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)

  1. WIFI:AP_START

Arduino IDEからの書き込み

ボード上のmodeスイッチを押しながらリセットを押す。
シリアルポートに以下メッセージが表示されればOK.

rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download

Arduino IDEからUploadボタンを押して書き込み。

  • GNDピンのすぐとなりの13番ピンを使うコード

#define LED_PIN 13

void setup() {
pinMode(LED_PIN, OUTPUT);
}

void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(1000);
}


部品実装さえ済めばさくっと出来た。