Skip to the content
PCBKitNew board
4 layers117.3 × 78.7 mmOSMC Receiver, the printed circuit board in 3D

A modular controller that can be configure to how you want to use it

Size
117.3 × 78.7 mm
Copper layers
4
Thickness
1.56 mm
Parts
91
Nets
141
Pads
541
Tracks, vias
1,087, 192
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
1 Sep 2025
Updated
23 Apr 2026

Overview

OSMC Receiver is an open-source printed circuit board by Koalaven, from the Koalaven/Open-Source-Modular-Controller repository on GitHub. It is a 4-layer board of 117.3 × 78.7 mm with 91 parts on 141 nets, routed with 1,087 tracks and 192 vias.

It is built around the PCF8574DWR. Its parts include 46 resistors, 15 ICs and 4 capacitors. It belongs with the ESP32 boards of this library.

Main components

1

README

README.md

Open Source Modular Controller

Using a modular, reconfigurable hardware architecture to create a customizable USB HID game controller.

Project Details

The Open Source Modular Controller project is a fully modular and customizable gaming input system. Users can freely rearrange joysticks, buttons, and future input modules on a set of interchangeable receiver boards to build a layout that fits their gameplay style, ergonomic needs, or accessibility requirements.

The controller connects over USB and is recognized as a standard Human Interface Device (HID) with no additional drivers required.

Current State

The current prototype includes:

  • A functional ESP32‑S3‑based main controller
  • Hot-swappable joystick and button modules
  • Receiver boards that can be placed anywhere in the 3D‑printed shell
  • USB HID communication via TinyUSB

The system operates as a recognized USB gamepad on Windows. Some hardware issues were identified and corrected in updated revisions.

Project Structure

The repository is organized as follows:

  1. Firmware – ESP32‑S3 code handling HID communication and module input processing.
    Link: Firmware
  2. Software – PC‑side utilities or test scripts (coming soon).
  3. Hardware – KiCad project files, schematics, PCBs, and 3D‑printed shell models.
    Link: Hardware
  4. Documentation – Assembly instructions, diagrams, semester report, and testing notes.
    Link: Documentation

Features

  • Modular input modules (buttons, joystick, future sensors)
  • Repositionable input layout using multiple receiver boards
  • ESP32‑S3 native USB HID support
  • Open‑source hardware and firmware
  • 3D‑printable ergonomic controller shell

System Architecture

Core system components include:

  • Receiver boards distributing power, signals, and micro-controller
  • Module boards for inputs (joystick/button)
  • 3D‑printed enclosure with heat‑set inserts for secure mounting

USB HID enumeration and report handling are implemented using TinyUSB. Modules communicate through standardized connectors to the controller board.

Bill of Materials

A full BOM including the ESP32‑S3 boards, connector sets, resistors, capacitors, PCBs, wire, and 3D‑printed components is provided in the documentation.
BOM

Tools Used

Software

  • Arduino IDE
  • KiCad
  • OnShape (frame design)
  • GitHub Desktop
  • Cura slicer

Hardware

  • 3D printer
  • Soldering iron
  • Hot air station
  • Multimeter
  • Tweezers

Assembly Overview

  1. Gather materials (refer to BOM).
  2. Order PCBs (Gerber files included).
  3. 3D print shell and module housings.
  4. Clean and prepare boards.
  5. Solder components (headers, ESP32 module, connectors, buttons/joysticks).
  6. Upload firmware via Arduino IDE.
  7. Install modules into the shell.
  8. Test controller.

Full assembly guide

What the Project Could Use Next

  1. On‑board processing for more advanced input mapping
  2. PCB adjustment and testing
  3. Wireless mode using Bluetooth HID
  4. Additional module types (battery, gyroscope, sliders, touchpads)

Semester End Report

For the Enterprise Program at Michigan Tech there is a end of semester and project report for the project to summarize the progress of the project. Link

Acknowledgements

This project is supported by the Open Source Hardware Enterprise at Michigan Technological University.

Helpful Links

References

GitHub Doc

Alpakka conroller

Proteus ControllerTM kit

Thrustmaster

Adafruit ADS1X15 Library

Parts

91
QtyValueFootprintReferences
2810kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR1, R2, R10, R17, R18, R19, R20, R21, R22, R23, R24, R29, R30, R31, R32, R33 +12
24SolderJumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_Pad1.0x1.5mmJP10, JP11, JP12, JP13, JP14, JP15, JP16, JP17, JP18, JP19, JP20, JP21, JP22, JP23, JP24, JP25 +8
8OSMC Module BoardOSMC_Module:Module standard pin large outlineU13, U14, U15, U16, U17, U18, U19, U20
41000kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR25, R27, R35, R37
4LTC4317Package_DFN_QFN:DFN-16-1EP_3x5mm_P0.5mm_EP1.66x4.4mmU2, U5, U6, U7
2.1 uCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC1, C2
2100kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR3, R4
2976kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR5, R11
2CCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC3, C4
10PCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR16
1102kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR13
1182kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR6
11MPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR12
124AA02-OTPackage_TO_SOT_SMD:SOT-23-5U1
1280kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR15
1392kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR26
1523kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR28
1681kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR36
1887kPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR38
1PCF8574DWRPCF8574DWR:DW16-LU4
1RPCM_Resistor_SMD_AKL:R_0603_1608Metric_Pad1.05x0.95mm_HandSolderR14
1WPJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1XIAO-ESP32-S3-DIPSeed Studio Xiao:XIAO-ESP32-S3-DIPU3
1intJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1

