Creative Commons images are CC BY-NC-SA 3.0

Description: The SparkFun ESP32 Thing is a comprehensive development platform for Espressif’s ESP32, their super-charged version of the popular ESP8266. Like the 8266, the ESP32 is a WiFi-compatible microcontroller, but to that it adds support for Bluetooth low-energy (i.e BLE, BT4.0, Bluetooth Smart), and nearly 30 I/O pins. The ESP32’s power and versatility will make it the foundation of IoT and connected projects for many years to come.

Why the name? We lovingly call it the “Thing” because it’s the perfect foundation for your Internet of Things project. The Thing does everything from turning on an LED to posting data with phant.io, and can be programmed just like any microcontroller. You can even program the Thing through the Arduino IDE by installing the ESP32 Arduino Core.

The SparkFun ESP32 Thing equips the ESP32 with everything necessary to program, run and develop on the wonderchip. In addition to the WiFi/BLE SoC, the Thing includes an FTDI FT231x, which converts USB to serial, and allows your computer to program and communicate with the microcontroller. It also features a LiPo charger, so your ESP32 project can be battery-powered and truly wireless. Additionally, the board includes a handful of LEDs and buttons to aid in your development.

Get Started with the ESP32 Thing Guide

Features:

  • Dual-core Tensilica LX6 microprocessor
  • Up to 240MHz clock frequency
  • 520kB internal SRAM
  • Integrated 802.11 BGN WiFi transceiver
  • Integrated dual-mode Bluetooth (classic and BLE)
  • 2.2 to 3.6V operating range
  • 2.5 µA deep sleep current
  • 28 GPIO
  • 10-electrode capacitive touch support
  • Hardware accelerated encryption (AES, SHA2, ECC, RSA-4096)
  • 4MB Flash memory
  • Integrated LiPo Battery Charger

Documents:

Customer Comments

  • Well that sold out quickly. Any ETA on the next batch?

  • No U.FL antenna connector?

  • The Espressif CEO mentioned in a Facebook post (https://www.facebook.com/groups/1499045113679103/permalink/1731855033731442/?hc_location=ufi) that the ESP32 and ESP8266 have 5v tolerant GPIO. Can you confirm that this is the case on the ESP32 Thing and a 5V input won’t fry anything?

  • There appears to be a typo on the graphical datasheet with GPIO2 labeled as GPIO21.

    • M-Short / last week / 1

      Yeah, it is on my list to fix, just not super high priority. Maybe this week.

  • Does anyone else have trouble with the ESP32 chip getting very hot (I’ve measured at about 46 C max – painful to the touch within a few seconds) and possibly having flaky behavior because of this? I’ve had this experience and seen some other anecdotal evidence of this on the ESP32 forums. Thanks, -c

  • Has anyone tried capacitive touch?

  • I have the ESP32 Thing and got it working in Arduino IDE. I can down load blink and other Sketches. When I wrote a Sketch for the WS2812B and use getCycleCount(void) for timing cycles it looks like the ESP32 is running at 160MHz instead of 240MHz that is in the default in the Espressif’s esp-idf GitHub repository. I selected ESP32 DEV MODULE in Arduino IDE.

    Any suggestions on how to switch to the faster speed?

    My Sketch stops executing after about 45 seconds of running my application. Resetting start it back up for about 45 seconds. The problem looks like it is in the Arduino delayMicroseconds(100); which I call every 1ms. If I replace this with delay(1); or use _getCycleCount() spin delay I do not have a problem.

    When i am outputting the Neopixel BitBanger I lock interrupts during the high state to insure timing. I notice that the CPU looks like it stops executing every 1ms for about 8.5us. It does not matter if interrupts are locked or not. This is a show stopper for outputting to Neopixels. Could this have something to do with the second CPU servicing WIFI beacon (every 1ms) and locking I/O inhibiting my CPU from doing GPIOs?

  • Just checking - do these come with male headers for breadboarding?

    • Because of the various uses (male headers for breadboarding, female headers for plugging jumper wires in directly, or just soldering wires and parts directly on the board) we do not include headers on most of our boards.

  • GPIOs 7–11 (SDIO) aren’t broken out? Can I not use an SD card in 4-bit mode with this board?

  • Hello I tried to hook up a serial LCD on the RX/TX pin but it seem the 32Thing doesn’t like that I get this error and so far I tried to tweak the libraries but no luck so far. It’s also the case for the SPI too.

    fatal error: avr/interrupt.h: No such file or directory #include <avr/interrupt.h> compilation terminated. exit status 1 Error compiling for board ESP32 Dev Module.

    • According to GIT SPI and Serial are implemented in the Arduino Core. Can you post the code so we can try it out ourselves?

      • Sure I tried both code from the tutorial over here adjusting the pins (I post the link to avoid polluting the thread with code too much.) https://www.sparkfun.com/tutorials/246

        Thanks for the help :)

        • Ok it might be a day or so b4 I get to it. I have a lot of cooking to prep for tomorrow.

  • When using a single cell LiPo, how do you set the charging? I assume it’s like the Sparkfun LiPo charger (PRT-12711) where you cut through a trace, connect two jumper pads or use resistors to set the charging system output.

    I’m planning on using the 110mA LiPo battery, PRT-13853.

    Exact specs for that cell would be greatly appreciated. :-)

  • I got one of this in a group buy with a friend, and it’s a wonderful little board. The only issue is that you can’t put a switch between the battery/charge system and the rest of the board. So it keeps discharging unless you unplug the battery. Is there a solution to this other than to splice a switch into the battery connector? That’s not an ideal solution, since you’d still need to have the board powered while charging, which slows the process down.

    Edit: Adding a switch between RST and GND does the trick!

  • I just received this and got it working fine. If you follow the instructions on Github (Sparkfun links to it) everything sets up fine for me. There were a couple of ‘gotchas’

    1. First time I went to build there was a python error (it appears the build process uses python). The error was on the line “import serial” and it was because pyserial was not installed on my machine. If you run into this, try running the following on a command line: pip install pyserial

    2. Sparkfun didn’t say this but one you compile and upload the program doesn’t automatically run (at least for me). The blue led will be dim. Just hit reset and the code will then execute.

    Unlike the ESP8266 you do not need put it in bootloader mode at all. At least… that is how it worked for me :-)

    If I see any other gotchas I’ll post them here.

    • I also think this thing has power consumption ‘features’ like the ESP8266. It is why I need to reset the board on occasion.

      Also SSL doesn’t appear implemented yet. Bummer.

  • Anybody managed to get the install for Arduino on Windows 10? After installing phython 2.7 and downloading the core files, the python get.py simply gives SSL errors and does nothing. (Also tried on 3.? but did not work either.)

    On the Mac I managed to get it to install but I need it running on a Windows laptop.

    • I just followed the instructions and I had no problems except when building in the Arduino IDE I got an error saying that python could not import the serial library but I easily fixed that.

      • Did you got this error by any chance ? “ESP32 Dev Module, 80MHz, 921600” arduino isp programmer

        exec: “python.exe”: executable file not found in %PATH% Error compiling for board ESP32 Dev Module.

        I’m not sure if I’ve missed something. Thanks

        • You either did not install Python 2.7 (not Python 3) or you did but it is not set in your PATH variable. If you installed it you should set your system PATH variable to reflect the directory where it.

  • Does anyone know how to make this RELIABLY load programs from the arduino IDE? It does not work unless you time it VERY EXACTLY (and I am not sure when exactly…) pressing the reset button. I only succeed in uploading once every 20 attempts. This is highly frustrating. Also: there should be a way to get this to load a program and then run without having to press reset so many times. I imagine the scenario where this device is in a box and the reset button hard to reach. Not very convenient so far.

    • I’m sort of seeing a similar thing. I was able to flash it successfully once, both using the Arduino IDE and the esp-idf compiler. However, since, I’m getting stuck at “Writing at 0x00010000… (20 %)”. I see on the reviews that a user was able to fix this by holding the PIN0 button down while flashing, but this doesn’t seem to work for me. Any suggestions?

    • Hi. Mine seems to be working and I am not having the same problem. After following the instructions (use the instructions on GIT release notes not on Sparkfun) I was able to compile and upload. What I noticed was the LED was ‘dim’ and so I hit reset. The code seems to execute fine after that.

      I took the blink program and changed the timing so it would be on for 3 seconds and off for 500 mills. Waited for upload to complete and then hit reset.

  • if my country is on the restricted list, Can i let a backorder? So when you can ship to my country be some of the first?

    • At this point because of the restrictions on this part currently we are restricted until November 27th to only ship to a limited number of countries. The good news is we have multiple batches of The Thing set to be available at that time so anyone that is currently not able to place an order should be able to then!

      If you have any other questions on the issues with exporting or placing an order please contact us in Customer Service at cservice@sparkfun.com.

  • I have been trying to download blink to the code. I very carefully followed the instructions for installing Arduino Core. Everything compiles, but I cannot get it to upload, the connection attempt keeps timing out. I held the 0 button down while starting the upload, nothing.

    I tried running esptool tool directly: ./esptool.py –chip esp32 –port /dev/ttyUSB0 -b 115200 read_mac I also get the timeout message. There I held the 0 button down, started running esptool, and released the button as the connect attempts started.

    I also tried downloading the esp-idf. Same issue.

    I am doing this on an Ubuntu box. I have permissions to write to the serial port. pyserial is installed. Python 2.7.12.

    I notice that the red power light is on, but when I press either the RST button or the 0 button, I see nothing changing with any of the LEDs.

    Thoughts?

