I'm not really good at finding places and direction but at least I'm able to read maps and compass. These days, GPS navigation systems are getting more popular, so probably some people would say why I need a  compass. Well, first off, I like gadgets and if I can make one, that will be much better to enjoy it.  So, I decided to make a digital compass for my car. 

I started with very basic function, showing bearing and heading angle from a digital magnetometer on an LCD, but there are a number of digital and analog pins are left unused on the microcontroller (Arduino compatible, JeonLab mini) so I added a digital temperature sensor and a phototransistor to adjust the brightness of the backlight (single LED) of the LCD.

I still have more than a few pins available and have a plan to add more sensors such as an exterior thermometer, anti-theft device, etc. (any suggestion would be appreciated!)

The picture shown in this Intro page is the fully assembled and mounted on top of the interior mirror of my car showing the bearing, angle and current interior temperature. Unfortunately I didn't take a lot of pictures when I assembled the electronic parts, but I'm sure someone who are interested in making one of these will be able to follow easily the schematic diagram I will show in a couple of steps later.

Step 1: Part list

  • LCD: 16x2 HD44780 LCD (white text on blue background): This is pretty popular LCD that you can find and buy easily.
  • JeonLab mini v1.3: This is a minimalist Arduino board I made. There are a number of small Arduino compatible boards in the market so pick anything small that can be hidden behind the LCD.
  • Digital compass: MAG3110 (bought an assembled one from ebay): I have tried other digital compass a couple years ago but couldn't make it work. But this one is relatively easy to program. I will explain this in detail later.
  • Temperature sensor: TMP36: take a look at the datasheet from the Digikey link.  It's easy to use.
  • Phototransistor: LTR-4206E: I'm sure any other IR phototransitor will do the same.
  • 7805 regulator: You know what this is. Car battery's charging and regulated voltage is 13.8-14.4V while we need 5V for the controller and the LCD.
  • resistors and capacitors (see schematic diagram)
  • Car battery jack
  • prototyping board
  • push button switch (normal open, N.O.) for calibration of the magnetometer
  • solid copper wire (1mm in diameter) for bracket frame
  • cable ties
<p>2 questions, how much of a hassle is this to program and what would be needed to display a clock?</p>
<p>I haven't used it before, but there is a real time clock module. Check this site (</p><p>http://playground.arduino.cc/Main/DS1302) for more information.</p>
<p>Really cheap real-time clock from dipmicro.com (and other cheap parts)</p><p><a href="http://www.dipmicro.com/store/DS1307BAT-MOD" rel="nofollow">http://www.dipmicro.com/store/DS1307BAT-MOD</a></p><p>It's intended for use with a rechargeable battery, but easy to modify for a normal battery.</p><p>If anyone needs help with using an Arduino and a real-time clock I'm willing to share some stuff... just reply!</p>
<p>pro work , now you need to make cover around your device and its will be perfect , also hide the sensor some where else .</p><p>good job</p>
<p>Silly Question - I would make this for my dad but all I would need is a larger screen for the compass - could you suggest one and I can just take away from YOUR design to make it work?</p>
<p>I have used only two LCDs for my projects: the one in this Instructable (16x2) and Nokia 5110. I don't know how big LCD your are looking for, but I just quickly googled and found one at Sparkfun store: </p><p><a href="https://www.sparkfun.com/products/710." rel="nofollow">https://www.sparkfun.com/products/710. </a> Take a look at it and see if it is big enough. You also need to modify the Arduino sketch to display numbers and letters for the LCD you choose.</p><p>Good luck and have fun!</p>
<p>How much money does this cost to make?</p>
<p>Well, I used many of the parts that I already had before, so I cannot say exactly how much it took, but my rough guess is around $30 if you have to buy everything.</p>
any problems with magnetic interference from your car?
<p>That's why I put the sensor on the wind shield close to the interior mirror where the magnetic field interference is minimal. It works fine.</p>
<p>cool, thanks</p>
Well done! I may add some of your features to my arduino MPG display. I would suggest adding MPG info to your display... by following the &quot;MPGuino&quot; schematics available online, it only requires a few resistors and diodes, 2 additional Arduino pins, and tapping into a fuel injector lead and the wheel speed sensor. From those 2 inputs, as well as looking up the specs for both those sensors for your vehicle, you can then display mpg, engine rpm, vehicle speed, and a custom odometer.
<p>Oh, that's interesting stuff to add. Thanks for the information. I wish I had more time to make things. :-) </p>
<p>This is pretty impressive. Have you played around with any raspi stuff? Seems like you could have even more fun.</p>
Thanks!<br>I'm thinking to get one of those soon.
Very useful! Thanks!
I'm glad someone found this useful.<br>Thank you.
Nicely done. I have been planning to build my own digital compass since my new truck didn't have one installed. I want to start with the compass and an OLED display, then add temperature/humidity and maybe even GPS logging.
Thank you. I also think about adding a GPS module. Good luck!
How about Tilt and Inclinometer for the 4x4 guys <br>
That's good idea. I'll think about it. Thanks!

About This Instructable


296 favorites


Bio: A human wanting to have wings to fly...
More by JeonLab: Distance measuring (and more) device using Arduino and GPS GPS time (UTC) to local time conversion using Arduino Car Digital Compass & Thermometer
Add instructable to: