Skip to content

Steps and Requirements

  • Arduino IDE
  • Open-source Bottango firmware

You can read Using the Source Code for a high-level overview of where to get the source code and how to use the Arduino IDE with Bottango’s firmware.

There are a few one-time setup steps you’ll need to take before the Arduino IDE can recompile and reupload new firmware.

Add the ESP32 Arduino Framework to the Board Manager
Section titled “Add the ESP32 Arduino Framework to the Board Manager”

Bottango control boards are based on the ESP32 microcontroller. You’ll need to configure the Arduino IDE so it can compile and upload firmware onto the ESP32 microcontroller used by Bottango control boards. If you need more detail on this setup, this external guide walks through the process: Installing the ESP32 Board in Arduino IDE.

Set ESP32 Arduino Framework to Version 2.0.17
Section titled “Set ESP32 Arduino Framework to Version 2.0.17”

Once you’ve added ESP32 as a supported board in the Arduino IDE board manager, it will by default install the latest version of the ESP32 Arduino Framework. However, Bottango’s control boards are tested and built against a specific version: 2.0.17.

  1. In the Tools menu, select Tools > Board > Board Manager.
  2. Search for “ESP32”.
  3. If you followed the previous steps to install the ESP32 Arduino Framework, you should find “esp32 by Espressif Systems”.
  4. Select version 2.0.17 from the version dropdown and click “Install”.

In the Tools menu, select Tools > Manage Libraries...

Search for and install the following libraries:

  • “ESP32Servo” (Authors Kevin Harrington, John K Bennett)
  • “FastLED” (Author Daniel Garcia)

You can use the latest version available of these libraries when installing them.

Bottango control boards have many functions and features that are not enabled by default in the stock Bottango firmware. Fortunately, it’s easy to configure the firmware to set itself up for a Bottango Solar/Nova/Impulse.

In the source of the firmware, locate the /src/ folder, then find the file named BoardDefs.h and open it in a text editor. On Windows, use Notepad or an equivalent. On Mac, use TextEdit or an equivalent.

Locate the following lines near the top:

BoardDefs.h
// #define BOTTANGO_IMPULSE
// #define BOTTANGO_NOVA
// #define BOTTANGO_SOLAR

Edit the line to remove the two slash // symbols for the board you are trying to modify the firmware for. As an example, if you are going to upload to a Bottango Solar, you would edit the BoardDefs.h file so that the line looked like this:

BoardDefs.h
// #define BOTTANGO_IMPULSE
// #define BOTTANGO_NOVA
#define BOTTANGO_SOLAR

Then save your changes. Enabling a board type in this file will enable all the functionality and features specific to that board. The firmware flashed onto the board by the application is the same as the stock firmware with this one change in BoardDefs, which handles the rest. Be sure to only have one board type enabled here at a time, and revert back to no boards enabled to use the stock Bottango firmware.

Once you’ve made your desired changes, you can upload the firmware onto the Bottango control board. Choose the serial port for your target board, and select “ESP32 Dev Module” as the board type in the Arduino IDE.