DIY retro-feel HTPC Raspberry Pi case

Since Kodi (XBMC back when I started thinking about this) has been ported to 1st gen Raspberry Pi, I’ve been using it to play media from my NAS, watch Youtube on my TV, listen to internet radio, podcasts, etc. Basically, the usual stuff that you do with your media center. What bothered me, was the fact that I had it lying around as bare electronics with all the cables sticking out.

I spent endless hours browsing forums, pinterest and generally googling for anything that would catch my eye, but the cases available on the market were either ugly (at least in terms of HTPC standards) or expensive. Or both. And very often lacked functionality I would expect from a media center focused enclosure. Finally, dissapointed with what was available on the market, I decided to build my own HTPC Raspberry Pi case.

The base assumptions were fairly simple:

  1. Aesthetically pleasing, so I can put it under my TV and it wouldn’t look ugly AF.
  2. Simple form – I’m not a skilled crafter, and it would be my first project of this type
  3. Has to have a display to show information about time of currently played media.
  4. IR receiver should be incorporated as well (I dropped the idea in favor of Yatse remote, but I might come back to it in further iteration)
  5. Should be easily disassembled to allow access to the inside for easy card ejection to update software if needed.
  6. As cheap as possible.


I’m a fan of custom made wooden computer cases and retro AV equipment. So my obvious choice was merging metal and wood. As this was my first project of this type, I decided to go with simplistic wooden box with metal front panel, with cutout for LCD display.

I started out with drafting the design in Sketchup experimenting with dimensions and materials. After some trial and error, I ended up choosing dark wood and aluminum front plate (brass and copper were my second choices but I don’t like steampunk-like styling so I decided to go with neutral colour).

Sketchup model

This is the initial model I did in Sketchup

Keyshot rendering of Sketchup model

After some fiddling with dimensions, this is the end result rendering in Keyshot. The dimensions changed later on again.

