Picture of Coffee Table Pi
The purpose of this project is to create a modern slimline version of an arcade cocktail cabinet. Also to do other tasks such as browse web or write emails with the use of a wireless keyboard and mouse. The 24 inch LCD screen mounted in the center can be used to do any number of things such as show family photos or updates from social networking sites.

In the spirit of low cost, all the wood work used is recycled. The main expense apart from the raspberry pi itself is for the 24 inch LCD screen in the middle and the arcade joysticks and buttons.

To be child friendly the corners are rounded and perspex is mounted over the LCD screen.
Remove these adsRemove these ads by Signing Up

Step 1: Select Your Parts

The LCD screen

I went with a 24inch LCD screen with LED backlight. Select any size screen you wish.

Make sure it has good viewing angles as the screen will be mounted upwards and almost always viewed at an angle. Test out the screen viewed from above and below, from the left and right and make sure it still looks almost as good as when viewed straight on.

Select one that can be wall mounted as it can then be attached to the table from underneath.

Select one that turns on without needing any buttons to be pressed as all the buttons with be hidden inside the table.

The Joystick and Button

This is up to you, I went with a Happ 4 or 8 way arcade ball top joystick, 2 blue American style buttons, 1 player and 2 player buttons.

Perspex sheet 4mm
Cut to the size of the outside edge of the LCD screen, larger than the viewing size of the screen as it will be screwed onto the underside of the top of the table.

Wood, glue, screws, stain and finish
This is all up to what you want to do. I used pine that I recycled from various places. Hot Hide Glue because I wanted to learn about using it. Using screws rather than glue or screws and common wood glue would have been easier.
I used a black stain and then a shellac french polish.

I recycled a nice 5inch speaker for the sound and used the circuit from an old set of computer speakers. This gave to ability to plug in headphones and automatically turn off the speaker.
1-40 of 65Next »
Kante Tech18 days ago

Imagine this with an touch screen display. You can possibly turn this into a Stark like project in which you have a touch screen controll display.

Kante Tech18 days ago

Imagine this with an touch screen display. You can possibly turn this into a Stark like project in which you have a touch screen controll display.

What does the input of the monitor need to be
grahamgelding (author)  bb pellets holder8 months ago
hdmi is on the Pi and any new monitor. Really old monitors you can use a composite cable.
Ravirar9 months ago
It's be cool to add more bluetooth connections so u can add WiiMote control with GlovePie or a trackpad. :) REALLY COOL DUDE! (Or Dudette)
imbiglarry10 months ago
This is so cool! Beautiful table as well. Would be cool if you kept the square cut for the LCD and were able to put it back on for times you actually want to rest your coffee!
Theres a new operating system called Retro Pie that boots straight into a list of emulators you might want to check it out
schettine1 year ago
Could send electric scheme or scheme of connections of the buttons and keys? arteiro.junior @; . thank you
sshipway1 year ago
I'm building one of these now. Using the I-PAC from to interface the controls with the Pi, since this lets me have way more buttons and multiple joysticks. One problem I've encountered is that the HDMI output on the Pi does not provide much power - even with the hdmi_boost options set in the config.txt, the red signal is not strong enough for many of the older TVs and DVI monitors.  I would suggest people use at least a 700mA power supply for the Pi (many USB power adaptors are only 500mA) and make sure their selected TV/monitor can cope with the low signal produced by the Pi.  I've tested about a dozen items; HP seems to have more difficulty, IBM and LG seem better.  But YMMV.
I picked up an old wooden coffee table from TradMe (NZ version of eBay) to convert, for only $16 -- which was much better value to making my own table (and much better quality than my woodworking skills, too).  No images to post as yet as its still incomplete.
If any people want a 2G SD image for the Pi holding everything necessary (MAME, menu system, ROMs...) then drop me a line and I'll see what I can do.
festis1 year ago
I am new to the pi, what parts for the pi did you use. i plan on building one of these. looks like i could do it!
shane3691 year ago
Hopefully this will be my last question, I have everything connected up, but I am confused as to what I need to edit to make the GPIO work. I run advj and it does not detect any type of joystick input.
I wanted to add this in real quick. Following the link you provided for I have been able to get the inputs detected and actually functioning. However, the does not include the second button or the player 1 and 2 buttons. Is this the method that you used for yours? If so any chance that you can link your with the added buttons or provide some insight in how to add them? I am teaching myself as I go, but with this being a xmas gift I am running out of time. Also, I'm not sure where my mistake is but after each restart, I am having to install python-uinput and run the sudo python script each time. Am I correct in saying that at each start the will need to run at startup?
grahamgelding (author)  shane3691 year ago
I can send you my and if you message me your email address.
i would love to see these files too please! i want to try the project. i have been programming in python with GPIO, but wouldn't know how to 'map' the GPIO inputs to the keyboard (or however you do this). thanks a lot!
grahamgelding (author)  shane3691 year ago
to the bottom of the file /etc/profile
I added:
sudo modprobe uinput
sudo python /home/pi/ &
Would you be able to provide a bit more detail on how you implemented the braces? I'm not sure what the best way to fix these would be to ensure decent support of the monitor.

grahamgelding (author)  Oliverhassan1 year ago
I used 2 pieces of pine and shaped them to fit the shape of the back of the monitor. I stuck a layer of rubber on them where they touch the monitor and screwed them into the frame of the table and into mounting holes in the back of the monitor. If you can make some steal braces it would be better.
Is there a more detailed schematic/source code somewhere? I'd love to see it.
wgonzalez11 year ago
Is there a schematic with the resistors I could see?
grahamgelding (author)  wgonzalez11 year ago
refer to (page 12) I removed R1 and LED1 which leaves R2 1KOhm, R3 10KOhm. Repeat for each of the 8 GPIO's. The ground side of the switches are all linked together.
paulpaul21 year ago
How have you flipped the screen?
Have you done this in the menu of the screen or in the config.txt file??
(sorry for my bad english:-))
grahamgelding (author)  paulpaul21 year ago
I have flipped the screen the mame config file
HaDAk1 year ago
Have you had any issues with the heat of the display not dissipating properly in that orientation?
grahamgelding (author)  HaDAk1 year ago
Not so far, I can feel a bit of warmth on the perspex top after it's been left on all day.
Excellent. Thank you. I'm working on a coffee table computing project of my own, utilizing an ODROID-X2 and a 40" LED TV. One of the missing puzzle pieces was the heat dissipation of the screen in a horizontal orientation... I wasn't sure if it would cause damage to the panel. Apparently, it does not. It's equally comforting to know that the LED will produce far less heat than your LCD.

You've been most helpful. I appreciate it :)
DoctorWoo1 year ago
I'm rather curious for my project of the same sort of easy is it see the image on the screen? For example: if you made this into a dining room table, and were sitting at said table, would the screen look distorted at all? Thanks in advance!
grahamgelding (author)  DoctorWoo1 year ago
This is an important consideration and it depends on the screen. A coffee table you are leaning over it a bit and looking down on it a bit more also. I recommend getting the screen and placing it face up on a similar table to get a feel for how it is going to look before starting any major project.
shane3691 year ago
What size wood did you use for the top edges(area where joystick and buttons are mounted) I ordered the same joystick as you did from Terry and wanted to make the woodwork as painless as possible. Also, did you base your joystick/button spacing on a particular arcade game or just placed them at a comfortable position?
grahamgelding (author)  shane3691 year ago
I just used what I had on hand and spaced the joystick and button so they looked right. The panel that the joystick and buttons are on (1 of 4 panels around the screen) is thickness 17mm (5/8 inch), width 170mm (6 5/8 inch), length at widest 630mm (24 7/8 inch)
shane3691 year ago
Are you able to get your ROMs to play in full screen? I managed to get my screen rotated vertically, but the ROM does not make use of the resolution that is available. It fills about a third of the screen. Any ideas?
grahamgelding (author)  shane3691 year ago
Yes but with space at the top and bottom because I have a wide screen. It took a lot of trial and error. If you are editing the config file directly, instead try loading a game and using the menus in mame to select the different settings. That way you can see changes take effect straight away.
TechDante1 year ago
HI great build . Did you use a mame front end if so how did you get the pictures to boot into it
grahamgelding (author)  TechDante1 year ago
I'm using advancemame, from these instructions
For the front end I made a menu using whiptail (same as the raspberry pi config menu). I'm using the table for more than just mame games and you can add items to the menu to run anything you want. I would like to write a better menu in python that displays photos, a clock and supports the joystick. But haven't had time yet.
TechDante1 year ago
HI great build . Did you use a mame front end if so how did you get the pictures to boot into it
shane3691 year ago
I went to order the joystick tonight and noticed that using the seller you linked offers 2 options for the joystick, either for wood or metal. Obviously the table is wood, but in your pictures the joystick seems to be shorter like the one for metal. Can you confirm which one you ordered? My Pi will be here Monday and I am trying to build this for my kids Christmas, so please bear with me. I am sure I will have more questions!
grahamgelding (author)  shane3691 year ago
The one I ordered is for wood. The joystick is longer because it is mounted under the thicker wood and needs to be longer to be the same height on top as one mounted under the thinner metal.
Hi mate,

Excellent job. I have a couple of questions regarding the power supply. When you say you used a 2, then later, a 4 port adapter, is this simply a standard plug socket adapter plugged into the mains that then accepts 4 further standard plugs or is it a single power supply with multiple outputs? Looking at the picture it appears to be the former but I wasn't completely sure.

I'm hoping to build a mini desktop cabinet with similar specs so am curious as due to inherent space limitations, I may be precluded me from using a flat 4 plug adapter similar to you (if this is indeed what you used). What would you recommend as a viable alternative in my case, if any?

grahamgelding (author)  scottishbuddie1 year ago
It is just a standard 4 port adapter, it just fit running along the edge. It isn't a neat way to do it but it avoided doing mains wiring. Without the space you will need to wire mains voltage. An electrician should be able to help you out and make sure it is safe. Maybe with a terminal block and power supply.
ludz1 year ago

What menu system did you use? I'm trying to do the same thing, but as a linux noob I'm exhausted after getting AdvanceMame to run from the command prompt!

That works for me, but isn't wife / kid friendly - I've unsuccessfully tried AdvancedMenu, but my noob skills are limited there.

Thanks, and great job,

1-40 of 65Next »