Giter Club home page Giter Club logo

airdatacomputer's Introduction

Brainstorming in progress. New design. Rookies welcome

Airborne ADC Video

Asgard ADC

Description

An air data computer (ADC) is an essential avionics component found in modern aircraft. This unit can determine True Airspeed, Mach number, Altitude, and common air properties from a pitot-static probe data and an outside air temperature probe.

This repository, together with the media published on the BasicAirData website, contains the information to build from scratch a recreational grade DIY Air Data Computer. This device can transmit data via USB serial port and Bluetooth, and log all data on a MicroSD.

The project is a work in progress

This Air Data Computer can be controlled sending plain text messages from any serial / bluetooth terminal.
We are developing Air Data Bridge, a simple app for Android devices to connect via Bluetooth and use this ADC on-the-field in an easy way.

At a Glance

Reference documents

Notes on firmware programming

Basic Air Data Home Page

Code of conduct

Contributing Information

Repository License

airdatacomputer's People

Contributors

georacer avatar grazianocapelli avatar jlju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

airdatacomputer's Issues

AirDC::OAT(int mode). mode=1

Specific heat ratio value is fixed to a 1.4 value. It should be nice to have a lib function to evaluate the value.

Sensor socket

Sensors loosely connect to the board; here you find the online PCB 3D model.
We've found some reliability problem to the prototype.
Obvious, get rid off of the sockets! :-). The point here is to maintain the possibility to remove the sensors. That was a fundamental requirement since the early ADC prototypes, that warrants easy removal for sensor calibration and differential range change. An alternative removable socket/whatever is needed here.

Set the default data frequencies to zero (no periodical data reports)

The data string should be produced, saved or scheduled (with a specified frequency) by an explicit device request.
Thus, the default data frequency should be zero.
It will be possible to change it using the appropriate commands when needed, or saving a different setup configuration on SD (SD configuration file not yet implemented).

Blend ADC and GPSLogger data

It should be interesting to have a standardized workflow to be able to use the data from the ADC together with the data from the GPSLogger (check here, link live after 17/12/16)). Ideally, all the data should converge at the same software for visualization purposes. Preliminary tests showed that a GIS can handle our data.

ADC Common Message Set

Referring to the ADC Common Message Set implementation.
Message No.19 LGA LOG_FILE_ASSERT
This message is supposed to retrieve a specific line of the log file. I'm lost about the possible criterion to index the file. The use of lines no by themselves does not seem too user-friendly. I mean, it seemed good to me in the past. Now that I have a working implementation it feels useless to me :-). Any use case is welcome :-)

Improve the method to check if the SD is present

The $FMQ,LST returns $FMA,LST,0 in the following cases:

  • if the SD is present (inserted) and empty;
  • if the SD is not present;

The two cases must be separated.:

  • The first case must return $FMA,LST,0 (zero files present);
  • The second case must return $FMA,LST (no list: error);

Collect and Publish ADC Collected Data

We need to make a test run and save all the output and take some pictures/video shoot. The test run will be possibly accompained by position and ground velocity data. All the data should be posted online.

Thrust Calculation Integration

Define exactly the method that should be implemented and the references.

BasicAirData Note. An article on the topic, with practical example, is on the way

Load a setup configuration file from the SDCard on start

We need to implement a method to load the setup configuration file on SDCard.
The Air Data Computer could search the file CONFIG.CFG into the SDCard on start (a one-time operation, when the user powers the device).
If the file is found, the firmware executes the commands in the file, in the same order they are written.
No additional commands are needed to implement this feature.

Different SDCards can have different setup configuration, depending on the CFG file.

Any software interface can override these settings by send a different configuration as soon as they are connected.

Spirometry Application

Spirometry seems to be a popular application. It is also a straightforward application for an ADC.
An example application should be useful.

The spirometer requires a "pipe" to work. So this hardware should be developed and tested as well.

Spirometry result should be displayed on a dedicated Android app. similar to Air Data Bridge. :-)

