Skip to the content
PCBKitNew board
4 layers59.8 × 84.4 mmMulti module controller PCB, the printed circuit board in 3D

GameSteerRC, Allows Control of RC vehicles with any USB Game Controller

Size
59.8 × 84.4 mm
Copper layers
4
Thickness
1.6 mm
Parts
89
Nets
96
Pads
426
Tracks, vias
986, 119
Pours
18
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
24 Oct 2025
Updated
23 Jul 2026

Overview

Multi module controller PCB is an open-source printed circuit board by Patronics, from the Patronics/universal-multimodule-controller repository on GitHub, published under the GPL-2.0 licence. It is a 4-layer board of 59.8 × 84.4 mm with 89 parts on 96 nets, routed with 986 tracks and 119 vias.

It is built around the W25Q128JVSIQ, FSUSB42MUX and ABM8-272-T3. Its parts include 28 resistors, 27 capacitors, 10 connectors, 10 switches and 6 ICs. It belongs with the keyboards and input boards and the RP2350 boards of this library.

Main components

3

README

README.md

Universal Multi-Module Controller

This project aims to allow standard input devices (such as game controllers and keyboards) to control output to 4-in-one multi-module transmitters.

Created by Patrick Leiser and Josh Adriano.

Installation

Use the Arduino-Pico board core by Earle Philhower Dependencies: U8g2 by oliver ArduinoJson by Benoit Blanchon Bounce2 by Thomas O Fredericks Pico PIO USB by Sekigon-gonnoc

You can program it with the Arduino IDE directly, adjust the menu options as described at the top of GamesteerRC.ino.

Alternatively, for advanced usage and debugging, you can install the Arduino-CLI and use the scripts as described below:

Build & Debug Scripts


build.sh

Builds a release version of the firmware using Arduino CLI.

  • Optimized for performance (-O2 / -Os)
  • Produces .elf and .uf2 in build/
  • Use when you want final or production-like firmware

debug-build.sh

Builds a debug version of the firmware.

  • Uses -Og optimization for good debugging behavior
  • Includes full debug symbols (-g)
  • Outputs to build-debug/
  • Use when stepping through code or inspecting variables with GDB

flash.sh

Flashes firmware using the Raspberry Pi Debug Probe (OpenOCD + SWD).

  • Programs the .elf directly to flash
  • Verifies and resets the device
  • Use for fast iteration during debugging

openocd.sh

Starts the OpenOCD GDB server.

  • Provides a debugging connection on port 3333
  • Required before connecting GDB
  • Use when preparing a debug session

gdb.sh

Launches GDB for source-level debugging.

  • Connects to OpenOCD (localhost:3333)
  • Uses the project .elf
  • Use for breakpoints, stepping, and inspecting state
  • See debugging section below for additional details

upload.sh

Flashes firmware using the UF2 bootloader (USB mode).

  • uses arduino-cli upload
  • Before use, edit upload.sh with the port of your target device, such as /dev/cu.usbmodem101 or COM7
    • Alternatively, you can manually boot the device into BOOTSEL mode, and copy build/GamesteerRC.ino.uf2 onto the device.
  • No debugger needed
  • Use for simple deployment or recovery

Typical usage

Call the scripts from the top level of the directory, such as ./scripts/build.sh

  • Development (debugging): debug-build.sh → flash.sh → openocd.sh → (in a second terminal session) gdb.sh
  • Quick standalone flash: build.sh → upload.sh

Debugging

For debugging, once OpenOCD and GDB are active, within GDB run

gdb
target extended-remote :3333
monitor reset halt
break panic
continue

Parts

