Last Updated on 18. October 2026 by SuffocationLink status: OK
Der WeMos D1 R32 ist ein ESP32 in Arduino Uno Bauweise. Er sieht aus wie ein Arduino, seine
IOs arbeiten jedoch nur mit 3V anstatt mit den gewohnten 5V. Dies kann zu Inkompatibilitäten bei Erweiterungsplatinen (Shields) führen. Der Preis liegt beim schnellen Ali unter 5 Euro.
Das Board verfügt über alle Vorzüge des ESP32 Prozessors wie beispielsweise WLan und Bluetooth. Aber auch die Nachteile, zum Beispiel kann der zweite ADC bei eingeschaltetem WLAN nicht sicher betrieben werden.
In diesem Beitrag widme ich mich nur der Inbetriebnahme, andere Aspekte wie Funktionsumfang des ESP32 usw. können bereits erschienen oder noch folgenden Artikeln entnommen werden.
Nachtrag: Bei einer späteren Bestellung habe ich Nachbauten (ESPDUINO-32) erstanden. Diese scheinen weniger gut verarbeitet zu sein … wer billig kauft!!! Zumindest ist mir bei der vorliegenden Charge zweimal der USB Anschluss abgerissen. Mein Tipp wäre, entweder den USB-Anschluss seitlich vor Gebrauch nachzulöten, Boards mit dem alten USB Typ-B Anschluss zu kaufen oder evtl. die original Wemos Boards zu besorgen.
Views


