Best controller options for ESP32 boards
Posted: Thu Jul 10, 2025 4:01 pm
I have recently been exclusively using ESP32s instead of Arduinos since BLE and WiFi is built in. For several projects, such as robot car kits, etc, I have need to find a game controller/controller that works well and will work well into the future. I started with the following online resource that I like quite a bit although it did not work for me since my PS3 controller is not genuine SONY. As you can see, many other commenters had a similar issue.
https://dronebotworkshop.com/ps3-esp32/
So my question is, generally speaking, which game controllers/controllers and protocols work well with ESP32 devices (ESP32 WROVER for example) and are expected to work well with newer devices? Dealing with BLE vs Classic vs Swith variant vs Xbox variant vs blah blah has been very tedious and a waste of time. So can anyone chime in on the following?
1. Are game controllers or web page based control the recommended route?
Below is a link of a project where an ESP32 is connected to an iRoomba and controlled via a web server UI. It is pretty neat though the direction control is not very good because every increment of movement is sent to the ESP32/iRoomba so that a simple "move forward" motion results in many commands to move forward. So if you motion to go forward, the iRoomba moves forward for a pretty long time. Either way, it seems to me that the code can be adjusted for that. The UI is very responsive and intuitive otherwise.
https://www.youtube.com/watch?v=4jAM5P7PcK0
2. If a game controller is considered the best option, which types are considered to be the best option with current boards and, hopefully, with boards to come? As I mentioned in the beginning, connecting an ESP32 WROVER with a non-genuine SONY PS3 game controller per the example did not work. With expertise you can probably make this work though I'm not looking to spend too much time on this. I want a reasonably "plug and play" solution.
3. Which libraries are recommended for what I'm trying to accomplish? I know this depends on the answer to #2 above
4. Are there any resources or projects that already took care of this? Looking for a control option that is robust, fairly low latency, distance is not that important and relatively easy to accomplish. I plan to use the same controller accross several boards/projects if possible.
https://dronebotworkshop.com/ps3-esp32/
So my question is, generally speaking, which game controllers/controllers and protocols work well with ESP32 devices (ESP32 WROVER for example) and are expected to work well with newer devices? Dealing with BLE vs Classic vs Swith variant vs Xbox variant vs blah blah has been very tedious and a waste of time. So can anyone chime in on the following?
1. Are game controllers or web page based control the recommended route?
Below is a link of a project where an ESP32 is connected to an iRoomba and controlled via a web server UI. It is pretty neat though the direction control is not very good because every increment of movement is sent to the ESP32/iRoomba so that a simple "move forward" motion results in many commands to move forward. So if you motion to go forward, the iRoomba moves forward for a pretty long time. Either way, it seems to me that the code can be adjusted for that. The UI is very responsive and intuitive otherwise.
https://www.youtube.com/watch?v=4jAM5P7PcK0
2. If a game controller is considered the best option, which types are considered to be the best option with current boards and, hopefully, with boards to come? As I mentioned in the beginning, connecting an ESP32 WROVER with a non-genuine SONY PS3 game controller per the example did not work. With expertise you can probably make this work though I'm not looking to spend too much time on this. I want a reasonably "plug and play" solution.
3. Which libraries are recommended for what I'm trying to accomplish? I know this depends on the answer to #2 above
4. Are there any resources or projects that already took care of this? Looking for a control option that is robust, fairly low latency, distance is not that important and relatively easy to accomplish. I plan to use the same controller accross several boards/projects if possible.