Arduino heads up display

Arduino heads up display DEFAULT

Introduction: Car Heads Up Display (Arduino + ELM327)

Some years ago I had the chance to drive a C6 Corvette with a HUD and loved it. The ability to see your speed and RPM without taking your eyes off the road made driving much more enjoyable.

For a long, long time I've wanted to make a HUD for my own car. While doing some research about OBD2 and Arduino car hacking, I decided to make one from scratch and this instructable shows how you can make one, too!


Step 1: Print/Assemble 3D Printed Parts

Download link to 3D printable Files

Note, the OLED mount can be glued anywere you would like on the HUD as long as you have enough wire to connect the OLED to the custom PCB.

Step 2: Fab/Solder PCB

Download link to the custom PCB gerber files

You can use the above gerber files to order a PCB through a company such as JLCPCB.

Step 3: External Wiring

In order to control power to both the ELM327 and custom PCB without having to plug/unplug the OBD2 extension cable, you will need to rewire the power and ground signals. This will require you to open up the OBD scanner's case and access the device's wiring.

  1. Using the above OBD2 pinout, cut the 12V wire in the middle
  2. Strip both ends of the cut wire
  3. Cut and strip 2 red wires equal to the distance between the OBD2 12V pin and the power switch on the HUD
  4. Cut and strip 1 red and 1 black wire equal to the distance between the OBD2 power pins and the custom PCB's screw terminal
  5. Solder the 12V wires so that the HUD's switch controls power to both the ELM327 and the custom PCB
  6. Using the above OBD2 pinout, solder the black wire to the OBD2 GND pin and screw the other end of the black wire to the custom PCB's screw terminal

See the above project schematic for help.

Next, wire the 3 pins on the custom PCB labeled "LED PWR" to the potentiometer on the side of the HUD.

Lastly, wire the female JST connector wires to the OLED display.

Step 4: Prepare/Mount HUD Plastic

  1. Take the round plexiglass piece, reflective film sheet, sharpie, and scissors
  2. Use the plexiglass piece and sharpie to trace a circle on the reflective film sheet
  3. Use the scissors to cut out the circle
  4. Stick the cut-out reflective film onto one of the sides of the round plexiglass piece
  5. Insert the completed assembly into the display slot on the HUD (reflective film facing the driver)

Step 5: Upload Code

The code for the ESP32 and the Teensy 3.5 can be found here.

Note: Ensure you have inserted the SD card into the Teensy's SD receptacle. This will allow you to record your vehicle's speed/rpm data real-time in a CSV format. Also note that you can use the Python code to graph your vehicle's data from the SD card. See the graph above for an example of this.

Step 6: Video

Be the First to Share

Did you make this project? Share it with us!


  • Made with Math Contest

    Made with Math Contest
  • Halloween Contest

    Halloween Contest
  • Lamps and Lighting Contest

    Lamps and Lighting Contest

Multimeter Heads-Up Display With Arduino Glasses #ArduinoMonday #Arduino



via Arduino Blog

If you’re in a job where you have to take readings inside a live electrical panel, one thing that’s inconvenient, and even dangerous at times, is having to look away from your hands to read your multimeter. With hopes of “making an engineer’s life easier and safer,” Mauer solved this problem using an Arduino Pro Micro and a BLE module to show data from a Bluetooth-enabled multimeter. Now he can see data on a display that looks similar to a Google Glass device. Perhaps this method could be expanded to other devices in the future!


Read more

50-06Each Monday is ArduinoMonday here at Adafruit! Be sure to check out our posts, tutorials and new Arduino related products. Adafruit manufactures the Arduino right here in the United States in cooperation with We have a huge selection of Arduino accessories and all the code and tutorials to get you up and running in no time!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Join 30,000+ makers on Adafruit’s Discord channels and be part of the community!

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more

CircuitPython – The easiest way to program microcontrollers –

Maker Business — The Defense Production Act and the global supply chain

Wearables — A faux frozen style

Electronics — Long live labels!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Python Reaches #1, 3K Core CircuitPython PRs and much more! #Python #Adafruit #CircuitPython @micropython @ThePSF

Adafruit IoT Monthly — No-Code IoT with WipperSnapper, Beaming Internet across the Congo, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — JP’s Product Pick of the Week — 4pm Eastern TODAY! 10/11/21 @adafruit @johnedgarpark #adafruit #newproductpick

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !

No comments yet.