Overview
Hier die technischen Daten, zum Vergleich sind noch der Arduino Uno und der Leonardo dabei.
| Arduino Uno | Arduino Leonardo | WeMos D1 R32 ESP32 | |
|---|---|---|---|
| Manufacturer | Arduino | Arduino | WEMOS |
| Processor | ATmega328P | ATmega32u4 | ESP WROOM 32 Modul |
| Kernel | 1 | 1 | 2 |
| Tact | 16 MHz | 16 MHz | 240 MHz |
| Flash | 32 KB | 32 KB | 4 MB |
| SRAM | 2 KB | 2,5 KB | 520 KB |
| EEPROM | 1 KB | 1 KB | 4 KB |
| Digitale Pins | 14 | 20 | 36/28 |
| Analoge Eingänge | 6 | 12 | 18 |
| PWM-Pins | 6 | 7 | 16 |
| Interrupt-Pins | 2 | 5 | |
| UART | 1 | 1 | 3 |
| SPI | 1 | 1 | 4 |
| I²C | 1 | 1 | 2 |
| WLAN | 802.11 b/g/n (2,4 GHz) · WEP / TKIP / CCMP (AES) | ||
| Bluetooth | 4.2 (BR/EDR + LE) | ||
| USB | 1 USB-B | 1 micro | 1 Micro |
| Operating voltage | 5 V | 5 V | 3,3 V |
| Input voltage | 7-12 V | 7-12 V | 5-12 V |
| Abmessungen | 68,6 x 53,4 mm | 68,6 x 53,3 mm | 68,6 x 53,3 mm |
| Weight | 25 g | 20 g | unter 25 g |
Pins
Wire / I²C
2 Wire Controller sind auf dem ESP verfügbar, an folgenden Pins kann einer von ihnen verwendet werden. (Welcher, weiß ich nicht).
| Designation | Pin |
|---|---|
| SCL | 22 |
| Seventh-day Adventist | 21 |
ADC
Der ESP32 besitzt zwei ADCs mit 18 Kanälen. 6 sind hier auf die regulären ADC Pins herausgeführt. Weitere 4 könnten über die beim Arduino eigentlich digitalen Pins abgefragt werden. Die Kanäle des ADC 2 sind nicht mit eingeschaltetem WIFI nutzbar.
| Pin | GPIO | ADC | Channel | |
|---|---|---|---|---|
| A0 | 2 | 2 | 1 | Nicht nutzbar mit WIFI |
| A1 | 4 | 2 | 0 | Nicht nutzbar mit WIFI |
| A2 | 36 | 1 | 7 | |
| A3 | 34 | 1 | 6 | |
| A4 | 38 | 1 | 0 | |
| A5 | 39 | 1 | 3 | |
| 12 | 12 | 2 | 5 | Nicht nutzbar mit WIFI |
| 13 | 13 | 2 | 4 | Nicht nutzbar mit WIFI |
| 14 | 14 | 2 | 6 | Nicht nutzbar mit WIFI |
| 25 | 25 | 2 | 8 | Nicht nutzbar mit WIFI |
Ich hatte die ADC Kanäle einzeln durchgetestet, immer einer belegt, die anderen jeweils unbelegt. Hierbei ist mir ein gewisser Einfluss des belegten ADC Kanals auf die anderen aufgefallen. Evtl. müsste man dies untersuchen, wenn die Werte der ADC Kanäle allzu sehr schwanken.
Die GPIOs 6, 7, 8, 9, 10 und 11 werden beim Wroom Modul für den internen Flash benötigt, sind bei diesem Board aber auch nicht nach außen geführt.
Arduino Left D1R32 Left Arduino Right D1R32 Right
SCL SCL
SDA SDA
ARef Reset
GND Gnd
Not connected IO0 13 IO18
IORef 5V 12 IO19
Reset Reset 11 IO23
3.3V 3.3V 10 IO5
5V 5V 9 IO13
GND GND 8 IO12
GND GND 7 IO14
Vin Vin 6 IO27
A0 IO2
IO Comparison Arduino Uno and D1R32
| Arduino Links | D1R32 Links | Arduino Right | D1R32 Right | |
|---|---|---|---|---|
| SCL | SCL | |||
| Seventh-day Adventist | Seventh-day Adventist | |||
| ARef | Reset | |||
| Ground | Ground | |||
| Not connected | IO0 | 13 | IO18 | |
| IORef | 5V | 12 | IO19 | |
| Reset | Reset | 11 | IO23 | |
| 3.3V | 3.3V | 10 | IO5 | |
| 5V | 5V | 9 | IO13 | |
| Ground | Ground | 8 | IO12 | |
| Ground | Ground | 7 | IO14 | |
| Wine | Wine | 6 | IO27 | |
| A0 | IO2 | 5 | IO16 | |
| A1 | IO4 | 4 | IO17 | |
| A2 | IO36 | 3 | IO25 | |
| A3 | IO34 | 2 | IO26 | |
| A4 | Iodate | 1 (TX) | TX0 | |
| A5 | IO39 | 0 (RX) | RX0 |
Interrupts
Im Prinzip kann jeder GPIO des ESP32 als externer Interrupt verwendet werden. Aber nicht alle sind gleich gut geeignet, da sie evtl. von anderen Funktionen verwendet werden.
| Arduino Pin | GPIO | Usable | Additional function |
|---|---|---|---|
| A0 | 2 | Could go | ADC2 |
| A1 | 4 | Could go | ADC2 |
| A2 | 36 | Yes | ADC1 |
| A3 | 34 | Yes | ADC1 |
| A4 | 38 | Yes | ADC1 |
| A5 | 39 | Yes | ADC1 |
| 1/0 | TX0/RX0 | No | |
| 2 | 26 | Could go | ADC |
| 3 | 25 | Could go | ADC2 |
| 4 | 17 | Yes | U2TXD |
| 5 | 16 | Yes | U2RXD |
| 6 | 27 | Could go | ADC2 |
| 7 | 14 | Could go | ADC2 |
| 8 | 12 | Could go | ADC2 |
| 9 | 13 | Could go | ADC2 |
| 10 | 5 | Yes | TOUCH0 |
| 11 | 23 | Yes | MOSI |
| 12 | 19 | Yes | Miso |
| 13 | 18 | Yes | SCLK |
Programming
Arduino programming environment
Wenn der ESP32 vorher noch nicht benutzt wurde, muss die Arduino Gui noch angepasst werden. Wie das geht, ist im gelinkten Artikel unten beschrieben.
Information is also available at GITHUB.Link status: Broken
Test programme
Als Testprogramm habe ich das WiFiClient Beispielprogramm herangezogen und etwas angepasst. Bitte die WLAN Daten entsprechend auf die lokalen Umstände anpassen.
Nicht schön, aber so sieht es bei mir aus:

