I'm quite new in this microcontroller topic and my next step is to make use of a wlan module, which is a ESP WROOM 32. As IDE I'm using Visual Studio + PlatformIO and I can't figure out how to access the module. Atm I use these parameters:

platform = espressif8266
board = esp12e
framework = arduino
monitor_speed = 74880

but I receive:

CURRENT: upload_protocol = esptool
Looking for upload port...
Auto-detected: /dev/ttyUSB0
Uploading .pio/build/esp12e/firmware.bin
esptool.py v2.8
Serial port /dev/ttyUSB0
Chip is ESP8266EX
Features: WiFi
WARNING: Detected crystal freq 20.45MHz is quite different to normalized freq 26MHz. Unsupported crystal in use?
Crystal is 26MHz
MAC: 00:08:ff:00:00:00
Uploading stub...
Running stub...

A fatal error occurred: Invalid head of packet (0x46)
*** [upload] Error 2
============================================================================= [FAILED] Took 3.27 seconds =============================================================================
The terminal process "platformio 'run', '--target', 'upload'" terminated with exit code: 1.

edit: The ESP WROOM 32 is a NodeMCU 32 and the board config now is:

platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200

and to check if everything works:

void setup() {
  pinMode(2, OUTPUT);
// the loop function runs over and over again forever
void loop() {
  digitalWrite(2, HIGH); 
  digitalWrite(2, LOW); 

I also had problems that I received Failed to connect to ESP32: Timed out waiting for packet header nevertheless but here is a nicely explained workaround for that. Solution is, either you hold the BOOT button pressed while uploading the code or you sold a capacitor to specific pins on the board. I just tried to hold the boot button and it's blinking now. Finally :) I'm sure, a lot of further issues are only waiting on the way ^

1 Answer 1


The ESP WROOM32 is an ESP32, not an ESP8266. You have PlatformIO configured for an ESP8266, specifically the ESP12e, and there's no way that's going to work.

You'll want something more along these lines:

platform = espressif32

To choose the board - if you're using a breakout board, you'll need to be more specific about it - what model is it? ESP WROOM32 is just the name of the CPU module; PlatformIO needs to know the size of the flash storage in order to upload properly. Your link is to the entire Espressif ESP32 site. Otherwise, look through PlatformIO's list of ESP32 boards and find one that matches the amount of flash storage your board has.

You might want to read PlatformIO's ESP32 documentation.

  • Thanks a lot! I knew it was wrong.. after some hours :) I'm not using a breakout board. How can I figure out the board I have? I can only see what's written on it: fcc id 2ac72 esp wroom 32. Does that reveal something?
    – Ben
    Commented Aug 8, 2020 at 18:47
  • Just from the look I'd say it is a Node MCU. In platformio it is given as "NodeMCU-32S" but when I want to use it, it says it is an unknown board. ESP32 is apparently also an unknown board..
    – Ben
    Commented Aug 8, 2020 at 19:08
  • it is definitely this one: reichelt.de/…
    – Ben
    Commented Aug 8, 2020 at 19:15
  • 1
    Looks like you got it!
    – romkey
    Commented Aug 9, 2020 at 4:20
  • Yeah, that was quite an effort just to get started.. :) But it is almost always the same, doesn't matter which electronics or programming..
    – Ben
    Commented Aug 9, 2020 at 11:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.