{"id":140,"date":"2012-05-15T02:49:10","date_gmt":"2012-05-15T02:49:10","guid":{"rendered":"http:\/\/www.blog.exrockets.com\/blog\/?p=140"},"modified":"2018-03-15T04:42:48","modified_gmt":"2018-03-15T04:42:48","slug":"digital-barometric-altimeter-with-led-display","status":"publish","type":"post","link":"http:\/\/www.blog.exrockets.com\/blog\/digital-barometric-altimeter-with-led-display\/","title":{"rendered":"DIGITAL BAROMETRIC ALTIMETER WITH LED DISPLAY"},"content":{"rendered":"<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALTIMETER-7LED.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-141\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALTIMETER-7LED-1024x290.jpg\" width=\"590\" height=\"167\" \/><\/a><\/p>\n<p>This is an old project which I have been deferring for a while because I lacked time to finish it. Also I was missing a reliable way to verify the altitude calculation algorithms. Now I finally found some time and a way to test it\u2026<\/p>\n<p>Before I start describing this altimeter here\u2019s some basic physics needed to know for the project. As we know when we go higher in the atmosphere the air gets thinner and thus the atmospheric pressure lower.\u00a0 This decrease in the pressure can be calculated if we know the altitude by using the Barometric formula which takes into consideration the ground temperature as well.\u00a0 For more information about the Barometric formula <a href=\"http:\/\/en.wikipedia.org\/wiki\/Barometric_formula\" target=\"_blank\">here<\/a>.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BF.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-179\" title=\"BF\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BF.jpg\" width=\"285\" height=\"63\" \/><\/a>where<\/p>\n<p>P_b = Static pressure (pascals)<br \/>\nT_b = Standard temperature (K)<br \/>\nL_b = Standard temperature lapse rate -0.0065 (K\/m) in ISA<br \/>\nh = Height above sea level (meters)<br \/>\nh_b = Height at bottom of layer b (meters; e.g., h_1 = 11,000 meters)<br \/>\nR^* = Universal gas constant for air: 8.31432 N\u2022m \/(mol\u2022K)<br \/>\ng_0 = Gravitational acceleration (9.80665 m\/s2)<br \/>\nM = Molar mass of Earth&#8217;s air (0.0289644 kg\/mol)<\/p>\n<p>Thus we can rework this formula to suit our needs and have an equation for the altitude:<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/EQ1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-181\" title=\"EQ1\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/EQ1.jpg\" width=\"657\" height=\"89\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/EQ1.jpg 657w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/EQ1-300x40.jpg 300w\" sizes=\"auto, (max-width: 657px) 100vw, 657px\" \/><\/a><br \/>\nBecause I am going to use 8bit Microcontroller and I don\u2019t want too much floating point mathematics in my firmware I will set some predetermined values for C1 and C2 which will ease the work of the MCU:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"97\">\n<p align=\"center\">T (Celsius)<\/p>\n<\/td>\n<td valign=\"top\" width=\"96\">\n<p align=\"center\">T (Kelvin)<\/p>\n<\/td>\n<td valign=\"top\" width=\"108\">\n<p align=\"center\">C1<\/p>\n<\/td>\n<td valign=\"top\" width=\"102\">\n<p align=\"center\">C2<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb -10C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">263.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-40484.61538<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb -5C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">268.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-41253.84615<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 0C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">273.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-42023.07692<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 5C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">278.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-42792.30769<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 10C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">283.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-43561.53846<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 15C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">288.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-44330.76923<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 20C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">293.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-45100<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 25C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">298.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-45869.23077<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 30C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">303.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-46638.46154<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"bottom\" width=\"97\">\n<p align=\"center\">Tb 35C<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"96\">\n<p align=\"center\">308.15<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"108\">\n<p align=\"center\">-47407.69231<\/p>\n<\/td>\n<td valign=\"bottom\" width=\"102\">\n<p align=\"center\">0.1902632<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Now all we have to do is to find a way to measure the change in the air pressure when the rocket goes up.<br \/>\nHere\u2019s my design of such a device that will measure the atmospheric pressure through Analog-to-Digital converter, store the information in the memory and display the readings on a 4 digits 7LED display.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/7led_sch.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-184\" title=\"7led_sch\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/7led_sch-1024x348.jpg\" width=\"590\" height=\"200\" \/><\/a>The hearth of this altimeter is the PIC18F2553 MCU which has a 12bit built in ADC and USB capability.<br \/>\nAtmospheric pressure is measured by using the Freescale\u2019s absolute pressure sensor MPXHZ6115A which is buffered via a Rail-to-Rail OP AMP.<\/p>\n<p>The 7LED display is CC type but it could be also CA because the common cathode\/anode is switched trough the PIC pin (I have included a firmware for the both types).<\/p>\n<p>Each pin of this MCU could handle up to 25mA current and the current through the LED segments is limited by 2kOhm resistors \u2013 what means approximately 2mA per segment. The maximum number of segments we can have switched at any time is 8 hence 16mA what wouldn\u2019t be a problem.<\/p>\n<p>Some key characteristics of this altimeter:<\/p>\n<p>&#8211;\u00a0\u00a0 \u00a0128Kb EEPROM memory which allows approximately 6 minutes of recording<br \/>\n&#8211;\u00a0\u00a0\u00a0 20 record per second<br \/>\n&#8211;\u00a0\u00a0 \u00a04\u04457LED display<br \/>\n&#8211;\u00a0\u00a0 \u00a0Displays 1 decimal up to 999m and integer values up to 9999 meters<br \/>\n&#8211;\u00a0\u00a0 \u00a0Display can be turned on\/off for power saving<br \/>\n&#8211;\u00a0\u00a0 \u00a0USB connector for memory download<br \/>\n&#8211;\u00a0\u00a0 \u00a014 bit ADC resolution trough oversampling<br \/>\n&#8211;\u00a0\u00a0 \u00a070cm per bit resolution<br \/>\n&#8211;\u00a0\u00a0 \u00a0On the field it will calculate and show the following flight information<\/p>\n<p style=\"padding-left: 30px;\">&#8211;\u00a0\u00a0\u00a0 Maximum altitude<br \/>\n&#8211;\u00a0\u00a0\u00a0 Time to apogee<br \/>\n&#8211;\u00a0\u00a0\u00a0 Descend time<br \/>\n&#8211;\u00a0\u00a0\u00a0 Maximum ascending speed<br \/>\n&#8211;\u00a0\u00a0\u00a0 Average ascending speed<br \/>\n&#8211;\u00a0\u00a0\u00a0 Maximum descending speed<\/p>\n<p>&#8211;\u00a0\u00a0 \u00a0Temperature adjustment from -10 to 35 degree Celsius with 5 degree step<br \/>\n&#8211;\u00a0\u00a0 \u00a0ICSP programming capability<br \/>\n&#8211;\u00a0\u00a0 \u00a0Four work modes<\/p>\n<p style=\"padding-left: 30px;\">&#8211;\u00a0\u00a0\u00a0 Direct \u2013 displays the current relative altitude without writing in the memory<br \/>\n&#8211;\u00a0\u00a0\u00a0 Normal \u2013 when the device detects that there is a change in the altitude it will start\u00a0 recording in the memory<br \/>\n&#8211;\u00a0\u00a0\u00a0 USB \u2013 transfers the memory data to computer<br \/>\n&#8211;\u00a0\u00a0\u00a0 Field \u2013 calculates and displays flight information<\/p>\n<p>A complete diagram how each of the modes work.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALT_LED_FC.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-185\" title=\"ALT_LED_FC\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALT_LED_FC-1024x767.jpg\" width=\"590\" height=\"441\" \/><\/a>Next step was to design a suitable PCb that will fit in the most rockets.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_bot.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-186\" title=\"pcb_top\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_top.jpg\" width=\"829\" height=\"179\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_top.jpg 829w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_top-300x64.jpg 300w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-197\" title=\"pcb_bot\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_bot.jpg\" width=\"829\" height=\"179\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_bot.jpg 829w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/pcb_bot-300x64.jpg 300w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/a>So the actual altimeter has dimensions of 70&#215;15 mm and weights 11gr<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BOT2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-199\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BOT2-1024x949.jpg\" width=\"204\" height=\"187\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/TOP2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-200\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/TOP2-1024x961.jpg\" width=\"202\" height=\"188\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/image.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-201\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/image-886x1024.jpg\" width=\"165\" height=\"189\" \/><\/a><\/p>\n<p>Of course this altimeter wouldn\u2019t work unless the MCU is programmed. So I wrote a firmware for the MCU which is pretty complex because it incorporates several different working modes.\u00a0 Some of the challenges were:<br \/>\n&#8211;\u00a0\u00a0 \u00a0The 4 digit 7LED display needs to be multiplexed.<br \/>\n&#8211;\u00a0\u00a0 \u00a0Automatic start detection<br \/>\n&#8211;\u00a0\u00a0 \u00a0End of the flight detection<br \/>\n&#8211;\u00a0\u00a0 \u00a0FIFO buffer in the RAM so no data is being lost when it has to detect the start<br \/>\n&#8211;\u00a0\u00a0 \u00a0Variable display of the decimal value<br \/>\n&#8211;\u00a0\u00a0 \u00a0Reliable Low-Pass digital filter when calculating data on the field<br \/>\n&#8211;\u00a0\u00a0 \u00a0USB connection through virtual COM port<br \/>\n&#8211;\u00a0\u00a0 \u00a07LED display can be turned ON\/OFF from the firmware<br \/>\n&#8211;\u00a0\u00a0 \u00a0Displays the relative altitude in real time with 1sec refresh time hence a lot of floating point math<br \/>\n&#8211;\u00a0\u00a0 \u00a0A lot of menus to be controlled only by 2 jumpers<br \/>\n&#8211;\u00a0\u00a0 \u00a0Oversampling to get 14bit readings from 12bit ADC<\/p>\n<p>As result the program code is more than 2000 rows and the firmware takes approximately 95% of the MCU\u2019s FLASH memory. Despite the heavy floating point math the PIC18F2553 does well because it works at 48MHz clock. I have uploaded the hex file at the bottom of the page.<\/p>\n<p>Some key electrical characteristics:<br \/>\n&#8211;\u00a0\u00a0 \u00a0The LDO regulator works down to 0.5v difference thus min 5.5v.<br \/>\n&#8211;\u00a0\u00a0 \u00a031 mA consumption with LED off<br \/>\n&#8211;\u00a0\u00a0 \u00a041 mA consumption with LED on<br \/>\n&#8211;\u00a0\u00a0 \u00a048 mA consumption when the USB is connected<\/p>\n<p>Once I assembled a prototype device and programmed it with the firmware it\u2019s time for testing.\u00a0 In order to test it I need two things \u2013 a barometric chamber to control the pressure and reliable calibrated altimeter to compare and verify the readings with.<\/p>\n<p>My barometric chamber was made from a large jar with a tubing trough the cap so I can suck out the air from in it thus effectively lowering the pressure and emulating a rocket flight. In the same time I can monitor the readings through the glass.<br \/>\nAs second altimeter I used the JollyLogics\u2019s AltimeterONE which they say on the site has been calibrated in controlled environment.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BC_PREP.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-204\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BC_PREP-1024x984.jpg\" width=\"369\" height=\"353\" \/><\/a><\/p>\n<p>After the first very promising series of tests I noticed that at low altitudes there were minor differences between my altimeter and AltimeterONE. However when the altitude increased the difference increased from 0% to 1.5% for the range of 0 to 2000 meters,\u00a0 also my altimeter always detected higher altitude. This made me thinking that probably AltimeterONE has been calibrated for a different start temperature.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-205\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_1-300x195.jpg\" width=\"113\" height=\"74\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_1-300x195.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_1-1024x668.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_1.jpg 1525w\" sizes=\"auto, (max-width: 113px) 100vw, 113px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-207\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_5-300x153.jpg\" width=\"146\" height=\"74\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_5-300x153.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_5-1024x525.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_5.jpg 1325w\" sizes=\"auto, (max-width: 146px) 100vw, 146px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-206\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2-300x162.jpg\" width=\"136\" height=\"73\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2-300x162.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2-1024x554.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2.jpg 1946w\" sizes=\"auto, (max-width: 136px) 100vw, 136px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-208\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_7-300x153.jpg\" width=\"144\" height=\"72\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-211\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_3-300x148.jpg\" width=\"137\" height=\"68\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_3-300x148.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_3-1024x507.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_3.jpg 1477w\" sizes=\"auto, (max-width: 137px) 100vw, 137px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-212\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_6-300x153.jpg\" width=\"136\" height=\"68\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-213\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_8-300x158.jpg\" width=\"132\" height=\"68\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-214\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_4-300x153.jpg\" width=\"134\" height=\"68\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_4-300x153.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_4-1024x525.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_4.jpg 1325w\" sizes=\"auto, (max-width: 134px) 100vw, 134px\" \/><\/a><\/p>\n<p>After downloading the information from the memory and running some simulations in Excel I discovered that there would be only minor difference if I set my start temperature to 20 degrees Celsius (my device allows only steps of 5 degrees) and virtually none if I it is 18 degrees.<br \/>\nThus I set up the start temperature and ran a new set of tests. The difference was 6 meters for 2km altitude (better than that ca only the GPS ) which proved my\u00a0 theory. So I can make two conclusions:<br \/>\n&#8211;\u00a0\u00a0 \u00a0The transfer function from pressure to altitude that I am using is correct<br \/>\n&#8211;\u00a0\u00a0 \u00a0 AltimeterONE is calibrated for 18 degrees start temperature \u2013 not really related to my projects<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-215\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_3-300x158.jpg\" width=\"149\" height=\"78\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_3-300x158.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_3-1024x542.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_3.jpg 1555w\" sizes=\"auto, (max-width: 149px) 100vw, 149px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-216\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_6-300x158.jpg\" width=\"147\" height=\"77\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_6-300x158.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_6-1024x542.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_6.jpg 1555w\" sizes=\"auto, (max-width: 147px) 100vw, 147px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_4.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-217\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_4-300x158.jpg\" width=\"147\" height=\"77\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_4-300x158.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_4-1024x542.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_4.jpg 1555w\" sizes=\"auto, (max-width: 147px) 100vw, 147px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-218\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_1-300x161.jpg\" width=\"142\" height=\"76\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_1-300x161.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_1-1024x551.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_1.jpg 1531w\" sizes=\"auto, (max-width: 142px) 100vw, 142px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-219\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_7-300x158.jpg\" width=\"149\" height=\"77\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-220\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_2-300x158.jpg\" width=\"149\" height=\"77\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_5.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-221\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_5-300x158.jpg\" width=\"145\" height=\"76\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_5-300x158.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_5-1024x542.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_5.jpg 1555w\" sizes=\"auto, (max-width: 145px) 100vw, 145px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-222\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test_2_8-300x158.jpg\" width=\"143\" height=\"74\" \/><\/a><\/p>\n<p>Time to check for repeatability thus I assembled few more devices and tested them; afterwards the memory was downloaded to see how in reality the readings look like:<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test3_842.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-223\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test3_842-300x210.jpg\" width=\"146\" height=\"99\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test3_661.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-224\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test3_661-300x210.jpg\" width=\"145\" height=\"100\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test3_1820.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-225\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Test3_1820-300x210.jpg\" width=\"146\" height=\"100\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BUR.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-226\" title=\"OLYMPUS DIGITAL CAMERA\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/BUR-300x210.jpg\" width=\"145\" height=\"100\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom0.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-228\" title=\"Zoom0\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom0-300x146.jpg\" width=\"293\" height=\"142\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom0-300x146.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom0-1024x500.jpg 1024w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom0.jpg 1509w\" sizes=\"auto, (max-width: 293px) 100vw, 293px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-229\" title=\"Zoom1\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Zoom1-300x146.jpg\" width=\"294\" height=\"142\" \/><\/a><\/p>\n<p>Short video of what flight information will be shown on the field<\/p>\n<p><iframe loading=\"lazy\" src=\"http:\/\/www.youtube.com\/embed\/nI04zWpDN0I\" height=\"315\" width=\"560\" frameborder=\"0\"><\/iframe><\/p>\n<p>And finally a test rocket from vega with the altimeter mounted on it.<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/2_raketa1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-232 aligncenter\" title=\"2_raketa\" alt=\"\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/2_raketa1-300x131.jpg\" width=\"349\" height=\"152\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/2_raketa1-300x131.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/2_raketa1.jpg 945w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" \/><\/a><\/p>\n<p>This altimeter can be used as CDC device and will appear as a virtual serial port in your Device Manager. This way all data can be downloaded through a serial terminal. For this you have to use the CDC firmware.<\/p>\n<p>In order to use it as CDC device you will need a serial terminal, however not all serial programs work so well with virtual COM ports. One program that works is <a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2013\/05\/Serial-Terminal.zip\" target=\"_blank\">this one<\/a>. Also you will need CDC drivers which Windows XP and Windows 7 downloads automatically. Further on you will have to manually import all information in an Excel spreadsheet and crunch the data.<\/p>\n<p>&nbsp;<\/p>\n<p>Another option is to use the altimeter as HID device. This have some advantages like universal drivers so windows won\u2019t need to look for new drivers. However you will need software to communicate with the device. For this purpose I have written a program that will do all communication with altimeter and in the same time the program will calculate and visualize the data. In addition you can use it in a Real-time mode to monitor the barometric pressure. Complete HELP can be found inside the archive.<\/p>\n<p>Also this program can be used to crunch data from other altimeters \u2013 for more information see the help file. The program can be downloaded from the bottom of the page together with the new HID firmware needed to support the program.<\/p>\n<p>Some screenshots:<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-478\" alt=\"LED_ALTIMETER_2013_11_26_15_58_8\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_8.jpg\" width=\"1355\" height=\"749\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_8.jpg 1355w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_8-300x165.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_8-1024x566.jpg 1024w\" sizes=\"auto, (max-width: 1355px) 100vw, 1355px\" \/><\/a><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_40.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-479\" alt=\"LED_ALTIMETER_2013_11_26_15_58_40\" src=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_40.jpg\" width=\"1355\" height=\"749\" srcset=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_40.jpg 1355w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_40-300x165.jpg 300w, http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/LED_ALTIMETER_2013_11_26_15_58_40-1024x566.jpg 1024w\" sizes=\"auto, (max-width: 1355px) 100vw, 1355px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALTIMETER_LED_HID_CC.zip\" target=\"_blank\">MCU FIRMWARE HID CC (hex file)<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALTIMETER_LED_HID_CA.zip\" target=\"_blank\">MCU FIRMWARE HID CA (hex file)<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Altimeter_MOD_CC.zip\" target=\"_blank\">MCU FIRMWARE CDC CC (hex file)<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Altimeter_MOD_CA.zip\" target=\"_blank\">MCU FIRMWARE CDC CA (hex file)<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/ALTIMETER_LED_SIMPLE_RED-CADCAM.zip\" target=\"_blank\">PCB MANUFACTURING FILES (Gerber files)<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/Altitude.xlsx\" target=\"_blank\">ALTITUDE vs TEMPERATURE SIMULATION\u00a0 (Excel file)<\/a><br \/>\n<a href=\"http:\/\/www.blog.exrockets.com\/blog\/wp-content\/uploads\/2012\/05\/EXROCKETS_LED_ALTIMETER_v_1_00.zip\" target=\"_blank\">EXROCKETS_LED_ALTIMETER_v_1_00.zip<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is an old project which I have been deferring for a while because I lacked time to finish it. Also I was missing a reliable way to verify the altitude calculation algorithms. Now I finally found some time and a way to test it\u2026 Before I start describing this altimeter here\u2019s some basic physics [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"gallery","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-140","post","type-post","status-publish","format-gallery","hentry","category-electronics","post_format-post-format-gallery"],"_links":{"self":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":48,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":669,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions\/669"}],"wp:attachment":[{"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.blog.exrockets.com\/blog\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}