Sorry, the comment form is closed at this time.

Filed under: arduino —
Tags: arduinomonday — by Zay

Comments Off on Multimeter Heads-Up Display With Arduino Glasses #ArduinoMonday #Arduino

  1. Best tactical rpg ps4
  2. Steven universe comic au
  3. Fnaf 2 endoskeleton jumpscare

Many cars these days come with a basic Heads Up Display, or HUD. Typically, these display speed, though some also throw in a tachometer or navigational graphics too. Of course, if your car doesn’t have one of these stock, hacking in your own is always an option.

[PowerBroker2] developed this HUD in a somewhat circuitous way, but it’s effective nonetheless. An ELM327 Bluetooth OBD-II reader is hooked up to the car, collecting data on speed and RPM. This data is passed to an ESP-32 and Teensy 3.5. From reading the code, it appears the Teensy is responsible for logging data from the CAN bus on an SD card, and running a small OLED display. The ESP32 is then charged with running the LED display that actually forms the HUD. It’s then combined with a 3D-printed housing, some plexiglass, and reflective windshield film to complete the effect.

It’s a build that probably packs in more hardware than is strictly needed to get the job done, but it does indeed get the job done. Other builds we’ve seen use LED strips as a quick and tidy way to get the job done. Video after the break. Continue reading “Arduino Car HUD Does The Job”→

You shouldn’t be looking at screens when you’re driving, but what about a heads-up display? A screen that could put relevant information in your field of vision would be great, even more so if it used a Raspberry Pi. That’s exactly what [John] did, only he did it with an airplane.

First up, the legality of this build. [John]’s plane is registered as experimental, which, provided you know what you’re doing, is pretty close to ‘anything goes’ as you would want in a manned aircraft. [John] has a sufficient number of hours in his log book, and he’s built a Zenith 701.

For hardware, the hard part of this build is constructing a heads-up display. Fortunately, aftermarket HUDs exist, and [John] is using a Kivic projector, a $200 piece of equipment that’s readily available on Amazon. If you need a HUD for your car, there you go. The software is another thing entirely, with the goal of having the software decoupled from the display and data sources. This is somewhat easy to accomplish with a Raspberry Pi; the display is actually just some minimal text-based blocky graphics built in PyGame. This build is also decoupled from the data sources by building this as a user interface for Stratux, an independent Raspberry Pi-based ADS-B receiver for pilots.

There are several views available with this HUD, with the AHRS + ADS-B providing information on the aircraft’s attitude and altitude, along with a few indicators of the nearest planes. The traffic view expands on the ADS-B data, showing the nearest eight or so aircraft in the air, with a range, bearing, and difference in altitude. There’s a diagnostic window, and since [John]’s plane is a backcountry STOL thingamado that can hover in a strong wind, there’s also a digital version of a norden bombsight. It’s for dropping bags of flour onto a grass strip. You can check out [John]’s entire AirVenture presentation of the build below, with all the code available here.

Continue reading “Python And Pi Provide Heads Up Display For Your Experimental Airplane”→

[Ricardo Ferro] didn’t want to buy a Google Glass, so he made his own.

The Raspberry Pi Zero Prism consists of a 3D-printed headset the side-pieces of which hold a variety of electronic components, including a Pi Zero running Raspbian Jessie, a Pi Noir IR camera, a WiFi/Bluetooth module and a whole mess of SMD tactile push buttons. Video output is provided by a Kopin 922K display module. This module is usually used in smart goggles and uses a prism to reflect information into the wearer’s field of view.

One application [Ricardo] envisions for this Open Source Google Glass is using it in conjunction with facial recognition software and the YouTube-favorite IR camera trick of seeing through clothing. No, he’s not using it for that idea, and you should get your mind out of the gutter. [Ricardo] wants to identify masked criminals. Setting aside the technological challenges of making that technology work, we think that walking around with x-ray specs is likely to get those specs broken off your face by someone who wears clothes for modesty purposes. Still, it’s a fascinating project and we love the way the prism and video assembly comes together.

While most of us will never set foot in a fighter jet, some of us can still try to get as close as possible. One of the most eye-catching features of a fighter jet (at least from the pilot’s point-of-view) is the heads-up display, so that’s exactly what [Frank] decided to build into his car to give it that touch of fighter jet style.