89
QtyValueFootprintReferences
15100nCapacitor_SMD:C_0402_1005MetricC2, C8, C11, C12, C13, C14, C15, C16, C17, C18, C20, C21, C23, C25, C26
422Resistor_SMD:R_0402_1005MetricR20, R21, R22, R26
4DNFResistor_SMD:R_0402_1005MetricR1, R9, R11, R13
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
310kResistor_SMD:R_0402_1005MetricR15, R16, R27
310uCapacitor_SMD:C_0805_2012MetricC1, C5, C19
31kResistor_SMD:R_0402_1005MetricR2, R4, R6
215pCapacitor_SMD:C_0402_1005MetricC3, C4
227Resistor_SMD:R_0402_1005MetricR7, R8
233kResistor_SMD:R_0402_1005MetricR14, R18
24.7uCapacitor_SMD:C_0402_1005MetricC9, C10
24.7uRP2350_80QFN_minimal:C_0402_1005Metric_small_padsC6, C7
247kResistor_SMD:R_0402_1005MetricR17, R19
247uCapacitor_SMD:C_1206_3216MetricC24, C27
256kResistor_SMD:R_0402_1005MetricR23, R24
25k1Resistor_SMD:R_0402_1005MetricR5, R12
2SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_Vertical_Wuerth_434133025816SW1, SW2
2USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ5, J6
10Resistor_SMD:R_0402_1005MetricR10
1100kResistor_SMD:R_0402_1005MetricR28
13.3uRP2350_80QFN_minimal:L_pol_2016L1
133Resistor_SMD:R_0402_1005MetricR3
1470Resistor_SMD:R_0603_1608MetricR25
1ABM8-272-T3Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
1ADC_BreakoutConnector_PinHeader_2.54mm:PinHeader_2x09_P2.54mm_VerticalJ9
1BTN_BACKButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW8
1BTN_DOWNButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW6
1BTN_LEFTButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW3
1BTN_MDLButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW10
1BTN_OKButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW5
1BTN_RIGHTButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW7
1BTN_SYSButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW9
1BTN_UPButton_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW4
1Conn_01x01Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ12
1Conn_02x06_Odd_EvenConnector_PinSocket_2.54mm:PinSocket_2x06_P2.54mm_VerticalJ1
1Conn_Generic 1x3Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ4
1DNFCapacitor_SMD:C_0402_1005MetricC22
1DNFPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU4
1FSUSB42MUXPackage_SO:MSOP-10_3x3mm_P0.5mmU5
1Internal unused GPIO BreakoutConnector_PinHeader_1.27mm:PinHeader_2x03_P1.27mm_VerticalJ10
1LEDLED_SMD:LED_0603_1608MetricD1
1MIC2026-1xMPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU6
1Micro_SD_Card_Det1EasyEDA:SD-SMD_MLD-TF-PUSH-H18J11
1Module_BayConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_VerticalJ7
1NCP1117-3.3_SOT223Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1RP2350_80QFNRP2350_80QFN_minimal:RP2350-QFN-80-1EP_10x10_P0.4mm_EP3.4x3.4mm_ThermalViasU1
1USB_AConnector_USB:USB_A_Connfly_DS1095J8
1W25Q128JVSPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU3
1~Project_Footprint_Library:Waveshare 1.54in OLEDDS1

Questions

How big is the Multi module controller PCB PCB?

It measures 59.8 × 84.4 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Multi module controller PCB use?

89 parts, built around the W25Q128JVSIQ, FSUSB42MUX and ABM8-272-T3. 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 Multi module controller PCB KiCad files?

From the Patronics/universal-multimodule-controller repository on GitHub, at the commit this page was made from: the board is RP2350B Multi-module controller PCB/multi-module_controller_PCB.kicad_pcb and its schematic RP2350B Multi-module controller PCB/multi-module_controller_PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Multi module controller PCB design in my own project?

Its repository publishes it under the GPL-2.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 layers174 × 111 mmPedalboard hw, the printed circuit board in 3D

    Pedalboard hw

    pedalboard/pedalboard-hw

    pedalboard audio midi processor open hardware

    169 parts14CERN-OHL-P-2.0
  • 4 layers100 × 100 mmUMMTJ Mainboard, the printed circuit board in 3D

    UMMTJ Mainboard

    vamatis/UMMTJ

    A universal Test jig setup for small production and prototype shops

    147 parts
  • 6 layers29 × 80.6 mmBladeCore M54E, the printed circuit board in 3D

    BladeCore M54E

    DvidMakesThings/HW_PDNode-600-Pro

    The PDNode-600 is a professional-grade, 600W USB Power Delivery Unit designed specifically for compact 10-inch rack systems, targeting embedded developers, homelab enthusiasts, test benches, and smart infrastructure.

    150 parts86AGPL-3.0
  • 4 layers75 × 65 mmCRImier MyKiCad vaio re, the printed circuit board in 3D

    CRImier MyKiCad vaio re

    punkfab/pcb-corpus

    235 real KiCad boards from open-source hardware repositories, prepared as a placement and routing benchmark

    289 parts1
  • 4 layers40 × 55 mmCopterCat cm4, the printed circuit board in 3D

    CopterCat cm4

    matveylapin/CopterCat_cm4

    Полётный контроллер для стандарта FMU-v6u. Обычно на дронах для программирования устанавливают полётный контроллер, одноплатный компьютер и иногда arduino.

    164 parts3Apache-2.0
  • 4 layers150 × 100 mmZpn devboard, the printed circuit board in 3D

    Zpn devboard

    CRImier/MyKiCad

    My KiCad boards. Can't be bothered uploading individually anymore, so here you go.

    168 parts253GPL-3.0
  • 4 layers55 × 100.5 mmOSS Radio Hardware Design, the printed circuit board in 3D

    OSS Radio Hardware Design

    Arkos-Engineering/HT-15_hardware

    We can split this out into separate repos later, right now its very convenient to have everything here.

    256 parts72
  • 2 layers75 × 40 mmPicoTop Board Rev2, the printed circuit board in 3D

    PicoTop Board Rev2

    7west/PicoTop

    A very basic computer & OS based on the RP2350 microcontroller

    86 parts66