This controller was designed for use with a video ray pro4 ROV. I work at a company that inspects cleans drinking water reservoirs using a pro4 and other underwater robots. I found that the default controller from video ray is really uncomfortable to use for a full day and its design made it difficult for me to use during complex movements and actions. The controller shows up as a USB game-pad to the control computer used for the robot so it was a simple matter to reverse engineer the control inputs for use with this custom USB controller.
I learned to use KiCAD 7.0 to design the custom PCB for this project and I used OnShape for the cad of the controller. Generally this controller has some quirks that I would change in a v2 but to comfortably and efficiently drive a pro4 it works surprisingly well.
The electronics used for this project were an RP2040 Adafruit Feather board with generic joysticks bought on digikey (COM-09032), 10 generic push buttons (6mm button height), 4 electrolytic capacitors to smooth joystick motion and a 10k linear POT. I also used an assortment of DuPont headers.
If you want to checkout the CAD for this project you can check out my design at https://cad.onshape.com/documents/9419f7314355fc0529143749/w/7dd750f9077cb0f159653e8e/e/9448de140bcc603a1d0b7df0
if you want to check out the code and KiCAD files checkout my GitHub repository at https://github.com/kmatthews123/Controller
The code for this project relies heavily on an awesome library called joystick_XL for circuit python. if you want to build a project like this one a great starting point is this GitHub and associated documentation. https://github.com/fasteddy516/CircuitPython_JoystickXL . For those unfamiliar with the somewhat complicated process of building a USB HID device this library and circuit python in general makes things really easy. I can see lots of use cases for this library with all manner of custom interface devices and I could see this project acting as a good starting point for anyone trying to do something similar.
For anyone trying to replicate this project 1 to 1 for use with a pro4 I have been using this device for the last couple days and I have some things I would like to revise. I don't plan on doing that unless there is more interest in this project beyond just me. Please reach out to me if you want to build or use this project with your own video ray device as this thing in its current state could use some modification for that. If your from video ray and your reading this, I tried asking your support for help mapping an Xbox controller for use with my bot but I was told that there's no longer tech support for this older ROV. So don't be mad at me for building something different and usable for me :)
The author marked this model as their own original creation.