## 2025-07-19
Just started to read [this article](https://medium.com/@tranduchanh.ms/esp32-iot-firmware-development-from-zero-to-production-preparation-part-1-a7ef90a0f12a) on Medium. I think it'd probably be helpful to outline what I want out of this project. The questions that I want to address were "Goals — What is the expected output?", "Device functionalities requirement", and "Target hardware." From the top now!
### Goals
- Retrofit Guitar Hero Xplorer controller with an IoT device to become wireless
- Minimal to no case modifications
- Low input latency and communication between host and client
### Required device functionality
- Bluetooth
- 12 digital input GPIO pins for buttons (5 fret buttons, bi-directional strum, d-pad, start, select & home)
- 1 analog input GPIO pin for whammy bar
- Ability to hook up an accelerometer/gyroscope for star power on tilt
- Can run off a rechargeable battery with reasonable battery life
### Target hardware
- ESP32 Dev kit
There. Now I've got a good place to start. Time to do some research on paths I can take for firmware. Also, I want to make sure the hardware is compatible with all my requirements.
## 2025-07-18
Today I finally had some free time at home to dive back into this project... only to run into a wall, face-first, very comically. I failed to understand, and most importantly *actually read* [Loc15's PicoGamepadConverter](https://github.com/Loc15/PicoGamepadConverter) repo. Turns out (and you'll get this by reading the very first sentence of the readme) that this project is meant to be a controller input translator between platforms. For example, it allows one to use a Playstation 1 controller on a PC, Wii, or even a Switch. Pretty neat, if you're not me since I can't (won't) read!
So, after chasing down a ready-made solution for so long, I think I'm going to try and write my own firmware for one of these microcontrollers. Now, I do have plenty of options here, since I'm going to be the one writing it, I can choose which board I want to use. For some reason, I'm really leaning towards using an ESP32. Off the top of my head, I know for a fact all ESP32s have a Bluetooth controller in them, which is what I'm aiming for. The hard part here is that *I don't actually know if Bluetooth is going to be the right tool for the job.*
Of course I'm going to pick ESP32. Of course! After I've had three of them since January and I *just* received the two Pi Picos I ordered of Adafruit. I'm sure I'll find a use for them eventually. For now, they're going in the pile of microcontrollers.
In all reality, it truly wouldn't be the end of the world if Bluetooth doesn't work out. I'd still have experience and learn plenty from making my own firmware for the damn thing. So that's where I'm headed.
Thanks for reading today's version of "Cole complains to his blog". Tune in next week for the exciting conclusion!
If you (yes you, the reader) have any suggestions, I'd love it if you could reach out to me. Probably on Discord since this site doesn't have a comment section. You can find my username on [[Articles/Home|the home page]].