Skip to content

ESP32 + Bottango

Advanced Topic Skip if you’re new, explore when you’re ready.

ESP32-based dev boards are some of the most powerful “bang for buck” microcontroller dev boards you can get. They offer great performance for a pretty reasonable cost, often around the same cost as a much slower Arduino Uno R3. As well, they’re very battle-tested with Bottango and are a great choice. If you’re running into the limitations of what an Arduino Uno/Nano/Mega can do, they’re a great choice.

Getting set up takes a little extra work, though.

When you first start looking for ESP32-based development boards, you’ll likely be overwhelmed with options. Unlike an Arduino Uno R3, which is a single product that has been cloned over and over, an ESP32 is more of an ecosystem than a single product.

There are three parts that come together to make an ESP32-based development board:

  1. What underlying microcontroller and revision was used? ESP32 rev E vs ESP32S3, etc.
  2. What package for the microcontroller was used? WROOM vs discrete chips and components, etc.
  3. What form factor, layout, and supporting components did the dev board designer use to support the ESP32 Microcontroller? Some are tiny with a few output pins wired up, others are made to match the form factor of an Arduino Uno R3, etc.

If your head is starting to spin, I don’t blame you! And it’s made more complex by the non-intuitive naming choices used by manufacturers.

If you’re looking for a good starting point, look for something with a name like: “esp32-wroom-32e.” Breaking that down it’s a base ESP32 (the oldest but easiest to work with), with the WROOM all-in-one package, and the latest 32e hardware revision. Not all esp32-wroom-32e dev boards are going to be the same in terms of quality and choice of components, etc. so do your research.

As well, not all esp32-wroom-32e dev boards are going to be the same in terms of layout and pin arrangement. Take care to observe what pin is where for the board you pick; you can’t rely on random guides from Google.

  1. You need to set up the Arduino IDE to be able to upload code to an ESP32. Here’s an example tutorial from “RandomNerdTutorials.com.” You only need to do this once.

  2. After that’s done, make sure you can upload Arduino sketches to your connected ESP32. Use a basic blink sketch, and if your ESP32 dev board has some kind of user LED (most do) set the pin on the blink sketch to your ESP32’s user LED. Some ESP32 dev boards need you to hold down the “BOOT” button while uploading new code onto it, but not all.

  3. Install one extra library. In the Arduino IDE go to the library manager (Tools > Manage Libraries…) and search for “ESP32Servo.” Install the result named ESP32Servo with Kevin Harrington as the author.

  4. Now you should be able to flash Bottango firmware onto your ESP32, following the steps in the guide pages.

  5. When you set up servos in Bottango, you’ll want to use the GPIO pins that you hook up your servo to in Bottango, the same as you would with an Arduino Uno. Remember that unlike an Arduino Uno, there is not a standardized layout of pins. Find and double check that the pin number on your dev board is the correct GPIO number.