Introduction: Coffee Table Pi

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.

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.

Step 2: Woodwork

Picture of Woodwork

Start with the sides and the legs. Make sure the sides are easily long, wide and deep enough to accommodate the screen. Also the raspberry pi, speaker and cabling need to fit in. I cut a recess into the legs to fit them into the sides. Make the section to house the joystick and buttons and attach to the side. Lastly make the top out of 4 pieces such that the hole in the middle is the same as the viewing size of your LCD screen. The sides of the table should be wide enough to sit a wireless keyboard and mouse on it. Route the underside of the top to make a recess to fit the perspex. Route a curve into the inside edge of the top. Attach the top to the legs and sides.

Step 3:

Picture of

The perspex is screwed into the recess underneath the top. The LCD screen is not pressed up hard against the perspex as the pressure effected the display with my particular screen. The LCD is attached to 2 wooden struts underneath so the screen sits just below the perspex.

Holes were drilled for the joystick, 2 buttons on top and the one player, two player buttons on the side.

Wooden tabs are added around the bottom edge for attaching covers made of 4mm ply wood made from the back of old cupboards. There is one large cover for the main section and one small cover for the joystick and buttons section.

This photo shows a double adapter used to power the raspberry pi and the LCD screen. One black cable exits through the cover down the side of one leg. The double adapter was changed to a 4 port adapter later when I added sound.

Step 4:

Picture of

8 GPIO inputs are used. 4 for the joystick and 4 buttons. An old floppy disk drive cable is cut to size. This plugs into the raspberry pi. The other end goes into a prototype board that has a pull up and a pull down resistor for each of the 8 inputs. This then wires into the Joystick and buttons.

Also attached to the raspberry pi is a usb wifi and usb wireless keyboard/mouse combination.

Step 5: Sound

Picture of Sound

Warning: This step required opening up the case of some old cheap computer speakers. Mains voltage is inside and care should be taken.

You could make your own amplifier circuit but this was an easy way out. Find an old set of computer speakers. The amplifier circuit inside has everything we need already.

The transformer on the left is taking mains voltage and providing 9V AC to the circuit board. This is safely enclosed inside the coffee table. Never touch the transformer when power is turned on.The volume pot is removed from the circuit board and hard wired with 2 resistors to be the equivalent to being in the max volume position. Volume will be adjusted from the pi. The mini stereo socket is mounted down into the bottom cover. The circuit bypasses the speaker when headphones are plugged in.

Step 6:

Picture of

A boot menu allows the selection of games using advanced mame, or web browsing which boots into a window manager.


NinaOJ (author)2017-10-27

Could you possibly link the websites you got your materials from or perhaps say what compounds you used to build it? It seems like a very cool build and would like to replicate it.

h_namazian (author)2016-02-01

What is the lcd part number?

electric guy (author)h_namazian2017-03-14

you could also could use a TV

or buy a cheep flat screen tv and take the screen out but just using the tv would be easier

pachytrance (author)2015-12-29


blazinn (author)2015-10-27


Madhumalar Sakthivel (author)2015-03-27

I am B.E student i would like to do a project "Restaurant table with
embedded menu card" using touch screen. will you help me. i would like
to know the components and the basic idea for my project.

NolanW (author)2015-02-26

How'd you program the Pi?

StuartK1 (author)2015-02-25

Nice. Although what are you using the P2 button for? maybe install retropi?

DavidT20 (author)2015-02-19

Would it be easy to add a second joystick and buttons on the horizontal plane to be able to play the games that are not displayed in portrait mode ?

JammaBoards (author)2015-02-12

Here is also an alternative to the I-PAC which
is the PC (MAME) / PS3 to Arcade Controller
USB Interface PCB Kit
. This controller does work with the Pi too! Also the Arcade
controller PCB is not an keyboard emulator and will not interfere with not
computer keyboard inputs/operations.

chellea (author)JammaBoards2015-02-14

I ask this as a complete Pi/arcade controller noob... Can you give more insight on how to pair this with the Pi? Could it possibly be as easy as connect the pins and go? Hoping you can point me in the right direction...

Many Thanks!!!

sshipway (author)2013-05-20

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.

jeremyh6 (author)sshipway2015-01-23


I'm interested in using the i-pac as well. Did you get your project sorted out and gaming? Do you have an FTP or torrent for the Pi image file?


sshipway (author)jeremyh62015-01-25

There are links on the page for my own version of the instructable, including for the Raspi image and the ipac source.

DarrenS2 (author)2014-12-08

Id love to see this with double joysticks and buttons to play 2 players, like in the real arcades. Play mortal combat or contra with a friend.

davidbarcomb (author)2014-11-28

Great instructable. Easy to understand

bradshep (author)2014-11-22

What did you use to program the RPi for the web browsing and email, also is this making it a computer, effectively? Great instructable!

shruti.takhral (author)2014-10-01

can you please upload a few more pics of this project to get a better idea, seems quite interesting

cbarker12 (author)shruti.takhral2014-10-22

this please

GinsuVictim (author)2014-09-27

I'd advise anyone building this to place the buttons closer together. That is way too much space.

Kante Tech (author)2014-08-14

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.

DanishR (author)Kante Tech2014-09-05

Yeah, that would be great. Currently i am playing with this project:

I was trying to use Raspberry pi as a test server for my wordpress installs, the results were acceptable.

Kante Tech (author)2014-08-14

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.

bb pellets holder (author)2014-01-05


bb pellets holder (author)2014-01-04

What does the input of the monitor need to be

hdmi is on the Pi and any new monitor. Really old monitors you can use a composite cable.

Ravirar (author)2013-11-19

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)

imbiglarry (author)2013-11-04

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!

davtheman223 (author)2013-08-03

Theres a new operating system called Retro Pie that boots straight into a list of emulators you might want to check it out

schettine (author)2013-05-24

Could send electric scheme or scheme of connections of the buttons and keys? arteiro.junior @; . thank you

festis (author)2013-05-13

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!

shane369 (author)2012-12-17

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.

shane369 (author)shane3692012-12-17

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)shane3692012-12-17

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)shane3692012-12-17

to the bottom of the file /etc/profile
I added:
sudo modprobe uinput
sudo python /home/pi/ &

Oliverhassan (author)2013-03-09

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.


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.

Ladycartoonist (author)2013-03-08

Is there a more detailed schematic/source code somewhere? I'd love to see it.

wgonzalez1 (author)2013-03-03

Is there a schematic with the resistors I could see?

grahamgelding (author)wgonzalez12013-03-03

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.

paulpaul2 (author)2013-02-25

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)paulpaul22013-03-03

I have flipped the screen the mame config file

HaDAk (author)2013-02-10

Have you had any issues with the heat of the display not dissipating properly in that orientation?

grahamgelding (author)HaDAk2013-02-10

Not so far, I can feel a bit of warmth on the perspex top after it's been left on all day.

HaDAk (author)grahamgelding2013-02-10

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 :)

DoctorWoo (author)2012-12-19

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)DoctorWoo2012-12-19

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.

shane369 (author)2012-12-16

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)shane3692012-12-16

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)

About This Instructable




More by grahamgelding:Coffee Table Pi
Add instructable to: