Skip to content

Developer Setup

Sean P. Harrington edited this page Feb 26, 2025 · 1 revision

Setting Up to Modify or Customize the Aq+ Gamepad

The Aq+ Gamepad can be modified or customized a number of ways, including an easy-to-Use menu system via USB serial terminal. Also, when system updates are needed, this setup allows users to perform updates themselves.

Installing and Setting up Arduino IDE

  1. Download and install Arduino IDE (see Links & References page)
  2. Download and activate ESP32 boards, drivers, and supporting tools:
    • From within the Arduino IDE, go to the Boards Manager:
      • (SHFT+CTRL+B on Windows)
      • Tools > Board: [current board name] > Boards Manager
    • In the "Filter your search..." box, type "esp32", then from the list below, select "esp32 by Espressif System", choosing version 3.1.1 or later from the dropdown.
    • Click on the INSTALL button
      • The system will download and install the ESP32 boards definitions
      • Depending on your connection, this could take a few minutes
  3. Once installed, set the correct Board for this project:
    • From the menu, select Tools > Board: > esp32 > ESP32-S3-Box
  4. Install the Arduino libraries for this project:
    • From within the Arduino IDE, go to the Library Manager:
      • (SHFT+CTRL+I on Windows)
      • Tools > Manage Libraries...
    • In the "Filter your search..." box, type "ESP32-BLE", then from the list below, select "ESP32-BLE-Gamepad by lemmingDev", choosing version 0.7.3 or later from the dropdown.
    • Click on the INSTALL button
      • The system will download and install the library
      • It will also install "NimBLE-Arduino by h2zero", 2.2.2 or later
      • Depending on your connection, this could take a few minutes
    • Clear the "Filter your search..." box, and type "NeoPixel", then from the list below, select "Adafruit NeoPixel by Adafruit", choosing 1.12.4 or later or later from the dropdown.
    • Click on the INSTALL button
      • The system will download and install the library
      • Depending on your connection, this could take a few minutes
  5. Connect the Aq+ Gamepad to your system using a USB micro cable.
    • You may need to use a system utility (i.e. Device Manager on Windows) to determine what communication port the Aq+ Gamepad has been assigned, needed in the next steps.
  6. Set the proper Board Settings for the project:
    • Tools > Port: > COMxx (whatever port your Aq+ Gamepad has been assigned)
    • Tools > Core Debug Level: > None
    • Tools > USB DFU On Boot: > Disabled
    • Tools > Erase All Flash Before Sketch Upload: > Disabled
    • Tools > USB Firmware MSC On Boot: > Disabled
    • Tools > Partition Scheme: > 16MB Flash (3MB App/9.9MB FATFS)
    • Tools > USB Mode: > Hardware CDC and JTAG
    • Tools > Programmer: > Esptool (ensure it is CHECKED)
  7. Configure the Serial Monitor:
    • Tools > Serial Monitor
    • Within the Serial Monitor window or tab, from the drop-down, select New Line
    • Within the Arduino IDE, the Baud rate, stop, and parity bits are automatically set, but for other terminal programs, they are 115200 baud, 8 bits, no parity

Interacting With the Aq+ Gamepad Via Terminal

Once all of this is set up, when the Aq+ Gamepad is attached, you can interact with the Aq+ Gamepad via terminal menu by entering commands in the top box of the Serial Monitor and then typing ENTER.

Below is the HELP menu, showing all available commands:

   A  - Toggle DPAD <> Analog state
   B  - Toggle button rows (1 2 3) <> (4 5 6)
   C  - Show configuration data
   D  - Show debug data x10, once every 1/4 second
   L  - Show current DPAD & Button Row settings
   M  - Auto-set max battery level (only when charge light is off)
   P  - Show preferences data
   R  - Reset X & Y trim to 0
   S  - Show BTLE statistics
   T  - Auto-trim X & Y axis
  H/? - Show Help (this) screen

Clone this wiki locally