Skip to content
My Account

Reference

ESP8685-WROOM-03 Pinout

The complete pin reference for the ESP8685-WROOM-03: 11 castellated pads, 8 GPIOs, six test points, Wi-Fi and Bluetooth LE in 15.0 x 17.3 mm.

  • Single-core RISC-V
  • Wi-Fi + Bluetooth LE
  • 8 GPIOs
  • 11 castellated pads
No ratings yet, be the first.

Overview

The ESP8685-WROOM-03 is a very small Wi-Fi and Bluetooth LE module from Espressif: 15.0 x 17.3 x 2.8 mm, with a PCB antenna, 4 MB of flash and 11 castellated pads. It is built around the ESP8685 chip, a smaller sibling of the ESP32-C3 with the same 160 MHz RISC-V core and 400 KB of SRAM, but with only 8 GPIOs. This guide covers the bare module, not a development board, so you wire it up yourself.

No 802.15.4 radio on this chip, so Thread and Zigbee are not possible here: that needs an ESP32-C6 or H2 instead. Only badges for what this exact chip supports are shown.

Eight GPIOs on the padsIO1, IO3, IO4, IO5, IO6, IO7 and the two UART pins RX and TX. GPIO9 is only on a test point.
Flash inside the module4 MB of quad SPI flash in the chip package: no pins are used for an external flash.
Very low sleep currentAbout 5 µA in deep sleep and 130 µA in light sleep, well suited to battery-powered sensors.

Chip and module

The ESP8685 has a 32-bit single-core RISC-V processor at up to 160 MHz, 384 KB of ROM, 400 KB of SRAM (16 KB of it cache), 2.4 GHz Wi-Fi 4 (802.11 b/g/n, up to 150 Mbps) and Bluetooth 5 LE with Bluetooth mesh. Its data sheet refers to the ESP32-C3 technical reference manual for the peripherals, which include UART, I2C, SPI, I2S, a 12-bit ADC, an LED PWM controller and a USB Serial/JTAG controller (the USB pins are not on the module).

PartWhat it does
ESP8685H4 chipThe processor, with 4 MB of quad SPI flash in the package
40 MHz crystalThe clock of the chip, inside the shield can
PCB antennaThe Wi-Fi and Bluetooth antenna in the copper at the top of the module. Keep the area around it free of metal
RF shield canMetal cover over the chip and the RF parts
11 castellated padsPins 1 to 5 on one edge and pins 6 to 11 on the other, 2.0 mm pitch
Six test pointsEN, TX, RX, GND, 3V3 and IO9 on the bottom, for programming without a carrier board
Exposed ground pad (EPAD)The ground pad in the middle of the bottom, to be soldered to ground

The module has no voltage regulator and no USB chip. You give it a clean 3.3 V and a serial connection yourself.

Getting started

The bare module is usually soldered to your own board or wired up directly, so you need a USB-to-serial adapter (3.3 V logic) and a way to pull GPIO9 low while the module resets.

1. What you needA 3.3 V USB-to-serial adapter, a computer, a stable 3.3 V supply that can deliver at least 0.5 A, and a jumper wire for GPIO9.
2. Wire itAdapter TX to the module RX, adapter RX to the module TX, 3V3 and GND to the supply, and EN to 3V3 (it is pulled up inside the module).
3. Upload your first sketchPull IO9 low, tap EN to ground to reset into download mode, release IO9 and click Upload in the Arduino IDE or run idf.py flash.

Specifications

Specifications for the ESP8685-WROOM-03-H4, from the Espressif data sheet v1.5.

Compute

ChipESP8685H4
CPUSingle-core 32-bit RISC-V, up to 160 MHz
ROM and SRAM384 KB and 400 KB (16 KB cache), 8 KB RTC SRAM
Flash4 MB quad SPI, in the chip package

Radio

Wi-Fi802.11 b/g/n, 2.4 GHz, 20 and 40 MHz, up to 150 Mbps
Bluetooth5 LE and Bluetooth mesh
AntennaPCB antenna
SecuritySecure boot, flash encryption

Physical

Supply voltage3.0 V to 3.6 V (typical 3.3 V), at least 0.5 A available
Temperature-40 to 105 degrees Celsius
Size15.0 x 17.3 x 2.8 mm
Pins11 castellated pads, 6 test points and an exposed ground pad
GPIOsUp to 8 (on the pads)
ADC12-bit: ADC1 on IO1, IO3 and IO4, ADC2 on IO5

Current consumption

Wi-Fi transmit, 802.11b at 20 dBm340 mA peak
Wi-Fi receive84 to 86 mA
Modem-sleep, CPU running at 160 MHz23 mA typical
Light-sleep130 µA typical
Deep-sleep5 µA typical
Power off (EN low)1 µA typical

