SparkFun ESP32 Thing

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 adds 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 your chosen platform, 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 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.

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

SparkFun ESP32 Thing Product Help and Resources

ESP32 Thing Hookup Guide

October 27, 2016

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

LuMini 8x8 Matrix Hookup Guide

January 24, 2019

The LuMini 8x8 Matrix (APA102-2020) are the highest resolution LED matrix available.

ESP32 Thing Motion Shield Hookup Guide

November 16, 2017

Getting started with the ESP32 Thing Motion Shield to detect movements using the on-board LSM9DS1 IMU and adding a GPS receiver. Data can be easily logged by adding an microSD card to the slot.

Live Spotify Album Art Display

January 23, 2019

Learn how to turn our 64x64 RGB LED Matrix Panel into a display for your current Spotify album art using an ESP32.

ESP32 Environment Sensor Shield Hookup Guide

July 6, 2017

SparkFun's ESP32 Environment Sensor Shield provides sensors and hookups for monitoring environmental conditions. This tutorial will show you how to connect your sensor suite to the Internet and post weather data online.

Introduction to MQTT

November 7, 2018

An introduction to MQTT, one of the main communication protocols used with the Internet of Things (IoT).

IoT Power Relay

May 21, 2018

Using the ESP32 to make a web-configured timed relay.

Internet of Things Experiment Guide

November 23, 2016

The SparkFun ESP8266 Thing Dev Board is a powerful development platform that lets you connect your hardware projects to the Internet. In this guide, we show you how to combine some simple components to remotely log temperature data, send yourself texts and control lights from afar.

IoT Weight Logging Scale

May 9, 2018

This tutorial will show you how to make a scale that logs your weight to a custom website on the Internet. The principles can be extrapolated to any type of data.

Using Artnet DMX and the ESP32 to Drive Pixels

March 29, 2018

In this tutorial, we'll find out how to use Resolume Arena, a popular video jockey software, to control custom-made ArtNet DMX fixtures.

WiFi Controlled Robot

May 2, 2018

This tutorial will show you how to make a robot that streams a webcam to a custom website that can be remotely controlled.

How to Load MicroPython on a Microcontroller Board

September 4, 2018

This tutorial will show you how to load the MicroPython interpreter onto a variety of development boards.

I2S Audio Breakout Hookup Guide

September 6, 2018

Hookup guide for the MAX98357A I2S audio breakout board.

MicroPython Programming Tutorial: Getting Started with the ESP32 Thing

September 26, 2018

MicroPython is an implementation and subset of the Python 3 programming language that can be used on microcontrollers. This guide will walk you through writing MicroPython programs for the ESP32 Thing development board.

Using Home Assistant to Expand Your Home Automations

May 9, 2019

An introduction to Home Assistant, an open source home automation hub.

1 of 1 found this helpful:

Make sure you have pyserial installed.

In addition to the standard python module (version 2.7+) you will also need to make sure to install the pyserial module as well.

1 of 1 found this helpful:

Issues uploading code?

