Dangerpants Labs ADI Construction Guide

Please read this entire document through at least once before attempting to build an ADI board.

Materials Required

You will need the following materials, in addition to the electronic components called out in the Bill of Materials:

  • Solder
  • Solder paste
  • 20-24 ga 12-conductor ribbon cable (LCD connection)
  • 18-22 ga stranded wire (button connections)
  • 16-20 ga stranded wire (power connection)
  • 100 mA quick-blow fuse and holder
  • 3/32" (2mm) ID silicone tubing
  • Pitot tube
  • Circuit board standoffs

You will also need a relatively standard set of circuit building tools, including at least:

  • Soldering iron
  • Vise or circuit board clamp
  • Solder reflow heating device*
  • Pliers
  • Diagonal or flush cutters
  • Tweezers
  • Desoldering tool/materials
  • Multimeter

If you need to program the microprocessor, you will also need an Arduino with a removeable ATMega328 28-pin DIP socketed processor or other programming hardware. Note that programming the processor is outside the scope of this document. Search for Arduino programming on your favorite search engine if you need help with this step. The ADI uses absolutely standard Arduino methods to program.

* I have used the "reflow skillet" method successfully, but there are lots of methods available to solder SMT components. SparkFun has a good article on using a reflow skillet.

Compiling the Firmware

Setting Up Your Environment

If you haven't already, download the Arduino compiler from the Arduino website and install it.

You will need to install the RTClib library (included with the ADI source code in the Downloads section) into your Arduino compiler's library path.

Other libraries referenced in the code should be installed as part of your Arduino compiler installation.

Configuring the Firmware

The firmware contains a number of #defines which you may want to use depending on the features you want to enable.

USE_KNOTS: In airspeed.h, uncomment "#define USE_KNOTS" if you'd like your ADI to display US speed in knots instead of miles per hour.

MPXV7002DP: In adi_main.h, uncomment "#define MPXV7002DP" (and comment out "#define MPXV5004DP") if you're using an MPXV7002DP differential pressure chip. This is unusual.

Once the settings are configured as you wish, compile the firmware just like any other Arduino program. If you haven't yet worked with Arduino, it would be worth purchasing an Arduino Uno and playing with some of the example sketches before attempting to build an ADI board.

Soldering SMT Components

The first step in building the physical ADI board is to attach the surface mount technology (SMT) components. There are only three components which must be soldered using this technique:

  • IC3 - BMP085 (or BMP180)
  • IC2 - MPXV5004DP
  • G1 - CR2032 battery holder

Apply solder paste to the pads using a toothpick or similar very small implement. Note that as long as there isn't too much paste, you don't need to worry very much about keeping the solder paste tidy on the SMT pads. The heat and reflow process will tend to pull the solder into its correct spots and prevent bridging. Apply a small amount of solder paste to the central negative pad of the battery holder to ensure good contact with the battery.

Once paste has been applied, carefully place the components into their correct positions. The BMP085 silkscreen includes a dot, just under the BM part of the label, which corresponds to an indentation on the BMP085 housing. These should be aligned. The BMP180 has asymmetrical pads, so ensure that the "missing" pad side is aligned with the missing pad on the board. The MPXV5004DP should be oriented with the ports facing away from the board. The battery holder should be oriented so the battery slides out away from the board. it should only touch down on the two positive pads on either side of the central negative pad.