Dimensions

The module is 15.0 mm wide, 17.3 mm long and 2.8 mm high. The pads sit on a narrower tab of 11.8 mm at the lower edge, five pads on the top side and six on the bottom side.

ESP8685-WROOM-03 dimensions: 15.0 by 17.3 by 2.8 mm with the pad area 11.8 mm wide

Source: the Espressif ESP8685-WROOM-03 data sheet, Module Dimensions. The pad pitch of 2.0 mm and the position of the shield can are read from the drawing of the module.

Pinout diagram

The module has 11 pads: five on the edge of the top side (pins 1 to 5) and six on the edge of the bottom side (pins 6 to 11). The pin numbers and names are those of the Espressif data sheet.

ESP8685-WROOM-03 top view with the five pads EN, IO1, IO6, IO7 and IO3 and their functions

Bottom view

The bottom view shows pins 6 to 11, the six test points for programming and the exposed ground pad.

ESP8685-WROOM-03 bottom view with the six pads 3V3, GND, RX, TX, IO5 and IO4, the six test points and the exposed ground pad

GPIO map at a glance

The same pins grouped by what they can do. Only eight GPIOs are on the pads, so the choice is small.

ESP8685-WROOM-03 GPIO map grouped by analog input, LED PWM, JTAG and SPI, UART0 and strapping pins

Power and reset

PinUse
3V3 (pin 6)The only supply: 3.0 V to 3.6 V. The module has no regulator, so use a good 3.3 V supply that delivers at least 0.5 A
GND (pin 7) and EPADGround. Solder the exposed ground pad to ground as well
EN (pin 1)High turns the chip on, low turns it off. It is pulled up inside the module

Espressif advises an RC delay on the EN pin for a stable power-up, typically 10 kΩ and 1 µF. That circuit is already built into the module, so only adjust it if your own power-up timing needs it.

The Wi-Fi transmitter draws up to 340 mA in short bursts. Put a capacitor of at least 10 µF close to the 3V3 pin, otherwise the module can reset when it transmits.

Boot mode and flashing

Three pins decide how the chip starts: GPIO2, GPIO8 and GPIO9. GPIO2 and GPIO8 are not on the module, so only GPIO9 (the test point IO9) is yours to use.

Boot modeGPIO2GPIO8GPIO9
SPI boot (normal start)1any1
Joint download boot (flashing)110

GPIO9 has a weak pull-up inside the chip, so it is high by default. To flash: pull IO9 to ground, reset the module with EN, release IO9, and upload over the serial pins. The same serial pins give the serial monitor.

FunctionPinDescription
TXD0TX (GPIO21)Module to PC (output)
RXD0RX (GPIO20)PC to module (input)
ENENResets the chip
IO9IO9 test point (GPIO9)Hold low at reset to enter download mode

ADC and the missing DAC and touch

The chip has a 12-bit SAR ADC, no DAC and no touch pads.

FeaturePinsNotes
ADC1IO1 (ADC1_CH1), IO3 (ADC1_CH3), IO4 (ADC1_CH4)Use these for analog sensors
ADC2IO5 (ADC2_CH0)Espressif notes that ADC2 of some chip revisions is not operable, see the ESP32-C3 errata. Prefer ADC1
DAC and touchnoneUse PWM and a filter for an analog output

The ADC input range is small with the default attenuation. Use a voltage divider for signals above the range and never put more than 3.3 V on any pin.

Pins with a second job

  • EN switches the chip on and off. Do not leave it floating in your own design if you remove the internal pull-up logic.
  • IO9 (GPIO9) is a strapping pin and only on the test point. Do not hold it low at power-up unless you want download mode.
  • IO4, IO5, IO6 and IO7 are the default JTAG pins (MTMS, MTDI, MTCK, MTDO). They work as normal pins, but you lose them when you debug with an external JTAG probe.
  • IO1 can be the pin for an optional 32 kHz crystal (XTAL_32K_N). It is a normal pin if you do not add one.
  • RX and TX (GPIO20 and GPIO21) are UART0, used for flashing and the serial monitor. You can use them as normal pins, but not while you need the serial monitor.
  • IO3, IO4, IO5, IO6 and IO7 have LED PWM, which is useful for dimming and RGB control.

GPIO quick reference

The GPIOs you can reach. None of them is input-only. Every pin is bidirectional digital I/O.