If you're having issues uploading code, you might try grounding GPIO 0 and then uploading code. After you successfully upload you will need to restart the ESP32 Thing.

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #1492362 / about 6 years ago / 2

    Should have paid attention to #1102822's review ("Serious hardware issues - look elsewhere") as I'm seeing exactly the same problems. Wifi bandwidth on this board is about 20x worse compared to the ESP32 -DevKitC (ESP-WROOM-32), using the official iperf example and identical environments (same Wifi network, clients, etc.).

    This is also hinted at in, with the potential reason being the 26 MHz crystal used on the Sparkfun board. Or maybe it's the antenna design?

    It's really unfortunate that this hasn't been fixed.

    Unfortunately can't leave a purchase review as I've got the board from an Australian distributor (Tronixlabs).

  • Member #436136 / about 8 years ago / 2

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

  • Member #294643 / about 8 years ago / 2

    No U.FL antenna connector?

    • MeGrimlock / about 7 years ago / 1

      Honestly ... a U.FL connector is something big that has been missing on these kind of dev boards.

  • The WiFi was pretty much unusable until I added a 2.4pF 0603 cap at C28. It attenuates the wifi RSSI, but dramatically improves the connection reliability and stability.

  • Member #1100065 / about 2 years ago * / 1

    Where would you put a power switch to power on or off the device? It seems like the voltage regulator's EN pin is tied to the VIN... So is there another way to turn off the device when not in use, while still charging the battery? Since it's battery powered, it doesn't make sense to have it on 100% of the time having to charge the battery every so hours.

  • Member #686559 / about 3 years ago / 1

    Question: Is it a bad idea to use GPIO pin 1, 2, 32, 33 as GPIO hooked up to external circuitry? They are assigned to UART and XTAL on the ESP32 Thing. Thanks in advance.

  • Doctor Who / about 3 years ago / 1

    Okay I have gone ahead and taken the plunge. And mine was bought from Micro Center today. The thing performed as expected regarding both WiFi and via the BLE functions.

    In both cases after sending it the all important blink sketch I needed to hold the reset button down and then release it to trigger a load function to enable it to work further. The big problem is still the classic, where do I go from there.

  • Is the inverted F PCB trace antenna better than the typical TRACE_ANTENNA_2.4GHZ_15.2MM?

  • Is the inverted F PCB trace antenna better than the typical TRACE_ANTENNA_2.4GHZ_15.2MM?

  • It works clearly and without glitches

  • Corndogjoe / about 5 years ago / 1

    Is there a way to press the "BOOT" button like other ESP32 boards have? My ESP32 Thing is stuck in a boot loop and I cannot flash new firmware. Most guides recommend holding the BOOT key while uploading but I cannot find it on this board. This board is very nice but I find it surprising that it lacks such a basic feature.

  • Member #69070 / about 6 years ago / 1

    Looking for code examples for this board, the free pfodDesigner app generates code for Wifi, Bluetooth and BLE connections. The pfodDesigner is primarily aimed at supporting pfodApp, but the generated code provides templates you can use yourself.

  • Member #134773 / about 6 years ago / 1

    Has anyone used one of these ESP-32 "Thing"s (or the Adafruit "Feather HUZZAH 32") to talk to Neo-Pixels (aka WS2812) addressable LEDs? (Unfortunately, the DotStar LEDs are not available in formats appropriate to the project I have in mind.)

    • Member #134773 / about 6 years ago / 1

      Happened to find something of an answer over on the Adafruit Forums: it seems that there's a timing issue if you try to drive more than 33 Neo-Pixels from an ESP-32, but it looks like it will work for shorter strings, and there may be a work-around for that limitation. (Fortunately, my project requires fewer LEDs than that!)

  • WJCarpenter / about 7 years ago / 1

    Minor typo in the graphical datasheet. Pin "HSP_ID" should be "HSPI_D" (temporarily baffled me, but I got over it. :-))

    • M-Short / about 7 years ago / 1

      Thanks, so many letters! So many acronyms! I'm pretty sure every one of the graphical datasheets has a typo somewhere. Thanks for the heads up though, I'll fix it one day.

  • juliusbangert / about 7 years ago / 1

    Very exciting... I have two questions :

    • Is there a clever way to achieve more than 10 capacitive touch pins through the chip’s internal pin multiplexing feature without additional components?

    • Can I connect a single 2200mah 18650 Lithium Battery to the battery terminals to power my project with capability to recharge through USB?

    • aspz / about 7 years ago / 1

      I don't know about your first question. To answer your second question, yes you can connect your battery to the VBAT and GND terminals. Plugging a power source into the usb port will charge the battery (the charge light will turn on).

  • Aaron Allar / about 7 years ago / 1

    So if your wanting to do Bluetooth work with is using arduino cant.

    • Brad10 / about 7 years ago / 1

      The lack of support for BT/BLE via Arduino IDE is a bummer. For Arduino folks like me, it means this board essentially doesn't have BT/BLE.

      • Brad10 / about 7 years ago / 1

        And no analog I/O in the Arduino support yet? Ouch. I think I may put this board back in the "to give away" box until the Arduino IDE support is closer to ready. To reiterate: If a feature isn't supported in the Arduino IDE, it essentially doesn't exist for me.

  • Member #424156 / about 7 years ago / 1

    If it has Li-Po charge, can it measure the battery level so to warn the owner to recharge it?

    • aspz / about 7 years ago / 1

      No it cannot. You have to create a voltage divider and wire it into one of the ADCs. Otherwise, the Adafruit HUZZAH32 – ESP32 Feather DOES have an onboard voltage divider hardwired into one of the ADCs.

  • MeGrimlock / about 7 years ago / 1

    hi, it´s been 8 months since the last update on the Github library, I bought 5 of these 4 months ago and still no news on one of the main features ... NO BLE support.

    When is it going to be available via Arduino libraries provided by developer (you guys) ? Because I still feel like I was ripped of with a product that doesn't provide what it promised ... BLE + WIFI Support.

  • Member #296929 / about 7 years ago / 1

    Are there dimensions available? I'd like to make a small PCB around this.

  • jalospinoso / about 7 years ago / 1

    Hey, I'm getting an issue with the ESP32 ( and Espressif told me to "erase all flash and try again." I'm using the Arduino IDE. Can anyone point me in the right direction?

  • Member #437944 / about 7 years ago / 1

    I was looking at the layout and I don't think C23 serves any purpose. It looks like it was left behind from an older design? Can someone confirm that this is unnecessary?

  • Member #902872 / about 7 years ago / 1

    What's the max current per I/O pin?

  • I'm seeing an issue where the processor falls back into interpreter mode when I connect something to pin 12. After looking at the schematic it looks like this is an MTDI pin which has some special startup purpose? Is there anything I can do to allow me to use this pin?

  • Member #401984 / about 7 years ago / 1

    Does anyone know how to fix this error when uploading to the ESp32 Thing with the Arduino IDE.

    "A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header"

    thanks for any help

    • VonChurdhousen / about 7 years ago * / 1

      I had the same error among others. I am using the Arduino IDE on Windows 10 per the instructions on Git. Uploading works by holding down the Pin0 button (or use a switch) until the flashing begins (may be difficult to tell exactly when that is). Then let go (or unswitch) and it should be fine until it's done flashing.

  • The Espressif CEO mentioned in a Facebook post ( 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?

  • VonChurdhousen / about 8 years ago / 1

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

    • M-Short / about 8 years ago / 1

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

  • Member #390038 / about 8 years ago / 1

    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

    • TRON / about 7 years ago / 1

      I'm posting this comment in case anybody else tries their ESP32 Thing and wondering the same thing after powering up the board for the first time. It appears to just be the program that's already flashed to the SPI flash chip that is causing the heat issues.

      Once I've tried out any of the examples in the esp-idf repository the chip no longer heats up, even when using wifi for a long duration. I've experienced this with the two boards I've ordered.

      Also best to enable the external 32KHz oscillator (disabled by default) in the make menuconfig and set SPI flash to 80MHz with qio (quad input/output) as default is just 40MHz with dio (dual input/out).

  • Member #874600 / about 8 years ago / 1

    Has anyone tried capacitive touch?

  • Member #560222 / about 8 years ago * / 1

    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?

    • M-Short / about 8 years ago / 1

      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.

  • PointyOintment / about 8 years ago / 1

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

    • Hubberthus / about 7 years ago / 0

      If you solder wires to the onboard flash chip's legs then you get the GPIO6-11 :) But there's the HS2/SDIO2 interface which can be used for 4-bit SD cards, and those pins are broken out.

  • loicklegacy / about 8 years ago / 1

    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.

    • denbo68 / about 8 years ago / 1

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

      • loicklegacy / about 8 years ago / 1

        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.)

        Thanks for the help :)

        • denbo68 / about 8 years ago / 1

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

  • JustSomeGuy / about 8 years ago * / 1

    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. :-)

  • TwystNeko / about 8 years ago * / 1

    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!

  • denbo68 / about 8 years ago / 1

    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.

    • denbo68 / about 8 years ago * / 1

      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.

  • Member #606787 / about 8 years ago / 1

    Anybody managed to get the install for Arduino on Windows 10? After installing phython 2.7 and downloading the core files, the python 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.

    • denbo68 / about 8 years ago / 1

      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.

      • loicklegacy / about 8 years ago / 1

        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

        • denbo68 / about 8 years ago / 1

          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.

  • Member #606787 / about 8 years ago / 1

    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.

    • Yashc / about 8 years ago / 1

      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?

    • denbo68 / about 8 years ago / 1

      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.

  • MioCid / about 8 years ago / 1

    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

  • kmhughes / about 8 years ago / 0

    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: ./ --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.


    • Hubberthus / about 7 years ago / 0

      Do you see any output on the serial when you press the reset button? By default the bootloader should print out some stuff. And during this, the blue LED next to pin "5" is at about half brightness. (By the way, I've ordered 2 boards and both had blink flashed on them by default. I think it's a "SparkFun default")

