What languages can I use with the esp32?

This page summarizes the projects mentioned and recommended in the original post on /r/esp32

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • circuitpython

    CircuitPython - a Python implementation for teaching coding with microcontrollers

  • If you do stick with Python, check out CircuitPython. It's a fork of MicroPython, which is also good. One really cool thing about CircuitPython is that you can run CircuitPython programs on macOS and Linux with appropriate hardware. For instance, Adafruit's FT232H Breakout board will let a Linux or macOS computer use I2C and SPI over USB, and the Raspberry Pi has built-in I2C and SPI support over its GPIO connector. In either of those cases the same CircuitPython code can run on an ESP32, Linux or Mac and use I2C and SPI, which can make development much nicer.

  • nodemcu-firmware

    Lua based interactive firmware for ESP8266, ESP8285 and ESP32

  • You can run LUA on the ESP32. It's strongly associated with "NodeMCU" which was the name of an ESP8266 board that it originally ran on. At this point "NodeMCU" is mostly word salad and gets applied generically to so many ESP8266 and ESP32 boards that it's virtually meaningless, but the LUA firmware is well supported and works.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • PlatformIO

    Your Gateway to Embedded Software Development Excellence :alien:

  • If you use C++ you might prefer PlatformIO to the Arduino IDE. You can use it from the command line, and there are integrations for many IDEs like VSCode. It has better library management and is generally just less clunky than the Arduino IDE.

  • arduino-esp32

    Arduino core for the ESP32

  • In C++ you'll program with the Arduino core, which is occasionally confusing but generally has an easier learning curve than ESP-IDF. It may be a good place to start if you don't use Python. There are many many libraries and tutorials available for Arduino, and lots of code written for real Arduino CPUs will run on the ESP32 if they don't have any hardware dependencies in them. Many tutorials will also apply. Beware if you're following an Arduino tutorial that the ESP32 is a 3.3V chip and many Arduinos are 5V. People will argue about whether the ESP32 is 5V tolerant, but the safest thing to do is make sure that your circuits all work with 3.3V and don't ever send a 5V signal to the ESP32. Again, it's easy to shoot yourself in the foot with C++.

  • MicroPython

    MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems

  • If you do stick with Python, check out CircuitPython. It's a fork of MicroPython, which is also good. One really cool thing about CircuitPython is that you can run CircuitPython programs on macOS and Linux with appropriate hardware. For instance, Adafruit's FT232H Breakout board will let a Linux or macOS computer use I2C and SPI over USB, and the Raspberry Pi has built-in I2C and SPI support over its GPIO connector. In either of those cases the same CircuitPython code can run on an ESP32, Linux or Mac and use I2C and SPI, which can make development much nicer.

  • nim-platformio

    Nim support in PlatformIO

  • You can also use it with Nim and PlatformIO!

  • toit

    Program your microcontrollers in a fast and robust high-level language.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts