ESP32 DevKit Versions - bdring/Grbl_Esp32 GitHub Wiki

There are quite a few versions of ESP32 devices and the nomenclature can be confusing. This page documents what I have discovered by reading various Espressif documents.

In the following I will refer to "chips", "modules", "devkits", and "boards". From smallest to largest, we have:

"Chip" - or System on Chip or SoC - is the smallest package that contains an ESP32 CPU. The package ranges in size from 5x5 mm to 7x7 mm. It has the CPU, peripheral controllers, some RAM and ROM, and maybe - but not usually - some on-chip FLASH. It costs about $US1. You will rarely see one of these directly because they are usually inside a module with a metal can. OEMs can use these directly, but most people use the module version that contains additional useful circuitry and is easier to work with. Here is what a chip looks like:

ESP32 Chip

"Module" is a metal-encased ESP32 thing, approximately 1" x 0.7", with surface-mount solder pins along 3 sides and an antenna - either a built-in PCB antenna or an "IPEX" connector for an external antenna. Inside the metal case there is an ESP32 CPU "system on chip" and an SPI FLASH chip that is used for program storage. Modules are made by Espressif Systems. They cost about $US4. You cannot use a module directly unless you build your own PCB and have surface-mount assembly capability. Here are pictures of modules with different antenna options:

ESP32 Module with PCB Antenna ESP32 Module with External Antenna

"Devkit" means a small PCB, approximately 2" x 1", that carries an ESP32 module. It has header pins along two sides so it can plug into header sockets. It has a 5V to 3.3V voltage regulator to power the ESP32 module and a USB-serial converter with a micro-USB connector, so you can plug it into a USB port on a computer. Various different companies make devkits, ranging in cost from around $US8 to $US20. This is a devkit from Espressif Systems:

"Board" means the PCB that interfaces to the outside world; it has stepper driver sockets or connections to external steppers, a voltage regulator to drop motor voltage (typically 12-24V) down to 5V, and various connectors for things like limit switches and spindles. There are some board designs on the internet. Bart sells a variety of nicely-designed, well-supported boards on Tindie, such as this one:

A typical board

Which DevKit?

There are quite a few different devkits from different companies, such as "Adafruit Huzzah", "Sparkfun Thing", "Lilygo TTGO", "D1 Mini ESP32", "Geekworm EasyKit", "Nodemcu-S32", and others. Unfortunately they are not all compatible. They have different widths and different numbers of pins. I have even seen EBay listings for low-priced (about $4) "NodeMCU ESP32" devices that, based on the pictures, actually have ESP8266 (a much less powerful chip) instead of ESP32.

Bart's boards are laid out with parallel rows of socket pins so they can accept devkit widths (between the pin rows) of 1", 1.1", and in some cases 1.2". The number of pins must be 38, i.e. 2 rows of 19 male pins on the bottom side.

If you have an existing ESP32 devkit with 38 pins and a width that is compatible with the board you want to use, it will probably work. If you are going to buy a new devkit, it is best to get an Espressif DevKitC so you know what you are getting. They are of good quality, readily available from reputable distributors (e.g. Mouser, DigiKey), known to work with Bart's boards, and reasonably priced - currently $US10 from DigiKey. The Espressif ESP32 DevKitC is available with different modules, as described below.

Which Module?

Espressif Systems makes a lot of different modules . Their suitability for Grbl_ESP32 is explained below.

WROOM vs WROVER

You want a WROOM module, not a WROVER. The difference is that WROVER also has PSRAM inside the metal can. PSRAM is unnecessary for Grbl_ESP32. It can be useful for applications like cameras, but it is not needed for Grbl_ESP32.

DevKit/Module Variants

Ones that work:

  • ESP32-DevKitC with ESP-WROOM-32 module - This is the old version which is being phased out. It works fine but it is hard to buy because they are now manufacturing newer versions of the core CPU chip.
  • ESP32-DevKitC-32D with ESP-WROOM-32D module - This is a newer version with the "D0WD" version of the CPU chip. It is in current production and works fine. It has an integrated PCB antenna.
  • ESP32-DevKitC-32U with ESP-WROOM-32U module - This is the same CPU as -32D but instead of the integrated PCB antenna, it has an IPEX connector for an external antenna. That might be useful if you need better WiFi range.
  • ESP32-DevKitC-32E with ESP-WROOM-32E module. This uses the "D0WD-V3" chip, the newest at the time of this writing. It has a few bug fixes compared to the "D0WD" chip, none of which are likely to matter much for Grbl_ESP32. PCB antenna.
  • ESP32-DevKitC-32UE with ESP-WROOM-32UE module - Like -U but with external antenna connector.

If you are buying a new devkit, you might as well get the latest - either -32E or -32UE depending on your antenna needs.

Ones that are not recommended:

  • ESP32-DevKitS or ESP32-DevKitS-R - DevKitS does not have an ESP32 module installed! It has spring pins so you can plug in a bare module. That is useful for factories that need to pre-program an ESP32 module before soldering it onto a board, or for developers that need to test different modules. (The S-R variant is for WROVER instead of WROOM).
  • Anything with "WROVER". See above.
  • Anything with "-S2" or "Saola" - ESP32-S2 is a very new chip that is primarily intended for security applications since it has some extra cryptographic accelerators and other peripherals. It has a few more GPIO pins than the "classic" ESP32 modules, which could potentially be useful for Grbl_ESP32, but it only has one CPU core. Grbl_ESP32 currently uses both CPU cores. There are rumors of an upcoming dual-core -S2 variant, but that is not yet available. When it does become available, some software work will be necessary to adapt to the hardware and SDK changes.
  • ESP32-DevKitC-S1 - This has the ESP32-SOLO-1 module which is a single-core variant of the ESP32 CPU. It won't work with Grbl_Esp32 which uses two cores.

ESP32 CPU Chip Name Schema (Informational)

You can skip this because all the important information is above. The reason this information is included is because it can be difficult to discover the difference between different devkits on ordering pages. The listed specs for the different devkits all look pretty much the same. Sometimes the only difference that is listed is an obscure reference to the chip inside the module.

Espressif Systems makes bunch of different CPU chips in addition to the ones that are commonly found inside the modules.

The "D0WD" designation for ESP32 CPU chip variants is interpreted as follows:

The initial "D" means "dual core"; the single core variant is "S0WD".

The "0" is the amount of on-chip FLASH - and I really mean "on the CPU Chip", as opposed to the usual situation where the FLASH is an SPI FLASH chip that is outside the CPU chip itself, but inside the metal-canned module. There is a "D2WD" chip variant that has 2 MB of FLASH right on the chip - but there is no module with this chip. There is also a "U4WDH" with a single core (U for uniprocessor maybe? Why not S?) and 4 MB of on-chip flash.

The "WD" refers, I think, to the package which is a 5mm x 5mm QFN. There is an alternate package "WDQ6" which is 6mm x 6mm QFN.

Anything with a "-V3" suffix has the "ECO V3" bug fixes mentioned above.

Finally, completely separate from "D0WD" style nomenclature, there is the ESP32-PICO-V3, which has 2 cores, 4 MB of on-chip flash, in a 7mm x 7mm LGA package. There is a special devkit for this, in a narrower "breadboard friendly" form factor - looks to be 0.7" between rows.