Heads-up displays use the small reflectivity of a transparent surface to work. In this case, [Frank] uses an LED strip placed on the dashboard to shine up into the windshield. A small amount of light is reflected back to the driver which is able to communicate vehicle statues without obscuring view of the road. [Frank]’s system is able to display information reported over the CAN bus, including voltage, engine RPM, and speed.

This display seems to account for all the issues we could think up. It automatically cycles through modes depending on driving style (revving the engine at a stoplight switches it to engine RPM mode, for example), the LEDs automatically dim at night to avoid blinding the driver, and it interfaces with the CAN bus which means the ability to display any other information in the future should be relatively straightforward. [Frank] does note some rough edges, though, namely with the power supply and the fact that there’s a large amount of data on the CAN bus that the Teensy microcontroller has a hard time sorting out.

That being said, the build is well polished and definitely adds a fighter jet quality to the car. And if [Frank] ever wants even more aviation cred for his ground transportation, he should be able to make use of a 747 controller for something on the dashboard, too.


As the Jerusalem mini Makerfaire approached, [Avishay] had to come up with something to build. His final project is something he calls ASTROGUN. The ASTROGUN is a sort of augmented reality game that has the player attempting to blast quickly approaching asteroids before being hit.

It’s definitely reminiscent of the arcade classic, Asteroids. The primary difference is that the player has no space ship and does not move through space. Instead, the player has a first person view and can rotate 360 degrees and look up and down. The radar screen in the corner will give you a rough idea of where the asteroids are coming from. Then it’s up to you to actually locate them and blast them into oblivion before they destroy you.

The game is built around a Raspberry Pi computer. This acts as the brains of the operation. The Pi interfaces with an MPU-9150 inertial measurement unit (IMU). You commonly see IMU’s used in drones to help them keep their orientation. In this case, [Avishay] is using it to track the motion and orientation of the blaster. He claims nine degrees of freedom with this setup.

The Pi generates the graphics and sends the output to a small, high-brightness LCD screen. The screen is mounted perpendicular to the player’s view so the screen is facing “up”. There is a small piece of beam splitting glass mounted above the display at approximately a 45 degree angle. This is a special kind of glass that is partially reflective and partially translucent. The result is that the player sees the real-world background coming through the glass, with the digital graphics overlaid on top of that. It’s similar to some heads-up display technologies.

All of the electronics fit either inside or mounted around a toy gun. The display system was attached with a custom-made fiberglass mount. The code appears to be available via Github. Be sure to watch the video of the system in action below. Continue reading “ASTROGUN Is Like Asteroids On Steroids”→

This edition of Fail of the Week is nothing short of remarkable, and your help could really get the failed project back on track. [Snipor Bob] wanted to replace all of the dashboard readouts on his Mustang and got the idea of making the hacked hardware into a Heads-Up Display. What you see above is simply the early hardware proof of concept for tapping into the vehicle’s data system. But there’s also an interesting test rig for getting the windshield glass working as a reflector for the readout.

Continue reading “Fail Of The Week: CAN-Bus Attached HUD For Ford Mustang”→

[Cmonaco3’s] girlfriend wanted a better way to control her iPod when driving. She didn’t want to take her eyes of the road and asked him if he could help. He ended up building a heads up display which reads out track information and offers a few simple buttons for control.

The display includes controls for track forward, track back, and play/pause. Those buttons, along with the LCD screen, mount on the windshield using a suction cup. This way the driver doesn’t have to completely remove focus from the road to control the iPod which is sitting in the passenger’s seat.

To accomplish this [Cmonaco] used a dock connector breakout board for communication between an Arduino and the iPod. The Arduino pulls song information to be displayed on the graphic LCD screen, and sends commands to the iPod when it detects a button push. See a quick demo of the setup after the break.

Continue reading “Heads Up Controls For Your IPod”→

New Mercedes S-Class 2021 - crazy HEAD-UP display with AUGMENTED REALITY (77-inch diagonal)

Heads Up Display Helmet With arduino [closed]

Luckily the concept of an Ironman helmet has more options then one would think and can be broken down as if any form of helmet. First theres the question of dimensions and proportion - this has more options than I realized since the Ironman helmet has undergone many transformations over more than 50 years both in print and film. An image search of "Ironman mask" and "Ironman comic" shows that there are a lot of options to choose from. Additionally I haven't found a consensus to exactly how Ironman was able to see outside the helmet which leaves your options open as well.