GPIOSpecial functionADCLED PWMBoot state
1GPIO1, XTAL_32K_NADC1_CH1–Free
3GPIO3ADC1_CH3YesFree
4GPIO4, FSPIHD, MTMSADC1_CH4YesFree
5GPIO5, FSPIWP, MTDIADC2_CH0YesFree
6GPIO6, FSPICLK, MTCK–YesFree
7GPIO7, FSPID, MTDO–YesFree
9 (test point)GPIO9, BOOT––Strapping
20 (RX)UART0 RX––Free
21 (TX)UART0 TX––Free

Programming

Arduino IDE, PlatformIO and ESP-IDF all work. The data sheet of the module points to the ESP32-C3 manuals, so use the ESP32-C3 target: in the Arduino IDE choose ESP32C3 Dev Module, in ESP-IDF run idf.py set-target esp32c3. Set the flash size to 4 MB.

Read an analog sensor

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println(analogRead(3));   // IO3 is ADC1_CH3
  delay(200);
}

I²C on two free pins

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(6, 7);        // SDA = IO6, SCL = IO7
}

void loop() {}

I did not run these sketches on a module, they follow the Arduino ESP32 API. The board profile and flash size are my reading of the data sheet: check them against your own build.

Tips

  • Use ADC1 for sensors. IO1, IO3 and IO4 are the reliable analog pins.
  • Plan the pins early. Eight GPIOs go fast: UART for flashing, two for I²C, one for a button and one for an LED leaves little.
  • Keep the antenna area free. No copper, ground pour or components under or next to the PCB antenna.
  • Solder the exposed ground pad. It is the main ground and helps the module to stay cool.
  • Add a program header. Bring out EN, IO9, TX, RX, 3V3 and GND on your own board, then you can flash it later.

Real gotchas

  • It is a bare module. No regulator, no USB chip, no buttons. You need an adapter and a clean 3.3 V supply.
  • GPIO9 is only on a test point. You cannot reach it from the edge pads, so plan a pad or a wire for it.
  • Only 8 GPIOs. It has far fewer pins than an ESP32-C3-MINI-1.
  • No Thread or Zigbee. There is no 802.15.4 radio.
  • Supply spikes. A weak supply makes the module reset when Wi-Fi transmits. Add a capacitor of at least 10 µF close to 3V3.
  • 3.3 V logic. All pins are 3.3 V only. Do not connect 5 V signals directly.
  • Ordering code. The module in this guide is the H4 version with 4 MB of flash.

Compared with other modules

Common versions of these modules, with the facts that matter when you choose.

ESP8685-WROOM-03ESP32-C3-MINI-1ESP32-WROOM-32D
CPU1 x RISC-V, 160 MHz1 x RISC-V, 160 MHz2 x Xtensa LX6, up to 240 MHz
WirelessWi-Fi 4 and Bluetooth 5 LEWi-Fi 4 and Bluetooth 5 LEWi-Fi 4 and Bluetooth (Classic and LE)
GPIOs on the pads815up to 34
Size15.0 x 17.3 x 2.8 mm13.2 x 16.6 x 2.4 mm18.0 x 25.5 x 3.1 mm

Take the ESP8685-WROOM-03 for a very small, cheap module with only a few pins. For more pins see the ESP32-C3-MINI-1, for a dual-core module with Classic Bluetooth the ESP32-WROOM-32D.

What to build with it

  • A small Wi-Fi or Bluetooth LE sensor that sleeps between readings.
  • A wireless switch or relay controller on one of the pads.
  • A battery-powered tracker or beacon that lives on deep sleep.
  • A tiny RGB LED controller with the LED PWM pins.

Safety notes

Before you wire anything up

  • Never go above 3.6 V on the 3V3 pin: that damages the chip.
  • GPIO9 (IO9) is a strapping pin, check its state at power-up before you connect anything to it.
  • This module runs at 3.3 V logic, a 5 V signal on any pin can damage the chip.
  • Connect the exposed ground pad and the GND pad to the same ground as your adapter.

Conclusion

The ESP8685-WROOM-03 is a very small module with Wi-Fi, Bluetooth LE and a very low sleep current, at the price of only eight GPIOs and no help from a carrier board. Give it a clean 3.3 V, keep IO9 reachable for flashing, use ADC1 for sensors and keep the antenna area free. For the family overview see the ESP32 family explained.

Sources: the Espressif ESP8685-WROOM-03 data sheet v1.5 for the pins, the electrical values and the dimensions, and the drawing of the module for the pad layout and the test points. The Arduino and ESP-IDF target is my reading of the data sheet, which refers to the ESP32-C3 manuals.

Advertisement
All guides

More guides

Keep building.

From ESP32 HomeKit accessories to Arduino and ATtiny reference guides, there’s more where this came from.

All guides