AirData is not update within the log file

See example

Logger Example For AirData Library, http://www.basicairdata.eu, JLJ@BasicAirData 2016
$TEX,Rho[kg/m^3],_TAT[K],_TAT[C],_uTAT[K;C],_p[Pa],Viscosity[Pas1e-6],_hour,minute,second,month,day,year,millis
$TEX,1.225554,296.27,23.12,0.50,101325.00, 0.000018,23,56,15,1,7,2016,1804627
$TEX,1.225554,296.02,22.87,0.50,101325.00, 0.000018,0,11,15,1,8,2016,2704646
$TEX,1.225554,295.83,22.68,0.50,101325.00, 0.000018,0,26,15,1,8,2016,3604651
$TEX,1.225554,295.58,22.43,0.50,101325.00, 0.000018,0,41,15,1,8,2016,4504656
$TEX,1.225554,295.52,22.37,0.50,101325.00, 0.000018,0,56,15,1,8,2016,5404661
$TEX,1.225554,295.40,22.25,0.50,101325.00, 0.000018,1,11,15,1,8,2016,6304666
$TEX,1.225554,295.21,22.06,0.50,101325.00, 0.000018,1,26,15,1,8,2016,7204671
$TEX,1.225554,295.08,21.93,0.50,101325.00, 0.000018,1,41,15,1,8,2016,8104676
$TEX,1.225554,295.02,21.87,0.50,101325.00, 0.000018,1,56,15,1,8,2016,9004683
$TEX,1.225554,294.90,21.75,0.50,101325.00, 0.000018,2,11,15,1,8,2016,9904688
$TEX,1.225554,294.83,21.68,0.50,101325.00, 0.000018,2,26,15,1,8,2016,10804693

Review the File dump method

The Dump method (from SD to the serial interfaces) now have some problems:

  • It fails on large files because it fills the buffer and discards the data;
  • It is a blocking operation that needs the possibility to abort it;

Revision of ADC Communication protocol

Under the point of view of bandwidth a "Monolithic" approach to data exchange can be a problem over a wireless link, if required sample rate is high.
Check message number 10 within Rev 1
WIP ADC DOC
I think is better instead to give the possibility to the user to receive subsets of data. In such a way it will be possible to arrange for limited bandwidth situations, low power requirements, and fast sample rate.

Make a simple android app to test ADC communication via Bluetooth

I propose to make a first android app (a simple ADC Tester), in order to:

  • Verify and test the ADC communication protocol;
  • Find possible bottlenecks and limits of the Bluetooth interface;
  • Refine protocol, transmission methods, and connection setup in order to optimize the system;
  • Find the best way to implement the communication on Android-side;
  • (Last but not least) Give to all users a fast and simple way to test their own DIY units;

Add basic links to Wiki

What should be the material to keep trace of on the wiki?
Define basic structure and eventual relationships with other BasicAirData or not BasicAirData repositories

Wrong printout of temperature and air data

Chekout the datalog printout. Negative density can be a problem :-)
$TEX,Rho[kg/m^3],_TAT[K],_TAT[C],_uTAT[K;C],_p[Pa],Viscosity[Pas1e-6],hour,minute,second,month,day,year,millis
$TEX,-1.268252,-273.21,-546.36,0.50,101325.00,46.007809,22,15,10,1,21,2016,1804640
$TEX,1.291896,273.40,0.25,0.50,101325.00,17.930244,22,30,10,1,21,2016,2704645
$TEX,-1.267697,-273.33,-546.48,0.50,101325.00,45.991993,22,45,10,1,21,2016,3604650
$TEX,1.291612,273.46,0.31,0.50,101325.00,17.931444,23,0,10,1,21,2016,4504655
$TEX,-1.268252,-273.21,-546.36,0.50,101325.00,46.007809,23,15,10,1,21,2016,5404660
$TEX,-1.267975,-273.27,-546.42,0.50,101325.00,45.999897,23,30,10,1,21,2016,6304667
$TEX,-1.264516,-274.02,-547.17,0.50,101325.00,45.901535,23,45,10,1,21,2016,7204673
$TEX,-1.263643,-274.21,-547.36,0.50,101325.00,45.876766,0,0,10,1,22,2016,8104679
$TEX,-1.261946,-274.58,-547.73,0.50,101325.00,45.828712,0,15,10,1,22,2016,9004685
$TEX,-1.260482,-274.90,-548.05,0.50,101325.00,45.787338,0,30,10,1,22,2016,9904691
$TEX,-1.262496,-274.46,-547.61,0.50,101325.00,45.844273,0,45,10,1,22,2016,10804697