The "Ironman Mask" has what some could argue are two covered openings for the user to look through. Call them windows, eye holes - what ever - but they are openings to allow the user a direct field of vision through the helmet. If this is the case you are asking for a system that projects an overlay of some type into the users natural line of sight. Others could argue that these "eyes" on the outside of the mask are just for looks and that the users vision is completely enclosed in the helmet and that their entire view of the outside world is somehow projected into their view within the helmet.

If we're speaking of the first case, an Arduino can be used for a simple head mounted display (there are multiple examples if you Google it - include terms "glass", "hmd", and "hud") but Uno and other atmel based Arduinos are limited to simple 8 bit animations and text, nothing truly impressive or emersive. You will also have the issue of image correction in cases where your trying to create a large overlay - the viewable image will warp and fade since not projected onto surface strait on. Lenses can be used to correct but this is costly and not realistic for most diy/makers which only leaves software based solutions which Uno cannot handle running. It is possible however with other boards like the pi zero which is comparable in size and price and has enough power for higher resolution graphics and image correction. Note this approach will still require a single lens for focusing the projected image, but these are basic and cheap lenses as opposed to prisms or multi-lens solutions.

The second case would functionally be more like a VR headset and could be a challenge with some designs of Ironman helmets due to limited space within the helmet. If willing to stretch the proportion of the helmet a generic low definition version could be created using cheap lenses and at least two unos. it will require at least one FPV camera module and two display modules as well as whatever sensors you would be using. this would be more in line with Igor Stoppa's answer.


Heads display arduino up

With Alain Mauer’s Arduino glasses and a Bluetooth multimeter, electrical data is always in view!

If you’re in a job where you have to take readings inside a live electrical panel, one thing that’s inconvenient, and even dangerous at times, is having to look away from your hands to read your multimeter. With hopes of “making an engineer’s life easier and safer,” Mauer solved this problem using an Arduino Pro Micro and a BLE module to show data from a Bluetooth-enabled multimeter. Now he can see data on a display that looks similar to a Google Glass device. Perhaps this method could be expanded to other devices in the future!

If you’d like to build your own glasses, a description and 3D printing files can be found on

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Arduino OLED Motocycle Helmet HUd Heads Up Display DIY

Car HUD - Windscreen Display for Speed & Compass © GPL3+

Car HUD - Windscreen Display for Speed & Compass

Drive without distracting your sight, take care of speed limits taking under control your car speed on windscreen! (2nd version available!)

Components and supplies

About this project


I wanted it! I have been invidious of my friend Taggi's big car showing on windscreen the speed. I had to have it, I had to make it by myself of course!

Software point of view:

Projecting the circuit the most difficult and confusing part have been the connection of the 7 segments displays to the BCD decoders because numbers are "inverted" (mirrored).

There are 3 buttons: + and - for increasing/decreasing brightness and S/H to switch between Speed in km/h and Heading in degrees; in case of Heading also the red LED is on, it means "degrees" of compass (1-360°) when moving. It isn't an electronic compass, it is a GPS and you need to move to have the right information of the direction you are moving to. The brightness is saved in EEPROM memory after a minute. Brightness is changed both on displays and on LED by the way of PWM pins.

An important part of the code is for collecting datas from GPS, mainly speed and direction, taking them out from every NMEA sentence. Even using String class, mostly for Serial NMEA sentences manipulation, the whole elaboration flow is stable and solid; it uses "serialEvent()" to receive data from GPS one time per second, than calls "nmeaExtractData()" and finally it checks data packet with "nmea0183_checksum() to be sure of data integrity. If you use another make and model GPS be sure the sentences have the same structure or you have to make some changes here. For example EM406A uses "$GPRMC" packet id, BT220 uses "$GNRMC" instead... just a small name change... A useful link can help you with checksum test: - Here an example of a complete NMEA sentence, it contains: id, time, validity, latitude, longitude, speed, true course, date, variation and checksum.

$GNRMC, 095836.000, A, 4551.9676, N, 01328.7118, E, 2.09, 341.84, 280519,, *08

The sketch provides to enable the latch for every single display BCD decoder one at a time, set the code number on the binary 4 bits bus, disable the latch, and so on when value changes. Left side not significant zeros are blanked (not displayed).

Before loading a new sketchtotheMCUremember to take out the Jumper: it is connected to Rx pin of Arduino and during loading it is for sure in conflict with GPS Tx. After software loading put again in place the Jumper to restore normal functionality.

