The overview, with examples running, is on the board page.
The Wemos D1 R32
A classic ESP32 on the Arduino Uno's outline, with the Uno's four headers, and a blue LED on GPIO 2 that lights when the pin is HIGH.
What it is
The same classic ESP32 as the ESP32 DevKit V1, as an ESP32-WROOM-32 module where the Uno's ATmega328P would be. The four headers are in the Uno's places, so a shield plugs in and a breadboard lines up the way it does beside an Uno. A micro-USB socket goes through a USB-to-serial chip to UART0, which is the serial monitor.
Like an Uno, it is too wide to push into a breadboard. It stands beside one and reaches it with jumpers.
The pins
The board prints the Uno's names, but a sketch writes the GPIO numbers. On
this board D2 is GPIO 26, not GPIO 2, so digitalWrite(2, HIGH) lights the
blue LED and does nothing at the hole marked D2. The catalog names each hole
by its GPIO (IO26), and the drawing prints the Uno name beside it.
| Printed | GPIO | Printed | GPIO | |
|---|---|---|---|---|
D0 (RX0) |
3 | A0 |
2 (the LED) | |
D1 (TX0) |
1 | A1 |
4 | |
D2 |
26 | A2 |
35 | |
D3 |
25 | A3 |
34 | |
D4 |
17 | A4 |
36 | |
D5 |
16 | A5 |
39 | |
D6 |
27 | SDA |
21 | |
D7 |
14 | SCL |
22 | |
D8 |
12 | IOREF |
3.3 V | |
D9 |
13 | 3V3 |
3.3 V | |
D10 |
5 | 5V |
5 V | |
D11 |
23 | RESET |
||
D12 |
19 | VIN |
open | |
D13 |
18 | AREF |
open |
The firmware defines D0 to D13 and A0 to A5 as these GPIO numbers, as
the Arduino IDE's d1_uno32 board does, so digitalWrite(D2, HIGH) drives
GPIO 26 too. Writing the GPIO number is clearer.
A2 to A5 are GPIO 35, 34, 36 and 39, which are inputs only: there is no output
driver on them and no internal pull-up. A0 and A1 are GPIO 2 and 4, which
are on ADC2, and ADC2 is not modeled, so analogRead(A0) and analogRead(A1)
read 0 here. Use A2 to A5 for analog. Wire uses SDA (GPIO 21) and
SCL (GPIO 22), and SPI uses D13, D12, D11 and D10 for SCK, MISO,
MOSI and SS, as on an Uno.
Some boards misprint two of the GPIO labels on the analog header: the white
label IO36 beside A2 is really GPIO 35, and IO38 beside A4 is really
GPIO 36. The catalog uses the real GPIOs.
The power pins
IOREF is 3.3 V, because the board's logic is 3.3 V. That is the thing a 5 V
shield needs telling: the ESP32's pins are not 5 V tolerant. 3V3 and 5V
are supplies for the breadboard. VIN is the barrel jack's side of the
regulator, and AREF is not connected to anything on the R32, so both are
open here. The board is always powered from USB.
The LED
The blue LED is on GPIO 2, which is also the A0 hole. It lights when the pin
is HIGH. LED_BUILTIN is 2, so anything wired to A0 shares the pin with
the LED.
Buttons
The board has one button, RESET. There is no BOOT button: on the real board the USB chip pulls GPIO 0 low to start the loader. The board's BOOT poke does the same here.
WiFi
It joins Mokxi's simulated network, with the network name and password as properties of the board. There is no radio, no 802.11 and no real internet: Simulated WiFi says what is faithful and what is not.
What is modeled
The DevKit V1 model's chip, whole: one Xtensa LX6 core, GPIO, UART0, the timers, ADC1 and LEDC PWM. The board carries its own program string, so it is offered its own examples, built for its LED and its Uno names. GPIO 34, 35, 36 and 39 refuse to be outputs, as on the chip.
What is not modeled
The second core, ADC2 (and the noise it picks up from the radio on a real
board), the DAC, touch sensing, Bluetooth and a real radio. VIN and AREF
are open, and the board's 5 V regulator is not modeled: the board runs from
USB as long as the simulation does.
Starter project
D1 R32 button is the board beside a breadboard with a pushbutton on the
hole printed D2, which is GPIO 26, lighting an LED on D3, which is
GPIO 25, and the blue LED with it.