I had a quick thought to do something like this a while back, but never got around to the experimental phase. I ended up buying a new controller instead (whilst grumbling about making an adapter). Thanks for making it happen, and being kind enough to open source it. Looking forward to giving it a try later.
Yeah, I was between buying a new controller or making this too, but I figure it's a perfectly fine controller and I had the hardware lying around.
It doesn't work perfectly, as there are some HID intricacies that need to be remapped, and I don't have a second controller to see whether the intricacies are general or just specific to mine, but let me know if it works for you!
Awesome project. With the current price of DRAM, I've been looking at the possibility to do some side projects with ESP32 as opposed to RPi. As a complete newbie, could you help me by recommending where I could start from, i.e., Software, tools, docs? Thanks.
I use the Arduino framework and PlatformIO to make the flashing/dependency management part easier. Other than that, the Arduino docs are great, and LLMs can help you with learning anything specific, so it's really a great time to get started!
So did you really write this, as claimed in the title, or did you vibe code it? If the latter, how much of the code did you review? How much of it do you understand and could rewrite by hand if necessary? How much of it are you confident you can find and fix bugs and exploits in?
If you think that asking “how much of this thing you claim to have written did you actually write and understand” is comparable to the Spanish Inquisition, it seems fair to assume that you probably wrote and understand close to nothing of it. Thank you for clarifying.
Surely you’re doing nothing to dispel the notion. If it isn’t true, say it. My questions were genuine, I don’t understand your defensiveness. Either you understand the code or you don’t. There are people who will be fine with it and use it anyway, and people who won’t be and will use something else. But they all will benefit (and temper expectations) from an honest answer.
Before LLMs, did you ask maintainers how much of the code they wrote themselves, vs how much of it did someone else write, and how well they reviewed the code? Because I haven't seen this ever, everyone just went by "does this library work for me? If not, I'll fix it or stop using it".
It's only now, with LLMs, and particularly on HN that we're so all up in arms about authorship all of a sudden.
Yes! It’s insane to not worry about how well a maintainer reviews submitted code. Every semi-competent open-source developer understands that merging code they do not understand is a recipe for disaster and maintenance burden. Furthermore, they understand that not doing so is how you get malicious vulnerabilities merged. Have you truly not seen any such cases in recent memory? The fact you don’t think good reviews are important is worrying and puts into question all your repos.
Can you explain why it makes a difference what the answers are?
When using an open source library assumptions should be:
- The code does what it advertises.
- The owner is responsible for the functionality.
- The owner's reputation is based on the quality.
You're making it sound that you're more sure for the above when the code is "hand-written" than LLM-driven. Why exactly? Do you tend to deeply understand the strengths and limitations of every coder whose software you're using in your projects?
As long as the owner is responsible for the quality of a project why does it matter how it was executed?
> Can you explain why it makes a difference what the answers are?
You answered it yourself:
> the owner is responsible for the quality of a project
If you didn’t write, review, or understand the code, then you cannot be responsible for its quality. If you don’t have the skills to write it by hand and understand it, you don’t have to skills to properly address bug reports or understand and prevent malicious submissions.
All of those are legitimate concerns and considerations when deciding if you want to invest your time in a project.
Honestly, if the author had responded “I vibe coded it and didn’t review any of it, but it’s been working for me for <however long>”, that would’ve been fine. It would have been a clear, honest answer that would let everyone decide how they want to proceed.
No, I disagree with the premise, that's why I don't want to answer. I am responsible for the quality of the project by virtue of publishing it, not because I wrote it in a way you agree or disagree with. Your questions are irrelevant. The only thing that's relevant is whether my name is on the repo or not.
If I didn't think it's good enough to release, I'd say something like "I vibe-coded this and didn't check it, use at your own peril". How much of the code I understand and how much an LLM wrote is entirely irrelevant.
I guess the easiest way to measure this would be to run some gamepad test program on the target device, and then to record a video from your phone close to the gamepad but still with the screen visible. Then flick a button hard with your finger so that the gamepad button makes a click sound. Then load the video into a video editing software, zoom-in, and measure the number of video frames between the click sound and the reaction on the screen.
I had a quick thought to do something like this a while back, but never got around to the experimental phase. I ended up buying a new controller instead (whilst grumbling about making an adapter). Thanks for making it happen, and being kind enough to open source it. Looking forward to giving it a try later.
Yeah, I was between buying a new controller or making this too, but I figure it's a perfectly fine controller and I had the hardware lying around.
It doesn't work perfectly, as there are some HID intricacies that need to be remapped, and I don't have a second controller to see whether the intricacies are general or just specific to mine, but let me know if it works for you!
Awesome project. With the current price of DRAM, I've been looking at the possibility to do some side projects with ESP32 as opposed to RPi. As a complete newbie, could you help me by recommending where I could start from, i.e., Software, tools, docs? Thanks.
I use the Arduino framework and PlatformIO to make the flashing/dependency management part easier. Other than that, the Arduino docs are great, and LLMs can help you with learning anything specific, so it's really a great time to get started!
I like how readable the code is. I don't write anything in C++ nowadays, but it's clear enough for me to follow.
Ah, I can't really take credit for that, it was mostly multiple LLMs.
So did you really write this, as claimed in the title, or did you vibe code it? If the latter, how much of the code did you review? How much of it do you understand and could rewrite by hand if necessary? How much of it are you confident you can find and fix bugs and exploits in?
https://www.youtube.com/watch?v=D5Df191WJ3o
If you think that asking “how much of this thing you claim to have written did you actually write and understand” is comparable to the Spanish Inquisition, it seems fair to assume that you probably wrote and understand close to nothing of it. Thank you for clarifying.
Yes this makes sense.
Surely you’re doing nothing to dispel the notion. If it isn’t true, say it. My questions were genuine, I don’t understand your defensiveness. Either you understand the code or you don’t. There are people who will be fine with it and use it anyway, and people who won’t be and will use something else. But they all will benefit (and temper expectations) from an honest answer.
I mean, these are fair questions if you’re the library maintainer :)
Before LLMs, did you ask maintainers how much of the code they wrote themselves, vs how much of it did someone else write, and how well they reviewed the code? Because I haven't seen this ever, everyone just went by "does this library work for me? If not, I'll fix it or stop using it".
It's only now, with LLMs, and particularly on HN that we're so all up in arms about authorship all of a sudden.
> and how well they reviewed the code?
Yes! It’s insane to not worry about how well a maintainer reviews submitted code. Every semi-competent open-source developer understands that merging code they do not understand is a recipe for disaster and maintenance burden. Furthermore, they understand that not doing so is how you get malicious vulnerabilities merged. Have you truly not seen any such cases in recent memory? The fact you don’t think good reviews are important is worrying and puts into question all your repos.
I regret sharing this, that's for sure.
Can you explain why it makes a difference what the answers are?
When using an open source library assumptions should be:
- The code does what it advertises.
- The owner is responsible for the functionality.
- The owner's reputation is based on the quality.
You're making it sound that you're more sure for the above when the code is "hand-written" than LLM-driven. Why exactly? Do you tend to deeply understand the strengths and limitations of every coder whose software you're using in your projects?
As long as the owner is responsible for the quality of a project why does it matter how it was executed?
> Can you explain why it makes a difference what the answers are?
You answered it yourself:
> the owner is responsible for the quality of a project
If you didn’t write, review, or understand the code, then you cannot be responsible for its quality. If you don’t have the skills to write it by hand and understand it, you don’t have to skills to properly address bug reports or understand and prevent malicious submissions.
All of those are legitimate concerns and considerations when deciding if you want to invest your time in a project.
Honestly, if the author had responded “I vibe coded it and didn’t review any of it, but it’s been working for me for <however long>”, that would’ve been fine. It would have been a clear, honest answer that would let everyone decide how they want to proceed.
No, I disagree with the premise, that's why I don't want to answer. I am responsible for the quality of the project by virtue of publishing it, not because I wrote it in a way you agree or disagree with. Your questions are irrelevant. The only thing that's relevant is whether my name is on the repo or not.
If I didn't think it's good enough to release, I'd say something like "I vibe-coded this and didn't check it, use at your own peril". How much of the code I understand and how much an LLM wrote is entirely irrelevant.
This is a clever and practical hack!
Love the decoupled arch / making it easy to tweak for different controllers.
Nice work!
Thanks! I liked how the hardware is really easy to make, I just soldered a USB port to an ESP32-S3 and that was it!
... and the latency is?
I didn't notice any higher latency than with my Xbox one controller!
I guess the easiest way to measure this would be to run some gamepad test program on the target device, and then to record a video from your phone close to the gamepad but still with the screen visible. Then flick a button hard with your finger so that the gamepad button makes a click sound. Then load the video into a video editing software, zoom-in, and measure the number of video frames between the click sound and the reaction on the screen.
I agree this is the way to do it, but for an old cheapo gamepad, "it feels fine" was good enough for me at this stage.