Components list:

  • 3 x 5161as seven segments displays, common cathode, red
  • 1 x Beitian BN-220 serial TTL GPS (1 Hz GNRMC sentences)
  • 3 x buttons (normally open) + 3 x caps
  • 22 x 1/4W 220 ohm resistors
  • 3 x 14511 BCD decoders + latch
  • 1 x USB "B" female
  • 1 x strip line 2x male pins (for Jumper)
  • 1 x strip line 4x male pins to bend to 90° (for GPS)
  • 1 x pigtail cable connecting GPS to 4 pins onboard
  • 22 x strip line male pins to join two PCB in a stack
  • 1 x piece of double sided adhesive to stick GPS on PCB
  • 6 x turned strip line 5x female pins (for displays)
  • 4 x M3 female towers 20mm high
  • 1 x plastic box + cover (look at my 3D files ready for printing, below)

PCB (printed circuit boards):

I used two double faced PCBs for that reason around 50 pass through rivets or pins are used to solve routes for whole circuits. There are also 5 alignment holes to make first. I designed on every PCB these 5 alignment spots. In download section you have all PCB files, components and solder faces, mirrored, for downloading and printing by the way of a laser printer on "yellow" or "blue" sheets; this time I used the blue ones but also the yellow ones are good and the price is lower. I have to say the blue sheets are better... When printing remember to disable toner saving settings, use instead 1200 dpi resolution to have deep real black result. The toner transfer process from magic sheets to PCB is made by the use of an hot iron... Around in the Net there are some tutorials showing how to produce a good PCB but remember these important points: clean perfectly and slightly brush the copper with a kitchen ruvid sponge, 5 minutes of ironing, water thermal shock, two faces alignment by the way of 5 holes (I used 5 pins on a large white LED surface to see holes), protect the other face during corrosion process. Printing also components face makes the project "professional" :-)

NOTES:the pictures are taken before the very last version, it means a few details can be different: i.e. the strange green wire around the PCBs in the final version disappears, or the Jumper has moved from PCB #1 to PCB #2. You should setup the GPS at 9600 bps speed, 1Hz GNRMC NMEA sentence only; this can be made using its own setup software. Finally, before solder the USB female connector, stick a small piece of insulating tape under it to avoid unwanted contact with a copper line, on the component side, just below it.

Giving power for the first time you will discover the numbers are "unreadable", because it is made to look at them reflected on the windscreen (mirror). Install it in the car in the front of driver's seat, find a comfortable place and fix it. I suggest to connect the USB power cable after the ignition position so it will switch on / off when engine on / off. That's all ladies and gentlemen!

News and Improvements:

  • 25.03.2021: to complete the project I prepared two 3D .STL models at this link: where you may download files regarding a shaped box and his cover panel for this project to print by the way of a 3D printer.
  • 20.07.2021: it is available a V2 (version two) of the software that together with two wires and one resistor you will have altitude information on the display as thousand of meters (i.e. 0.89 = 890m), just press another time the S/H button! Instructions: 1) setup GPS to output also $GNGGA nmea sentence by the way of its own software; 2) cut actual connection between d5 Arduino pwm pin and the rest of the circuit, connect it to central display decimal dot pin with a 220ohm resistor; 3) connect d13 Arduino digital pin to the circuit where d5 was connected; look at few pictures here below; 4) install V2 sketch on your Arduino Nano.

When driving, just drive. Drive safe!



Fritzing schematic diagram


Sketch version 2 (read instructions first)



You will also like:

How to Build a Heads-Up Display for Your Car

Image for article titled How to Build a Heads-Up Display for Your Car

Heads-up displays (transparent displays that let drivers see data without looking down) are built-in on some modern luxury cars, but if you're not lucky enough to have one, here's how to make your own. It's a relatively cheap and easy project, but you'll need some soldering experience and familiarity with Arduino.

Image for article titled How to Build a Heads-Up Display for Your Car

I researched, constructed, and installed mine in approximately one month on a 2004 Toyota Highlander. This is what it looks like in action:

My model uses the car's OBD-II port to connect to an Arduino microcontroller, which is programmed to display the car's speed on a 7-segment display. A fresnel lens is used to optically collimate the display, which is projected onto a piece of combiner glass.

The difference between this and most third-party HUDs is:

  • It's optically collimated. This means the display is focused at infinity, so the driver does not need to refocus his eyes from the road. The display looks like it's floating in space right where the road is. Most third-party HUDs are not collimated.
  • It utilizes a combiner glass. This specially-coated piece of glass allows for virtually seamless viewing of the outside road simultaneous with the display, as opposed to cheap "reflective films."
