

TxTroller
A Radio Receiver-to-USB HID Gamepad Adapter
- Size
- 19.9 × 34 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 8
- Nets
- 26
- Pads
- 43
- Tracks, vias
- 45, 13
- Pours
- 21
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 16 Sep 2026
- Updated
- 13 Oct 2026
Overview
TxTroller is an open-source printed circuit board by Person-0, from the Person-0/TxTroller repository on GitHub, published under the MIT licence. It is a 2-layer board of 19.9 × 34 mm with 8 parts on 26 nets, routed with 45 tracks and 13 vias.
Its parts include 1 IC, 1 diode, 1 transistor and 1 connector. It belongs with the RP2040 boards of this library.
README
README.mdTxTroller
A Radio Receiver-to-USB HID Gamepad Adapter.
Build Photos
Demo Video
Click to open in YouTube
What is this?
This is a simple adapter that will allow older-style Radio transmitter / receiver combos to be used as video-game controllers using the USB HID Gamepad device class.
Watch me crash quads using TxTroller: youtube video link
Hardware
For the initial stages, this is being developed for the Radiolink R8EF receiver, which is an 8-channel receiver operating on the 2.4GHz frequency band.
As for the transmitter that will be the actual gamepad, It will be the Radiolink T8FB transmitter, which is a 2.4GHz 8 Channels RC Remote Transmitter.
The microcontroller that will be responsible for translating the SBUS signals from the receiver to the USB device class is the XIAO RP2040 due to it's small footprint and easy-to-use C/C++ SDK.
PCB
The PCB has been designed using KiCAD 9.0. It is a 2 layer PCB with both top and bottom having thick signal traces and a ground fill.
PCB Schematics:
PCB layout:
PCB Preview:
3D Case
The case has been designed in Fusion 360, with the .f3z available in the /CAD directory, along with the exported .step files of the top and bottom parts of the case in /CAD/exports.
The case looks like this:
The case has side extrusions for friction-fitting the top and bottom part of the case together.
Firmware
Originally modified from raspberrypi/pico-examples/tree/master/usb/device/dev_hid_composite .
Checkout the Firmware directory to view more information on button mappings, firmware compiling / flashing and testing the data received from the receiver.
Ordering, BOM & 3d Printing
The PCB contains no SMD components or any other component that cannot be soldered using a normal soldering iron, hence no PCBA is required.
The PCB gerber .zip file is available in PCB/exports/.
BOM Table
| S.No | Item Name | Description | Product URL | Qty | Unit Price ($) | Effective Price ($) |
|---|---|---|---|---|---|---|
| 1 | XIAO RP2040 | RP2040 Microcontroller | XIAO RP2040 | 1 | 6.14 | 6.14 |
| 2 | PCB | PCB manufacturing cost (5 qty) | Lion Circuits | 1 | 9.84 | 9.84 |
| 3 | 1k Ohm Resistor | 1k Ohm Resistor - Pack of 10 | 1k Resistor Pack | 1 | 0.13 | 0.13 |
| 4 | 10k Ohm Resistor | 10k Ohm Resistor - Pack of 10 | 10k Resistor Pack | 1 | 0.14 | 0.14 |
| 5 | 100 Ohm Resistor | 100 Ohm Resistor - Pack of 10 | 100 Ohm Resistor Pack | 1 | 0.16 | 0.16 |
| Total | 16.41$ |
Note that the PCB states 150ohm resistor but we have only added 100ohm, this is because we can arrange 3 100 ohm resistors in such a way that the effective resistance becomes 150ohms (2parallel+1series).
As for the 3d prints, the following files need to be printed separately:
Since they are designed to be friction fitted, no screws or heatset-inserts are needed.
Assembly Instructions
- Get the PCB manufactured via any PCB fab (I used lioncircuits.com/)
- Solder the transistor, LED, resistors, headers and then finally the MCU. (This order is preferred so as to not let other components get damaged due to less space)
- Flash the firmware, connect your receiver and test whether the device is working fine.
- Get the case 3d printed, set the PCB inside the bottom part of the case, close it via the lid.
- If the case is loose, use a rubber band to firmly hold it in place. Connect the receiver and place it beneath the bottom part of the case.
- Again use something like a rubber badn to hold the receiver firmly in place.
- Build finished!
Credits
- https://github.com/controllercustom/dinput_tinyusb
- https://www.thingiverse.com/thing:6989033
- https://www.reddit.com/r/embedded/comments/1m6d1ei/gamepad_using_tinyusb_on_raspberry_pi_pico/
- https://github.com/gdsports/gamepad_tinyusb
- https://github.com/raspberrypi/pico-examples/tree/master/usb/device/dev_hid_composite
Thank You! 😼💖
Parts
8| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 10k | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | R_INV1 |
| 1 | 150 | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | R_SBLED1 |
| 1 | 1k | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | R_INV2 |
| 1 | 2N2222 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | Q1 |
| 1 | LOGO | LOGO | G*** |
| 1 | RadioReceiver | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J1 |
| 1 | SBUS_LED | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | D1 |
| 1 | XIAO-RP2040-DIP | Seeed Studio XIAO Series Library:XIAO-RP2040-DIP | U1 |
Questions
How big is the TxTroller PCB?
It measures 19.9 × 34 mm and has 2 copper layers, 1.6 mm thick.
What parts does the TxTroller use?
8 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 TxTroller KiCad files?
From the Person-0/TxTroller repository on GitHub, at the commit this page was made from: the board is PCB/TxTroller.kicad_pcb and its schematic PCB/TxTroller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the TxTroller design in my own project?
Its repository publishes it under the MIT 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 layers20.5 × 24.8 mm

- 2 layers14.4 × 10.5 mm

OSO SWAB B1-00 Sensor Watch Accelerometer
joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch
8 parts2.1k - 2 layers7.9 × 39.1 mm

Brain board STM32F407 SD wing it
rusefi/rusefi
rusefi - GPL internal combustion engine control unit
8 parts1.2k - 2 layers59.9 × 25.7 mm

Buffer
hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI
8 parts1kGPL-3.0 - 2 layers52 × 12.6 mm

USB
shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.
8 parts960Apache-2.0 - 2 layers87.5 × 48.5 mm

7 input macropad
hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!
8 parts915 - 2 layers36.2 × 63.1 mm

PicoMemcard pico
dangiu/PicoMemcard
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico
8 parts694GPL-3.0 - 2 layers36 × 10 mm

PCB4-PWR BTN Rev.A
OLIMEX/DIY-LAPTOP
Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop
8 parts578Apache-2.0