ESP32 Runs only when compiled on M1 MAC

I have esp32 project, which when compiled on m1 Mac runs just fine.
When I compile it on any other computer, my mackintosh, my windows vm, my windows desktop, they all compile the project FINE, but the program hangs on the EEPROM library of the ESP32.

So to summarise
M1 Mac compiler works perfectly with EEPROM
other macOS and windows systems make the ESP32 HANG on EEPROM.begin();

You may not have defined specific version numbers for the platform and libraries to be used in your platformio.ini.

This may result in different versions being used on the other computers / VMs than on your M1 Mac, which may behave differently or be incompatible with your code.

Check whether the version numbers of the platform and libraries used exactly match those on your M1 Mac.

As you have not provided exact details (content of platformio.ini, error messages, code etc.) this is only a guess.

How do you determine that the error occurs at EEPROM.begin();?

Well its maybe NOT entirely specific to the EEPROM library, but I figured it out that if I commented out the EEPROM lib, the program doesn’t HALT, because EEPROM.begin() is the function that halts my ESP.


platform = espressif32

board = az-delivery-devkit-v4

; platform = espressif32

; board = esp32doit-devkit-v1

framework = arduino

;board_build.flash_mode = dio

lib_deps =






this is the most important bit of my ini file…

NOTE : I do get unable to resolve configuration with compiler path warnings even on my m1 Mac… So something definitely is not right.

You have not specified the version of the platform.
It is therefore possible that different platform versions could be used on different computers / vm’s.

Which platform version are you using on your M1 Mac (on which it runs flawlessly)?

Then specify the this version in the platformio.ini e.g.:
platform = espressif32 @ 6.5.0.

Please show the warnings.

Please use the pre-formatted text for code, logs and configuration files.

so my Mac x86 uses 6.5.0 but my Mac M1 uses 2.1.0

How can this difference be so huge ?

Changing the version did fixed it btw. THANKS

Existing versions on the system are not updated automatically. You have probably been using the Espressif32 platform on your Mac M1 for some time.

Version 2.1.0 is very outdated! This should still be the Arduino Framework version 1.0.4!
The current Arduino version is 2.0.14 (since Espressif @ 6.5.0)

I think I am using this since a year maximum

I managed to further increase the version up to 3,5.0
But after that the program breaks again on the same issue.

Is this behaviour that happens more often ?

3.5.0 is Arduino Version 1.0.6.
If a major version changes (1.x.x to 2.x.x) always mean major changes that might ne not backward compatible.

If your issue is about using eeprom (which is just a emulated eeprom), i highly recommend to switch over to preferences.h.

Arduino Version 3.x.x is imminent. Here too, there will be major changes that are not backwards compatible.

Here you can already see what changes you can expect with 3.x: Migration from 2.x to 3.0 - - — Arduino ESP32 latest documentation