Image for article titled How to Build a Heads-Up Display for Your Car

Shopping List

  • Arduino Uno: $20
  • OBD-II cable: $50 (This one comes with an Arduino library, so it's easy to program with.)
  • 7-Segment Display: $13
  • Arduino Protoshield: $10 (To easily mount the display on top of the Arduino. This is optional, you can just use perfboard instead.)
  • Power switch: $0.50 (Really cheap and makes it easier to turn the power on/off instead of unplugging the wires every time.)
  • Large Fresnel Lens: $1.80 (It really doesn't matter which one you buy as long as its at least ~220mm long.)
  • Teleprompter Glass: $15 (Get the 7" by 4" custom size.)
  • 4 Suction Cups: $3/$1.50/pack of three (You can use any suction cups you want, just make sure they can hold the glass safely.)
  • Total Cost: $113.30 (Full setup pictured at above)

G/O Media may get a commission

Other Necessities

  • Soldering equipment
  • Hookup wire
  • Lots of cardboard
  • Duct tape
  • Pliers
  • Some soldering experience
  • Some Arduino experience suggested

Step One: Solder the Circuit

Solder these connections onto the protoshield to be mounted on the Arduino:

Image for article titled How to Build a Heads-Up Display for Your Car


  • Yellow wire to D0
  • Blue wire to D1
  • Red wire to 5V
  • Black wire to GND (through the power switch if you have one)


  • VCC to 5V
  • GND to GND
  • RX to D6

Step Two: Upload the Code

Go here and download the code, then open it with the Arduino program, connect your Arduino to your computer, and upload the code.

Image for article titled How to Build a Heads-Up Display for Your Car

Step Three: Build the Arduino Holder

Pick a place in your car to build the holder for your Arduino. Keep in mind that it should be about 10-inches away from the lens, and it should be out of the way of your hands and legs when you drive. I built mine into an existing compartment below the steering wheel.

Image for article titled How to Build a Heads-Up Display for Your Car

Duct tape and cardboard are extremely cheap materials to use, and they hold up pretty well. (Obviously you can take a bit more time and use materials that look a bit nicer!) Next, put the Arduino on top and connect it to the OBD wires. I soldered headers onto my protoshield for easy connection with the OBD wires.

Image for article titled How to Build a Heads-Up Display for Your Car

Step Four: Mount the Combiner Glass

Bend the hooks of the suction cups to cradle the glass like this:

Image for article titled How to Build a Heads-Up Display for Your Car

Angle the glass until you can see the reflection of the display, then tweak the suction cup hooks to hold the glass in that position.

Image for article titled How to Build a Heads-Up Display for Your Car

If the suction cups hooks aren't long enough, just cut out a segment of a wire clothes hanger and bend it around the suction cup. After you finish, you might want to pull on the glass a little bit to make sure the suction cups will hold.

Step Five: Mount the Lens

The fresnel lens is very flimsy by itself, so I recommend taping some support around the edge. You can use cardboard, popsicle sticks, or anything you find around the house. Wooden kabob sticks worked well for me. Now that the lens is nice and sturdy, you need to figure out the exact position the lens should be in to collimate the display. This can be tricky to get exactly, but you're looking for when the display is the most magnified without being blurry.

G/O Media may get a commission

I found this the easiest way to do it: Look through the combiner glass and through your windshield at an object far away (let's say a tree). Notice how when you focus on that tree, the display splits into two images because your eyes are no longer focused on it. Now place the lens right over the Arduino and then slowly move the lens up towards the combiner. Still focusing on the tree, you should see the two images of the display gradually get closer to each other. When the two images meet, stop moving the lens and mark its position. That means that the display is now focused at the same location as the tree.

Image for article titled How to Build a Heads-Up Display for Your Car

Now build a holder with cardboard and duct tape to hold the lens in that exact position.

Image for article titled How to Build a Heads-Up Display for Your Car

The lens will probably be bigger than you need, so just use scissors to trim off some of the edges where it's not needed. You now have a working heads-up display!

How to Build a HUD for Your Car | Bill Wong Tech

Bill Wong is a high school senior who expects to study engineering in college. He shares his projects on his blog, Bill Wong Tech. Email him with questions or comments at [email protected]

Want to see your work on Lifehacker? Email Tessa.



225 226 227 228 229