When I decided upon the styling I started to look around for materials. Obviously, exotic wood was a) expensive (contradicted assumption #6) b) hard to get in small amounts I needed. So I decided to use plywood and put veneer on it.

Tools & materials:

Here’s breakdown of all the components I used for this build. I had some of those in my workshop (plywood and all the tools), the rest had to be purchased (polish auction site, Allegro, Aliexpress and local hardware store).


  • 1 sheet of 8mm plywood
  • 8 x 30mm sheet of 3mm aluminum
  • 3mm MDF sheet
  • 4 sheets of palisander santos veneer with cotton base (used only 3 in the end)
  • 4 hifi style feet
  • HD44780 compatible LCD display
  • 16 pin header for the display
  • 10K potentiometer for LCD contrast
  • HDMI extender
  • micro USB extender
  • 4 mobo spacers
  • 4 threaded spacers for the LCD
  • 4 rare earth magnets
  • various metal brackets
  • prototype wires female/female
  • 2 component epoxy glue
  • contact glue
  • 2 component metal glue (welding glue)
  • clear, water-soluble wood lacquer
  • clear lacquer in a spray can
  • screws


  • electric jigsaw (not the best choice as I learned, but that’s the one I had)
  • Dremel-like rotary tool
  • handsaw
  • powerdrill
  • wood & metal files
  • soldering iron & solder
  • sandpapers (80, 120, 180, 300, 500, 800 grits)

Main box…

The cutting and assembly of the main box was fairly easy, although I hit some complications with having all the right angles – had to add some extra support during gluing with clamps. Without them, the whole box wouldn’t keep the angles and dimensions.

As I have never used veneer before, I watched couple of tutorials on Youtube and read a few articles how to do it. It came out to be fairly easy, and the final result was more than satisfying. The problematic bits were the edges on the back, as you have to be extra precise working on only 8mm of space.

The only thing that was a bit problematic, was that the veneer with the addition of extra layer of cotton is (supposedly) way easier to use, but when you trim the excess you end up with cotton fibers on the edges. So an extra cleaning and delicate sanding is needed to get rid of those.

After the veneer part was done, I sanded all the faces with 120 grit paper, covered it with 3 layers of water-soluble clear lacquer, lightly sanding between the layers with 180 grit. It pulled out the wood colours very nicely.

I also drilled ventilation holes in the base plate to allow some air circulation for cooling, as I didn’t want to install any fans, and rather rely on the natural air flow based on temperature differences.

…and assembly problems

Here I had to stop to think through the method of connecting the side and top walls with the baseplate. I wanted to have it as tidy as possible, with no screws or anything else visible. Initially I thought about drilling holes at the bottom plate for 4 screws, but it would be problematic to do threading of the brackets I intened to use.

While browsing some case mod project logs on Bit-Tech, I encoutered a solution that suited my needs perfectly: magnets. Standard ferrite magnets would be to weak to hold the top with the bottom, so I chose the rare-earth ones. Finally bought 10mm diameter ones, that were also 3mm thick, drilled appropriate shallow holes to fir them, and glued them in place using the 2 component epoxy glue. The case held very strongly, and only violent shaking made the baseplate move a bit – but not fall off. Milestone achieved.

Front plate

The piece of aluminum that I bought had some blemishes and scratches all over it, so the first step was to get rid of those. Safety note: when sanding aluminum be sure to wear a dust mask, as it ain’t healthy for you.

Started manually sanding it down starting with 180 grit paper and gradually going with finer grits up to 800. I could go further even up to 2500 to end up with mirror-like finish, but that was enough. At this stage I had a smooth surface I could then slightly scratch with 300 grit to achieve brushed look.

Before and after sanding.

Note on sanding aluminum (or any other metal actually): make sure you maintain smooth, parallel moves, otherwise you’ll end up with swirls or diagonal lines that are difficult to get rid of.

The next step was to do a cutout for the LCD display. The first thing to do here, was to secure the faceplate with 2 layers of masking tape (one would probably do the job, but better safe than sorry) and after some careful measuring I drew the shape of the display. I proceeded with drilling holes on both ends so I could use the jigsaw to cut out easily. To finish it off, I used files, coarse first, fine to finish to make the window shape match exactly my needs.

Attaching the LCD was another problem. My first idea was to have 4 hex screws going throught the plate do hold the LCD. But that would mean I lose the cleaniness of the faceplate. So instead, I decided to buy threaded spacers (similar to the ones use in motherboards, but round instead of hexagonal) and glue them with epoxy to the front plate where the LCD frame holes will be. The end result may not necessarily be tidy, but as it was only inside, I didn’t care much about how it looks. I also used 2 angle metal brackets to attach the front plate to the base, using “welding” metal glue where it was metal on metal, and standard, 2 component epoxy where metal met wood.

Back plate

As I wanted to achieve a retro look for the whole case, I thought that going with a MDF back is the way to go. That’s what you see in old radios right? I had 3 mm mdf board lying around that would work perfectly for my purpose. I cut it down to measure, drilled and filed the holes for ports: USB, Ethernet, HDMI and power (micro USB). I also drilled some ventilation holes to allow natural air flow, for the air that has been sucked in via the holes in the base at the front of the case. Then I cut in half an angle bracket I had for this purpose, and glued it altogether at right angle with the epoxy glue.

Electronics, wiring and Raspberry Pi setup

I attached the LCD to the front plate using 4 “computer size” screws, the same with Raspberry Pi (I had to widen the mounting holes just a tiny bit as the screws didn’t go through), and started to do the wiring. For connecting the LCD to Raspbeery Pi, I used this AndyPi’s tutorial. Then I connected the HDMI and micro USB extenders and secured them to the back- and baseplates respectively. I loaded a microSD card with latest OSMC image, inserted into RPi and booted everything up.

The system booted just fine, but obviously, the LCD only lighted up but nothing showed up. (Note: later down the road it turned out I mixed up the cable connections, but let’s assume that never happened. Lesson learned: don’t do this when you’re tired and barely awake at 1 am – big thanks to everyone at Malinowe Pi group that helped me to sort it out). To make everything work, you have to have 2 things running: LCDd deamon and LCDProc Kodi plugin. I won’t go into the details here as it’s not the purpose of this page, but setup is fairly easy to google.


I’m quite happy how the case turned out. Considering the fact that I used it to learn how to do most of the things throughout this build I’m very happy how the case looks, feels and performs. Obviously, it’s far from perfect, especially in terms of cable management inside and how tightly the case elements are assembled and matched.

Is there anything I would do differently? Absolutely:

  • I’d use thick MDF board instead of plywood. It’s easier to work with.
  • I’d go with standard veneer instead of the cotton-layered one. It may be harder to work with, but the edges should come out cleaner.
  • I’d put some extra work on the front plate – some of the edges are not super-smooth.

For the next iteration I might get my hands on more professional tools, or even outsource some bits and pieces (like cutting precise holes in aluminum and thin MDF. But for now, I’m OK with what I got.

Thanks for reading, and let me know your thoughts in the comments below.


  1. Ted


    So what all does the LCD display do?

    • admin

      It displays media info from Kodi via LCDd plugin that’s available for Kodi. I configured mine to show elapsed and remaining time plus progress bar, but you can display all sorts of things, like memory stats, media title, filename etc. It works with all HD44780 compatible displays.

  2. Jon

    Great project! I try to do something similar, but can’t find the feets you’ve used. What did you search on to find that? I only find spikes… Also, can you give the exact size of the finished cabinet?

    • admin

      As for the feet: I found them on polish auctioning site, Allegro. If you want to order from ALiExpress or something similar, search for “hifi feet”, “audio equipment feet”, “amplituner feet” or something similar. Truth be told, it took me a while to find them (just as you, could only find speaker spikes).
      Finished size of the box(without feet) is 20x20x7 cm, with front plate extending 5mm on each side.

  3. Ethan jones

    Where can you ge the lcd display from?

    • admin

      Hi Ethan,

      I got mine from polish equivalent of eBay (Allegro), but you can get similar display for cheap on eBay or AliExpress with free shipping worldwide (it takes more time though). Just make sure you get one that’s HD44780 compatible. I guess that local DIY electronics store should be able to help you with it as well – it’s very common type.

  4. W. Haasbroek


    I really like this project, it just looks awesome!
    In fact, I like it so much I’m planning to make my own with a little variation 🙂

    Just out of curiosity, what are the dimensions of the case ?

    • admin

      Thanks! The end result is 200x200x60 mm. The front plate is 210x70mm. To be honest it’s way too big, and you could easily trim that down to more practical size. But it seated nicely on a shelf next to the TV 🙂


Submit a Comment

Your email address will not be published. Required fields are marked *