You are on page 1of 39

ESP8266 SDK

2.0
2016
ESP-LAUNCHER ESP-WROOM-02 ESP8266 SDK
SDK

SDK ESP8266 HDK SDK FW


1

2 SDK

Non-OS RTOS SDK SDK


3

Flash FOTA Non-FOTA


4 Flash

5 SDK SDK

ISSI Flash QIO ISSI Flash

2016.04 V2.0

http://www.espressif.com/support/download/documents

http://bbs.espressif.com/viewtopic.php?f=67&t=225

ESP8266

ESP-WROOM-02

ESP8266 Non-OS SDK

ESP8266 Non-OS SDK AT


1.
......................................................................................................................................... 1

1.1. .....................................................................................................................................1

1.2. ESP8266 HDK ............................................................................................................................1

1.3. ESP8266 SDK ............................................................................................................................2

1.3.1. Non-OS SDK ................................................................................................................. 2

1.3.2. RTOS SDK ....................................................................................................................2

1.4. ESP8266 FW ..............................................................................................................................2

1.5. ESP8266 .........................................................................................................................3

1.5.1. ...........................................................................................................................3

1.5.2. ................................................................................................................3

1.5.3. ................................................................................................................3

2. .................................................................................................................................5

2.1. .................................................................................................................................5

2.2. .....................................................................................................................................6

3. .................................................................................................................................8

3.1. Non-OS SDK ..............................................................................................................................8

3.2. RTOS SDK .................................................................................................................................9

3.3. ESP8266 .......................................................................................................................10

3.3.1. .........................................................................................................................10

3.3.2. ..............................................................................................................13

4. Flash .............................................................................................................................14

4.1. Non-FOTA ................................................................................................................................ 15

4.1.1.
...................................................................................................................... 15

4.1.2.
...................................................................................................................... 16

4.2. FOTA ........................................................................................................................................16

4.2.1.
...................................................................................................................... 16

4.2.2.
...................................................................................................................... 17

5. SDK .............................................................................................................................. 18

5.1. ...................................................................................................................................18

5.1.1. SDK ............................................................................................................18

5.1.2. SDK ............................................................................................................19

5.2. ...................................................................................................................................20

5.2.1. ESP8266_NONOS_SDK_v0.9.5 ...............................................................20

5.2.2. ESP8266_NONOS_SDK_v0.9.4 ...............................................................22

6. ...............................................................................................................................23

6.1. ...................................................................................................................................23

6.2. ............................................................................................................................25

6.2.1. ESP8266 IOT Demo ....................................................................................................25

6.2.2. ESP8266 AT ................................................................................................................ 26

6.3. ..........................................................................................................26

6.3.1. RF InitConfig .......................................................................................................27

6.3.2. RF InitConfig .......................................................................................................27

6.3.3.
...................................................................................................................... 29

I. - ISSI Flash QIO .............................................................................................31


1.
"

1.
1.1.
SDK 1-1

3 . 2 .

SDK
ESP-WROOM-02

ESP-LAUNCHER
4 . Flash

ESP8266 SDK SDK

ESP8266 FW ESP8266 HDK

ESP8266
!

1-1

1.2. ESP8266 HDK


ESP8266 HDK Hardware Development Kits ESP8266EX ESP-
WROOM-02 ESP-LAUNCHER ESP-WROOM-02
ESP-LAUNCHER


ESP8266EX
ESP-WROOM-02 ESP-LAUNCHER
https://espressif.taobao.com

- http://www.espressif.com/support/download/documents
- http://bbs.espressif.com/viewtopic.php?f=21&t=412&p=1545#p1545

Espressif " /33


1 2016.04
1.
"

1.3. ESP8266 SDK


ESP8266 SDK Software Development Kits IOT

SDK Non-OS RTOS

1.3.1. Non-OS SDK

Non-OS SDK SDK IOT_Demo AT Non-OS SDK

Non-OS SDK espconn espconn

1.3.2. RTOS SDK

RTOS SDK FreeRTOS Github

RTOS SDK FreeRTOS OS


FreeRTOS
FreeRTOS
USING THE FreeRTOS REAL TIME KERNEL--A Practical Guide

RTOS SDK lwIP API BSD Socket API


Socket API
Socket

RTOS SDK cJSON JSON

RTOS Non-OS SDK Wi-Fi Smart Config Sniffer


FOTA AT

1.4. ESP8266 FW
ESP8266 FW Firmware ESP8266 HDK BIN
FOTA Firmware Over-The-Air Non-FOTA
BIN 1-1

1-1. ESP8266 FW

Non-FOTA FOTA

Espressif Cloud
master_device_key.bin

Espressif " /33


2 2016.04
1.
"

Non-FOTA FOTA

SDK
esp_init_data_default.bin

SDK
blank.bin

eagle.flash.bin

eagle.irom0text.bin

user1.bin

user2.bin


SDK 3
SDK 5 SDK
BIN Flash 4 Flash

1.5. ESP8266
1.5.1.

ESP8266 SDK Linux Windows


VirtualBox ESP8266 SDK
ESP8266 OVA
ESP8266 SDK

1.5.2.

ESP8266 DOWNLOAD TOOL


Flash BIN ESP8266
SPI Flash

1.5.3.

RS-232 ESP8266
PC USB

Espressif " /33


3 2016.04
1.
"


CoolTerm Windows Mac Minicom Linux

Espressif " /33


4 2016.04
2.
"

2.
2-1

2-1.

1 ESP-WROOM-02
1 ESP-LAUNCHER 1 USB TTL FT232R
1 USB 6

" "
" "

Windows PC


ESP8266 Wi-Fi 3.3 V 500 mA

2.1.
1. USB PC ESP-LAUNCHER USB-UART

2.

Power
GPIO0 Control Chip Switch

Switch 1

GPIO0 GPIO0 Control USB-UART

ESP-LAUNCHER


USB-serial Cable

ESP-LAUNCHER J82
1

" Power Switch J82

3. USB TTL PC

Espressif " /"33


5 2016.04
2.
"


PC USB TTL

4. Power Switch

5. Chip Switch

6. ESP8266 DOWNLOAD TOOL Flash


4 Flash 6

7. GPIO0 GPIO0 Control ESP-LAUNCHER

8. Chip Switch Flash

ESP-LAUNCHER ESP8266

2.2.
1. ESP-WROOM-02 2-2

2-2. ESP-WROOM-02

EN

3V3

IO15

IO0

GND GND

RXD

TXD
"

2. 2-1 ESP-WROOM-02 USB TTL

Espressif " /"33


6 2016.04
2.
"

ESP-WROOM-02

USB TTL
3V3
3V3
EN

RXD TXD PC

TXD RXD

GND GND

IO15 IO0

! !

2-1. ESP-WROOM-02

3. USB TTL PC

4. ESP8266 DOWNLOAD TOOL Flash


4 Flash 6

5. ESP-WROOM-02
IO0

6. Flash


IO0 ESP-WROOM-02 ESP8266 ESP-
WROOM-02

Espressif " /"33


7 2016.04
3.
"

3.
3.1. Non-OS SDK
Non-OS SDK


http://www.espressif.com/en/support/download/sdks-demos


http://bbs.espressif.com/viewtopic.php?f=46&t=851

Non-OS SDK 3-1

"
3-1. Non-OS SDK

app

bin BIN Flash


documents SDK
driver_lib UART I2C GPIO
examples IoT Demo
include SDK API

Espressif " /"33


8 2016.04
3.
"

ld

lib SDK
tools BIN

3.2. RTOS SDK


SDK ESP8266_IOT_PLATFORM
RTOS SDK
https://github.com/espressif/ESP8266_RTOS_SDK
ESP8266_IOT_PLATFORM
https://github.com/espressif/ESP8266_IOT_PLATFORM

RTOS SDK 3-2

"
3-2. RTOS SDK

bin BIN Flash

documents SDK

examples

examples/driver_lib UART I2C GPIO


examples/project_template


project_template ~/workspace

Espressif " /"33


9 2016.04
3.
"

examples/smart_config Smart Config


examples/spiffs_test SPIFFS
examples/websocket_demo WebSocket
extra_include Xtensa
include SDK API

ld

lib SDK
third_party

tools BIN

3.3. ESP8266
3.3.1.

VirtualBox
https://www.virtualbox.org/wiki/Downloads


VirtualBox

ESP8266_lubuntu_20141021.ova

https://pan.baidu.com/share/init?shareid=3541602653&uk=190196792&third=15

qudl

Google https://drive.google.com/folderview?
id=0B5bwBE9A5dBXaExvdDExVFNrUXM&usp=sharing

1. Windows

Espressif " /" 33


10 2016.04
3.
"

VirtualBox-5.0.16-105871-
Win.exe


VirtualBox
Windows V.5.0.16

Oracle VM VirtualBox.exe


ESP8266

"

2.

: C:\VM
File >
Preferences

General Default Machine


Folder : C:
\VM

3.

Espressif " /" 33


11 2016.04
3.
"

File > Import


Appliance

C:
\ESP8266_lubuntu_20141021.ova
Next
Import

4.

VirtualBox
ESP8266_lubuntu

ESP8266_lubuntu
Start

Espressif " /" 33


12 2016.04
3.
"

ESP8266


espressif

"

5.

C:\VM\share
Machine >
Settings > Shared Folders

Machine Folders
C:\VM\share

3.3.2.

ESP8266 DOWNLOAD TOOL

http://www.espressif.com/support/download/other-tools

Espressif " /" 33


13 2016.04
4. Flash
"

4. Flash
Non-FOTA FOTA Flash

Flash 4-1

Non-FOTA

1 = 256 kB 2

eagle.flash.bin eagle.irom0text.bin

16 kB
master_device_key.bin blank.bin
esp_init_data_default.bin

FOTA
1 2

1.bin 2.bin

16 kB
master_device_key.bin blank.bin
" esp_init_data_default.bin

4-1. Flash


ESP8266 1.3 ESP8266 FW

Flash

Espressif " /" 33


14 2016.04
4. Flash
"

IOT_Demo 0x3C000 4

master_device_key.bin IOT_Demo 3

Flash 4

blank.bin Flash 2

esp_init_data_default.bin Flash 4

Boot FOTA 1 FOTA

FOTA 2 1 Boot


Flash 4 kB

4.1.2 4.2.2

4.1. Non-FOTA
4.1.1.

Flash eagle.irom0text.bin 200 kB


ESP8266_NONOS_SDK/ld/eagle.app.v6.ld eagle.irom0text.bin

irom0_0_seg len 4-2

"
4-2. len

Flash len eagle.irom0text.bin 4-1

4-1. Non-FOTA Flash kB

Flash eagle.flash.bin eagle.irom0text.bin len /

512 64 240 176 0x3C000 16

1024 64 752 176 0xBC000 16

Espressif " /" 33


15 2016.04
4. Flash
"

Flash eagle.flash.bin eagle.irom0text.bin len /

2048 64 768 176 0xC0000 16

4096 64 768 176 0xC0000 16


ESP8266 1024 kB

4.1.2.

Non-FOTA 4-2

4-2. Non-FOTA kB

Flash
BIN
512 1024 2048 4096

master_device_key.bin 0x3E000

esp_init_data_default.bin 0x7C000 0xFC000 0x1FC000 0x3FC000

blank.bin 0x7E000 0xFE000 0x1FE000 0x3FE000

eagle.flash.bin 0x00000

eagle.irom0text.bin 0x10000

4.2. FOTA
4.2.1.

FOTA 4-3

4-3. FOTA Flash kB

Flash boot user1.bin user2.bin /

512 4 236 236 16 0

1024 4 492 492 16 0

2048 1 512 4 492 492 16 1024

2048 1 1024 4 1004 1004 16 0

4096 1 512 4 492 492 16 3072

4096 1 1024 4 1004 1004 16 2048

Espressif " /" 33


16 2016.04
4. Flash
"

4.2.2.

FOTA 4-4

4-4. FOTA kB

Flash

BIN 2048 4096


512 1024
512+512 1024+1024 512+512 1024+1024

master_device_key.bin 0x3E000 0x7E000 0x7E000 0xFE000 0x7E000 0xFE000

esp_init_data_default.bin 0x7C000 0xFC000 0x1FC000 0x3FC000

blank.bin 0x7E000 0xFE000 0x1FE000 0x3FE000

boot.bin 0x00000

user1.bin 0x01000

user2.bin 0x41000 0x81000 0x81000 0x101000 0x81000 0x101000


FOTA user2.bin

FOTA ESP8266 Non-OS SDK

Espressif " /" 33


17 2016.04
5. SDK
"

5. SDK

ESP8266_NONOS_SDK/examples/IoT_Demo SDK
IoT_Demo Smart Light Smart Plug Sensor examples/IoT_Demo/include/
user_config.h Smart Light

5.1.
5.1.1. SDK


FOTA

1. Windows

2. Flash ESP8266_NONOS_SDK/examples/IoT_Demo/include

user_light.h user_plug.h #define PRIV_PARAM_START_SEC

"
user_esp_platform.h #define ESP_PARAM_START_SEC

"

5-1

5-1. include kB

512 2048 2048 4096 4096


512 1024
(512+512) (1024+1024) (512+512) (1024+1024)
0x3C - 0x7C 0x7C 0xFC 0x7C 0xFC

0x3D - 0x7D 0x7D 0xFD 0x7D 0xFD

Espressif " /" 33


18 2016.04
5. SDK
"


Flash 512 kB

5.1.2. SDK

1. Linux

2. LXTerminal

3.

ESP8266_NONOS_SDK
C:\VM\share
IoT_Demo C:\VM\share
\ESP8266_NONOS_SDK

4.

./mount.sh
espressif


ESP8266_NONOS_SDK

-
-


RTOS SDK 5 Non-OS SDK 5

5. SDK BIN

export SDK_PATH=~/share/ESP8266_RTOS_SDK

Espressif " /" 33


19 2016.04
5. SDK
"

export BIN_PATH=~/share/ESP8266_RTOS_SDK/bin


.bashrc 5

5.2.
5.2.1. ESP8266_NONOS_SDK_v0.9.5

1. /share/ESP8266_NONOS_SDK/app

cd /home/esp8266/Share/ESP8266_NONOS_SDK/app

./gen_misc.sh

gen_misc.sh version 20150511


Please follow below steps(1-5) to generate specific bin(s):

2. 5-1

Espressif " /" 33


20 2016.04
5. SDK
"

Y
N

STEP 1: choose boot version


0 1 2 (0=boot_v1.1, 1=boot_v1.2+, 2=none)
enter(0/1/2, default 2)

N
STEP 2: choose bin generate
(0=eagle.flash.bin+eagle.irom0text.bin
2 Y 1 0 , 1=user1.bin, 2=user2.bin)
enter (0/1/2, default 0)

STEP 3: choose spi speed


0 1 2 3 (0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)
enter (0/1/2/3, default 2)

STEP 4: choose spi mode


0 1 2 3 (0=QIO, 1=QOUT, 2=DIO, 3=DOUT)
enter (0/1/2/3, default 0)

STEP 5: choose spi size and map


0 2 3 4 5 6 0= 512KB( 256KB+ 256KB)
enter (0/2/3/4/5/6, default 0)

5-1. SDK

FOTA Non-FOTA BIN 1.4 ESP8266 FW

5 5 6 sdk_v1.1.0 + boot 1.4 + flash download tool_v1.2

user1.bin make clean


user2.bin

5 Flash 4 Flash

3. BIN Flash

Generate user1.2048.new.3.bin successfully in folder bin/upgrade.

boot.bin------------>0x00000
user1.2048.new.3.bin--->0xSupport boot_v1.2 and +
01000

Espressif " /" 33


21 2016.04
5. SDK
"

!!!


/home/esp8266/Share/ESP8266_NONOS_SDK/bin BIN

5.2.2. ESP8266_NONOS_SDK_v0.9.4

ESP8266_NONOS_SDK_v0.9.4 FOTA

1. ./gen_misc_plus.sh 1 /ESP8266_NONOS_SDK/bin/upgrade
user1.bin

2. make clean

3. ./gen_misc_plus.sh 2 /ESP8266_NONOS_SDK/bin/upgrade
user2.bin


FOTA ESP8266 Non-OS SDK

ESP8266_NONOS_SDK_v0.7 Non-FOTA

Espressif " /" 33


22 2016.04
6.
"

6.
6.1.
1. Windows

2. ESP_DOWNLOAD_TOOL.exe Flash

6-1. ESP8266 DOWNLOAD TOOL - SPIDownload

SPIDownload SPI Flash

HSPIDownload HSPI Flash

RFConfig

MutiDownload

Espressif " /" 33


23 2016.04
6.
"

3. Download Path Config " BIN ADDR

4. SPIDownload


SPI Flash 4 Flash

6-1. SPIDownload

SPI FLASH CONFIG

CrystalFreq

CombineBin BIN target.bin 0x0000

Default SPI Flash

SPI SPEED SPI Flash 80 MHz

Flash Flash Dual SPI DIO


DOUT Flash Quad SPI QIO QOUT
SPI MODE

ISSI Flash - ISSI Flash QIO

FLASH SIZE Flash

SpiAutoSet Flash
SpiAutoSet SpiAutoSet Flash map 16 Mbit
32 Mbit Flash map 512 Kbyte +512 Kbyte

DoNotChgBin Flash

DoNotChgBin
Flash

Download Panel

START START

STOP STOP

MAC Address ESP8266 STA ESP8266 AP MAC

COM PORT ESP8266 COM

BAUDRATE 115200

5. ESP-LAUNCHER GPIO0 Control

Espressif " /" 33


24 2016.04
6.
"

6.2.

6-2.