Questions

How big is the OSMC Receiver PCB?

It measures 117.3 × 78.7 mm and has 4 copper layers, 1.56 mm thick.

What parts does the OSMC Receiver use?

91 parts, built around the PCF8574DWR. 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 OSMC Receiver KiCad files?

From the Koalaven/Open-Source-Modular-Controller repository on GitHub, at the commit this page was made from: the board is Hardware/PCBs/OSMC_Receiver/OSMC_Receiver.kicad_pcb and its schematic Hardware/PCBs/OSMC_Receiver/Modules.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the OSMC Receiver design in my own project?

Its repository states no licence, so its author keeps all rights: ask Koalaven before reusing the design.

More from Koalaven/Open-Source-Modular-Controller

11
  • 4 layers116.8 × 78.2 mmOSMC Receiver Translators, the printed circuit board in 3D

    OSMC Receiver Translators

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    67 parts
  • 2 layers234 × 136.1 mmModules, the printed circuit board in 3D

    Modules

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    50 parts
  • 4 layers34 × 41 mmOSMC Module Buttons Click, the printed circuit board in 3D

    OSMC Module Buttons Click

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    15 parts
  • 4 layers34 × 41 mmOSMC Module Buttons Nav, the printed circuit board in 3D

    OSMC Module Buttons Nav

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    15 parts
  • 4 layers34 × 41 mmOSMC Module Master, the printed circuit board in 3D

    OSMC Module Master

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    13 parts
  • 4 layers34 × 41 mmOSMC Module Buttons, the printed circuit board in 3D

    OSMC Module Buttons

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    11 parts
  • 4 layers34 × 41 mmOSMC Module Bumpers, the printed circuit board in 3D

    OSMC Module Bumpers

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    8 parts
  • 4 layers34 × 41 mmOSMC Module Buttons Membrane, the printed circuit board in 3D

    OSMC Module Buttons Membrane

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    7 parts
  • 4 layers34 × 41 mmOSMC Module Joystick V2, the printed circuit board in 3D

    OSMC Module Joystick V2

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    7 parts
  • 4 layers34 × 41 mmOSMC Module Joystick, the printed circuit board in 3D

    OSMC Module Joystick

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    6 parts
  • 2 layers34 × 41 mmOSMC Module Generic Receiver, the printed circuit board in 3D

    OSMC Module Generic Receiver

    Koalaven/Open-Source-Modular-Controller

    A modular controller that can be configure to how you want to use it

    5 parts

Similar boards

  • 2 layers50 × 100 mmLumaDIY, the printed circuit board in 3D

    LumaDIY

    nekaas/LumaDIY

    ESP32-C3 SuperMini educational development board — learn electronics, programming, sensors & robotics

    42 parts
  • 4 layers38 × 38 mmCLN17-V1.0, the printed circuit board in 3D

    CLN17-V1.0

    creapunk/CLN-ClosedLoopNemaDriver

    Compact closed-loop stepper motor driver designed for NEMA motors

    91 parts1.1k
  • 4 layers50 × 50 mmHadesMicro, the printed circuit board in 3D

    HadesMicro

    pms67/HadesFCS

    Complete flight control system designed from scratch. Hardware designed with KiCad.

    91 parts1kBSD-3-Clause
  • 4 layers45 × 48 mmHuvud, the printed circuit board in 3D

    Huvud

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    91 parts373GPL-3.0
  • 4 layers65 × 49.8 mm2.5in IDE SSD no lengthmatch, the printed circuit board in 3D

    2.5in IDE SSD no lengthmatch

    dosdude1/2.5-inch-ide-ssd

    A custom-designed IDE SSD for use in any machine that utilizies a 2.5" IDE hard disk.

    91 parts334GPL-3.0
  • 4 layers65.1 × 30.2 mmMmdvm hs hat, the printed circuit board in 3D

    Mmdvm hs hat

    mathisschmieder/MMDVM_HS_Hat

    MMDVM_HS Hat for the Raspberry Pi (Zero)

    91 parts201
  • 4 layers93.5 × 72.3 mmLeptosis left, the printed circuit board in 3D

    Leptosis left

    cheyao/leptosis

    Ultra flat PG1316 bluetooth split keyboard

    91 parts60
  • 4 layers50 × 22.9 mmRf sig gen, the printed circuit board in 3D

    Rf sig gen

    joshajohnson/rf-sig-gen

    MAX2871 based RF Signal Generator in an Adafruit Feather Form Factor

    91 parts53