DIY Head Mounted Display




About: My name is Zach Sousa and I'm a Canadian highschool student that has a passion for making.

In this instructable I will show you how to make a DIY head mounted display (HMD) that uses a raspberry pi and a 7 inch composite or HDMI display.

UPDATE: 20 000 views!

Please vote for this project in the Formlabs contest, if I won the 3d printer I would use it to make cases for my projects and do time lapse videos and post them on a youtube channel every 1-2 weeks!

Update! this project was in the adafruit blog for #piday!

Sorry for not having a picture for every step. I finished the project before I took pictures for the instructable.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Parts and Tools

Here are the parts and tools that you will need to make this project:


SD card 4gb or more

Ethernet cable (optional)

Micro usb cable

Raspberry Pi Model B

1/8 Inch Acrylic or Wood ~3-4 sheets at 8" x 12"

Latching switch

Female 3.5mm audio extension cable (for headphones)

DC barrel jack and cable (same size) and must provide the input voltage to the screen so the adapter should be around 9 volts

Bi-convex lenses:®-Biconvex-Cardb...

7 inch display. You can use one from a portable dvd player but they are usually low quality so I recommend this one: It is very high quality and because the biconvex lenses zoom into the display you can really see the pixels in low quality ones.



Laser cutter, I used the one at my local makerspace.


Computer to flash the raspberry pi or you can buy a card with noobs pre-installed.

2 inch elastic

Step 2: Flash OS Onto Raspberry Pi

Flash a linux distro onto the sd card. I chose the Raspbmc because it was very simple and could do everything that I wanted to do with my head mounted display, watching movies listening to music and viewing photos.

For Mac I use apple pi baker :

Step 3: Test Display With Raspberry Pi (Skip If Display Is HDMI)

Test the display by hooking the composite input on the display to the composite output on the raspberry pi.Then power up the display. If the screen doesn't show anything after about a minute power off the raspberry pi, take out the sd card and put in your computer and open the file called "config.txt" and look if it says "hdmi_force_hotplug=1" if it does, comment it out by using the "#" in front of the line. This makes the raspberry pi skip over this line. Now try again It should work.

Skip this step if you have a HDMI display as it will automatically go to HDMI output.

Step 4: Laser Cut Parts

Laser cut all files on this page:

Don't cut through Any red lines! If you do the pi image will be cut out!

Step 5: Add Power Switch

Add a latching power switch to the input voltage pin for the LCD and the power input (7-9 volts). This will be a ON/ OFF switch for the head mounted display. The display should have a pin that says VCC or VIN wire the positive lead of the 9VDC barrel plug to this pin (the input plug). Then have the ground pin of the lcd to the negative pin of the barrel plug.

Step 6: Mount Raspberry Pi in Case and Mount Switches/Ports

Place the raspberry pi in the head mounted display laser cut box use a very small amount of hot glue between the usb ports and the side piece. Have the raspberry pi's USB and Ethernet ports sticking out of the piece that has the holes for them. Mount the lcd driver board to the front piece (the same piece that the raspberry pi is on). Connect the display to the raspberry pi if you havent already.

Mount all of the ports as shown in the picture: under the raspberry pi's usb mount the power switch then under that mount the 3.5mm audio extender on the side. Plug in the other end of the raspberry pi's 3.5mm audio jack. Finally mount the DC input jack under the 3.5mm audio jack extender.

Step 7: Put Case Together

Glue the case together and put the lcd on top of the raspberry pi (use super glue or hot glue)

Step 8: Glue Biconvex Lenses in Laser Cut Part

Super glue the Bi-convex lenses into the piece with the two circular holes in it. then super glue the acrylic piece a few inches away from the front of the display. Wait for it to set.

Step 9: Add Elastic

Add elastic to the Head mounted display there are two slits that you put the elastic through. Use just enough elastic that it will be quite tight when you have it on your head.

Step 10: Apply Power

Turn on the head mounted display by clicking on the power switch you should see the backlight on the screen turn on. Plug in the raspberry pi you should see it boot into linux. Once it is in the operating system that you put on the Pi (mine was XBMC) plug in a mouse and a keyboard and you can move the cursor with the mouse and use the arrow keys and the enter key on the keyboard to select items on the screen.

Step 11: Test...

If you were able to do the previous step your display is working, put it on your head and you should see a picture. It will probably be very pixelated and that is normal but this will vary depending on the quality of your lcd.

Thank you for viewing this instructable! Please follow, favourite, comment and tell me what you think and please vote for me in the contests!

If you had trouble with this instructable please comment and I will be able to help you.

Tech Contest

Participated in the
Tech Contest

Formlabs Contest

Participated in the
Formlabs Contest

Microcontroller Contest

Participated in the
Microcontroller Contest

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    10 Discussions


    4 years ago

    You haven't shown how you programmed the RPi to display the same image side by side on one screen. This is necessary for a head mounted display, especially one that uses the biconvex lenses. I have built a nearly identical HMD but the display issue is my final hurdle.

    1 reply

    Reply 3 years ago

    There is a video player for linux that can be used to split output for display on a single screen,
    Haven't found any video drivers for split output, but it should be possible.

    could you use one of those composite 3.5 inch tft lcds if you only want it for one eye or will it ruin the experience?? Thanks.

    1 reply

    You can use the smaller 3.5 inch composite ones. I just used a 7 inch one because I already had one laying around. If you have it in one eye it won't be in 3d but it will still work otherwise. I may eventually design a smaller head mounted display (~5 inches) like the oculus rift and release the files.

    Zach Sousanerd7473

    Reply 5 years ago on Introduction

    Sweet! The raspberry pi was also what got me into linux! Before that I only used Windows and Mac OS. Now I use linux all the time!

    nerd7473Zach Sousa

    Reply 5 years ago on Introduction

    sweet man! I am currently using ubuntu 14.04 in my hp pavilion dv6500 I had to play with drivers and add more RAM but after that I have a working Ubuntu 32-bit laptop