Für das Programm braucht ihr eine Gegenstelle. Hierfür könnt ihr das kleine Java Tool nehmen, das ich bereits in anderen Projekten verwendet habe. Beim Starten den Port 88 angeben und/oder im Programm ändern.
Miscellaneous
Basic OTA
OTA ist möglich, wie dem folgend gelinkten Beitrag zu entnehmen ist.
Read ADCs
Here's an example:
Source code ArduinoESP32OtaAdcExample.ino (GitHub GistLink status: OK)
#include <WiFi.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "NODES";
const char* password = "HappyNodes1234";
const uint8_t ANALOG_PORTS[]= {2,4,35,34,36,39};
void setup(){
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 3232
// ArduinoOTA.setPort(3232);
// Hostname defaults to esp3232-[MAC]
// ArduinoOTA.setHostname("myesp32");
// No authentication by default
// ArduinoOTA.setPassword("admin");
// Password can be set with it's md5 value as well
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3");
/* for(int i = 0; i < 5; i ++){
pinMode(ANALOG_PORTS[i], INPUT);
}*/
ArduinoOTA
.onStart([]() {
String type;
if (ArduinoOTA.getCommand() == U_FLASH)
type = "sketch";
else // U_SPIFFS
type = "filesystem";
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end()
Serial.println("Start updating " + type);
})
.onEnd([]() {
Serial.println("\nEnd");
})
.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
})
.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
ArduinoOTA.handle();
Serial.print("go ....");
for(int i = 0; i < ( sizeof(ANALOG_PORTS) / sizeof(ANALOG_PORTS[0])); i ++){
Serial.print(analogRead (ANALOG_PORTS[i]));
Serial.print(" ; ");
}
Serial.println("....");
}
Working expansion boards
Prototype Board V1
Motor circuit board V2
(Untested)
Sensor board V5
Related Posts
Conclusion
Nett gedacht, aber nicht gut gemacht. Der ESP32 bietet viele Möglichkeiten und Anschlüsse. Den ADC2, welcher bei aktivem WLAN nicht verwendbar ist, auf A0 und A1 zu legen, ist nicht sonderlich sinnvoll. Auch wären 5V Aus-/Eingänge aus Kompatibilitätsgründen sehr nützlich gewesen. Wer jedoch nur Shields verwendet, die auch mit 3V arbeiten, findet hier einen Arduino UNO Clone, der zusätzlich WIFI bietet. Auch wer seine Projekte ohne Shields diskret aufbaut, kann mit diesem Board arbeiten, evtl. benötigt er an der ein oder anderen Stelle einen Logic-level converterLink status: OK. However, most current sensors work with 3-5V or a 3V version is chosen. However, the discrete construction does not require the form factor of the Arduino Uno.
Sources
https://www.wemos.cc/Link status: OK
https://github.com/SmartArduino/SZDOITWiKi/wiki/ESP8266—ESPduino-32Link status: OK
https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/windows.mdLink status: Broken
Instructions for OTALink status: OK
| Date | Change | Author |
|---|---|---|
| 18.10.2026 | TablePress-Tabelle durch Datenblock aus dem Modell ersetzt | Suffocation |
| 10.10.2026 | Gist-Einbettung durch Code-Block ersetzt (Gist als Quelle verlinkt) | Suffocation |
| 08.10.2026 | Überschriften-Hierarchie korrigiert (H1→H2, Unterebenen eine Stufe tiefer) | Suffocation |
| 03.10.2026 | Rechtschreibung korrigiert: Tippfehler, Kommas, Grammatik, Groß-/Kleinschreibung Log-Liste eingefügt | Suffocation |
| 01.07.2018 | Post created | Suffocation |
Hello,
Thank you for your contribution. From many years of experience with Arduino, the design of the D1 R32 appealed to me and I have also bought one.
I am very disappointed with the range of the WLAN and Bluetooth modules. With both, I have to be right next to the router or stand with the smartphone in front of the ESP for it to connect. Do you have any tips on how to increase the range of the D1 R32? Thanks!
Hello Jonas,
I've taken my D1 R32 out of the box. For me, the access point is on the ceiling and about 10m away.
I have -56 dbm reception despite walls. With the addon board mounted, I still have -60 dbm. So, I can't complain about the range.
However, the ESP's antenna also points upwards. Therefore, I turned the ESP upside down for this, which is mounted on a metal plate which should also provide additional shielding.
The RSSI value on the ESP was -70 dbm, which is still okay.
(Access point is a Netlink EAP265 HD)
With the ESP32, there's an issue where it sometimes won't connect; this is described in the Problems chapter here: https://www.fambach.net/esp32-nuetzliche-infos/.
Additionally, you can include an ESP.restart(); after the loop has run multiple times.
Otherwise, that's all I can think of. https://www.youtube.com/watch?v=wP9YMNj_E7Y 😉
Hello
Stefan
Addendum, I've uploaded my test program to Git:
https://github.com/sfambach/esp32/tree/master/project/Test_WifiEsp32
Hello Jonas,
As a new user (well, until yesterday!) I was also struggling with an extremely weak Wi-Fi signal. My mistake was using pins from ADC2. I used GPIO2 & GPIO4 as I2C SDA & SDC. After switching to GPIO18 & 19, the Wi-Fi signal had full strength. Greetings from Austria, Bert
Hello Angelbert,
Thank you for your contribution and feedback. It's a bit of a design flaw with the ADC2, but of course, that's due to the ESP32 and not the board.
Greetings from Germany to Austria
Stefan
Thank you very much for this very informative article!
I realise that most existing expansion boards won't work. However, this board is very easy to combine with the Arduino prototyping boards available from well-known suppliers in China for around 1 to 2 Euros. This makes it much easier to work with than wobbly breadboards.
Greetings
Fred
Hello Fred,
Thank you for your contribution. You are of course correct, the prototype board fits and offers some advantages, I also like using it. I've also thought of the sensor board; for example, it offers direct connections for servos and other sensors.
Link to quick Ali
Hello
Stefan
Thank you for updating the page and for your reply. I suppose I'll *have* to get one of those then... 😉
Kind regards,
Migusch
Hello Migusch,
if that works for you. Personally, I don't think the board is that good because most expansion boards don't work, making the format pointless. There are cheaper ESP32 boards with more pins that can also be programmed with the Arduino GUI.
Hello
SteFam
Hello Migusch,
Thank you for your contribution. My response took a moment, as I wanted to update the post and correct a few errors first. As the articles are constantly evolving, it's unfortunately sometimes unavoidable that some information is incomplete or the post, as in the case above, is forgotten. I hope the content is no longer contradictory now. The Arduino Uno has 6 ADC inputs, which are also conditionally available here. ADC Pins 0/1, however, cannot be operated in parallel with Wi-Fi. 4 further inputs of ADC 2 are available on digital pins of the Arduino Uno.
I also tested the basic OTA straight away, it works even though I sometimes have interruptions.
Regards, SteFam
Lovely website with lots of useful information!
Yes, the WeMos D1 R32 can be programmed wirelessly via „OTA“ (Over-the-Air).
I didn't understand how many analogue connections can actually be used now. The chip could actually have 18, but how many are brought out to the Arduino GPIO? The silkscreen printing labels 6 connections as „Analog“. Above, you draw a line between A2 and A4, does that mean the connections are unusable?
Thank you for your reply