
ECE445L Starter
samienr/ECE445L-final
Public copy of our Embedded Systems Design Lab final project

Public copy of our Embedded Systems Design Lab final project
ECE445L Lab7 is an open-source printed circuit board by samienr, from the samienr/ECE445L-final repository on GitHub. It is a 2-layer board of 37.3 × 75 mm with 31 parts on 27 nets, routed with 183 tracks and 8 vias.
Its parts include 6 resistors, 4 capacitors, 4 switches and 3 ICs. It belongs with the ESP32 and RISC-V boards of this library.
This is a public forked copy of my team's Embedded Systems Design Lab final project: Motion Controlled Street Fighter, a game inspired by the Nintendo Wii's wireless motion controllers.
This game was designed to run on a TI tm4c123gh6pm microcontroller paired with a Xilinx Basys3 Artix 7 FPGA board. For the controllers, we used Seeedstudio Xiao ESP32C6 microcontrollers with MPU-6050 IMU ICs. Below is a brief description of the project taken from our lab report:
We designed a Wii – like console able to receive motion data from two wireless remotes, process game logic for a light version of Streetfighter that we designed, and then output audio to a speaker, and output 320x240 resolution to a VGA monitor at 30 frames per second using an FPGA as an intermediate frame buffer between the TM4C and VGA monitor. Through this project we practiced programming multiple types of microcontrollers (ESP32, ESP8266, TM4C), interfacing with an FPGA, sensing motion from IMUs, wirelessly communicating using ESP-NOW, and designing efficient graphics pipeline under the memory and compute constraints of the TM4C by leveraging direct memory access.
Below is a simplified data flow graph of how our project is structured:

The typical explanation for the repo structure. Lab specific instructions can be found further below.
The hw folder should contain your schematic and board files for your PCB or
circuits. In labs 1-5 and 10, you will be creating schematics for your circuit
in KiCad.
The sw folder should contain your application firmware and software written
for the lab. The sw/inc folder contains firmware drivers written for you by
Professor Valvano. Feel free to write your own (in fact, in some labs, you may
be required to write your own).
You can place any other source files in the sw folder. TAs will look at the
files you create and/or modify for software quality and for running your
project.
A couple files are provided in the Resources folder so you don't have to keep searching for that one TI document. Some of them are immediately useful, like the TM4C datasheet. Others may be useful for your final project, like the TM4C_System_Design_Guidelines page.
We will extensively use Git and Github for managing lab projects. This makes it easier for TAs to grade and help debug the project by allowing us to see commit histories, maintain a common project structure, and likewise, it makes it easier for students to collaborate with partners, merge different codebases, and to debug their work by having a history of commits.
Two common ways of using Git and Github are Github Desktop and the command line. Tutorials are also abundant on the net for you to peruse. We've provided a cheatsheet for git in the Resources folder.
It is highly recommended to make the most out of Git, even if you've never used it before. Version control will save you a lot of suffering, and tools like Git or SVN are ubiquitous in the industry.
A gitignore file is added to the root of this repo that may prevent specific files from being tagged to the repo. This are typically autogenerated output files we don't care about, but sometimes other stuff (like .lib files) falls through that we want. Feel free to modify if necessary.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 10k | ECE445L:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R3, R4, R5, R6, R7, R8 |
| 4 | .22u | ECE445L:C_Axial_200mil | C1, C2, C3, C4 |
| 4 | TP | ECE445L:Testpoint_1x02_P2.54mm | TP_3V3, TP_GND1, TP_SCL1, TP_SDA1 |
| 4 | UP | ECE445L:SW_PUSH_6mm | SW1, SW2, SW3, SW4 |
| 4 | ~ | ECE445L:MountingHole_4_40 | H1, H2, H3, H4 |
| 1 | BAT+ | TestPoint:TestPoint_Loop_D3.80mm_Drill2.8mm | TP6 |
| 1 | BAT- | TestPoint:TestPoint_Loop_D3.80mm_Drill2.8mm | TP5 |
| 1 | Conn_GND | TestPoint:TestPoint_Loop_D3.80mm_Drill2.8mm | TP2 |
| 1 | Conn_PWR | TestPoint:TestPoint_Loop_D3.80mm_Drill2.8mm | TP1 |
| 1 | Jumper_2_Open | ECE445L:PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | LOGO | LOGO | G*** |
| 1 | MPU-6050_L | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | U5 |
| 1 | MPU-6050_R | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | U6 |
| 1 | XIAO-ESP32-C6 | seeed:XIAO-ESP32C6-DIP | U4 |

samienr/ECE445L-final
Public copy of our Embedded Systems Design Lab final project

samienr/ECE445L-final
Public copy of our Embedded Systems Design Lab final project

joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

openwch/ch32v003
CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

Luos-io/luos_engine
Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.
BlueAndi/Pixelix
Full RGB LED matrix, based on an ESP32 and WS2812B LEDs or emulated LEDs on TFT.


It measures 37.3 × 75 mm and has 2 copper layers, 1.6 mm thick.
31 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.
From the samienr/ECE445L-final repository on GitHub, at the commit this page was made from: the board is hw/ECE445L_Lab7/Controller/ECE445L_Lab7/ECE445L_Lab7.kicad_pcb and its schematic hw/ECE319K_Starter/ECE319K_Starter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask samienr before reusing the design.