Most small / cost effective way to detect changes in altitude?

I want to make a device, which when placed on someone skiing or snowboarding, will be able to tell whether that person is sliding down the slope. The problem is two-fold. I must first detect whether the device is moving. Then, I must know whether the device is gaining or losing altitude, because I want to do something different depending on if someone is sliding down the slopes or going up the chairlift. As such, there would be 3 total states:

• Not moving (the skier is stopped anywhere)
• Skiing (the skier is moving towards the center of the earth)
• In a chairlift (the skier is moving away from the center of the earth)

It's not required accuracy about the altitude but just understand the variations.

A few options have been mentioned:

• A GPS, which is expensive and unrelaible for the altitude metrics
• An accelerometer
• A barometer

Ideally, the materials required for this detection would cost under 20$. I would also ideally need to arrange them in something smaller than a car remote like this one. • How much distance are you talking about covering? Like a 5 foot fall or a 50 foot fall? – Kellenjb Jan 10 '12 at 16:50 • @Kellenjb More like 5 foot fall, or less if possible. What I want to do is comparable to detecting whether the object is rolling down a mountain slope or not. – Xeon06 Jan 10 '12 at 16:52 • @Xeon06, An important part of design is attaching numbers to requirements. What is your highest feasible cost, what cost would be a good target that you could deal with and do well, what size is maximum, what size is small enough that size is no longer worth any increased cost. – Kortuk Jan 10 '12 at 16:55 • @Kortuk thanks for the tips. I edited my question. – Xeon06 Jan 10 '12 at 17:01 • @Xeon06, that is one of the major things we forget, it is very easy to define something with words, but you pay an engineer because he will both do it with numbers and make it happen. Thank you for taking constructive criticism. – Kortuk Jan 10 '12 at 18:03 5 Answers (1.) GPS is getting very small and would do a superb job, but the next solution is more liable to appeal. (2.) A small rigid almost sealed container will lag the outside pressure by an amount determined by the leakage rate and container volume. Pressure sensors come in absolute and differential versions. Absolute measure pressure relative to some internal reference. Differential sensors have two "ports" and measure difference between them, A pressure sensor with one port inside the container and one port outside will reliably indicate whether you are rising or falling. If internal pressure is above external pressure the object is rising. If internal pressure is below external pressure the object is falling. The indication will be a weighted average of the period for a few time constants leading up to the present moment. eg if a rising object dips briefly and for less than a time constant of the container then rises again the pressure inside would increase briefly due to the dip but not enough to flip over into falling mode. Atmospheric pressure halves about every 4500 metres in a logarithmic manner Some quick figuring which may be woefully wrong suggests that nearish sea-level a 1 metre vertical separation gives about 14 Pa difference in pressure. 1 atmosphere = 100,000 Pa = 100 kPa so 14 Pa ~= 0.014% of an atmosphere. Despite being small the difference should be able to be reliably detected. A look at Digikey prices suggests that a minimum price of around$25 is required. Maybe more for what you need.(But see Sparkfun offering below for about $9). SO Here is an "off the cuff" possible solution. Use a small rigid container with a controlled leak. Size tbd. Make a hold in one wall perhaps 20mm across. Size tbd. Place a very light diaphragm across hole in wall with "enough " slack in it so that it domes in or out under pressure difference. It should be possible to get an extremely low pressure indication of direction of pressure difference. P inside greater = rising - dome out. Pinside smaller = falling, dome in. Detect dome position optically. TEST: I tried the diaphragm method with no visible results - I think. I used a reasonably rigid 500 ml pill bottle and used a sheet of "glad wrap" as the diaphragm. Gladwrap was pulled over opening with some slack in it and fastened with several rubber bands around neck. Container was carried up street a height of about 10 metres (top of road from my house). Photos were taken by street lamp and flash at top and bottom. Visual examination in-camera showed no obvious change. Subsequent examination on PC screen may show otherwise. So ... Method "needs work" :-). I'm sure it can be made to work BUT a commercial sensor is a lot easier. The TI Chronos watches are specialed at half price by TI occasionally Re Bosch BMP085 sensor as suggested by Caleb - data sheet here This is "just" suitable for the job. Variation in pressure is around 12 Pa/m- varies with altitude. Bosch datasheet use hPa = HectoPascal - very naughty non SI unit !!!. 1 hPa = 100 Pa = 100 N/m^2. Bosch unit has noise level - which sets usable sensitivity, of 6 Pa = 0.5m and in low power mode and 3 pa = 0.25m in low noise mode. So assessment to about 1 m should be viable [tm] in this application.$US9 from Sparkfun here and
\$20 on PCB with 2Rs and cap here

• Thanks for the answer. I am unsure how pressure sensors work. What do you mean by "port"? Wouldn't I need to use two sensors, one inside and one outside? Do you think I can find small and cheap enough sensors? Would you have any links to buying such sensors? – Xeon06 Jan 10 '12 at 17:07
• @russellMcMahon, do you think that the pressure difference would be easily differentiated on the order of feet of movement. – Kortuk Jan 10 '12 at 18:05
• Thanks a lot for the detailed answer. I'll wait a bit to see what comes up before accepting it. – Xeon06 Jan 10 '12 at 18:16
• @Kortuk - Yes. Should work with "tissue paper" but I'd try for some of the more "developed solutions suggested - most of which fwiw are variations of the oressure sensor I suggested. Tissue paper unit would be fun to try. -> Just tried - not at all good on first attempt. – Russell McMahon Jan 11 '12 at 9:00
• @RussellMcMahon, Yes, I really commented because the distance was not specified in question but was in a comment. – Kortuk Jan 11 '12 at 13:00

TI's EZ430-Chronos is a hackable watch that uses their MSP430 MCU and lets you modify the firmware. It has an altimeter mode and uses the VTI Technologies SCP1000 pressure sensor.

I don't know anything specific about solving this problem or how accurate their implementation is, but VTI has an application note on using their part in an altimeter, and the EZ430-Chronos Development Tool User's Guide includes schematics for the watch, so you at least have access to a complete hardware and software implementation that you can evaluate and possibly carry over to your own design.

--- Edit:

When I posted my response I actually wasn't even thinking of just using an EZ430, but in terms of using it as a design reference since the schematics and source are published. But I guess it might make sense to just use one and tweak the firmware. It already has a wearable form-factor and it has RF for wireless communications, someone makes a heart rate monitor that syncs with it, but beyond that I'm not sure what you would do about data streaming or logging. It has a segmented display, not a pixel display so UI could be an issue too. You didn't say exactly what the device will do with the data, if it will be displayed in realtime, logged, transmitted, etc.

• Very interesting, even if I don't use that in this project. Thanks for the links! – Xeon06 Jan 10 '12 at 21:11
• see also MS5540b module. Both parts are well-suited to coin-cell operation. – markrages Jan 10 '12 at 22:59
• Caleb's comment on Caleb's answer suggests using accelerometer and pressure to provide more accurate event start time. The EZ430 has all that and a user interface. – Tim Williscroft Jan 11 '12 at 5:34
• @Xeon06 What's easy to overlook is the fact that the Chronos has all the peripherals you could want, connected in a fashion that would be almost ideal for development. I think you would be hard pressed to get a packaged dev kit at a better price. I tested my Chronos, and it had a resolution of around 4 ft, and updated at about 0.5Hz. It could reliably identify a difference of 6-7 ft in elevation. Once you finish writing code and go towards a production device, you could omit the RF, LCD, and anything else you don't need to get the price down. – W5VO Jan 11 '12 at 15:16
• @W5VO indeed, it looks great for development, but I'll eventually need to use completely other components, so I might as well start with those components. – Xeon06 Jan 11 '12 at 15:24

