ESP8266 Arduino KRACK fix, compile using PlatformIO?


#1

Espressive have now a fix for the KRACK vulnerability:

http://espressif.com/en/media_overview/news/espressif-releases-patches-wifi-vulnerabilities-cert-vu228519

This has fix has been incorporated in esp8266 Arduino release 2.4.0-rc2

See issue:

How can I use esp8266 Arduino 2.4.0-rc2 with PlatformIO? I’ve read about using the staging version but it’s unclear which version the staging version is running? It looks to me like the staging version has not been updated since 22 days. Therefore will not have the KRACK fix:

Thanks a lot, Keep up the good work with PlatformIO :muscle:


#2

PlatformIO Build Script for Arduino/ESP8266 now is a part of an official Espressif repository. See

It means that using Staging version of our dev/platform you will use the latest version of Arduino Core for ESP8266.

See updated docs:


#3

Fantastic! Just so I can be super sure I’m using the latest rc version of Arduino core where can I check the version is 2.4.0-rc2?


#4

The docs do not mention how to install the staging environment if using pio CLI rather than IDE

$ platformio platform install https://github.com/platformio/platform-espressif8266.git#feature/stage

then use:

[env:nodemcuv2]
platform = espressif8266_stage
board = nodemcuv2
framework = arduino

Is this correct?


Error when trying to use arduino framework with staging version
#5

It’s correct. Starting from PIO Core 3.5 you can use dev/platform as VCS URL, as described in docs


#6

Sorry, just to clarify the above steps will install and compile with the latest esp8266/arduino release rc, currently:

https://github.com/esp8266/Arduino/releases/tag/2.4.0

I just want to be totally sure this is the version I’m using. I can’t see where to check that the correct version is installed. The docs say it should be possible to set

platform = https://github.com/platformio/platform-espressif8266.git#feature/stage

When I do this I get error:

IOError: [Errno 2] No such file or directory: '/home/fig/.platformio/platforms/Arduino/platform.json'

Should it be possible to set in platformio.ini

platform = https://github.com/esp8266/Arduino/releases/tag/2.4.0


#7

What do you see with pio platform show espressif8266? Or PIO Home - Platforms - Installed - Eapressif 8266 - Packages. You see a commit here.


#8

I don’t think I see the commit. Does this mean I’m not running 2.4.0-rc2?

espressif8266 ~ Espressif 8266
==============================
Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.

Version: 1.4.0
Home: http://platformio.org/platforms/espressif8266
Repository: https://github.com/platformio/platform-espressif8266.git
Vendor: https://espressif.com/
License: Apache-2.0
Frameworks: arduino, esp8266-rtos-sdk, simba

Packages
--------

Package framework-esp8266-rtos-sdk
----------------------------------
Type: framework
Requirements: >=1.5.0-beta
Installed: No (optional)

Package toolchain-xtensa
------------------------
Type: toolchain
Requirements: ~1.40802.0
Installed: Yes
Version: 1.40802.0
Original version: 4.8.2
Description: xtensa-gcc

Package framework-simba
-----------------------
Type: framework
Requirements: >=7.0.0
Installed: No (optional)

Package tool-esptool
--------------------
Type: uploader
Requirements: ~1.409.0
Installed: Yes
Version: 1.409.0
Original version: 4.9
Description: esptool-ck

Package tool-mkspiffs
---------------------
Type: uploader
Requirements: ~1.102.0
Installed: Yes
Version: 1.102.0
Original version: 1.2
Description: Tool to build and unpack SPIFFS images

Package tool-espotapy
---------------------
Type: uploader
Requirements: ~1.0.0
Installed: Yes
Version: 1.0.0
Original version: None
Description: This script will push an OTA update to the ESP

Package framework-arduinoespressif8266
--------------------------------------
Type: framework
Requirements: ~1.20300.1
Installed: Yes
Version: 1.20300.1
Original version: 2.3.0
Description: Arduino Wiring-based Framework (ESP8266 Core)

Package sdk-esp8266
-------------------
Requirements: ~1.10502.0
Installed: No (optional)