Customer Reviews

3.8 out of 5

Based on 69 ratings:

Currently viewing all customer reviews.

3 of 3 found this helpful:

Great HW on a nicely done board

Even before I received this little piece of beauty I was blown away by its capabilities, reading over all the documentation. Clearly way much more than the ESP8266. With the onboard FTDI, automatic reset mechanism and the extra battery charger, it is an easy-to-handle IoT Thing. The SW side is also great. Following the steps, the esp-idf setup was done quickly (I have a Linux), and setting up a project also took me a few minutes. Then "make flash" and without touching anything, the code is upladed and the board resets. I couldn't believe how easy it was and that it worked for the first try. Nothing ever works for the first try. :) I won't use Arduino IDE for this. It is far away from an Arduino, and the guys working on the vitrual core will have a tough time. If you want to use it with the Arduino IDE, please be patient. Otherwise use the esp-idf, which is growing fast, and many things are already there.

6 of 6 found this helpful:

Serious hardware issues - look elsewhere

These boards have serious hardware issues. Bluetooth connections are unreliable at best and, as another review mentioned, wifi is pretty much unusable. Although the esp32 supports both 26 MHz and 40 MHz crystals, all the espressif development teams testing seems to be done on a 40 MHz crystal and there are plenty of forum posts on the esp32 forum indicating that 26 MHz crystals cause wifi/Bluetooth issues. This sparkfun board uses a 26 MHz crystal. I don't know if this is the issue or not, but either way I would not buy these boards. I have since purchased boards that use the ESP-WROOM-32 module and everything works without issue. I normally like buying from Sparkfun because everything is open source and generally well documented, so it was quite disappointing that this board performed as poorly as it did. I wasted a lot of development hours debugging what I thought were software issues.

The esp32 chip itself is a pretty cool device if you're comfortable working in the espress-if development environment.

1 of 1 found this helpful:

Arduino library is very limited

I looked forward to trying out this board as a general IoT board, but I'm not a fan of the not-yet-finished Arduino library for the board.

Carefully read what isn't yet supported for Arduino, and decide whether the board is worth the price based on what features you can use in Arduino (assuming you're an Arduino developer).

Last I read, there's no Arduino BLE support or analog I/O support, and the WiFi library for Arduino has no Server or UDP support. Those omissions really reduce the value of the board for me.

On the plus side, I love the "just plug a battery in" battery support.

Looks like it will be a winner board, once the software shows up.

2 of 2 found this helpful:

Happy with the Thing, so far so good...

Firstly, I had no trouble getting the board running, I just followed the instructions on Espressif's GitHub site for Windows10 after reading the SparkFun Hookup Guide.

I then loaded about 6 different Arduino sketches starting with Blink, then a small sketch to serial input strings and converted them to 'float' (to 6 decimal places) using atof, which worked just fine. Also successfully ran 3 of the WiFi examples. I would love to use the Bluetooth facility at some stage.

I did not have to press 'reset' to upload or run sketches and when they finished uploading they ran immediately. I repeated this process using different baud rates, with no problems. After reading some of the other reviews, I just hope my good fortune continues when I use my Thing in my GPS tracking/logging device.

