Skip to the content
2 layers140.8 × 66.4 mmM0+rixPCB, the printed circuit board in 3D

ECE319H Game

Size
140.8 × 66.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
50
Nets
77
Pads
199
Tracks, vias
415, 57
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Mar 2025
Updated
21 Mar 2026

Overview

M0+rixPCB is an open-source printed circuit board by SuryaUT, from the SuryaUT/TheM0trix_Segfaulted repository on GitHub. It is a 2-layer board of 140.8 × 66.4 mm with 50 parts on 77 nets, routed with 415 tracks and 57 vias.

It is built around the TSOP31438 and ULN2003BD. Its parts include 17 resistors, 6 connectors, 5 ICs, 5 switches and 4 capacitors.

Main components

2

README

README.md

🕶️ The M0+rix: Segfaulted

A Matrix-themed multiplayer FPS built entirely on the MSPM0G3507 microcontroller. Featuring low-level graphics rendering via raycasting, joystick control, UART-based multiplayer, and a fully custom 3D-printed enclosure.


Table of Contents


🎮 Game Description

Reality is a pointer… and you just dereferenced NULL.

Welcome to The M0+rix: Segfaulted, a handheld first-person shooter where the only way out is through the system’s deepest vulnerabilities. Running on the MSPM0 microcontroller, this game turns embedded systems into battlegrounds, with PVP combat over UART and a retro-style 3D world.

Dodge enemy fire, navigate the simulation, and exploit every loophole in the code—because in this world, even one bad instruction could bring everything crashing down. Are you the debugger or just another broken process?


🔥 Features:

  • ✅ First-person shooter with a Matrix-inspired digital battlefield
  • ✅ Real-time PVP over UART – battle your opponent in low-level style
  • ✅ Optimized for MSPM0 – embedded gaming meets high-speed action
  • ✅ Handheld experience – take the simulation anywhere
  • ✅ Segfault or escape? – The system is unstable, and only one player will survive

💾 Flash in. Boot up. Overwrite reality.


🚀 Getting Started

  1. Clone this repo

    bash
    git clone https://github.com/SuryaUT/TheM0trix_Segfaulted.git
  2. Import into Code Composer Studio
    Open CCS. Go to File > Import > Code Composer Studio Projects. Select the cloned folder. Make sure the target is set to MSPM0G3507. Click Finish.

  3. Build and Flash
    Plug in the LaunchPad. Press the build button. Flash to the board.


🔩 Parts List

Ref.ValueDatasheetFootprintQty
C11uF~ECE319K:CP_Radial_Tantal200mil1
C24.7uF~ECE319K:CP_Radial_Tantal200mil1
C3, C40.1uF~ECE319K:C_Axial_200mil2
D1, D4LEDLink 1, Link 2ECE319K:LED_D5.0mm2
H1, H2, H3, H4–~ECE319K:MountingHole_4_404
J1AudioJack~ECE319K:Jack_3.5mm_CUI_SJ1-3523N_Horizontal1
J2Speaker~ECE319K:PinHeader_1x02_P2.54mm_Vertical1
J3UART1~ECE319K:PinHeader_1x03_P2.54mm_Vertical1
J6GND~ECE319K:Testpoint_1x02_P2.54mm1
J7DACOUT~ECE319K:Testpoint_1x02_P2.54mm1
J8JoystickSparkFunECE319K:SparkfunJoystick1
JP1TExaS~ECE319K:PinHeader_1x03_P2.54mm_Vertical1
JP2, JP3, JP4Jumper_3_Open~ECE319K:PinHeader_1x03_P2.54mm_Vertical3
R1470ΩResistorsECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal1
R4–R81.5kΩResistorsECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal5
R9–R1112kΩResistorsECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal3
R12–R15, R17, R1910kΩResistorsECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal6
R1620kΩResistorsECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal1
R18220ΩResistorsECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal1
SW1RELOAD~ECE319K:SW_PUSH_6mm1
SW2LEFT~ECE319K:SW_PUSH_6mm1
SW3SWAP~ECE319K:SW_PUSH_6mm1
SW4RIGHT~ECE319K:SW_PUSH_6mm1
SW5SHOOT~ECE319K:Side_Switch1
TP13.3V~ECE319K:Testpoint_1x02_P2.54mm1
U2LP-MSPM0G3507TI Dev BoardECE319K:ti_LP_MSPM0G35071
U3MCP34119PDatasheetECE319K:DIP-8_W7.62mm_LongPads1
U4HiLetGo_ST7735RDisplayECE319K:hiletgo_st7735r1
U5ULN2003BULN2003BECE319K:DIP-16_W7.62mm1
U6TSOP31438TSOP31438ECE319K:TSOP314381
~SD Card~~1
~Wire Pack~~1

Note: Side_Switch was a custom footprint made by placing surface mount plates the width of switch legs on the front and back of the PCB, such that a switch could be soldered to face away from the side of the PCB, acting like a trigger.

📦 Full schematic & PCB design files available in “M0+rixPCBFiles” folder


🎮 Controls

