DOIT Esp32 DevKit v1

DOIT Esp32 DevKit v1

Connection Type
Number of servos
Audio Support
Camera Support

The DOIT Esp32 DevKit v1 is a very affordable WiFi module with plenty of IO, including 3 hardware UARTs. Adding the firmware below, the WiFi module will become an EZB that can be connected by ARC. This firmware works with ARC versions greater or equal to 2019.06.25.00.

Firmware & Instructions

  1. In the Arduino IDE, add this link to File->Preferences->Libraries:
  2. In the Arduino IDE, load the Board Manager, search for "ESP32 by Espressif Systems" and select INSTALL.
  3. Download the firmware from this page to your computer and extract it into a folder.
  4. Edit the source code firmware in the Arduino IDE and view the WiFi mode settings. You can choose between AP or Client mode. The appropriate settings for each mode may be configured as well. Follow the instructions in the firmware code for configuring the WiFi modes.
  5. Program the device using Arduino's IDE and the firmware code. If you receive errors in the debug window of the Arduino IDE when programming, hold the BOOT button down on the ESP32 until you see WRITING in the Arduino debug window.
  6. View the status of the connection in the Arduino Serial Monitor set to 115,200 baud. Depending on your WiFi settings, you will see the WiFi connection status.
  7. Load ARC and connect to either the ESP32 directly via WiFi if it is in AP Mode, otherwise connect to the same network as Client Mode. The default IP Address for AP Mode will be In Client mode, you will have to view the Serial Debug Monitor in Arduino IDE, or check your router DHCP client list.

Video Tutorial

WiFi Modes

There are two WiFi modes that can be configured in the code. They are AP Mode, which turns the ESP32 into a WiFi server that your computer connects directly to. The other mode is Client Mode, which the ESP32 connects to your network router. Get the IP Address and connection status information by viewing the Serial Monitor set to 115,200 in Arduino IDE.

Port Configuration

The pins in ARC are labelled D0 - D23. The ESP32 has GPIO labelled pins, which are not in any ordered sequence. This translation chart below shows the mapping of the ESP GPIO to ARC Dx pins. The ports labelled TX/RX are the hardware UART ports which correspond to hardware UART #0 in ARC.

I have done many small projects with the ESP8266 (temp sensors, garage door status, cell phone garage door opener, scrolling LED displays).
Just great little boards, very cheap, WiFi and programming with the Arduino IDE they can't be beat.
With this update, I guess it's time for me to try the new big brother ESP32.
What Fun!

Thanks DJ
This looks like something I can play with and add some fun stuff around the house.
Those are good ideas! Perfect for these devices being so affordable. I think we bought a box for $4 each. What stuff do you guys have in mind?

i might make a controller for my blinds on the deck at my cabin:)
Updated the firmware to work with the latest beta ARC on 2019-06-25-00
I understand that the firmware is for the DOIT ESP32 devkit1, but in France what I easily find it is the ESP32 NodeMCU, which has 38 pinouts
Do you think it could work, with this firmware or with minor changes ?
Not a clue - but they're usually $5 boards so it's worth a shot :). Also, be warned that this board is really slow and doesn't do much.
Ok, thanks. Maybe i will give it a try.
It is really a lot slower than, let's say, an IO-tiny ?
Oh yah - like by a ton. The IoTiny is incredibly fast. Think about that an IoTiny can stream audio and video and i/o in realtime over wifi with a web server. The ESP32 can ONLY do some i/o. Not even that much i/o.... just a little bit. A few servos and it starts acting wonky
OK, it seems indeed really limited...

Just a suggestion, maybe this kind of info (such as "Speed") could appear on the "Compatible hardware" page, next to "Connection", "Servos", "Camera", "Audio", or on the manual page of each hardware. It would help people like me to know the limitations and capabilities in this matter.

Well - the speed is the reason why camera and audio aren’t capable 

as for merely using I/o, it would be fine and you don’t notice the speed limitations. The speed limitation is why there aren’t checkboxes for other features. So giving a speed or potential parameter would be difficult to document because it’s abstract to what it’s related to. 

if you use this device for only what it can do, it’ll be equivalent to the respective capabilities of other controllers, such as iotiny.
OK, I understand.
I didn't interpret correctly the audio or camera check. For me it meant that there was no way to physically plug a camera or connect an audio output.
But the way you put it totally makes sense.
#13   — Edited
Does the Esp32 firmware work with the ESP8266 NodeMCU CP2102 ESP-12E WiFi Internet Development Board Wireless Module Compatible with Arduino IDE

#14   — Edited
I don't know - you can try. I've never heard of that before. I'm sure it'll work with small tweaks.
@EzAng, the ESP32 and the ESP8266 are different chips, so as @DJ mentioned you would need to tweak the EZ-B arduino code to make it work.

To put it frankly, I wouldn't bother with ESP8266 as it's the older version of the ESP32. The ESP32 has many more GPIO and ADC ports, and it looks like the ESP8266 has only 1 ADC port. The ESP32 is twice as fast as the ESP8266 and has also 2 cores. The price is only a fraction higher for the ESP32 so if it were me I'd choose the ESP32, hands down.
ok sounds good, thanks