One observation I have is that the board gets quite hot when its working hard, eg. running WiFi sketches. It also got hot when I plugged in a LiPo battery to charge while the board was powered by USB cord from a 5v Power supply. The battery itself did not get hot though. I wonder how normal this is?

Cheers Geoff

1 of 1 found this helpful:

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.

2 of 2 found this helpful:

nice board

Nice board.

Support software works tolerably well under linux. At this point, the environment is good for advanced users. It helps I've been using freertos for years.

1 of 1 found this helpful:

WiFi doesn't work most of the time

4 out of 5 times the wifi doesn't work. it simply won't connect to my network. If i restart the board enough times it'll eventually connect.

When it starts and won't connect the initial WiFi.status() returns 255 aka WL_NO_SHIELD. When it starts and will connect the initial WiFi.status() returns 6 aka WL_DISCONNECTED.

I've tested this with my own code and the sample code from WiFiClient.ino

I have an ESP8266 Thing dev that has zero issues connecting.


Sorry to hear about the trouble with the ESP32 board. Have you contacted our technical support department to help with this issue? They're typically very good at getting things to work.

5 of 5 found this helpful:

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.

1 of 1 found this helpful:

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.


2 of 2 found this helpful:

Good board for the ESP32

I have a couple of the ESP32 boards to work with, and I really like the sparkfun variant. So far I have been able to connect to my local WiFi, use the SPI interface to connect to a peripheral, and send the data from the peripheral over WiFi to the sparkfun phant server. Oh, and I can do all this while walking around the office thanks to SparkFun's forward thinking design that includes a battery connection. On top of this, I was able to use the Arduino IDE as a rapid prototyping tool. Overall a great buy.

3 of 3 found this helpful:

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.

1 of 1 found this helpful:

On the bleeding edge

A really cool board. Here is how I used mine. The software is still work in progress but already usable.

1 of 1 found this helpful:

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!

1 of 1 found this helpful:

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.

1 of 1 found this helpful:

Capable little board, but I wish the IDF was easier to deal with

This thing is really cool. I unboxed it at home and had it up and running a simple server in about ten minutes. Trying to go deeper, I decided to set up the Espressif IDF...and I still don't have it working properly. In the meantime, I've discovered that using the ESP32 Thing seems to absolutely require a 5V USB port on your development machine. For dev at work, I use an Alienware Steam machine that (for some reason) only puts out 4V from the USB ports. The ESP32 Thing won't work on that box. I actually might not have known the USB ports were non-standard without this issue. So in my eyes, that's a plus. I'll post an in-depth review when I'm not in crunch-time on an ESP8266 project.

1 of 1 found this helpful:

Works great if you don't use the WiFi

This works great but the wifi antenna doesn't work at all unless you're right next to the access point. When using arduino core, the arduino core software constantly hangs and crashes with "Guru Meditation Errors" when an external antenna isn't connected.

2 of 2 found this helpful:

Great but libraries are still in development

Great board but if you are planning to program with the arduino library keep in mind many of the functions are not on line yet.

2 of 3 found this helpful:

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.

1 of 2 found this helpful:

Still some Technical Hurdles

During the Board Config selection in Arduino, the ESP32's pins are assigned. Why does This board have the SPI-SS on pin 2 and not pin 5 like every other ESP32? (According to "pins_arduino.h" in the ESP32 Folder.)

This manifests itself in that when you have your SPI device connected, you can't upload a program!

2 of 4 found this helpful:

Arduino Support Lacking Bluetooth

I bought this thinking it would be easy to use because of the use of Arduino IDE. However their is no useful BLE or BT classic libraries that support this device...

2 of 5 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 (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 8 found this helpful:

NO BLE support, is it a ESP8266 or ESP32 ?

Honestly after buying 4 units, following the install guide for the core in Arduino and realizing that you guys still don't have to implement BLE was extremely frustrating.

Should be well written on item description as this is a SCAM.

Not Yet Implemented:

Bluetooth Analog Input (analogRead([pin])) Analog Ouptut (analogWrite([pin], [value])) WiFi Server and WiFI UDP Real-Time Clock Touch-controller interface

Please inform when the product actually works.

1 of 9 found this helpful:


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.

So Far So Good!

Looking good. I wish it had an on board fuel gauge to monitor battery power left 😊

Half the lib's ain't wrote yet!

So I'm like: bluetooth is probably pretty fun. I think I'll play around with it... but I only have esp8266's, don't I? Wait! Ordered an esp32thing! I'll go read about it! So I find a nice article on sparkfun, flash some code, do some more reading... I discover that the bluetooth isn't real well developed! I can't just copy and past bluetooth keyboard code like I did with the teensyduino! I'll have to learn more things! What's up with that? But no, it's pretty awesome. Works as expected. I'll bloggity blog a post somewhere when I get any kind of hid keyboard thing happening...

Lets me change the colors of my WS2812B LEDs from the toilet!

Seriously, does ezzacly whatzit says it does.

Notable is the V_Battery input supports 6V, so not just for LiPo 1S. Also fine for 3x 1.5V or 4X 1.5V batteries though this seems a bit of a bad idea if you opt to leave the LEDs enabled.

Tons of processing power for WiFi controlled spectrum plotting rave pants.

Excellent little thing, but...

First the bad: If you are thinking of using this with the Arduino IDE, make sure everything is actually implemented. (In my case the ADC but I knew that going in.) You'll have to use the ESP-IDF which under Windows is a bit of a pain. (Easy to setup, but keep your browser handy to look up everything.) It is a FreeTOS environment on the board. Assumed Unix environment for both development environment and code. As I'm mainly used Windows for the past 30 years, I have to try to take a lot of trips in the 'Way-Back machine'.

The good: This is a very powerful little device in a small package. It's specs meet my needs without question. I have no regrets for getting it. In my view this series (this and the ESP8266) are the next evolution of the Arduino mindset. Well worth the effort to learn.

Great for using with esp-idf

I don't know how good this is to use with the Arduino IDE, because I wanted to use it directly with the Espressif IDF and I think it does a fine job. They did a good job of including as much GPIO as possible while still keeping a small form factor. When I went to flash it with the make flash, it just works, and I have the ability to write low-level code without being constrained to the Arduino IDE. My one complaint is the lack of external RAM, there's only 520kB of internal SRAM!

Esp32 Thing

Bought two, plus motion boards. Size is important for my app, so the motion boards were soldered to the esp32s. Problem #1 showed up almost immediately- difficulty with keeping the serial ports stable. Figured out that the connectors are very fragile. Board #1 It's hanging by a thread. #2, just a bit better. Have to wiggle the cable until I get a solid connection then not move it. Which defeats the whole motion board concept.

Lesson, always unplug the USB connector when done, don't put any torque on the connector. Like waving the thing, and motion board around. Or expect to lose the USB link, and end up with in my case $40 of useless boards x 2. For me.

Sorry to hear that happened to you. Please contact our tech support department to see if they can assist you with this.

I am glad I bought it :D

It isn't perfect - but it has great processing power and capability. The JST connector is wonderful and it is easy to program once the Arduino IDE is configured, unlike other ESP devices. Also has plenty of pins, enough for projects with bigger/more peripherals.

One thing is that the '0' button broke - the plastic piece came out. I think I can still press it with a paperclip but I don't really need to, the reset button is all I need. Other than that I haven't had any issues with it! Works like a charm!

Noob mistake?

Like it now, was having trouble getting it onto the wifi using the arduino ide, when i realized the wifi name is case sensitive! looking forward to working with this board.

Test finished

Very easy to program and works perfectly.

ESP32 Thing problems

The first one, during software development would occasionally crash. I thought it was my code until the crashes came so often that it was clear it had gone defunct.

I have just started working with a 2nd one which would hang up after 2 to 5 hours of code execution. I am reading time from a Real Time Clock module BOB 12078 and it seem to hang on the update time function. So I removed all code talking to the BOB 12078 and removed wire.h. It seems to be working now but I have not performed any extensive testing and won't get to it for a month or so. I could originally connect quickly to the ad hoc network it creates, now connect takes a while. I have my fingers crossed that this will be a reliable device.

Great chip, great breakout and love the LiPo support!

Super functional board with tons of GPIO and great support. Perfect for my project.

Just be mindful of the different options for the I/O pins. Some are input only, some don't have pullup/down resistors etc.

Great board!

I like these better than ever now that Arduino support has improved

I like these over the ESP8266 variants because they have way more I/O and the larger memory accommodates OTA Programming. OTAP is accomplished by compiling/exporting a .bin file from the Arduino IDE, then downloading to the device via a simple web browser interface and WiFi. Works every time.

Rock Solid

Once we worked out quirks we caused ourselves, this little board has been great!

Can't get dev environment to work

Edit: retrying dev environment now

Good but now prefer the SparkFun Thing Plus :-)

SparkFun Thing Plus has better placement of the Lipo battery connector. Surprisingly, the SparkFun Thing Plus is also slightly cheaper.

My go-to controller for Things that have a lot going on

At this point, I've used a SparkFun ESP32 Thing in two fairly involved wireless projects on tight deadlines. When you're not sure whether the system should talk through WiFi or Bluetooth (or both), and you'll need to develop a remotely-accessed user interface, AND you have to make a decision on ordering parts soon, an ESP32 will give you enough versatility to explore options. In both projects, I ended up using the ESP32 as an HTTP server with SPIFFS to make managing the content easier. The flash memory is big enough to host a p5.js visualization of sensor input on several pins, with the data streaming real-time over a websocket.

USB Connector

With only a handful of connect/disconnect, the USB connector came off. Unfortunately, the D+ line surface pad came off too, so I think I am out of luck.

I don't think I was rough with the USB connector, but I will be more careful in the future and that is my suggestion to people using this board.

Nice board

The Sparkfun ESP32 Thing is a moderately-priced, small-sized, feature-packed board that is a good introduction to the ESP32 platform. A multitude of different programming languages and IDEs (Micropython, Arduino IDE, Zerynth, Espressif IDE) are available, and the broken-out pins are useful . Built-in battery capability is a plus.

I like the battery

I had trouble with another board. Could not get it to flash on reset button. Bought the Thing and they included a USB to micro USB cable and it flashed right away. Took the Thing cable and tried it on the other board and it too worked. So, Thank you Sparkfun for sending me the cable that worked. I bought three more and threw out the crappy one.

Nice upgrade from 8Mhz

I had ordered this Thing almost a year before I got around to using it. Struggled a while with getting the toolchain installed. It ended up being pyserial not being installed. It's nice having the extra horsepower. I primarily needed it for it's integrated BLE. I highly recommend using the NimBLE library which actually does use less than half of memory of the reference library. The size of the PCB is a bit much. I guess now that I'm familiar with the ESP32 there are a multitude of other footprint options around.

0 of 2 found this helpful:

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.

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.

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.

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.

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!

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 (, 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!

Nice board but missing GPIO pins

GPIO pins 6-11 are missing. Why not add 3 pins to each side of the board so you get all of the GPIO? Also, pin 2 is listed as GPIO21 in esp32-thing-graphical-datasheet-v02.png and it is really GPIO2. The same datasheet doesn't list all of the functions for each pin (e.g. ethernet, rtcio).

ESP32 Maybe!

Trying to get toolchain going has not gone well. Even got a real Expressif dev board and followed their instructions but still getting build errors. Tried to register with them for questions but they have yet to approve my access to their support forums - after a week.

Now I'm very technical and could roll up my sleeves but not having available support at your back eventually fails - been there, done that. This is a great little device if only I could dev for the thing... BTW I don't mean in debugger-less environment but something real along the lines of atmel studio.

0 of 2 found this helpful:

Train wreck. Not ready for prime time

Everything about this is not ready for prime time. Crashes, incomplete documentation - (even down to the chip itself) - poor example code, etc. code is in a total state of flux. I think this needs more time to settle out before really being usable.

Very good but let down by the USB

I own a couple of the Espressif ESP-DevKit-C boards and wanted to try the sparkfun ESP32 Thing. It arrived promptly. The board is well designed and narrower that the DevKit-C and hence gives me room on a breadboard (just). The primary distinction is the availability of battery socket. This seems to work nicely with 3.7v LIPOs. I also like the position of the buttons free from other components. Less change of "damp hands" shorting something else out.

It does exactly what it claims it does.

My one gripe is that I am having mixed success flashing new programs. If I perform a flash, it may flash the first time, or the second or the third. It seems to have about a 30% success rate at any given go. My DevKit-C flashes first time every time at a whopping 921600 baud ... but even bringing the ESP32 Thing down to 115200, I can't seem to get better than a 50/50 first time flash. I do note that the USB<->UART chip is distinct in ESP32 Thing from DevKit-C. However, once flashed ... everything is perfect and the device just keeps on ticking.

Works as advertised but no 5 GHz band support

The ESP32 only supports the 2.4 GHz band.

I had an HTTP server up and running in about 2 hours using the examples in the Espressif ESP-IDF SDK.

Works well!!!

It took me a bit to get everything set up and installed. It's also a new product and support is being added as we speak. It easily fits into the Arduino development environment. I'm looking forward to doing more with it.

A great board

I received it in perfect condition, I was surprised that only the board thing, they should include the pins to solder to the board.In terms of performance and quality, they are outstanding and I am already working on internet projects of things, it is a very powerful board.

Demos Work for Me

I want to get into developing Bluetooth LE. So far all I've done is make the demos go. I've run pretty much all of the demos available using the different build platforms: Arduino, PlatformIO, and esp-idf. Installing these tools and running them on my mac took me a solid afternoon of work, but documentation was plentiful.

The capabilities of esp-idf are ahead of PlatformIO and Arduino, but the gap appears to be actively closing (as of this review).

Great Hardware!

Nice board, some effort would be needed in order to get the system running but there is a lot of information on internet! the have fun testing!

Good Value

Offers lots of capabilities for a reasonable cost. The interface to the Arduino IDE works but is limited. The path to ESP IDF is not clear and requires a high degree of Unix experience that I don't have.

Very nice

This is an awesome board. The Espressif IDF library is very well written, and the documentation is good (even though there are tons of typos at the moment). Unfortunately, after a few weeks of programming, the USB connector ripped off :(.


Sorry about the issues with the USB connector. Have you contacted our technical support team at - they might be able to help you out with the unit if there were problems with the USB connector.

One of the better Microprocessors I have played with yet!

The non-Arduino development environment is easy to configure. Plenty of examples in the source tree to get the chip up and running quickly. I am having lots of fun working with this feature rich processor.