ControlAction
JoystickMove Forward, Backward, Strafe Left and Right
Trigger ButtonFire weapon
Left ButtonRotate Left
Right ButtonRotate Right
Top ButtonReload/Respawn
Bottom ButtonSwitch Item

🖼️ Screenshots / Demo

Gameplay demo available on YouTube here. gameplay


🛠️ Enclosure

  • Designed in Fusion 360
  • Snap-fit top cover
  • Gamepad-style ergonomic shell

enclosure_1 enclosure_2


👥 Authors

  • Elijah Silguero
  • Surya Balaji

Special thanks to Dr. Yerrabali, Dr. Valvano, and Dr. Tiwari at The University of Texas at Austin for their instruction and help with this project!

Parts

50
QtyValueFootprintReferences
610kECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR12, R13, R14, R15, R17, R19
51.5kECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR4, R5, R6, R7, R8
4~ECE319K:MountingHole_4_40H1, H2, H3, H4
312kECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR9, R10, R11
3Jumper_3_OpenECE319K:PinHeader_1x03_P2.54mm_VerticalJP2, JP3, JP4
20.1uFECE319K:C_Axial_200milC3, C4
2LEDECE319K:LED_D5.0mmD1, D4
11uFECE319K:CP_Radial_Tantal200milC1
120kECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR16
1220ECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR18
13.3VECE319K:Testpoint_1x02_P2.54mmTP1
14.7uFECE319K:CP_Radial_Tantal200milC2
1470ECE319K:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
1AudioJackECE319K:Jack_3.5mm_CUI_SJ1-3523N_HorizontalJ1
1DACOUTECE319K:Testpoint_1x02_P2.54mmJ7
1GNDECE319K:Testpoint_1x02_P2.54mmJ6
1HiLetGo_ST7735RECE319K:hiletgo_st7735rU4
1JoystickECE319K:SparkfunJoystickJ8
1LEFTECE319K:SW_PUSH_6mmSW2
1LOGOECE319K:PibbleG***
1LOGOLOGOG***
1LP-MSPM0G3507ECE319K:ti_LP_MSPM0G3507U2
1MCP34119PECE319K:DIP-8_W7.62mm_LongPadsU3
1RELOADECE319K:SW_PUSH_6mmSW1
1RIGHTECE319K:SW_PUSH_6mmSW4
1SHOOTECE319K:Side_SwitchSW5
1SWAPECE319K:SW_PUSH_6mmSW3
1SpeakerECE319K:PinHeader_1x02_P2.54mm_VerticalJ2
1TExaSECE319K:PinHeader_1x03_P2.54mm_VerticalJP1
1TSOP31438ECE319K:TSOP31438U6
1UART1ECE319K:PinHeader_1x03_P2.54mm_VerticalJ3
1ULN2003BECE319K:DIP-16_W7.62mmU5

Similar boards

  • 4 layers179.3 × 72.5 mmStarter, the printed circuit board in 3D

    Starter

    alicedimauro/Tilt

    59 parts1
  • 2 layers114.3 × 88.9 mmCrickHit PCB, the printed circuit board in 3D

    CrickHit PCB

    devanshjoshi08/CrickHit

    Real-time cricket batting game on the TI MSPM0G3507 (ARM Cortex-M0+) with triple-ISR architecture, custom KiCad PCB, 5-bit DAC audio, and 3D-printed enclosure. Built for ECE 319H at UT Austin.

    54 parts1
  • 2 layers132.5 × 83 mmAM96353, the printed circuit board in 3D

    AM96353

    ananth-abbaraju/319H_PCB

    44 parts
  • 2 layers114.3 × 88.9 mmKC47852, the printed circuit board in 3D

    KC47852

    KaitlynWChang/ECE-319H-PCB

    53 parts
  • 2 layers114.3 × 88.9 mmJc224364, the printed circuit board in 3D

    Jc224364

    se1yu/BlockBlast

    Using knowledge from ECE 319H at UT Austin (Intro to Embedded Systems) to build a custom video game console and to program Block Blast from scratch.

    54 parts
  • 2 layers114.3 × 88.9 mmMVM833, the printed circuit board in 3D

    MVM833

    SiddharthaG09/319KFinalProject

    For our final project, we recreated Space Invaders in C, using a custom-designed PCB and an MSPM0G3507 microcontroller.

    46 partsMIT
  • 2 layers118 × 100 mmDuelTank, the printed circuit board in 3D

    DuelTank

    SathvikY3533/DuelTanks

    Duel Tanks is a real-time two-player artillery game built completely from scratch on the MSPM0G3507 microcontroller.

    72 parts
  • 2 layers187.2 × 26.6 mmBlade12, the printed circuit board in 3D

    Blade12

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    50 parts3.7k

Questions

How big is the M0+rixPCB PCB?

It measures 140.8 × 66.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the M0+rixPCB use?

50 parts, built around the TSOP31438 and ULN2003BD. 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 M0+rixPCB KiCad files?

From the SuryaUT/TheM0trix_Segfaulted repository on GitHub, at the commit this page was made from: the board is M0+rixPCBFiles/M0+rixPCB.kicad_pcb and its schematic M0+rixPCBFiles/M0+rixSchematic.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the M0+rixPCB design in my own project?

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