Setting up ESP32

Note: the terms here can be confusing. ESP32 refers to a series of low-cost, low-power system-on-a-chip microcontrollers with integrated Wi-Fi and Bluetooth. Its precursor was the ESP8266 -- many tutorials will be compatible with both.

There are many brands and models of microcontrollers built around the ESP32 chip. A few of the ones we use most include the generic ESP32 Dev Board, the new ESP32-S2 Dev Board, the new ESP32-C3 XIAO, the ESP32-CAM, and the Adafruit Huzzah.

In order to use any ESP32 device, we'll first need to configure Arduino IDE.

ESP32 Dev Board

A number of manufacturers make a product called something like "ESP32 Dev Kit" or "dev board". The RandomNerd Tutorials use a model called DOIT ESP32 DEVKIT V1. I tend to just select the first option, ESP32 Dev Module, regardless of the brand (many brands are not listed). I don't think there is much difference between Dev modules.

ESP32-S2 Dev Board

The ESP32-S2 is a newer model (2019). Compared to ESP32 (2016), it has less ROM, less RAM, more GPIO pins, and no Bluetooth. It is easier to work with, and has fewer restrictions around the ADCs, etc. You can see more detailed comparisons here.

ESP32-C3 XIAO

The ESP32-C3 XIAO is an even newer model (2020). Compared to ESP32, it has comparable ROM and RAM, fewer GPIO pins, and BLE in addition to Bluetooth Classic. Its most important advantage is its small size.

Huzzah (Adafruit Feather)

Feather is a line of development boards from Adafruit. The Huzzah32 is the specific Feather board that is built around the ESP32.

Compared to the Dev Board, the Feather is about 2x the cost, and features integrated power management.

ESP32-CAM

RandomNerd has a great guide for setting up ESP32-CAM. It's worthwhile to follow this example all the way through.

The ESP32-CAM does not have its own USB interface. You must instead use a Serial-to-USB adapter to program it.

Note that ESP32s do not like WiFi features like 5GHz, two-factor authentication, etc. It's best to use networks with simple SSID and password credentials. In SC 102, we have a network called "MAKERSPACE" and password "12345678".

Disclaimers

There are many idiosyncracies for the ESP32 boards. It's helpful to bookmark the pinout reference.