Micro-GameBoy
Used:

Components Used:
- Seeed Studio XIAO ESP32C3
- Buzzer
- 4 Push Buttons (+ resistors)
- Adafruit SSD1306 0.96 Inch OLED Display
- DHT11 Sensor
- Keyestudio Rotary Encoder
- Seeed Studio XIAO ESP32C3
- Buzzer
- 4 Push Buttons (+ resistors)
- Adafruit SSD1306 0.96 Inch OLED Display
- DHT11 Sensor
- Keyestudio Rotary Encoder
Started out as a simple circuit for the ESP32 using 3 buttons, the OLED display, and a buzzer. The first program it ran was a buzzer frequency test.

Moved the circuit onto a bigger breadboard to do more things.

The buzzer program was from my friend, but I wanted to learn how to program myself, so I asked ChatGPT to generate code for a snake game, and I learnt from there.

I then added the DHT11 sensor to see the temperature and humidity.

With coding help from AI, I could now visualise the temperature or humidity on a graph.

Here is a Flappy Bird game I added:

Pong game:

After testing each code individually, I decided to merge all the codes together and be able to switch between them using a menu. This was when I added the rotary encoder to scroll through the menu.

The final version of the code had around 800 lines. This was coded in C++ using PlatformIO on Visual Studio Code. The project code can be downloaded here.

To design the PCB, I used KiCad. Here is the schematic:

And here is the PCB wiring. I used the auto-router as the circuit is quite simple.

3D View of the PCB:

You can download the schematics here.
After I sent the PCB design to JLCPCB for manufacturing, I designed the case for it using Onshape.

I asked my friend to help 3D print the case for me, and once I received the PCB, I soldered all the components and assembled my project.

But then there were a few problems with my design...

I redesigned the case with the following changes:

3D model of the case can be downloaded here.
Here is the finished project after reassembling:

Downloads:




