The Nano V1 altimeter manual
This manual details all the features and operation of our tiny Nano V1 rocket altimeter

Altitude and fusion accuracy

PDF

The Nano is built around a very high quality pressure sensor, and on Rev4 and later a motion sensor as well. This page explains where its numbers come from, how accurate they are, and the few things that can affect them, so you know what to expect from your data.

The pressure sensor

Altitude on the Nano comes from measuring air pressure, and for that it uses the Bosch BMP581, one of the most accurate barometric sensors available. It is a 24 bit capacitive sensor with a relative accuracy of around half a metre and noise low enough to pick out altitude changes of just a few centimetres. It is one of Bosch's newer capacitive sensors, a step on from the piezoresistive technology used in earlier designs, and that change is what gives it significantly lower noise, much lower power draw and higher data rates. Put simply, the sensor is far more precise than the atmosphere it is measuring is predictable, so it is rarely the limiting factor in your results. It also measures its own temperature and compensates its pressure readings for it right on the chip, something many simpler sensors do not do, which keeps the raw pressure accurate as the sensor warms or cools.

To get the cleanest possible reading we run the BMP581 at 80 Hz with 16 times oversampling. That means for every pressure value it outputs, the sensor takes 16 internal measurements and averages them, so around 1,280 pressure measurements every second feed into the data. Oversampling this way trades raw conversion speed for much lower noise, and at 80 Hz there is still plenty of speed in hand for even a fast boost. The BMP581 can oversample up to 32 times, but 16 gives the best balance of noise and rate for flight.

Rev3 and earlier boards use the older Bosch BMP390 instead, a piezoresistive sensor, run at 50 Hz with 8 times oversampling, which is that sensor's maximum, for around 400 measurements per second. It is still a very capable sensor, and only a small number of early boards were made before the move to the BMP581.

iTRY IT YOURSELF

Want to see the precision for yourself? Set launch detect to 1 metre, then let the Nano sit on the floor in flight mode for a few minutes so it settles a really solid ground reference. Now throw it up to the ceiling and let it land onto your desk. When you look at the flight afterwards, the final height on the chart is your desk height above the floor, shown with impressive accuracy for a pressure based measurement system. We are often surprised ourselves that the Nano can detect the change in air pressure indoors with such accuracy.

How the altitude is worked out

The Nano converts the measured pressure into a height using the international standard atmosphere, the same model used across aviation and competition flying. It assumes a sea level pressure of 1013.25 hPa and a temperature of 15°C. Using a fixed standard like this is deliberate: it means every flight, and every flyer, is measured on exactly the same basis, which is what competition records need.

The exact conversion is the standard atmospheric formula:

ALTITUDE FORMULA
ALTITUDE_METERS = ((temperature + 273.15) / 0.0065) * (1.0 - pow(hpa_pressure / sea_level_pressure, 0.190266669))

Here temperature is the temperature used in the calculation in °C, hpa_pressure is the current reading from the sensor, and sea_level_pressure is the pressure at sea level. On the Nano the temperature and sea level pressure are fixed at the standard values above, so every flight is worked out on exactly the same basis. It is the same well established formula used by altimeters across the hobby.

There are two ways to think about the height. Your altitude above the ground, the height above the launch pad, is what most people care about, and it is very reliable, because the Nano zeroes itself on the pad and measures the climb from there. Your altitude above sea level depends on the real air pressure on the day, which the standard 1013.25 hPa figure will rarely match exactly.

Throughout, the raw pressure is cleaned up by our True Path filtering, which removes the occasional spike and smooths the trace without lagging behind the real motion. The full detail of how True Path works, and how velocity and apogee are calculated from the cleaned data, is on the True Path and apogee page.

Measuring the ground reference

Your height is always measured relative to the ground, so the Nano needs a rock solid zero point to work from. Rather than taking a single reading, while it sits armed on the pad it keeps a rolling average covering just over five seconds of pressure readings. To save power while it waits, the Nano gathers these at a lower idle rate of around 50 readings a second (see the energy modes in the settings), so the average works out at roughly 281 readings. Note this is the rate readings are stored at, separate from the 80 Hz and 16 times oversampling the sensor itself runs at. Smoothing over five seconds of data removes the noise and gives a very stable ground reference, and because it updates continuously it also tracks the slow drift in air pressure as the weather changes during a long wait on the pad.

That averaged reference is held with a short delay so the launch itself cannot drag it upwards. The instant a launch is detected, the Nano locks in the settled ground average as the zero for the whole flight, and every height in the log is then measured from it. Combined with the rolling pre-buffer that saves the few seconds before launch, this means both the true ground level and the moment of lift off are captured cleanly.

raw readings 5 s rolling average (ground reference) delay launch 0 m Altitude Time

The rolling average rides through the noise to give a stable zero, and is held so the launch itself does not lift the reference.

What affects pressure sensor accuracy in practice

Because the sensor itself is so good, the things that actually move your numbers are mostly to do with the air and the installation:

  • Temperature. The height calculation assumes 15°C. On a hot or cold day the real air is denser or thinner than that, which slightly scales the height. It is a small effect, and it is one of the things you can correct for afterwards.
  • Warm up after USB. Charging and being plugged in warm the board a little. If the Nano has recently been connected to USB, let it sit in flight mode for up to six minutes so it settles back to the surrounding temperature before you launch. This lets the readings stabilise fully.
  • Weather and real pressure. The standard sea level pressure rarely matches the actual pressure on the day. This mainly shifts the above sea level figure rather than your height above the ground.
  • Venting and airflow. The sensor is only as good as the air it can see, so proper vent holes and a clean installation matter. There is more on this on the installing page.
  • Light. As an open sensor it can be disturbed by light, so keeping it shaded helps. Again, see the installing page.
  • Very high altitude. The pressure sensor is rated down to about 300 hPa, which is around 9,000 metres (close to 30,000 feet) on the standard atmosphere, so that is its specified ceiling. Above that it is outside the sensor's rated range. It will most likely keep recording a believable altitude, but the accuracy beyond this point is not characterised, so we cannot vouch for it.

For almost all flying, the height above the ground is the figure to trust, and it is excellent.

The motion sensor (Rev4 and later)

On Rev4 and later boards the Nano also carries an LSM6DSO32 motion sensor, combining an accelerometer and a gyroscope. We always run both at their full ranges, ±32 G and ±2000 degrees per second, so even a hard, fast boost never runs off the scale. This is what gives you the launch angle, the tilt through the flight and the acceleration trace, and it is also used to confirm a real launch. It is a separate measurement from the altitude, which always comes from the pressure sensor.

Property Accelerometer Gyroscope
Range (as run) ±32 g ±2000 °/s
Resolution per count 0.976 mg 70 mdps (0.07 °/s)
Output resolution 16-bit 16-bit
Maximum data rate 6.7 kHz 6.7 kHz

To turn the raw accelerometer and gyroscope readings into the pitch, roll and tilt angles you see, the Nano runs a Madgwick sensor fusion filter, which in our own testing handled the demands of flight noticeably better than the alternatives. The gyroscope is excellent at tracking quick rotation, but on its own tiny errors would slowly add up and the angle would drift away from the truth. The filter continuously checks the gyroscope against the accelerometer's view of gravity and gently corrects it, which keeps the tilt steady. Without a magnetometer there is no absolute compass heading, so the heading can still wander slowly over time, but across the short span of a rocketry flight the drift stays small. In practice the angles are surprisingly accurate and genuinely usable, particularly once the sensors have been calibrated, which removes the bias that causes most of the drift in the first place.

To get the most from it, mount the Nano firmly so it cannot move, set the orientation setting to match how it sits in the rocket, and calibrate it. The angle figures are only as good as the board being held still at a known orientation, so a loose mount or a wrong orientation setting will throw them off. There is more in the calibration and settings pages.

iTIP: GOING BEYOND 32 G

If you expect a flight to pull more than 32 G and you do not need the angle data, there is a neat trick. Mount the Nano at 45 degrees to the line of thrust so that two axes share the upward acceleration rather than one. Because the reading is split between them, neither axis reaches its 32 G limit until the true magnitude is about 45 G (32 G times the square root of two), and the net acceleration figure in your log still reads the correct total. You do give up meaningful pitch, roll and tilt this way, since the board is no longer at one of the standard orientations, but for a pure peak G measurement it is a simple way to extend the range. Mounting it on the full corner diagonal, at an equal angle to all three axes, stretches it further again to around 55 G.

What the saved log stores

Your flight log is a CSV file, and each column is saved to a precision that suits what it measures rather than the raw resolution of the sensor. Writing every reading out to its last digit would only pad the file with figures finer than the measurement is meaningful, so the Nano rounds each column sensibly. This keeps the files a manageable size while keeping all the detail you need. The exact columns depend on the board, as Rev4 and later add the motion data.

Column Units Saved as
Time milliseconds whole numbers
Altitude metres 3 decimals, to the millimetre
Pressure (Rev3 and earlier) hPa 6 decimals
Velocity m/s 2 decimals
Acceleration X, Y, Z (Rev4+) mg whole numbers
Net acceleration (Rev4+) mg 1 decimal
Gyro X, Y, Z (Rev4+) °/s whole numbers
Temperature °C 2 decimals, about once a second
Pitch, Roll, Yaw (Rev4+) degrees 2 decimals
Tilt (Rev4+) degrees 2 decimals

So the log is not kept at the sensors' absolute full resolution, but each column is held to a precision that is more than enough to analyse the flight in detail. Temperature changes slowly, so it is recorded around once a second rather than on every row.

Adjusting your flight afterwards

Because the on board height uses the standard atmosphere, the Altimeter Cloud lets you refine it after the flight using the real conditions. On the flight chart you can enter the actual ground level pressure and the ambient temperature on the day, and the chart will recalculate the altitude to match. If you need it, you can then download the adjusted flight log with the corrected figures.

iGOOD TO KNOW

This gives you the best of both worlds. The figure straight off the device is the fair, standard atmosphere result that competitions are judged on, while the adjusted figure on the Altimeter Cloud is your true to conditions height whenever you want it.