Accurate Tilt Sensor?

Does anyone know if there is a very accurate tilt sensor out there that I could interface to the Arduino? I am looking at something that can measure fractions of a degree of tilt. Do these things exist and if so where?

I am guessing what I need is an inclinomter. Has anyone any experience of using these?

Accelerometers might also work.

Accelerometers are design to measure acceleration though, I would need it to detect very tiny movements, like tenths of a degree and very slow movements too. It would also need to be able to reference it's angle of tilt from the horizontal.

As I mentioned in your other accelerometer.

Gravity is acceleration.

Yes but would they be able to detect very tiny (almost invisible to naked eye) and very slow movements?

It doesn't matter how slow. In fact, the slower, the better, because motion can make it difficult to determine the direction of gravity.

As far as accuracy is concerned, that's up to your design. Many accelerometers output analog signals, so if you have a clean signal path, full scale amplification, a good ADC, and sample averaging, then sure. You can get very precise angles.

What are you trying to measure? Do you need sub 1 dgr accuracy for the entire 360 dgrs or are you trying to measure things like the tilt of the ground for earth movement?

If you put a low-G accelerometer on its side (most sensitive orientation), you may be able to get that sort of accuracy on a good day by averaging the readings for a while. But assuming you want long term accuracy, accelerometers drift depending on temperature, voltage a lot, so it will not be a good choice.

I think you need an optical solution. Some kind of a high resolution angular encoder should do, or a linear encoder on a long arm. I suppose you can also attach a linear encoder to a floating thing inside an inclinometer.

I've built a weather vane with sub-dgr accuracy (needed to be accurate for aerodynamic research) by pointing an old webcam at a piece of paper with a line on it attached to the shaft of the vane, and processing the image on a computer.

Cheers, -Z-

Yes I need accuracy down to one arc minute of degree which is why I am not convinced an accelerometer will work at all. I'd rather not go down the route of solutions that require large objects. i am looking at some kind fo small sensor, or set of sensors, that can be attached to a telescope to measure its RA and DEC to arc minute accuracy.

If you aren't using gravity as a reference, then you need to put encoders on each axis of the telescope and just measure the actual angle from some set point.. You can buy encoders off the shelf, add gearing if necessary to increase resolution.

Any idea where I can get some reasonably priced encoders? All the ones I have found so far are very expensive.

If you want to implement this on the cheap and have an old trackball mouse, you could pull the encoder out of that. The resolution may not be enough for what you want, but perhaps using an old clock mechanism to increase the gearing could be good enough.

The high cost of encoders was why I decided to do my cheap webcam solution, but it only had about 1/2 degree resolution.

Cost of encoders goes up pretty fast with resolution, so you may want to re-evaluate what kind of accuracy you really need. We have a laser tracker in our lab that has 1-2 arc second accuracy, and it costs on the order of $100,000 for the whole instrument.

It's probably a lot cheaper to build your own, but 1 arc minute is quite tough. You can get 1 arc minute resolution with the mouse idea mem suggested, but I doubt you can achieve the repeatability with all the gearing backlash from the large amount of gearing you will need (mouse encoder is like what, 10 dgr resolution?). But maybe you can buy a relatively cheap encoder that has say with 1 dgr resolution and gear it up with a smaller gear box.


Maybe take a software engineering approach, and use a GPS clock and coaxial camera, determine where you’re pointing by analyzing the visible brightest stars.

Or, even with geared up encoders, it’s possible to account for backlash by tracking movements. If you always approach a coordinate from the same direction, the backlash should be the same and you can compensate.

Or try to use a harmonic drive gearbox (getting expensive again). Harmonic drives are typically advertised as having zero backlash.

You might try using a digital caliper across the angle with a plumb line. These are $10-$15 at Amazon, Harbor Freight, etc. 1 mil accuracy, plus there's an RS-232 interface. It works by capacitance between PCB patterns inside the two parts. The caliper is stiff, but you should be able to take it apart and make it move freely. Haven't tried it myself yet, but have been thinking about this for desktop CNC machining.


Signal Quest sells inclinometers with a 0.1deg resolution. See

You may want to take a look at “Handbook of Modern Sensors” for some ideas.

(* jcl *)

The SCA3000-D01 offers .75mg/0.04 degree resolution at 1333 counts per g. Need even more? the D03 version has 2000 counts per g for 0.029 deg resolution. There's a nice open source project on SourceForge called DUSI (digital underground survey instrument) that uses the D01 for a very professional survey instrument I read a review where the review wrote that the D01 is "a good chip if you need to know when someone is breathing on your circuit board!" ...and that's how electronic love is born :D

I just was checking prices today and saw that the E01 yields 0.069 at 1000 count/g and costs $5 less (~20 vs 25). I may populate some Madhuino boards with the E01 version to keep price lower.

Another point to add here... A 3 axis accelerometer offers better calibration than a single or dual axis accelerometer for tilt measurement. Package alignment on the circuit board, circuit board alignment in the enclosure, enclosure alignment on the surface being measured: all adds up to the necessity for calculation of pitch and roll for accurate measurements.


Following this topic, How to measure the tilt with an accelerometer? I have this an ADXL335 (+/-3G):


I would steer clear of inclinometers as in my experience they were slow to react to changes, inaccurate, and unstable while moving.

I would use an encoder. Every telescope I've worked on used incremental encoders for fine positioning and control.

You can deal with the backlash by installing a small motor that drives the encoder's shaft just enough to eliminate backlash by keeping the encoder's gear in contact with the same gear face on the telescope regardless of which direction the telescope is moving.

Define "reasonably priced." Digi-key has some 1000 count/rev incremental encoders for $40. A 1000 count/rev encoder only needs a 21.6:1 gear ratio to reach 1 arcmin resolution.

Using an incremental encoder means having a way to initialize at a known position but there are many ways to solve that problem. That answer depends on the control strategy for the entire telescope.

I'd go with the encoder approach to get an initial approximate angle and then use a CCD sighting of a known star if you really need super accuracy (for two angles). MEMS inertial devices have some fundamental noise limitations due to the capacitive readouts. Use a very narrow bandwidth filter that takes so long to settle that biases have shifted in the meantime. Much effort to calibrate.