
Controller
AndreHatu/MarioKart
Senior Design Project using ESP32s to remake Mario Kart with RC Cars

Senior Design Project using ESP32s to remake Mario Kart with RC Cars
Car is an open-source printed circuit board by AndreHatu, from the AndreHatu/MarioKart repository on GitHub, published under the MIT licence. It is a 2-layer board of 70.8 × 60.7 mm with 44 parts on 59 nets, routed with 399 tracks and 48 vias.
It is built around the ESP32-SOLO-1C, L298HN and IN4148W, with the SS8050-G among its other parts. Its parts include 12 resistors, 9 diodes, 7 capacitors, 6 connectors and 2 ICs. It belongs with the ESP32 boards of this library.
This project aims at developing a real-life Mario Kart with RC cars and ESP32s. The boards used utilize a single-core MCU (ESP-MINI-1 and ESP-SOLO-1). Schematics and wiring will be posted in the near future.
ECE477 Senior Design at Purdue University.
We control RC cars with electronics replaced by our own ESP32. All communications are made using ESP-NOW, which is a Wi-Fi like wireless communication protocol. It enables low latency and long distance transmission of packets, with the only restriction they must be less than 250 bytes long.
Then, we place checkpoint towers and power-up blocks along the desired track and when cars run over them, a NFC tag is read and its information is sent to a central tower, which either updates records of checkpoints or determines what modifier to give the cars. Modifiers are randomly chosen using ESP's esp_random() function. Checkpoints are stored in two-dimensional arrays initialized upon race creation.
When cloning this repo, make sure to use git clone --recursive git@github.com:AndreHatu/MarioKart.git or run git submodule update --init --recursive after doing a standard clone.
This ensures all dependencies are downloaded.
To build, you will need to have installed Espressif's idf from their website. Then run the following commands from a terminal.
idf.py set-target esp32
idf.py menuconfigInside the menuconfig, you might need to set the Components->freeRTOS->Run only on first core option in case your ESP32 only has one core (like the ones we are using for the project)
Then you can build and flash with
idf.py build
idf.py -p (PORT) flash| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | IN4148 | Diode_SMD:D_SOD-123F | D1, D2, D3, D4, D5, D6, D7, D8 |
| 6 | 10k | Resistor_SMD:R_0805_2012Metric | R7, R8, R9, R10, R11, R12 |
| 6 | 20 | Resistor_SMD:R_0805_2012Metric | R1, R2, R3, R4, R5, R6 |
| 4 | 100nF | Capacitor_SMD:C_0805_2012Metric | C2, C4, C5, C6 |
| 4 | MountingHole | MountingHole:MountingHole_2.5mm_Pad | H1, H2, H3, H4 |
| 2 | 100uF | Capacitor_THT:CP_Radial_D8.0mm_P5.00mm | C3, C7 |
| 2 | Conn_01x05_Female | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J5, J6 |
| 2 | SS8050-G | SamacSys_Parts:SOT95P240X115-3N | Q1, Q2 |
| 2 | SW_Push | Button_Switch_SMD:SW_SPST_CK_KXT3 | SW1, SW2 |
| 1 | 22uF | Capacitor_SMD:C_0805_2012Metric | C1 |
| 1 | Conn_01x02_Female | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J3 |
| 1 | Conn_01x04_Male | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2 |
| 1 | Conn_01x06_Female | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J4 |
| 1 | Conn_01x09_Female | Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical | J1 |
| 1 | ESP32-SOLO-1 | RF_Module:ESP32-SOLO-ONE | IC1 |
| 1 | L298HN | Package_TO_SOT_THT:TO-220-15_P2.54x2.54mm_StaggerOdd_Lead4.58mm_Vertical | U1 |
| 1 | LED | SamacSys_Parts:APHCM2012QBCDF01 | D9 |

AndreHatu/MarioKart
Senior Design Project using ESP32s to remake Mario Kart with RC Cars
.kicad_pcb.jpg?size=s&soon)
AndreHatu/MarioKart
Senior Design Project using ESP32s to remake Mario Kart with RC Cars

AndreHatu/MarioKart
Senior Design Project using ESP32s to remake Mario Kart with RC Cars

eemreinceer/Smart_Safe
AI-powered IoT security system with ESP32-CAM, custom PCB design (KiCad), 3D enclosure (Fusion 360), Firebase cloud sync, and React dashboard. End-to-end embedded engineering project.



TheNoobInventor/pi-pico-drone
A micro drone is made using the Raspberry Pi Pico W. It is fitted with the MPU6050 IMU module and BMP280 barometric sensor. The drone will be controlled using TinyMPC and employ a Micro-ROS client on FreeRTOS.

fablabnk/HagiwoClockMultiDivide
This is an attempt to make a PCB version of Hagiwo's Clock Multi Divide module.



sabiinsearch/IoT
Projects related to Internet of Things (IoT)
It measures 70.8 × 60.7 mm and has 2 copper layers, 1.6 mm thick.
44 parts, built around the ESP32-SOLO-1C, L298HN, IN4148W and SS8050-G. 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 AndreHatu/MarioKart repository on GitHub, at the commit this page was made from: the board is schematics/car.kicad_pcb and its schematic car/car (1).kicad_sch. PCBKit opens the board in the browser, with nothing to install.
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).