Driver Station

This might happen if the data took longer, than the allowable time to arrive.
The allowable time window is just over a 10th of a second.

Try again and check your connection settings.

ESP / Wifi Board

  • Is there a red light on the ESP-01?
  • Try disconnecting everything but 3.3V and GND.
  • If the ESP-01 works with just +3.3V and GND (Pins 1 & 8), connect  (TX pin 2), and test again, then RX (pin 7), then GPIO2 (pin 3).
  • If the blue LED is lit, but it is faint or it seems to flicker on and off when you touch the wires, contact us for a replacement board.

The errors you are getting when the upload failed typically occur when the IDE can’t connect to the ESP-01. Some of the reasons this may happen are:

  • ESP-01 is not powered on.
  • ESP-01 is not connected to WiFi (wrong SSID/password, too far away from router) – Invalid SSL certificate or incorrectly installed Certificate Authority.
  • Failure of the DNS system to map the hostname to an IP address.
  • Connection is already in use (i.e. the DriverStation is connected to the ESP-01).

The following list might solve the Certificate issues:

  • Make sure the Root Certificate is installed properly! Follow the steps outlined on our resources webpage.
  • If your ESP-01 is connected to your local WiFi, it should automatically acquire a proper SSL certificate. Another alternative is to find the IP address of the ESP-01 on your network and use the IP address instead of the hostname.
  • To tell if the CA is properly installed , browse to https://yourelegoo.local/ If you don’t get a security warning, the CA is properly installed. Otherwise try to re-install the certificate.

This can be caused due to several reasons.

Any connection issues related to the http[s]://yourelegoo.local is usually caused by mDNS (MultiCast DNS) not working properly on your local WiFi router or due to a local firewall. Here are some pointers you might want to consider:

  • Local WiFi network needs to be set to public (not private).
  • For Windows OS, try going in to “Firewall & network protection” -> Advanced settings -> inbound rules and make sure all 3 mDNS entries are enabled, likewise for outbound rules.
  • For Windows OS, Check this registry key: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\EnableMulticast.
  • Turn off all external firewalls, such as AVG (you may want to re-enable your firewall when not using the Elegoo car for safety).
  • For Windows OS, uninstall Apple Bonjour Service.
  • Removing IPv6 from the wireless network adapter if your router is set up with only IPv4.
  • Turn DNS Filtering off on your router for the Elegoo IP.
  • The main reason why the “programmer not responding” happens is that the socket can’t be opened (another program is connected to the ESP-01 or mDNS name lookup failure are the top reasons).

The current firmware version is 0.9.9 (latest version can be found on the website).
You can check the firmware version on your ESP-01 on the admin webpage found at https://tcp2elegoo.local/ (kit default) https://yourelegoo.local/ (yourelegoo is the name you gave your ESP-01, if you changed it) or https://ip-address/ (given by your router, e.g.

You can update the firmware directly from the admin webpage or if required download the latest version at Browse to your Elegoo ESP-01 at https://yourelegoo/update to update the firmware with the downloaded Tcp2Serial-loader.bin file.

General Elegoo Questions

First of all, make sure to disconnect the Bluetooth module and connect the ESP-01 WiFi board. Check out instructions and test the connection on our resources webpage. When asked for SSID and network key, you need to type in your home WiFi SSID. (The SSID is case sensitive!)

The next step would be to start programming the various components to make sure they work. Check out our workshops for more information.

For a more generic look at Arduino programming, try looking through any of these YouTube videos on Arduino (by Paul McWorter):

Start with this introduction to the Arduino Uno Pinout:

Additional Hints:

  • “Pinout” means the mapping of physical pins to internal microcontroller functionality.
  • Many pins can do more than one thing. None of them can do everything.
  • The I/O expansion board in your kit will give you 8 more inputs/outputs. It connects to the Arduino over the I2C bus (using up two more pins!).
  • The Elegoo kit uses up almost all of the pins on the Arduino. You’ll have to get creative and make trade-offs.

I was able to attach the wheel encoder but the wheel won’t fit unless I loosen a screw on the motor.

Make sure to add the motor spacers between the aluminum motor mount and the bottom plate!
I recently added video explains how to do the installation (and use the beam break sensors):

Programming the Elegoo

Closing Chrome or closing the DuinoApp Tab, should break the connection to the compile server.

We are planning to document that. The version of DriverStation that was uploaded last week maps the buttons according to the following diagram:

The analog values are mapped a little differently than the diagram. We decided that it makes more sense to have the “forward” direction be positive and “backwards” to be negative (which is opposite the default).

Note: the new version works for Linux & Windows.  Mapping for Chromebook will be added soon.

We have a workshop available on our resources webpage under workshops/Programming/Elegoo/Start Here. It provides basic information about how to connect to your Elegoo from our WWFIRST DuinoApp server.

The Windows extension is documented on the resources webpage and requires the following archive

For Linux there is a new hardware support package available at Move the hardware folder to your “Home”/Arduino/hardware folder.

Provided Arduino Extensions

At power on, all the ports are HIGH with a weak 100uA internal pull-up to Vdd. More information can be found at

Regarding the I/O expansion board, its I/O pins are “quasi-bidirectional”. That means that instead of setting the pin to either an input or an output (by calling pinMode in Arduino), you just go ahead and read or write them. To set a pin that you previously have written (i.e. made it output something) back to an input, write a 1 to that pin and then an external device can pull that pin high or low. Details on the datasheet at

The library to use is at