Boards
------
ID                    MCU            Frequency  Flash   RAM    Name
---------------------------------------------------------------------------------------------------------------------------------------------
nodemcuv2             ESP8266        80Mhz     4096kB  80kB   NodeMCU 1.0 (ESP-12E Module)
wifinfo               ESP8266        80Mhz     423kB   80kB   WifInfo
esp01_1m              ESP8266        80Mhz     1024kB  80kB   Espressif Generic ESP8266 ESP-01 1M
d1_mini               ESP8266        80Mhz     4096kB  80kB   WEMOS D1 mini
espduino              ESP8266        80Mhz     4096kB  80kB   ESPDuino (ESP-13 Module)
esp12e                ESP8266        80Mhz     4096kB  80kB   Espressif ESP8266 ESP-12E
huzzah                ESP8266        80Mhz     4096kB  80kB   Adafruit HUZZAH ESP8266
phoenix_v1            ESP8266        80Mhz     1019kB  80kB   Phoenix 1.0
phoenix_v2            ESP8266        80Mhz     1019kB  80kB   Phoenix 2.0
d1                    ESP8266        80Mhz     4096kB  80kB   WEMOS D1 (Retired)
esp01                 ESP8266        80Mhz     512kB   80kB   Espressif Generic ESP8266 ESP-01 512k
esp07                 ESP8266        80Mhz     4096kB  80kB   Espressif Generic ESP8266 ESP-07
esp_wroom_02          ESP8266        80Mhz     4096kB  80kB   ESP-WROOM-02
sparkfunBlynk         ESP8266        80Mhz     4096kB  80kB   SparkFun Blynk Board
nodemcu               ESP8266        80Mhz     4096kB  80kB   NodeMCU 0.9 (ESP-12 Module)
d1_mini_lite          ESP8266        80Mhz     935kB   80kB   WEMOS D1 mini Lite
espresso_lite_v1      ESP8266        80Mhz     4096kB  80kB   ESPresso Lite 1.0
espresso_lite_v2      ESP8266        80Mhz     4096kB  80kB   ESPresso Lite 2.0
esp8285               ESP8266        80Mhz     423kB   80kB   Generic ESP8285 Module
espino                ESP8266        80Mhz     4096kB  80kB   ESPino
espinotee             ESP8266        80Mhz     4096kB  80kB   ThaiEasyElec ESPino
espectro              ESP8266        80Mhz     4096kB  80kB   ESPectro Core
thingdev              ESP8266        80Mhz     512kB   80kB   SparkFun ESP8266 Thing Dev
modwifi               ESP8266        80Mhz     2048kB  80kB   Olimex MOD-WIFI-ESP8266(-DEV)
thing                 ESP8266        80Mhz     512kB   80kB   SparkFun ESP8266 Thing
esp210                ESP8266        80Mhz     4096kB  80kB   SweetPea ESP-210

#9

Can you see what framework version I’m running?


#10

If you use staging version, please run

pio platform show espressif8266_stage

#11

Here is the output of:

$ pio platform show espressif8266_stage

I’m trying to confirm that I’m running Arduino framework 2.4.0-rc2 which has the fix for the CRACK vulnerability:

espressif8266_stage ~ Espressif 8266 (Stage)
============================================
Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.

Version: 1569289
Home: http://platformio.org/platforms/espressif8266
Repository: https://github.com/platformio/platform-espressif8266.git
Vendor: https://espressif.com/
License: Apache-2.0
Frameworks: arduino, esp8266-rtos-sdk, simba

Packages
--------

Package framework-esp8266-rtos-sdk
----------------------------------
Type: framework
Requirements: >=1.5.0-beta
Installed: No (optional)

Package toolchain-xtensa
------------------------
Type: toolchain
Requirements: ~1.40802.0
Installed: Yes
Version: 1.40802.0
Original version: 4.8.2
Description: xtensa-gcc

Package framework-simba
-----------------------
Type: framework
Requirements: >=7.0.0
Installed: No (optional)

Package tool-esptool
--------------------
Type: uploader
Requirements: ~1.409.0
Installed: Yes
Version: 1.409.0
Original version: 4.9
Description: esptool-ck

Package tool-mkspiffs
---------------------
Type: uploader
Requirements: ~1.200.0
Installed: No (optional)

Package tool-espotapy
---------------------
Type: uploader
Requirements: ~1.1.0
Installed: No (optional)

Package framework-arduinoespressif8266
--------------------------------------
Type: framework
Requirements: https://github.com/esp8266/Arduino.git
Installed: Yes
Version: 0c897c3
Original version: None
Description: Arduino Wiring-based Framework (ESP8266 Core)

Package sdk-esp8266
-------------------
Requirements: ~1.10502.0
Installed: No (optional)