Customer Reviews

3.8 out of 5

Based on 20 ratings:

5 star
6
4 star
9
3 star
2
2 star
1
1 star
2

1 of 1 found this helpful:

Neat device but software environment still very bad

On Windows 10 the instructions on how to make it work in Arduino simply does not work. The phython get.py (using python 2.7) gets SSL errors and simply does not do anything. Searched for solutions but found none.

Managed to get things going on Mac OS.

However things are not rosy here either: The bootloader does not activate unless you press reset in a very precise moment (but it is not documented exactly when). I only succeed in uploading things once every 20 times from Arduino IDE. Also then a second reset is needed to have the program run. This should improve and should be done all by the software.

Also: still not clear how to make the BT and dual processors run.

This looks like it could be a very interesting product, the hardware looks great. However the software tools are simply not working as well as they should.

Yes, the environment for this is still very young, and all feedback is appreciated. I would suggest contacting our Tech Support Team, and see if there are solutions yet for the issues your experiencing.


1 of 2 found this helpful:

ESP32

Hardware stable and very helpfull for first steps into the ESP32. But the setup for the programming is not professional. Why is it not possible to sell a working IDE. Really, i can’t understand why even the supplier doesn’t deliver a professional IDE.


Nice hardware just not ready yet on the software

Arduino is working for the basic! Easy to setup. The IDF sdk is there but a lot of functionality is missing. They should be fine to use in a couple of month. Right now this board is note for beginner. Do not expect to work out of the box. It require a lot of time to setup and work through the documentation. How and i using Windows 10.


Sparkfun needs to improve its processing and shipping orders

My review is about how slow Sparkfun shipping orders. I ordered this item more than a week, the order says barely left their facility. Unacceptable! If you guy want to beat Amazon, you guys needs to improve your shipping and processing orders.


Nice, especially with LiPo support

I placed several orders for ESP32 based boards, Sparkfun shipped this in just a few days. Still waiting for the rest. It works just fine, and I especially appreciate the LiPo support circuitry. I don’t use the Arduino IDE and could care less about it – the “idf” (new name for the sdk?) for C programming works great.


Fix for Windows Arduino IDE

Hi- So support found a fix for me today. I was able to upload my first program, however after that, I was stuck. It would error out during the program upload process. The fix is to wire PIN 0 to GND, then flash your code. Once code is uploaded, pull the wire from PIN 0 to GND and hit the RESET button. When you hit RESET, your code will execute.

Hope this helped someone else. Sparkfun tech support was great for helping me to get this working! Hopefully changes to the Arduino IDE component will be made that alleviate this a bit.


Great capabilities but the libraries are still in development

This board is actually great. Sparkfun made a very nice dev board with this one. No complaints in regard to Sparkfun’s hardware. The ESP-IDF and Arduino libraries are still in development and are missing a few features like captive portal. Overall, the ESP32 is a very interesting IoT chip and I would recommend the ESP32 Thing as a dev board if you are looking to get into using it in a project.