A sensor like the Bosch BMP085 should have fine enough resolution to detect change in air pressure due to falling, and it's so small that you'll probably want to order the breakout board instead. The trouble with sensing pressure changes instead of directly sensing acceleration is that it may be difficult to tell the difference between a change due to falling and a change due to someone opening a window or door, a light breeze, the ventilation system starting up, a person or animal running by, etc.

• Hmm. The reason I want this is to detect whether a skier or snowboarder is going down a slope. It's outdoors, so no problems with human facilities, but there could be other skiers nearby and whatnot. – Xeon06 Jan 10 '12 at 20:20
• You're talking about a vertical drop of hundreds or thousands of feet in that case, so if your goal is just to count the number of runs in a day, that should be pretty simple. If you want to know exactly when a run starts and stops so that you can accurately and automatically time each run, that'd be more difficult. – Caleb Jan 10 '12 at 20:54
• My goal is indeed to count when someone stops and starts. – Xeon06 Jan 10 '12 at 21:10
• According to the data sheet (which you can find on the linked Sparkfun page) that sensor has a resolution of 3 pascals, which I think translates into a vertical drop of around 10 meters. You can drop that far pretty quickly skiing fast on a steep slope, so you'd get reasonable accuracy (but nothing like the hundreths of a second that races are timed at). On a bunny slope, though, it takes much longer to drop that far. You might want to combine barometric pressure and acceleration -- use pressure to determine that you've started, acceleration to figure out exactly when you started. – Caleb Jan 10 '12 at 21:51
• Flyer appears to claim 0.25m – Argyle Jan 11 '12 at 10:08

It sounds like the magnitude of apparent acceleration is all you need. When falling (in general, when ballistic), that will be 0. When just sitting around it will be 1g. Small MEMS accelerometers are both cheap and small. The are made in vast quantities for cell phones and car airbags. I don't see why those wouldn't fit your requirements. Look around at the Freescale offerings.

Now that you have said that you want to detect a skier going uphill or downhill, it's clear that accelerometers are not appropriate. They might still be useful for detecting motion. You could use a rolling ball sensor, but those tend to be very sensitive to even small motions. Someone just sitting and talking could regularly trip a rolling ball sensor. However, the low pass filtered acceleration would be pretty steady.

For detecting downhill versus uphill motion, I think some sort of barometer is the best bet. I don't know what's out there in terms of small electronic barometers. Now that you know what you're looking for, a narrow search might turn up something.

• From what I understand, in an accelerometer, if the speed stabilizes, it will stop reporting that it is "moving", because it in fact, is not made for that purpose. Am I wrong? – Xeon06 Jan 10 '12 at 18:49
• @Xeon06 Yes, if the speed is constant that means the acceleration is zero, so the accelerometer won't sense a constant speed. – m.Alin Jan 10 '12 at 19:58
• @Xeon: Then fix your question and explain what you really want. Also use real grown up words like position, velocity, acceleration, etc, not "going towards". I think a good part of the problem is that you haven't really thought thru what exactly you want to measure. Step back and explain the overall problem – Olin Lathrop Jan 10 '12 at 21:19
• @OlinLathrop I did my best to edit the question. I do not have a background in physics (or any science for that matter) and such I fear I would misuse "grown up words". – Xeon06 Jan 10 '12 at 21:32
• @Josh, I work pretty heavily with a project to allow students to learn more about the relationships between acceleration, velocity and position. We found that our 2 dollar accellerometers did extremely well with mapping both position and velocity. We also had rotary encoders for verification of rough distance traveled. With two accellerometers are different ends we could really tell what was going on. – Kortuk Jan 11 '12 at 13:04

You're correct that GPS will not work. For information on barometric approaches, Google "variometer". In any case, you need to define your problem more precisely. Hope that helps, Best Regards, Dave

• I believe I defined my problem as much as I can. I want to detect if a skier is going downhill. – Xeon06 Jan 12 '12 at 18:02