arduino-esp32 VS esptool

Compare arduino-esp32 vs esptool and see what are their differences.

arduino-esp32

Arduino core for the ESP32 (by espressif)

esptool

Espressif SoC serial bootloader utility (by espressif)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
arduino-esp32 esptool
228 51
12,340 5,264
2.5% 2.1%
9.6 9.1
about 7 hours ago 6 days ago
C++ Python
GNU Lesser General Public License v3.0 only GNU General Public License v2.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

arduino-esp32

Posts with mentions or reviews of arduino-esp32. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-07.
  • ESP32 memory corruption
    2 projects | /r/esp32 | 7 Dec 2023
    Are you perhaps this poster? https://github.com/espressif/arduino-esp32/issues/5250 - asking that poster for the list I just asked for went nowhere and it was auto-closed.
    2 projects | /r/esp32 | 7 Dec 2023
    I use a ESP32-WROOM-32E-N16 (16 MB SPI flash) with default_16MB.csv partitions table from https://github.com/espressif/arduino-esp32/tree/master/tools/partitions. I need to store multiple files in SPIFFS memory (html for webserver and log file). For that, I use Arduino SPIFFS.h library for ESP32 and it works well until it doesn't work... I get the error : [E][vfs_api.cpp:301] VFSFileImpl(): fopen(/spiffs/log/logFile1.txt) failed. The file exist but I can't open it, and this even if I shutdown the ESP32. I can make it work again only if I reset it with my ESP-Prog board.
  • ESP32 WiFiMulti: Connect to the Strongest Wi-Fi Network (from a listing of networks).
    2 projects | /r/u_KeatonParker | 1 Oct 2023
    /* * Based on the following examples: * WiFi > WiFiMulti: https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiMulti/WiFiMulti.ino * WiFi > WiFiScan: https://github.com/espressif/arduino-esp32/blob/master/libraries/WiFi/examples/WiFiScan/WiFiScan.ino * Complete project details at our blog: https://RandomNerdTutorials.com/ * */ #include #include WiFiMulti wifiMulti; // WiFi connect timeout per AP. Increase when connecting takes longer. const uint32_t connectTimeoutMs = 10000; void setup(){ Serial.begin(115200); delay(10); WiFi.mode(WIFI_STA); // Add list of wifi networks wifiMulti.addAP("ssid_from_AP_1", "your_password_for_AP_1"); wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2"); wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3"); // WiFi.scanNetworks will return the number of networks found int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) { Serial.println("no networks found"); } else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*"); delay(10); } } // Connect to Wi-Fi using wifiMulti (connects to the SSID with strongest connection) Serial.println("Connecting Wifi..."); if(wifiMulti.run() == WL_CONNECTED) { Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } } void loop(){ //if the connection to the stongest hotstop is lost, it will connect to the next network on the list if (wifiMulti.run(connectTimeoutMs) == WL_CONNECTED) { Serial.print("WiFi connected: "); Serial.print(WiFi.SSID()); Serial.print(" "); Serial.println(WiFi.RSSI()); } else { Serial.println("WiFi not connected!"); } delay(1000); }
  • The Nano ESP32
    5 projects | news.ycombinator.com | 17 Jul 2023
    That has not been my experience at all as a user. ESPHome is even easier than Arduino and I haven’t touched firmware code in years.

    The price makes a huge difference when you have dozens of them operating which is trivial with a decent hydroponics and smarthome setup. I also have a dozen boards just sitting idle ready to be called up to replace a failed one or use for a new project because they’re so cheap.

    Not to mention the Arduino core is supported officially by ESP32: https://github.com/espressif/arduino-esp32

    Who actually uses Arduino in production? Everyone just uses modules (for ESP32) or rolls their own using the Arduino board as a reference.

  • Arduino Uno R4 WiFi
    5 projects | news.ycombinator.com | 26 Jun 2023
    They've done a good job of hiding the RTOS from you and making most sketches run fine without porting, but you're still running as a task under the RTOS, yielding between loop() calls[1]. This leads to mysterious timing issues if you aren't aware of it[2]

    It doesn't appear that the Arduino core for the Renesas chip is using the RTOS, at least by default -- its main loop is literally doing while (1) { loop(); }, similar to how the AVR core works. [3, 4]

      1. https://github.com/espressif/arduino-esp32/blob/72c41d09538663ebef80d29eb986cd5bc3395c2d/cores/esp32/main.cpp#L45
  • exit status 1 error not going away! Pls help
    2 projects | /r/arduino | 21 Jun 2023
    https://github.com/lewisxhe/esp32-camera-series/issues/11 may interest you - you need all the files in the same dir, not just the .ino by itself
  • Do you have any idea why this program would not work? [ESP32]
    2 projects | /r/arduino | 19 Jun 2023
    I copied all the libraries from here: https://github.com/espressif/arduino-esp32/tree/master/libraries
  • Configure a Raspberry Pi as a USB Device
    7 projects | news.ycombinator.com | 3 Jun 2023
    I would also take a look at esp32 and possibly raspberry pi pico W as well.

    For the esp32 there is this official example of what I think is faking a usb drive: https://github.com/espressif/arduino-esp32/blob/master/libra...

    Not all ESP32s support USB OTG and I don’t have the correct one here atm to test with. Not sure how much more work would be needed to serve files from sd card.

    You could then use a web server on the esp32 to transfer your files

  • Connecting esp32 to a bluetooth ODB2sensor
    2 projects | /r/arduino | 23 May 2023
    Setup the Software: Next, you'll need to install the appropriate libraries for the ESP32 in your Arduino IDE. The ESP32 Arduino core is what you'll likely need.
  • ESP32-S3 USB frustrates me, you too?
    3 projects | /r/esp32 | 21 May 2023
    esptool.py reports "Hard resetting via RTS pin..." yet I need to press Boot, then press Reset to get the sketch to run. Espressif appears aware of this problem and has no solution. https://github.com/espressif/arduino-esp32/issues/6762