Unit testing

It should be nice to have a programmatically testing of calculation routines/lib. That can be done with unit testing. It will be nice to automate this process with Travis-ci. It's time to design/redesign tests.

Zeroing the sensors

A dedicated message should be added to the communication protocol to handle sensors zeroing and calibration data. That function should work at a raw sensor data level. Let be M the raw sensor reading; the new message should produce a new sensor output Y=a +bM. So the function will be able to change the zero and the span of the sensor measurements. To change the sensor span the user needs a reference instrument. New function should provide advanced users the possibility to incorporate calibration data/functions/tables(lookup table + interpolation). I will post in brief a possible message format.

Documentation - ADC Library-

Write a detailed description of library functionalities. Actually, that information is spread out within the code and different documentation. A fresh start will be lovely.

Release Name/Numbers

Regarding the ADC hardware, we will switch to a numbering system similar to those used with the software. The current system is not practical under many aspects and lead to users confusion.

Uncertainty

In general, the uncertainty implementation within the libs should be checked and enabled.

New software bundle

Hardware of ADC Amaranth i2 is fully functional. We need to repack and to polish the minimum software bundle for the new ADC i2. The bundle should include a complete use case for the new library.

Wind estimate

Real-time wind estimation can be useful. Preliminary tests are good. The approach to the problem is shown in this article, in section V. Any person willing to go down to the solution is welcome to contribute.

Evaluate IDE Alternative to Upload Firmware to ADC

The ADC firmware should usually be compiled and uploaded with Arduino IDE + Teensyduino. It would be lovely to upload the firmware directly to the ADC. That will provide a way to render operative the unit without Arduino IDE nor Teensysuino installed on the machine.

Basic usage of configuration file

It is possible to set up ADC initial configuration by mean of a text CFG file write on the microSD.
Within the file, that's the fun part; it's possible to use the same commands available during normal operation mode.
It's nice to post an article on the main site that shows usage and zero offset calibration.

Wrong Altitude

ISAAltitude reported at 90000 Pa is more than 20000 m.

New Air Data System Layout 1 Work in progress

File layout 1
https://github.com/BasicAirData/AirDataComputer/blob/master/Support/Brainstorming/Layout1.pdf
Source included

Layout 1 uses 5v amplified sensors. A dedicated IC performs analog to digital conversion for all sensors signals.
ADS IC had one SPI interface that is read by a Teensy 3.6 Board.
Cost of electronic components (- Teensy3.6) for airborne application is 310 Eur; bike application components cost 222 Eur
Total Nos. 6 sensors. 55 Eur static + 5X46 Eur DeltaP + 25 Eur ADS
(I will add an accessory voltage regulator soon)

Everything seems to fit together. However, there is an issue here. In the new system layout the Teensy board is disjoined from sensors board. That fact implicates that SPI bus should connect two board at a certain distance.

As you know, SPI is not able to cope with long connections.

Now the point.
Should we review the system layout or instead, let's say, fit a supplementary microcontroller near the sensors and equip the communication line with a RS 485 transceiver?

Cheers :-)

Reference Brainstorming URL:
https://www.basicairdata.eu/projects/air-data-systems/brainstorming-air-data-system-winter-2018-2019/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.