Skip to content
Paul Nicholls edited this page Apr 11, 2021 · 4 revisions

Arduino core for single-core ESP32 modules

What is this repository?

Starting with lbernstone's arduino-esp32-solo, this repository provides ready-to-use branches for:

  • general single-core ("solo") ESP32 modules:
    • solo/1.0.4
    • solo/1.0.5
    • solo/1.0.6
  • Xiaomi single-core ESP32 modules (such as can be found in the linp-doorbell-g03 self-powered doorbell):
    • solo-no-mac-crc/1.0.4
    • solo-no-mac-crc/1.0.5
    • solo-no-mac-crc/1.0.6

The latter branch's name gives a clue as to the major difference from the former: it has MAC address CRC validation essentially disabled (it still checks it, but the log message is downgraded from error, and the abort() call is removed) so that the module doesn't get stuck in a boot loop. All of its static libraries from arduino-esp32-solo have also been replaced with versions which I compiled myself, whereas the solo/* branch simply uses lbernstone's. The reason for this is that the CRC in the EFUSE does not validate - but this seems to be deliberate (or at least expected - perhaps they burnt the EFUSE on a large number before realising?) as the abort() call is commented out in their esp-idf fork.

Use with PlatformIO v4.x

The primary reason that this repository exists is to simplify the use of single-core ESP32 modules with PlatformIO, avoiding the main issues with arduino-esp32-solo - the need to manually overwrite files within the PlatformIO framework packages, and the inability to seamlessly work with both single-core and the more common dual-core ESP32 modules.

Note: PlatformIO v4.x is required, as earlier versions don't support the platform_packages config option.

PlatformIO (direct)

To use these branches with PlatformIO directly, add the following to your project's platformio.ini:

platform_packages = 
  framework-arduinoespressif32 @ https://github.com/pauln/arduino-esp32.git#solo/1.0.4

(change the part after the # to match the branch you wish to use).

ESPHome

To use these branches with ESPHome, add the following to the esphome: section of your project's .yaml file:

  platformio_options:
    platform_packages: |-4
      
          framework-arduinoespressif32 @ https://github.com/pauln/arduino-esp32.git#solo/1.0.4