Frustrating set up

After many tries and being utterly frustrated with it I returned it. May provide great features but not the easiest thing to set up.


Review of the board (With notes on the SDK)

The board is fantastic– the only reason I didn’t give it 5 stars is the micro USB port comes off very easily; so keep an FTDI cable handy in case (mine came off the second time I unplugged it.

Now the SDK, which really has no bearing on the quality of the product. The Arduino core isn’t ready to use the full features of the chip. I’d recommend using the ESP Programming Guide (https://esp-idf.readthedocs.io/en/latest/index.html), which allows you to use all the features. But it is a lot to process, so set aside some time.

Overall, the board itself is pretty great! Just keep in mind the platform is under active development.

Sorry to hear about the micro USB port coming off. We’ll be happy to send you a replacement of you’d like, just get in touch with our tech support team, and they’ll hook you up. Happy Hacking!


Arduino Core Not Finished, but its an Exciting Platform

The combination of Bluetooth and Wifi in this device makes possible interesting applications involving mobile apps and IoT.

That said, as a previous reviewer pointed out, the Arduino Core isn’t finished – but, it’s a start. I’m using a Mac and didn’t have any problem following the instructions to install the core, connecting the ESP32, and programming. I appreciate not having to pull out my FTDI cable since the USB/Serial interface is built in.

Programming from the Arduino IDE happens reliably without pressing a reset button for me. However, after programming, to run the program I do have to press reset. Not a huge inconvenience, but …

Release notes for the Arduino Core mention that WiFi Client/Server aren’t working fully yet. Though, digital i/o, interrupts, Serial, SPI, Wire, and WiFi are generally working. No mention of Bluetooth, cap-sense, encryption or other features on the ESP32 being supported yet.

So, all said and done, I’m pleased with this “Thing” and looking forward to exploring its possibilities. Though, in the near term, I might look into installing the espressif toolchain instead of relying exclusively on the Arduino Core.


Not quite there yet, Arduino wise.

I have it driving shift registers that are driving nixie tubes, pulling time from the internet, but no access to RTC and BLE. Also it crashes and I don’t seem to get any sort of debug output in the serial monitor to figure out why its crashing. So, looking forward to a better Arduino support for it and more libraries such as RTC and BLE libs. Also better debug support for it. Would like to use this in my nixie clocks to provide Blue tooth and wireless support to set the clock and control settings.


On the bleeding edge

A really cool board. Here is how I used mine. https://github.com/Ebiroll/esp32_ultra The software is still work in progress but already usable.


The hardware is great!

I’ve just started using the “thing”, but so far have not had any problems installing the arduino core and getting the “hello world” script working on Win 10 pro 64 bit. Looking forward to when the analog support (in/out) is working. Thanks for a nice piece of h/w!


Good reliable product as you would expect from SparkFun

Early in the development phase for this product so you can expect some teething problems with the software IDE. Arduino support is sort of there but as others have said you need to reset it sometimes during load.

I have it running with WiFi and ST7735 LCD and looking good.

David


Good potential not good fit.

I currently have a number of projects using the ESP8266 Thing via the Arduino interface. My template is easy to modify and lets me spin up new instances in a few minutes and works seamlessly with the Adafruit Huzzah Feather.

Although I am excited about the cool things the ESP32 Thing can do, until the development tools mature I’ll probably shelve it and devote the time to looking at the Edison!


One out of two units DOA

I ordered two of these units. Just now I discovered one of them is dead on arrival.

Sorry to hear that. Please contact our tech support team, they’ll be able to help you resolve the issue.


Working Great!

Purchased three for a demo/presentation. Just finished my demo code involving accelerometers and LED light strips with MQTT control of same. Finished a burn in test with all three units running for 24 hours today. The ESP32 Thing devices were rock solid, wifi was solid, and MQTT broker server reported solid connections for entire duration. Nice. Using ESP-IDF, FreeRTOS, etc, directly, not using Arduino libraries.


Related Tutorials

ESP32 Thing Hookup Guide

October 27, 2016

An introduction to the ESP32 Thing's hardware features, and a primer on using the WiFi/Bluetooth system-on-chip in Arduino.