esptool

Posts with mentions or reviews of esptool. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-17.
  • FeedMyFurBabies – Send and Receive MQTT messages between AWS IoT Core and your micro-controller
    3 projects | dev.to | 17 Feb 2024
    Next, install esptool onto your computer, then run the following commands to flash the MicroPython firmware onto the ESP32C3 using the bin file you've just downloaded.
  • Determining amount of PSRAM using esptool/python?
    3 projects | /r/esp32 | 22 Jan 2023
    I am using a flexypin adaptor and an ESP-PROG to connect to them, and esptool. to determine the amount of FLASH. Is there a way I can use esptool or python to determine the amount of PSRAM? The vendor didn't label which one was which. and I don't want to solder the wrong module to the board.
    3 projects | /r/esp32 | 22 Jan 2023
  • ESP32-CAM connection without the USB device
    3 projects | /r/esp32 | 21 Jan 2023
    Once it's connected you use whatever programming tool you're building with. The Arduino IDE will work if you install ESP32 support. There'll be an option to upload firmware. I use PlatformIO from the command line; it has options to upload when you build firmware. Fundamentally these use esptool.py to flash the firmware to the board (it can also erase the board's flash storage, read it back, and do a few other things). You probably don't want to use it directly unless you absolutely have to; whatever build system you use should be easier to deal with.
  • Newer IDF seems to have a problem with autoreset circuits.
    2 projects | /r/esp32 | 5 Dec 2022
    Here's a (closed but unresolved) issue that helped me find the solution: https://github.com/espressif/esptool/issues/741
    2 projects | /r/esp32 | 5 Dec 2022
    Looks like it might be related to this issue.
  • Stand-alone executable file for windows command line programming of esp32
    5 projects | /r/esp32 | 17 Nov 2022
    The esptool from Espressif has its own installer: https://github.com/espressif/esptool/releases
  • Help Flashing WLED on SP511E that uses ESP8285 chip
    2 projects | /r/WLED | 2 Feb 2022
    I found a great method to flash that works great is with esptool.py (in the terminal) Install esptool.py (https://github.com/espressif/esptool) And then with you controller connected write in the terminal "esptool.py write_flash 0x0 ./WLED_XXX.bin" And replace the "./Wled.....bin" with the path of where you bin file is (C:/.../wled.. .bin) and it should do the trick More info about this method here on "method 2": https://kno.wled.ge/basics/install-binary/
  • 16MB ESP No Longer Booting.
    2 projects | /r/esp32 | 15 Oct 2021
    See here.
    2 projects | /r/esp32 | 15 Oct 2021

What are some alternatives?

When comparing arduino-esp32 and esptool you can also consider the following projects:

esp-idf - Espressif IoT Development Framework. Official development framework for Espressif SoCs.

Tasmota - Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

platform-espressif32 - Espressif 32: development platform for PlatformIO

WLED - Control WS2812B and many more types of digital RGB LEDs with an ESP8266 or ESP32 over WiFi!

esp32-wifi-penetration-tool - Exploring possibilities of ESP32 platform to attack on nearby Wi-Fi networks.

TinyGo-On-ESP32 - This tutorial will walk you through how to setup Ubuntu 20.10 with Ubuntu Desktop on a Raspberry Pi 4B, install the Espressif ESP-IDF, install Go and TinyGo and finally flash an app to an Espressif ESP32 Microcontroller.

ESP32-PCNT-Arduino-Example - Example of using the ESP32's hardware pulse counter to find the RPM of a PC fan from it's tachometer output.

esp32_nat_router - A simple NAT Router for the ESP32

painlessMesh

EspTinyUSB - ESP32S2 native USB library. Implemented few common classes, like MIDI, CDC, HID or DFU (update).

MCP_CAN_lib - MCP_CAN Library

TFT_eSPI - Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips