Required skills and tools
March 10, 2026 · View on GitHub
Software tools (and external dependencies)
Indispensable:
-
Arduino IDE. Choose a stable release and follow instructions. This project has been successfully compiled with version 2.3.7.
-
Official Arduino-ESP32 support package. Follow this link for installation instructions. This project has been successfully tested with version 3.3.4. Any versión prior to 3.3.0 will not work.
-
Powershell. Already installed in Windows. Not strictly needed in Linux or Mac.
Important
This project is not guaranteed to work with untested version dependencies. When troubleshooting, check this first.
May be needed:
-
ESP32 drivers on Windows. A tutorial: Installing drivers for the ESP32. Depending on what DevKit board you choose, a different driver may be needed. Check all information available from the manufacturer.
-
- h2zero/NimBLE-Arduino. This project has been successfully tested with version 2.3.7. Any version prior to version 2.2.0 will not work. This optional library is a caution against bugs. How to use it will be explained later.
- Adafruit GFX. Required only for telemetry display via OLED hardware. This project has been successfully tested with version 1.12.5.
Recommended:
-
DIY layout creator. Alternate link. This is a design tool for the physical layout of hand made circuit boards.
-
Any joystick test application able to display 128 buttons:
-
Planet pointy's joystick test application (for Windows 10). Does not work in Windows 11.
-
pygame-joystick-test. Works in any operating system, but requires Python.
-
Multi-joystick tester. Works in Windows 11. Best choice for now, but be aware that this app may miss some rotation events from rotary encoders due to its own polling interval (not a firmware's fault).
-
-
Visual Studio Code, as an alternative to Arduino IDE. Requires Arduino Community Edition for VSCode. Installable from VSCode itself. Note: The official Arduino extension was deprecated.
-
SimpleHIDWrite.exe: available at http://janaxelson.com/hidpage.htm. There is a modern clone here: benbaker76/SimpleHIDWrite. This tool is used in this project to test custom HID reports.
-
PCB design tools:
-
EasyEDA Pro. This is a free tool and very easy to learn. You can install it locally or run it online (a free account may be required). From this tool, you can order a PCB (and optional assembly) to JLCPCB.
-
KiCAD. Free and open source.
-
Hardware tools
Indispensable:
- Soldering iron for electronics
- Thin welding tin with flux
- Cutting pliers
Recommended:
- A "third hand"
- A soldering stand
- A cheap multimeter
- A protoboard
- A kit of Dupond wires for protoboards
Skills
There are lots of resources out in the Internet to learn those skills. Just use your favorite search engine.
Indispensable:
- Basic soldering for electronics.
- Compile, upload and run Arduino's sketches using Arduino IDE.
- Run powershell scripts (for Windows users only).
Recommended:
- Ohm's law.
- Basics of switches, resistors, diodes and transistors.
- Role of pull-up and pull-down resistors.
- Basics of C and C++ programming languages.
- How to order a custom PCB