Boards
------
ID                    MCU            Frequency  Flash   RAM    Name
---------------------------------------------------------------------------------------------------------------------------------------------
nodemcuv2             ESP8266        80Mhz     4096kB  80kB   NodeMCU 1.0 (ESP-12E Module)
wifinfo               ESP8266        80Mhz     423kB   80kB   WifInfo
esp01_1m              ESP8266        80Mhz     1024kB  80kB   Espressif Generic ESP8266 ESP-01 1M
d1_mini               ESP8266        80Mhz     4096kB  80kB   WEMOS D1 mini
espduino              ESP8266        80Mhz     4096kB  80kB   ESPDuino (ESP-13 Module)
esp12e                ESP8266        80Mhz     4096kB  80kB   Espressif ESP8266 ESP-12E
huzzah                ESP8266        80Mhz     4096kB  80kB   Adafruit HUZZAH ESP8266
phoenix_v1            ESP8266        80Mhz     1019kB  80kB   Phoenix 1.0
phoenix_v2            ESP8266        80Mhz     1019kB  80kB   Phoenix 2.0
d1                    ESP8266        80Mhz     4096kB  80kB   WEMOS D1 (Retired)
esp01                 ESP8266        80Mhz     512kB   80kB   Espressif Generic ESP8266 ESP-01 512k
esp07                 ESP8266        80Mhz     4096kB  80kB   Espressif Generic ESP8266 ESP-07
esp_wroom_02          ESP8266        80Mhz     4096kB  80kB   ESP-WROOM-02
sparkfunBlynk         ESP8266        80Mhz     4096kB  80kB   SparkFun Blynk Board
oak                   ESP8266        80Mhz     4096kB  80kB   DigiStump Oak
nodemcu               ESP8266        80Mhz     4096kB  80kB   NodeMCU 0.9 (ESP-12 Module)
d1_mini_lite          ESP8266        80Mhz     935kB   80kB   WEMOS D1 mini Lite
espresso_lite_v1      ESP8266        80Mhz     4096kB  80kB   ESPresso Lite 1.0
espresso_lite_v2      ESP8266        80Mhz     4096kB  80kB   ESPresso Lite 2.0
esp8285               ESP8266        80Mhz     423kB   80kB   Generic ESP8285 Module
espino                ESP8266        80Mhz     4096kB  80kB   ESPino
espinotee             ESP8266        80Mhz     4096kB  80kB   ThaiEasyElec ESPino
espectro              ESP8266        80Mhz     4096kB  80kB   ESPectro Core
thingdev              ESP8266        80Mhz     512kB   80kB   SparkFun ESP8266 Thing Dev
modwifi               ESP8266        80Mhz     2048kB  80kB   Olimex MOD-WIFI-ESP8266(-DEV)
thing                 ESP8266        80Mhz     512kB   80kB   SparkFun ESP8266 Thing
esp210                ESP8266        80Mhz     4096kB  80kB   SweetPea ESP-210

#12

“0c897c3” is a hash of commit.


#13

Fantastic, that’s exactly what I wanted to see :heart_eyes:

That’s exactly 2.4.0-rc2 :smiley:

I dunno how I missed that. Thanks so much for your help :thumbsup:


#14

pio platform show espressif8266_stage is now showing Version: 303a71d for Package framework-arduinoespressif8266.

What are we supposed to do if we want 2.4.0-rc2 0c897c3 exactly?


#15

See


#16

Thanks for the tip. I created https://github.com/BrandonLWhite/platform-espressif8266.git#arduino-core-2.4.0-rc2 and it seems to get the job done.

I’m not really feeling great about this though. It would be nicer if there was a branch at https://github.com/platformio/platform-espressif8266#arduino-core-2.4.0-rc2 that everyone could use more “officially”.


#17

Thanks, done!

[env:...]
platform = https://github.com/platformio/platform-espressif8266.git#feature/2.4.0-rc2
...

#18

Hi @ivankravets

Nice, that looks like a good solution. I’ve just tested using in my project using:

[env:...]
platform = https://github.com/platformio/platform-espressif8266.git#feature/2.4.0-rc2

The platform seems to install Ok then I get: Error: Unknown development platform

Full output:

The platform 'https://github.com/platformio/platform-espressif8266.git#feature/2.4.0-rc2' has been successfully installed!
The rest of packages will be installed automatically depending on your build environment.
Error: Unknown development platform 'https://github.com/platformio/platform-espressif8266.git#feature/2.4.0-rc2'

#19

This is an upcoming feature of PIO Core 3.5. Please switch to development version of PIO Core 3.5.


#20

Woop, that works :ok_hand:

I followed these instructions to install dev version:

http://docs.platformio.org/en/latest/installation.html#development-version