HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
espressif
arduino-esp32
C++2017–2025
espressif / arduino-esp32

arduino-esp32

Arduino core for the ESP32 family of SoCs

12Distinct people
13Mentions
0Explicit recommenders
17.7KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Arduino core for the ESP32 family of SoCs

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year13 dated mentions

Observed mentions: 2017-12-26 16:45:56 UTC to 2025-08-24 16:01:28 UTC.

012342017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC303
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC404
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202

What Hacker News says

13 sources
That's not ESP-IDF, that's the Arduino wrapper around ESP-IDF. Setting the baud rate does actually do something (just follow the baudRate parameter here: https://github.com/espressif/arduino-esp32/blob/master/cores...), it just doesn't affect the output speed of the USB serial output. If you specify non-default pins for the serial output (i.e. you're opening a second serial connection to talk to another piece of hardware) the begin() method does influence the data rate. Also, there are dev boards out there that do actually use a TTL converter and USB-to-serial converter to access the standard serial port, though they're not very common as far as I can tell, so I wouldn't just assume the baud rate setting does nothing on the standard pins either.
In Setting serial baud rate on ESP-IDF does nothing
> If your network hardware allows it, you should pin the device to the closest one. In Wi-Fi it's always the client's choice on where to connect to at the end of the day and any hacks the APs try to do to steer clients are "suggestions" at best and "signal ruiners for everyone" at worst. You may be better off specifying which specific AP you want to connect to by specifying the BSSID argument in the WiFi.begin() call on the ESP32 side https://github.com/espressif/arduino-esp32/blob/master/libra... Alternatively, if you REALLY want to force it, the sanest way is to use a uniquely named IoT SSID on each AP so there would be no other option for those clients to choose to latch on to (and you can leave the other SSIDs shared for normal clients). E.g. "IoT-1", "IoT-2", "IoT-3" on 3 separate APs. It may clutter up device screens more when you l
Read the rest
ist available networks but it's just visual because, as far as airtime, they all beacon just as often if the names are the same or not anyways. > From what people and the internet tell me you should set the band width on the 2.4 Ghz network that your boards use to 20 Mhz, not 40, not 60, and definitely not automatic. This is spot on in that 20 MHz is the ideal channel width on 2.4, doubly so for just an ESP32. Some things to add are I'd say it should apply to any of your 2.4 GHz networks unless you live out the sticks and really want to race a few extra mbps out at the fringe of your AP coverage (and even then the wider channel width is probably going to make your SNR worse even in the sticks). Also, I don't believe the ESP32 supports 60 MHz in the 2.4 GHz space at all (it's certainly not an option in the Wi-Fi standard). I'll also tack on that the ESP32-C6 can be worth springing for if these kinds of thing are a particular concern as it support Wi-Fi 6, which has a few enhancements for connecting lots of IoT devices without so much noise.
In ESP32 WiFi Superstitions
I've been working on getting a calendar on an Inkplate 10. Great hardware but my god is the Arduino software awful. It doesn't even have incremental builds! A one line change to my code means it completely recompiles a ton of libraries including mbedtls! The edit-compile-run cycle is like 3 minutes. Awful. Arduino code and APIs are also really badly designed, and badly documented. The Inkplate uses an Xtensa ESP32 so the network code uses this crap: https://github.com/espressif/arduino-esp32/blob/2.0.17/libra... Does `int read();` block? Zero comments so you'll have to read the code, which by the way is very hard to find because of course intellisense doesn't work in the gimped VSCode that Arduino is calling their IDE (it's better than the old one at least, though it wouldn't take much). The really frustrating thing is that Arduino has ba
Read the rest
sically zero competition. I was hopeful for Mbed Studio for a while but they spent so long fucking it up with web based compilers, terrible home-brewed build systems (yotta? I think they went through several bad attempts), before finally doing the right thing (Mbed Studio) that I think everyone had given up waiting and they killed the whole project. Also it's obviously ARM only. And I can't see that really changing. I think there's PlatformIO but I think that just wraps the Arduino code in less awfulness. As long as hardware manufacturers are writing their drivers and examples for Arduino it's going to be hard for anyone else to compete. Ok I think my one-line change has finished compiling now... /rant
In I replaced my son's school timetable app with an e-paper
If you ever have to do that again it might be worth considering some hardware assistance. An ESP32 S2 or S3, from what I've read, can act as a USB HID and emulate a keyboard from the computer's point of view. The necessary code is included in the ESP32 libraries for Arduino, with examples [1], so for software all you'd need is the Arduino IDE or command line tools, which run fine on Linux. With that it would be easy to build a temporary "type my secret key" dongle. An ESP32 S2 or S3 dev kit board from a reputable source along with the other necessary hardware would probably be under $20. There are also some models of Arduino that have the necessary USB support such as the Arduino Leonardo [2], but the Leonardo is more than an EPS32 at the non-sketchy sellers I've seen. Even if you've never played around with microcontrollers this would be
Read the rest
In Apple Passwords’ generated strong password format
Just to answer the mystery, it seems the foot-gun is that smaller String()s appear to work "by accident" due to an optimization, and I have to call a method on the String object before passing it onwards. [0] > I actually don't see a "Serial.printf(...)" method I think it's coming from the ESP32-specific libraries. Some cursory searching didn't find the spot, but it may be some magical preprocessor directive stuff. [0] https://github.com/espressif/arduino-esp32/blob/7a82915de215...
In Panic at the Job Market
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. They’re so simple the NRE is definitely worth the unit cost if you’re already rolling a daughter board at 1k units.
In The Nano ESP32
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/72c41d09538663ebef80d29eb986cd5bc3… 2. https://www.reddit.com/r/esp32/comments/t9aqr6/what_on_earth_is_my_esp32_doing_bet… 3. https://github.com/arduino/ArduinoCore-renesas/blob/149f78b6490ccbafeb420f68919c38… 4. https://github.com/arduino/ArduinoCore-avr/b
Read the rest
lob/eabd762a1edcf076877b7bec28b7f99099141473/cores/arduino/main.cpp#L46
In Arduino Uno R4 WiFi
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
In Connect to your Raspberry Pi over USB using gadget mode
Arduino boards (the ones based on AVR chips) use the GCC C++ compiler adapted for the AVR. The current IDE version 1.8.10 uses avr-gcc-7.3.0 (https://github.com/arduino/Arduino/blob/master/hardware/pack...). The previous IDE version 1.8.9 used avr-gcc-5.4.0. The compiler is configured to follow the -std=gnu++11 variant. Here are the flags: https://github.com/arduino/ArduinoCore-avr/blob/master/platf... If you use other Arduino-compatible boards (e.g. ARM chips, ESP8266 or ESP32), they will use a different C++ compiler and different settings. See for example: * SAMD uses 'arm-none-eabi-g++' (https://github.com/arduino/ArduinoCore-sam/blob/master/platf...) * ESP8266 uses xtensa-lx106-elf-gcc (https://github.com/arduino/esp8266/blob/master/platform.txt) * ESP32 uses xtensa-esp32-elf-gcc (https://github.com/espressif/arduino-esp32/blob/master
Read the rest
/platf...) So Arduino programming is "just" C++ with additional libraries and an IDE. Though I wrote "just" in quotes because they've done a lot of work to make things easier and approachable for beginners, so I don't want to diminish their work.
In Some things every C programmer should know about C (2002)
The term "Arduino" is for the ecosystem; it doesn't refer to any singular microcontroller. At one time, long ago, it did - mainly the ATMega8 platform that was at the heart of the Wiring project, which ultimately begat the original Arduino (and Processing). But the ecosystem expanded; first via different Atmel microcontrollers (many which became so-called "official" platforms), then eventually to other microcontroller platforms (and Microchip, maker of the venerable PIC microcontroller platform, eventually purchased Atmel). The ESP8266 is a part of that ecosystem today, along with other so-called "ESP" controllers: https://github.com/esp8266/Arduino https://www.esp8266.com/wiki/doku.php?id=start-with-esp-12-a... https://github.com/espressif/arduino-esp32 It wouldn't surprise me to find out there is a core available for the Raspberry Pi -
Read the rest
or at least for the SOC on the board... Hmm: https://github.com/me-no-dev/RasPiArduino I looked to see if I could find any kind of "real" core for the Raspberry Pi or Broadcom SOCs but I didn't find anything other than the above, which seems to be in active development. Honestly, though, you wouldn't really use a Raspberry Pi that way; more likely you would use the Raspberry Pi as a development platform for an Arduino ecosystem platform, that would likely be attached to the Pi via USB or some other method. People, especially beginners, are often confused by what the name "Arduino" means; as I've noted, today it's an ecosystem composed of many different platforms, some "official", but many more that are not. ...and this of course doesn't get into the whole "real" vs "knockoff" vs "counterfeit" debate (which is a whole 'nother story).
In Pi-Top 4

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.