69120 24 M
74880 26 M
115200 40 M
ESP8266 AT 115200
ESP8266 IOT Demo 74880

6.2.1. ESP8266 IOT Demo

ESP8266 IOT Demo SDK


finish

SDK version:X.X.X(e67da894)

IOT VERSION = v1.0.5t45772(a)


reset reason: 0
PWM version : 00000003
mode : sta(18:fe:34:a4:8c:a3) + softAP(1a:fe:34:a4:8c:a3)
add if0

add if1
dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
bcn 100
finish

Espressif " /" 33


25 2016.04
6.
"

6.2.2. ESP8266 AT

ESP8266 AT
Ready AT OK


AT 115200 ESP8266 74880
Ready

AT ESP8266 AT

6.3.
RF InitConfig
esp_init_data_setting.bin esp_init_data_default.bin Flash
RF InitConfig RF InitConfig

6-2. ESP8266 DOWNLOAD TOOL - RF InitConfig

Espressif " /" 33


26 2016.04
6.
"

6.3.1. RF InitConfig

RF InitConfig 6-2 6-3

6-3. RF InitConfig

TxTargetPowerConfig LowPowerMode

LowPowerEn

PowerLimtEn
LowPowerMode
BackOffEn


LowPowerEn PowerLimtEn

CrystalFreq

TOUT
TOUT_ADC_EN TOUT
ADC 0V 1 V)
TOUT_VDD_EN TOUT uint16
TOUT PinConf system_get_vdd33(void) VDD33


TOUT_ADC_EN TOUT_VDD_EN
TOUT_ADC_EN VDD3P3 3 4

SetFreqEnable
FreqOffset PracticalFreqOffset SetFreqEnable
AutoCalEn

LoadRFCalParam Flash
2 ms
RFInt mode TxPwrCtrl in init Tx Power Flash
20 ms
FullRFCal in RFInit 200 ms

6.3.2. RF InitConfig

RF InitConfig 6-2 6-4

Espressif " /" 33


27 2016.04
6.
"

6-4. RF InitConfig

esp_init_data_setting.bin (0~127 ) A=0


A
esp_init_data_setting.bin 0

B Reserved

C Reserved

D unsigned signed


Reserved

112 114 6-3

6-3. 112 114

RF

114 ESP8266 RF 6-5


ESP8266_NONOS_SDK_V1.5.3 ESP8266_RTOS_SDK_V1.3.0

6-5. RF

114 =0 RF VDD33 2 ms

114 1
114 =1
RF VDD33 TX power CAL 18 ms

114 =2 114 = 0

114 =3 RF RF CAL 200 ms

112 113 6-6

Espressif " /" 33


28 2016.04
6.
"


ESP8266_NONOS_SDK_V1.4.0 ESP8266_RTOS_SDK_V1.3.0

6-6.

112 3

112
bit 0 bit 0 = 0
bit 0 = 1

0 bbpll 168 M
bit 1
1 bbpll 160 M

0 0 1
{bit 3 bit 2} 113 2
113

113 0

113
sign int8 8 kHz

6.3.3.

112 113

1.
112 = 0 113 =0

2.

+160 kHz 112 = 0x07 113 = (256 - 160/


8) = 236 = 0xEC

-160 kHz 112 = 0x05 113 = 160/8 = 20


= 0x14

3. -40 125

112 = 0x03 113 =0

Espressif " /" 33


29 2016.04
6.
"

4. -40 125

+160 kHz 112 = 0x0B 113 = (256 -


160/8) = 236 = 0xEC

-160 kHz 112 = 0x09 113 = 160/8 = 20


= 0x14

GenInitBin esp_init_data_setting.bin

Default LoadInitBin BIN

Espressif " /" 33


30 2016.04
I
"

I. - ISSI Flash QIO



DIO DOUT

ISSI Flash ISSI Flash QIO


blank.bin 2 I-I ESP8266 blank.bin 2
QIO ISSI_FLASH blank.bin

strcut boot_hdr{
char user_bin:2; //low_bit
char boot_status:1;
char to_qio:1;
char reverse:4;

char version:5; //low bit


char test_pass_flag:1;
char test_start_flag:1;
char enhance_boot_flag:1;
}

I-I. blank.bin

boot to_qio 0

use_bin 0 to_qio 0 version boot

boot
boot_v1.5.bin blank.bin FF FF
F4 E5


ISSI Flash DIO DOUT BIN

Espressif " /" 33


31 2016.04
URL

Wi-Fi Wi-Fi Bluetooth SIG

IOT
2016
www.espressif.com

You might also like