Final project

Initial plans drafted way earlier Link to heading

For the final project I plan to create a small retro gaming device. Below is a schema of what modules I intend to integrate:

Diagram

Diagram

Electronics design Link to heading

I plan to use a Raspberry pi pico W as my microcontroller since I will require an SPI connection to connect to a display. For my display I was thinking of using a 2.4" TFT LCD Display because it also supports Touch screen(which I might add at a later date).

For my ordinary controls I was considering adding tactile switches in a cross pattern and maybe a couple of lone buttons on the other side.

Another really important part is powering the device. I plan on including batteries in order to make the device portable.

3d Printing Link to heading

I plan on 3d printing a case for the device in order for it to be more presentable. The case should be openable in order to allow for easy access to the usb port of the raspberry pi.

I will also mold some silicone cover for my tactile switches in order to make them more pleasant to the touch.

Programming Link to heading

I plan on also writing a couple of games for my device in order to actually showcase its functionality that way. I can perhaps reuse some of the code during the embedded programming week.

##Actual circuit design and manufacturing

As for the actual implementation of the above plan. I started by designing my board.

Schematic

Schematic

Circuit

Circuit

The one different thing from my previous boards was that this time I actually had to use a two-sided pcb which introduced much pain into the fabrication process.

My main mistake was not being even more careful with the positioning of the board when milling it or at least drilling the holes from both sides. Because of this, I ended up with slightly misaligned sides, which normally would not be a problem, however I ended up lifting the copper traces when inserting pins through the holes.

One can notice one of my fixes on the top part of the board:

Board top

Board top

I also ran into supply chain issues with the speaker module and I couldn’t add it in time for the final presentation.

Battery and Switch Link to heading

For remotely powering it, I hid a battery and a switch on the bottom layer of the device.

Battery

Battery

The odd thing about this is that I also ran into supply chain issues and I had to improvise a 3 batter holder out of a 4 battery holder because the raspberry pi couldn’t handle 6 volts. Improvising it was way harder than I thought it would be since the holder itself is made out of plastic and soldering a wire in the place of a battery proved mildly hazardous.

Another hidden feature is a diode right near the switch in order to ensure that the flow of current is always directed in the correct direction.

As a fun fact, right after being done with my makeshift battery holder, I found one of the proper size.

Case and buttons Link to heading

For the buttons I initially planned to mold them out of silicone, but I failed to do so because of the really small feature size and because the air vents that I added were terribly difficult to remove.

Failed attempt

Failed attempt

I also attempted to carve it out of the block left from the casting week, but that proved really time consuming. In the end I decided to simply use 3d printed buttons, even thought they did not really fit the original vision.

Fabricating the case itself also proved more difficult that expected since it had a couple of elements that required supports. One of my failed attempts at printing the case looked pretty cool, but it was also a hazard so I had to throw it away.

Failed attempt

Failed attempt

I managed to configure my printer for easy to remove supports using this guide

For CAD-ing of the case and buttons, here are my files

Programming Link to heading

As for the actual programming of the application, I detailed the brief outline of it on the Applications week page, but I will also provide some code here.

I also add here a picture of the final result. More information about it can be found on the application page:

Final picture

Final picture

Download Handheld Code