Once the parts are placed (they don't have to be aligned perfectly), reflow them according to the method you are using.

Soldering Through-hole Components

Place each component into its hole (as marked on the board's silkscreen), and solder from the bottom. Ensure each part is pulled snug to the board before soldering. Once soldered, snip the leads flush to the board. The large regulator (IC8) should be bent flat to the board before soldering.

I strongly recommend installing sockets for the two DIP chips (the ATMega328P and DS1307). However, if you wish to install the chips directly into the board, ensure that the ATMega328P is programmed before it is soldered in place. The ISP header has not been tested at this point.

Connecting the LCD

The LCD connections go as follows:

Name ADI Board LCD Board
GND 1 1
+5v 2 2
Contrast 3 3
RS 4 4
GND 5 5
EN 6 6
DB4 7 11
DB5 8 12
DB6 9 13
DB7 10 14
Backlight 11 15
GND 12 16

Connecting the Buttons

The buttons are simply connected to each of the SET, PLUS and MINUS holes labeled on the board. Buttons must be normally-open, and it's recommended that you use momentary switches. Any type of switch may be used as long as it meets these requirements.

If operating in a noisy electrical environment (one in which an AM radio receives a lot of interference), it would be beneficial to install ferrite chokes at the board-end of the switch leads. In extreme cases or for long runs, you may also wish to use shielded cable, with the shield connected to circuit ground.

Connecting the Ram-air Line

The heart of the Air Data Instrument is the ram-air line. Silicone tubing is highly recommended for this installation (available at McMaster-Carr as well as at some hardware and foodservice equipment stores).

Installation of a full pitot-static system is available at other websites, such as this one at ch601.org. In brief, you need to install your pitot tube (which is any rigid structure which can be oriented into the apparent wind, and which can conduct air pressure into your silicone tubing) in a place where it sees only oncoming air, and is out of any turbulence generated by your vehicle. Aircraft typically mount this tube near the nose or on the leading edge of a wing.

Once the pitot tube is situated correctly, cut the silicone tubing to length (leaving a bit of wiggle room), ensuring the length cut will follow the routing necessary to go from pitot tube to ADI in their final, installed locations. 3/32" (2mm) ID tubing will slip over the sensor port on the MPXV5004DP and stay in place in most circumstances, but if you anticipate any movement or stress on the tubing, you may want to tie the tubing on with safety wire. Every effort should be made to ensure that the MPXV5004DP doesn't receive any mechanical stress, as the solder connections will quickly fail.

Dealing with the Static Port

The static port of the MPXV5004DP is used as the reference against which ram-air pressure is measured. However, it is not used by the BMP085/180, which is the device that measures altitude. As both measurements should be against the same static source, the strictly-correct way to install the ADI is to install static ports on the vehicle, and run that static source to a sealed case in which the ADI board lives.

Since the ADI is not a precision instrument, you can get away with simply venting the ADI's case to the outside air. This greatly simplifies installation, and means you don't have to come up with a sealed enclosure. If you use this method, ensure that your static air vent is about the same size as the ram-air tube: about 1/8" or 3mm in diameter. A too-small vent will result in altitude readings that lag behind actual altitude, and airspeed readings which are affected by changes in altitude.

Powering the ADI with Line Power

Connect your vehicle's power (which must be between about 7V and 30V nominal) to the ADI's +7-30V and GND terminals. Ensure you have a 100 mA quick-blow fuse installed in line with the positive power lead. For temporary installations, you may want to use a cigarette lighter adapter, and these frequently have replaceable fuses in them. Ensure your adapter has a 100 mA fuse of the correct size.

Powering the ADI with Batteries

The ADI may be powered directly with 3 AA batteries, which produces about 4.5V. The main processor will continue to operate down to 1.8V, but some of the other components will cease working correctly as voltage drops. Battery life should be between 5-10 hours, although the ADI has never been tested in this configuration, and this duration is merely a guess.

If you decide to try this, you should eliminate MOV1 and IC8 from the board. Bridge the outer pin terminals of IC8 with a short jumper wire (but ensure it can't short to the center pin terminal). Mark the board clearly to indicate that it now requires +5V or less. If you apply more than 5V (for instance, by using 4 alkaline AA batteries), you will destroy one or more components.

ADIs built for battery power should include a switch to disrupt the flow of power from the batteries to the board. This is not included on any of the plans. The ADI has no capability to turn itself off.

See the Specifications page for information on power consumption.


The ADI should be mounted in some kind of protective case to keep the elements at bay, and prevent accidental contact with electrical conductors that might damage it. The BMP085/180 should also be protected from getting dusty, as its sensing port is very small, and would be easily clogged. If your ADI is to be installed in a panel, it could be mounted directly to the back or inside of the panel.

Insulate the ADI board from vibration to the extent possible. Use of rubber isolation mounts for the circuit board is advised. If the ADI is to be used in an environment of extreme vibration such as that experienced with some single- or twin-cylinder motors, the board should be encased in a resin block. Confirm that the board works as expected, and leave a path to ambient air for the MPXV5004DP and BMP085/180 as well as unrestricted access to the ISP headers. If operating from a 24V electrical system, include a heat conductor connected to the voltage regulator and attach it to a suitable heatsink in the final installation.

If you successfully build and install an ADI, I would appreciate hearing about it by email to ian [at] dangerpants [dot] com.