Esp32 DevKit v1

Esp32 DevKit v1

Connection Type
Wi-Fi
Number of servos
25
Audio Support
No
Camera Support
No

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.

*Note: For servo use with EZ-Cam, only pins 2,4,12-19,21-23,25-27,32-33 are recommended.


Firmware & Instructions

  1. In the Arduino IDE, add this link to File->Preferences->Libraries: https://dl.espressif.com/dl/package_esp32_index.json
  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 192.168.1.1. 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.

Related Content

tutorial
Create Auto Position Actions From EZ-Script

Create Auto Position Actions From EZ-Script

This tutorial uses the ControlCommand() EZ-Script command that instructs the Auto Position control to create a frame and...
live hack
ESP32 Connect To ARC

ESP32 Connect To ARC

I'll be programming the ESP32 Doit DevKit v1 with a firmware which turns it into an EZ-B for ARC to connect and control....
tutorial
Connect ESP32 To EZ-Builder Via Wifi

Connect ESP32 To EZ-Builder Via Wifi

Turn an ESP32 into an EZ-B to control servos and speech recognition with EZ-Builder. The ESP32 Synthiam firmware allows...
question

Esp32 And Ultrasound Sensor

Does the esp32 support the ultrasound sound sensor?
tutorial
Control Robot With Virtual Reality Headset

Control Robot With Virtual Reality Headset

Learn how to control your robot with a virtual reality headset in the synthiam software platform
question

Servo Range Restricted With ESP32

Hi DJ and co... Thanks for all the hard work with the recent ARC updates. I've recently added an ESP32 to my InMoov to control some of the servos...
tutorial
Exosphere Telepresence

Exosphere Telepresence

How to configure Exosphere for remote telepresence two-way communication & remote control
question
I Resolved The Problem

I Resolved The Problem

can't upload code to Arduino Ever since I used the esp32 (and it worked well)  this is what I get when I try to upload a...
question

ESP32 And A PCA9685 To Control 16 Servomotors With ARC

Good day, my problem is this: I want to build a robot myself. I already have the following servo control components: ESP32 and a PCA9685 to control 16...
question

8X8 Animator Matrix Error

when I add the skill of HT16K33 Animator (8x8) (I2C), this problem occurred often. please give me a solution for this ? Version: 2021.03.02.00...
PRO
Synthiam
#9  
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
#10  
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.

Thanks
PRO
Synthiam
#11  
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.
#12  
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.
PRO
USA
#13   — Edited
Does the Esp32 firmware work with the ESP8266 NodeMCU CP2102 ESP-12E WiFi Internet Development Board Wireless Module Compatible with Arduino IDE

EzAng
PRO
Synthiam
#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.
PRO
Canada
#15  
@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.
PRO
USA
#16   — Edited
ok sounds good, thanks Jeremie

EzAng
PRO
Canada
#17  
Wiring was getting too messy (even for me) so I created a little ESP32 servo shield. In hindsight I really don’t need the FTDI as I won’t reprogram it unless a new firmware comes out so I think I will order just the ESP chips from China  and make some smaller shields just for servo control.


User-inserted image
PRO
Synthiam
#18  
That's a great idea! Looks good with the sticker labels!
PRO
Canada
#20   — Edited
Small problem with ESP servo calibration and degrees of movement.   Take a HDD servo connect to an ESP and press center and it is about 10 degrees off. Now plug it into a EZB press center  Perfect.

OK recalibrate for ESP. Now add servo control and move it to 1 degree it should be at 90 degrees to servo motor but it is about 45 degrees. Now move it to 180 degrees and it is only at about 135 degrees.

now move back to 0 and press release and it will move back to 135 degrees   now move servo by hand to 0 and press release again  this time it moves back to 135 but doesnt release

using latest ESP firmware and port D5
PRO
Synthiam
#21  
That’s the esp32 servo firmware for ya. All of the arduino servo libraries are off a little. They weren’t written that well. Might want to take a look at other servo libraries to try instead of the one I choose. I think it choose that one because it was the highest recommended.
PRO
Synthiam
#23  
Wanna try a new firmware for me? I updated the servo library to the latest - see if this helps. Let me know if it works before I update it on the website firmware list: EZ-ESP32.zip
PRO
Canada
#24  
went to bed with a broken servo, woke up to a working servo.  Nice thank for the quick turn around.
you still have to recalibrate (although i guess I could use an offset with my bots that use them) and release doesn't work but I get 180 degrees and it is a lot snappier, the old driver was a bit grindy.

I think the ESP has a lot of promise as a controller. There are a lot of things that work with arduino like LIDAR etc and having a single $5 controller that does a lot of things with ARC would be great. 

I am sure the new ESP32-S3 will solve all the performance issues as well

https://www.espressif.com/en/news/ESP32_S3
PRO
Canada
#25  
New drivers work well with Robot Hand.  Question in Auto position, can you get two frames to execute at exact same time under the one action.  I played with delay and speed etc but I can’t get a smooth in sync motion where frame 1 and frame 2 load in parallel (same time) and not serial (one starts and then the other starts) Example count in decimal works fine but if you count in binary you want to move two or more fingers at same time versus individual fingers and I really don’t want to create a frame for every permutation, just -1 out the servos that I don’t want to move.  
#26   — Edited
Is it possible to use one of these to add wifi to an older ezb board? I have the version 3 which has a faulty bluetooth module.
#28  
Thanks for the reference. I'll see what it does. I figured it was worth a tinker before scrapping out the board.