Esp32 DevKit v1

DJs ESP32 DOIT DevKit v1

Hardware: Esp32 DevKit v1 Esp32 DevKit v1

Author: DJ Sures

This firmware converts a Esp32 DevKit v1 into an EZB for ARC to connect to it.

This firmware transforms an ESP32 DOIT DevKit v1 into an EZ-B, enabling Synthiam ARC to connect to it via WiFi. Once configured, the ESP32 acts as a bridge between ARC and connected peripherals, such as servos, sensors, and other I/O devices. While the ESP32 offers limited ports, it provides an efficient and compact solution for various robotics and IoT projects. For a detailed list of supported features and available ports, refer to the hardware page.

Key Features:

  1. EZ-B Compatibility: Converts the ESP32 into an EZ-B, enabling seamless integration with Synthiam ARC.
  2. WiFi Connectivity: Allows ARC to wirelessly communicate with the ESP32 for remote control and monitoring.
  3. Servo and Peripheral Support: Includes servo control and I/O management with libraries optimized for the ESP32.

Prerequisites:

To prepare your development environment, follow these steps:

  1. Install ESP32 Libraries:

  2. Install the ESP32 Board Package:

    • Go to Tools > Board > Board Manager.
    • Search for "ESP32 by Espressif Systems."
    • Install the latest version.
  3. Required Libraries: Ensure you have the following libraries installed in your Arduino IDE:

    • Espressif Systems esp32 Library (version 3.0.7)
    • ESP32Servo by Kevin Harrington (version 3.0.6)

How to Upload the Firmware:

  1. Open the firmware sketch in the Arduino IDE.
  2. Select the correct board and port:
    • Board: ESP32 Dev Module (DOIT DevKit v1)
    • Port: Select the port where your ESP32 is connected.
  3. Click the Upload button to flash the firmware onto your ESP32.

Functionality:

  • Once the firmware is uploaded, the ESP32 creates a WiFi network or connects to an existing one, allowing Synthiam ARC to communicate with it.
  • The firmware supports servo control and basic I/O operations, enabling robotics and automation projects.
  • Limited GPIO ports are available; check the hardware page for detailed port mappings and limitations.

Compatible Libraries:

  • Espressif Systems esp32 Library (v3.0.7): Provides core support for the ESP32 hardware and WiFi functionality.
  • ESP32Servo by Kevin Harrington (v3.0.6): Enables precise control of servos connected to the ESP32.

Applications:

This firmware is ideal for:

  • Building cost-effective robotic platforms with WiFi connectivity.
  • Adding EZ-B functionality to existing projects using the ESP32.
  • Integrating sensors and actuators with Synthiam ARC for real-time control and monitoring.

By leveraging this firmware, the ESP32 DOIT DevKit v1 becomes a powerful and versatile EZ-B-compatible controller, opening up endless possibilities for your robotics and IoT creations.


This project builds using...

  • Espressif Systems esp32 library version 3.0.7
  • ESP32Servo by Kevin Harrington version 3.0.6
  • Untested

Firmware & Instructions

  • In the Arduino IDE, add this link to File->Preferences->Libraries: https://dl.espressif.com/dl/package_esp32_index.json

  • In the Arduino IDE, load the Board Manager, search for "Espressif Systems", and select INSTALL on the esp32 by Espressif Systems.

  • Download the firmware from this page to your computer and extract it into a folder.

  • Edit the source code firmware in the Arduino IDE and view the WiFi mode settings. You can choose between AP and Client mode. The appropriate settings for each method may also be configured. Follow the instructions in the firmware code to configure the WiFi modes.

  • 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.

  • You can view the connection's status in the Arduino Serial Monitor set to 115,200 baud. Depending on your WiFi settings, you will also see the connection status.

  • In the Tools drop-down, select the COM port for the board. You may need to install a device driver for the serial chip. The manufacturer of the USB serial chip will provide the driver.

  • Under the tools drop-down, select Board -> ESP32 -> DOIT ESP32 DEVKIT V1, which may be far down in the long list.

  • Load ARC and connect to 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. View the Serial Debug Monitor in Arduino IDE in Client mode or check your router DHCP client list.

Supported Capabilities
  • ADC with 12 bit Resolution
    The ADC captures analog voltage at 8 bit resolution. This means the native value will be an 8 bit (0-4095) from the controller.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • Native WiFi Connectivity from ARC
    Controller supports WiFi connectivity using TCP between your computer with ARC.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

Version Information

  • Added the latest ESP32_Servo library (0.9.0)
Click to show supported capabilities
Supported Capabilities
  • ADC with 12 bit Resolution
    The ADC captures analog voltage at 8 bit resolution. This means the native value will be an 8 bit (0-4095) from the controller.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • Native WiFi Connectivity from ARC
    Controller supports WiFi connectivity using TCP between your computer with ARC.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

June 28, 2019

  • Fixed max number of servos that crashed if outside bounds of array
  • Allow port type to be a servo so the firmware knows when to reset the pinmode when ARC changes pinmode
Click to show supported capabilities
Supported Capabilities
  • ADC with 12 bit Resolution
    The ADC captures analog voltage at 8 bit resolution. This means the native value will be an 8 bit (0-4095) from the controller.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • Native WiFi Connectivity from ARC
    Controller supports WiFi connectivity using TCP between your computer with ARC.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

First prototype of this firmware. Expect bugs:)

Click to show supported capabilities
Supported Capabilities
  • ADC with 12 bit Resolution
    The ADC captures analog voltage at 8 bit resolution. This means the native value will be an 8 bit (0-4095) from the controller.
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
    Contains 1 or more hardware UARTs with TX/RX functionality and DMA RX buffering.
  • Native WiFi Connectivity from ARC
    Controller supports WiFi connectivity using TCP between your computer with ARC.
  • PWM Duty on digital ports
    Digital ports can output a PWM between 0% and 100%.
  • PWM servos on digital ports
    The controller supports PWM Servos on digital ports. These are also called Hobby servos.
  • PWM servos on digital ports can release their position
    PWM servo driver on digital ports support the feature to release their holding position.
  • Read/Write Digital I/O Ports
    The ports marked as being digital will respond to Read and Write commands of boolean logic. The status of the digital port will be either TRUE or FALSE when voltage is detected or not, respectively.

ARC Pro

Upgrade to ARC Pro

Elevate your robot's capabilities to the next level with Synthiam ARC Pro, unlocking a world of possibilities in robot programming.