├── Building_the_toolchain.md ├── README.md ├── deb ├── esptool_0.0.2-1_i386.deb └── src │ ├── esptool_0.0.2-1.debian.tar.gz │ ├── esptool_0.0.2-1.dsc │ └── esptool_0.0.2.orig.tar.gz ├── docs ├── ESP8266-Modules-Comparison.odt └── ESP8266-Modules-Comparison.pdf ├── images ├── esp-03.jpg ├── esp-mod.jpg ├── esp8266ex-layout.jpg ├── module_v1.jpg └── module_v2.png ├── include.tgz ├── libs ├── libc.a └── libhal.a ├── reversed └── ota_bootloader_stage1.c ├── sdk ├── at_v0.19_14_10_30.zip ├── at_v0.20_14_11_28.zip ├── esp8266_sdk_v0.9.1.zip ├── esp_iot_sdk_v0.6.zip ├── esp_iot_sdk_v0.9.2_14_10_24.zip ├── esp_iot_sdk_v0.9.3_14_11_21.zip ├── esp_iot_sdk_v0.9.3_14_11_21_patch1.zip ├── esp_iot_sdk_v0.9.4_14_12_19.zip ├── esp_iot_sdk_v0.9.5_15_01_23.zip ├── esp_iot_sdk_v0.9.5_15_01_23_patch1.zip ├── esp_iot_sdk_v0.9.6_b1_15_02_15.zip ├── esp_iot_sdk_v1.0.0_15_03_20.zip ├── esp_iot_sdk_v1.0.1_15_04_24.zip ├── esp_iot_sdk_v1.0.1_b1_15_04_02.zip ├── esp_iot_sdk_v1.0.1_b2_15_04_10.zip ├── esp_iot_sdk_v1.1.0_15_05_26.zip ├── esp_iot_sdk_v1.1.1_15_06_05.zip ├── esp_iot_sdk_v1.1.2_15_06_12.zip └── esp_iot_sdk_v1.2.0_15_07_03.zip └── toolchain.sh /Building_the_toolchain.md: -------------------------------------------------------------------------------- 1 | This has been moved to the wiki see https://github.com/esp8266/esp8266-wiki/wiki/Toolchain 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | esp8266 2 | ======= 3 | 4 | Online community http://www.esp8266.com supporting all aspects of the ESP8266 and ESP8266EX 5 | 6 | For more info see our wiki https://github.com/esp8266/esp8266-wiki/wiki 7 | 8 | Check out the code examples in https://github.com/esp8266/source-code-examples 9 | -------------------------------------------------------------------------------- /deb/esptool_0.0.2-1_i386.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/deb/esptool_0.0.2-1_i386.deb -------------------------------------------------------------------------------- /deb/src/esptool_0.0.2-1.debian.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/deb/src/esptool_0.0.2-1.debian.tar.gz -------------------------------------------------------------------------------- /deb/src/esptool_0.0.2-1.dsc: -------------------------------------------------------------------------------- 1 | Format: 3.0 (quilt) 2 | Source: esptool 3 | Binary: esptool 4 | Architecture: any 5 | Version: 0.0.2-1 6 | Maintainer: unknown 7 | Homepage: 8 | Standards-Version: 3.9.2 9 | Build-Depends: debhelper (>= 8.0.0) 10 | Package-List: 11 | esptool deb unknown extra 12 | Checksums-Sha1: 13 | 4a0265bbc1e7c43c994f0ec7aa0e8098a5704e6c 38378 esptool_0.0.2.orig.tar.gz 14 | 15aba53105e514bd699e01748a0cebba84fbd942 11575 esptool_0.0.2-1.debian.tar.gz 15 | Checksums-Sha256: 16 | ac06896dedbf3e9abc561741e77fe85befd6fe2bbc49240bd27bd336202f6bcb 38378 esptool_0.0.2.orig.tar.gz 17 | c7f93e709eba843af2338022afd243e50034d3e6bb233d1481bc4c374f0ce388 11575 esptool_0.0.2-1.debian.tar.gz 18 | Files: 19 | 8fa1dcc75a9fe16a25301904c24de106 38378 esptool_0.0.2.orig.tar.gz 20 | 4a40810f9f09b67f0b380ae697294630 11575 esptool_0.0.2-1.debian.tar.gz 21 | -------------------------------------------------------------------------------- /deb/src/esptool_0.0.2.orig.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/deb/src/esptool_0.0.2.orig.tar.gz -------------------------------------------------------------------------------- /docs/ESP8266-Modules-Comparison.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/docs/ESP8266-Modules-Comparison.odt -------------------------------------------------------------------------------- /docs/ESP8266-Modules-Comparison.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/docs/ESP8266-Modules-Comparison.pdf -------------------------------------------------------------------------------- /images/esp-03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/images/esp-03.jpg -------------------------------------------------------------------------------- /images/esp-mod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/images/esp-mod.jpg -------------------------------------------------------------------------------- /images/esp8266ex-layout.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/images/esp8266ex-layout.jpg -------------------------------------------------------------------------------- /images/module_v1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/images/module_v1.jpg -------------------------------------------------------------------------------- /images/module_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/images/module_v2.png -------------------------------------------------------------------------------- /include.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/include.tgz -------------------------------------------------------------------------------- /libs/libc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/libs/libc.a -------------------------------------------------------------------------------- /libs/libhal.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/libs/libhal.a -------------------------------------------------------------------------------- /reversed/ota_bootloader_stage1.c: -------------------------------------------------------------------------------- 1 | // From TheSeven on IRC. 2 | 3 | #define PAGESIZE 4096 4 | 5 | void main() 6 | { 7 | struct __attribute__((packed)) 8 | { 9 | uint8_t unknown0; 10 | uint8_t unknown1; 11 | enum 12 | { 13 | MODE_QIO = 0, 14 | MODE_QOUT = 1, 15 | MODE_DIO = 2, 16 | MODE_DOUT = 15, 17 | } mode : 8; 18 | enum 19 | { 20 | SPEED_40MHZ = 0, 21 | SPEED_26MHZ = 1, 22 | SPEED_20MHZ = 2, 23 | SPEED_80MHZ = 15, 24 | } speed : 4; 25 | enum 26 | { 27 | SIZE_4MBIT = 0, 28 | SIZE_2MBIT = 1, 29 | SIZE_8MBIT = 2, 30 | SIZE_16MBIT = 3, 31 | SIZE_32MBIT = 4, 32 | } size : 4; 33 | } flashHeader; 34 | 35 | struct __attribute__((packed)) 36 | { 37 | uint8_t useSecondImageInfo; 38 | uint8_t unknown1; 39 | uint8_t unknown2; 40 | uint8_t unknown3; 41 | } fwInfo; 42 | 43 | struct __attribute__((packed)) 44 | { 45 | uint8_t activeImageNumber; 46 | uint8_t unknown1; 47 | uint8_t unknown2; 48 | uint8_t unknown3; 49 | uint8_t unknown4; 50 | uint8_t unknown5; 51 | uint8_t unknown6; 52 | uint8_t unknown7; 53 | } imageInfo; 54 | 55 | ets_printf("\n2nd boot version : 1.1\n"); 56 | SPIRead(0, &flashHeader, sizeof(flashHeader)); 57 | ets_printf(" SPI Speed : "); 58 | switch (spiInfo.speed) 59 | { 60 | case SPEED_40MHZ: ets_printf("40MHz\n"); break; 61 | case SPEED_26MHZ: ets_printf("26.7MHz\n"); break; 62 | case SPEED_20MHZ: ets_printf("20MHz\n"); break; 63 | case SPEED_80MHZ: ets_printf("80MHz\n"); break; 64 | } 65 | ets_printf(" SPI Mode : "); 66 | switch (spiInfo.mode) 67 | { 68 | case MODE_QIO: ets_printf("QIO\n"); break; 69 | case MODE_QOUT: ets_printf("QOUT\n"); break; 70 | case MODE_DIO: ets_printf("DIO\n"); break; 71 | case MODE_DOUT: ets_printf("DOUT\n"); break; 72 | } 73 | ets_printf(" SPI Flash Size : "); 74 | int offset; 75 | switch (spiInfo.size) 76 | { 77 | case SIZE_2MBIT: ets_printf("2Mbit\n"); offset = 60; break; 78 | case SIZE_4MBIT: ets_printf("4Mbit\n"); offset = 124; break; 79 | case SIZE_8MBIT: ets_printf("8Mbit\n"); offset = 252; break; 80 | case SIZE_16MBIT: ets_printf("16Mbit\n"); offset = 508; break; 81 | case SIZE_32MBIT: ets_printf("32Mbit\n"); offset = 1020; break; 82 | default: ets_printf("1\n\n"); offset = 124; break; 83 | } 84 | 85 | spiRead((offset + 3) * PAGESIZE, &fwInfo, sizeof(fwInfo)); 86 | if (!fwInfo.useSecondImageInfo) spiRead((offset + 1) * PAGESIZE, &imageInfo, sizeof(imageInfo)); 87 | else spiRead((offset + 2) * PAGESIZE, &imageInfo, sizeof(imageInfo)); 88 | 89 | ets_memcpy(0x40108000, 0x3ffe8010, 0x304); 90 | ets_printf("jump to run user"); 91 | if (imageInfo.activeImageNumber == 255) imageInfo.activeImageNumber = 0; 92 | int useImage = imageInfo.activeImageNumber & 0xf; 93 | switch (useImage) 94 | { 95 | case 0: 96 | ets_printf("1\n\n"); 97 | 0x4010800c(0x100); 98 | break; 99 | case 1: 100 | ets_printf("2\n\n"); 101 | if (offset == 508 || offset == 1020) offset = 252; 102 | 0x4010800c((((offset + 4) >> 1) << 12) + 0x1000); 103 | break; 104 | default: 105 | ets_printf("error user bin flag, flag = %x\n", useImage); 106 | break; 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /sdk/at_v0.19_14_10_30.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/at_v0.19_14_10_30.zip -------------------------------------------------------------------------------- /sdk/at_v0.20_14_11_28.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/at_v0.20_14_11_28.zip -------------------------------------------------------------------------------- /sdk/esp8266_sdk_v0.9.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp8266_sdk_v0.9.1.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.6.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.2_14_10_24.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.2_14_10_24.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.3_14_11_21.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.3_14_11_21.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.3_14_11_21_patch1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.3_14_11_21_patch1.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.4_14_12_19.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.4_14_12_19.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.5_15_01_23.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.5_15_01_23.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.5_15_01_23_patch1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.5_15_01_23_patch1.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v0.9.6_b1_15_02_15.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v0.9.6_b1_15_02_15.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.0.0_15_03_20.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.0.0_15_03_20.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.0.1_15_04_24.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.0.1_15_04_24.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.0.1_b1_15_04_02.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.0.1_b1_15_04_02.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.0.1_b2_15_04_10.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.0.1_b2_15_04_10.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.1.0_15_05_26.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.1.0_15_05_26.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.1.1_15_06_05.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.1.1_15_06_05.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.1.2_15_06_12.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.1.2_15_06_12.zip -------------------------------------------------------------------------------- /sdk/esp_iot_sdk_v1.2.0_15_07_03.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/esp8266/esp8266-wiki/f7e9f968abaa9e2db693163501ea50349d03c016/sdk/esp_iot_sdk_v1.2.0_15_07_03.zip -------------------------------------------------------------------------------- /toolchain.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | sudo apt-get update 4 | sudo apt-get install -y git autoconf build-essential gperf bison flex texinfo libtool libncurses5-dev wget gawk libc6-dev python-serial libexpat-dev unzip 5 | 6 | sudo mkdir -p /opt/Espressif 7 | sudo chown -R $USER /opt/Espressif 8 | 9 | cd /opt/Espressif 10 | 11 | #Install crosstool-NG (toolchain) 12 | git clone --depth 1 -b lx106 git://github.com/jcmvbkbc/crosstool-NG.git 13 | cd crosstool-NG 14 | ./bootstrap && ./configure --prefix=`pwd` && make && make install 15 | ./ct-ng xtensa-lx106-elf 16 | ./ct-ng build 17 | 18 | echo "export PATH=$PWD/builds/xtensa-lx106-elf/bin:\$PATH" | sudo tee -a /root/.bashrc 19 | echo "export PATH=$PWD/builds/xtensa-lx106-elf/bin:\$PATH" >> ~/.bashrc 20 | 21 | #Setup SDK 22 | cd /opt/Espressif 23 | wget -O esp_iot_sdk_v0.9.3_14_11_21.zip https://github.com/esp8266/esp8266-wiki/raw/master/sdk/esp_iot_sdk_v0.9.3_14_11_21.zip 24 | wget -O esp_iot_sdk_v0.9.3_14_11_21_patch1.zip https://github.com/esp8266/esp8266-wiki/raw/master/sdk/esp_iot_sdk_v0.9.3_14_11_21_patch1.zip 25 | unzip esp_iot_sdk_v0.9.3_14_11_21.zip 26 | unzip -o esp_iot_sdk_v0.9.3_14_11_21_patch1.zip 27 | ln -s esp_iot_sdk_v0.9.3 ESP8266_SDK 28 | 29 | #Add missing libs 30 | cd /opt/Espressif/ESP8266_SDK 31 | wget -O lib/libc.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libc.a 32 | wget -O lib/libhal.a https://github.com/esp8266/esp8266-wiki/raw/master/libs/libhal.a 33 | wget -O include.tgz https://github.com/esp8266/esp8266-wiki/raw/master/include.tgz 34 | tar -xvzf include.tgz 35 | 36 | #Install esptool 37 | cd /opt/Espressif 38 | wget -O esptool_0.0.2-1_i386.deb https://github.com/esp8266/esp8266-wiki/raw/master/deb/esptool_0.0.2-1_i386.deb 39 | sudo dpkg -i esptool_0.0.2-1_i386.deb 40 | 41 | #Install esptool.py 42 | cd /opt/Espressif 43 | git clone https://github.com/themadinventor/esptool esptool-py 44 | sudo ln -s $PWD/esptool-py/esptool.py crosstool-NG/builds/xtensa-lx106-elf/bin/ 45 | --------------------------------------------------------------------------------