

Uv controler
ROV Controller firmware, emulating an XBOX gamepad, using XInput. An underwater casing will be used, so all buttons are two-state push buttons. Buttons represent Hall-effect sensors in the hardware.
- Size
- 194.6 × 60 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 40
- Nets
- 38
- Pads
- 127
- Tracks, vias
- 176, 0
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 22 Mar 2023
- Updated
- 4 Jun 2025
Overview
Uv controler is an open-source printed circuit board by Vutyuka, from the Vutyuka/rov_controller_xinput repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 194.6 × 60 mm with 40 parts on 38 nets, routed with 176 tracks and 0 vias.
Its parts include 12 ICs, 11 resistors, 4 connectors and 1 switch.
README
README.mdROV Controller firmware
ROV Controller firmware, emulating an XBOX gamepad, using XInput. An underwater casing will be used, so all buttons are two-state push buttons. Buttons represent Hall-effect sensors in the hardware.
Basic controller functionality, easy to add and remove buttons:
- Add/remove pinout definition for pin.
- Add/remove pin to button_table.
- Change button_num.
Using Left Joystick with 4 push buttons. Joystick position/speed can be toggled by push button.
Any number of discrete speeds can be added to motor_speed_t.
Tested on Pro Micro(has to be flashed as Leonardo).
To flash: Press reset just as the IDE shows "Uploading" promt IT WILL BRICK THE DEVICE IF THIS IS NOT DONE.
For more on XInput: https://github.com/dmadison/ArduinoXInput
Parts
40| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11 |
| 1 | BACKWARD | user_footprints:SS41F | U11 |
| 1 | CAM_DOWN | user_footprints:SS41F | U4 |
| 1 | CAM_UP | user_footprints:SS41F | U3 |
| 1 | CONTROL_D | Connector_PinHeader_2.54mm:PinHeader_1x10_P2.54mm_Vertical | J3 |
| 1 | CONTROL_M | Connector_PinSocket_2.54mm:PinSocket_1x10_P2.54mm_Vertical | J2 |
| 1 | DOWN | user_footprints:SS41F | U2 |
| 1 | FORWARD | user_footprints:SS41F | U10 |
| 1 | JOY_D | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J4 |
| 1 | JOY_M | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J1 |
| 1 | LEFT | user_footprints:SS41F | U12 |
| 1 | LIGHTS | user_footprints:SS41F | U7 |
| 1 | RIGHT | user_footprints:SS41F | U9 |
| 1 | RST | Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx31-2LFS | SW1 |
| 1 | SPEED | user_footprints:SS41F | U8 |
| 1 | UP | user_footprints:SS41F | U5 |
| 1 | UTIL | user_footprints:SS41F | U6 |
| 1 | ~ | user_footprints:Arduino_Pro_Micro | U1 |
The 28 most common of 40 parts.
Questions
How big is the Uv controler PCB?
It measures 194.6 × 60 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Uv controler use?
40 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Uv controler KiCad files?
From the Vutyuka/rov_controller_xinput repository on GitHub, at the commit this page was made from: the board is uv_controler/uv_controler.kicad_pcb and its schematic uv_controler/uv_controler.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Uv controler design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers139.7 × 73.7 mm

- 2 layers149.4 × 177.4 mm

Lightsculpture
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
40 parts915 - 2 layers150 × 50 mm

EleLab v2 Bus150
Chrismettal/EleLab_v2
Cheap DIY lab system for hobbyists and the tinkering folk
40 parts531GPL-3.0 - 2 layers66.4 × 48.1 mm

Raspberry
Chrismettal/flipper-zero-backpacks
Backpack-style addon boards for the Flipper Zero!
40 parts456 - 2 layers44 × 44 mm

- 2 layers90.8 × 53.3 mm

- 2 layers59.6 × 109.5 mm

Drop
ohmtech-rdi/eurorack-blocks
Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust
40 parts410 - 2 layers123.8 × 73.5 mm
