Code Monkey home page Code Monkey logo

tfaspdimu01's Introduction

TFASPDIMU01 - sdp3x differental pressure sensor and IMU 9-axis unit

.github/workflows/KiCad.yml

ThunderFly TFASPDIMU01 is SPI/I2C sensor board equipped with a differential pressure sensor (Senserion SDP3x) and 9-axis motion tracking sensor (ICM-20948). Board is equipped with 7pin JST-GH connector. The sensor board is designed for multiple uses. It can be used as a self-adjusting anemometer WINDGAUGE03 or as an airspeed sensor for UAVs with optional function as the external magnetometer.

TFASPDIMU01 PCB

TFASPDIMU is commercially available from ThunderFly s.r.o., write an email to [email protected] or shop at Tindie store.

Specification

  • Type: Differential and 9-axis motion sensor board
  • Mass: 3 g
  • Size: 36 x 14 mm
  • Power: +5 V
  • Connection: 7pin JST-GH connector, custom pinout

SDP3x

  • Range: +/- 125/500 Pa (depending on exact sensor type)
  • Excellent accuracy and repeatability, even below one Pascal
  • No zero-point offset, no temperature drift
  • Calibrated and temperature compensated
  • Fast sampling time of 2kHz at 16 bit resolution
  • I2C address: 0x21 (d33)

ICM-20948

  • 3-axis gyroscope, 3-axis accelerometer, 3-axis compass (magnetometer)
  • Onboard Digital Motion Processor (DMP)
  • On-Chip 16-bit ADCs and Programmable Filters
  • 7 MHz SPI or 400 kHz Fast Mode I²C
  • Digital temperature sensor
  • Default I2C address: 0x68 (0d104), can be changed to 0x69 (0d105) by moving the resistor R2->R1.

Example of uses

WINDGUAGE01

Ground control station anemometer WINDGAUGE03

TFSLOT01 - UAV airspeed sensor

Our TFSLOT senzor is an airspeed sensor for use mainly on UAV. Due to 3D printed case it is possible to optimalize part according to the location of sensor on UAV and tune their characteristics. First use of this sensor was on our autogyro TF-G2.

TFSLOT01 sensor

More details about this solution is available in the repository TFSLOT01.

TFPIPE01 - UAV airspeed sensor

Symmetric variant of TFSLOT sensor for different mounting options TFPIPE01.

TFVENTUFO - omnidirectional anemometer

This anemometer should also based on venturi effect. Thanks to an clever design, it will measure the wind speed from all directions (without knowing the direction).

Angle of Attack sensor

In case of mounting on rotation slip-ring bearing the sensor could sense air AoA of the vehicle. Due to ability to turn in direction of airflow. The turnig direction could be sensed differentialy to position of aircraft by IMU embedded in the TFASPDIMU01 sensor.

Hardware

TFASPDIMU01 sensor

Eletronic schema

Full schema is avialible in PDF schema

Hardware layout

** IMG - technical draft **

Pinout

Pin # I2C SPI
1 +5V +5V
2 SCL SCK
3 -- MISO
4 SDA MOSI
5 -- CS
6 INT INT
7 GND GND

Due to the possible wider use of the sensor, a standard pixhawk pinout is not used.

PixHawk autopilot cable

To increase the transmission quality, it is recommended to create pairs SDA,GND and SCL,+5V on the cable (as shown in image)

I2C jstgh

TFASPDIMU01 Pin Sigal Pixhawk Color
1 +5V 1 Red
2 SCL 2 Yellow
4 SDA 3 Green
7 GND 4 Black

Pixhawk pinout is listed according to the Pixhawk connector standard.

Usage

Python

For reading data from the sensor, we have prepared a python script in PyMLAB library that uses the pySMBus to readout data. It can be used directly from a computer with a corresponding converter (for example MLAB USBI2C01A) or with one-board computers (Odroid, raspberry and similar) that have own smbus output.

Calibration vertification

Calibration can be verified by mounting of an anemometer to car roof and comparing it to speed obtained from GPS (gpsd). This needs to be done in windless weather.

PX4

We are now working on implementation of driver into PX4 stack.

Main usage of this sensor is as airspeed sensor. It can be also used as an external magnetometer and thermometer.

Ardupilot

We are currently unable to implement the sensor in the Ardupilot flight stack. However, we will be happy to provide assistance with implementation. You can contact us

configuration

TODO

tfaspdimu01's People

Contributors

kaklik avatar roman-dvorak avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

mikkab

tfaspdimu01's Issues

Nelze změnit I2C adresa u SDP3x sezoru

SDP3x má addr pin přímo připojený do GND, Díky tomu nelze změnit I2C adresa SDP3x senzoru. Je to trochu komplikace v případě, že se v IMU jednotce nastaví mostování I2C (např kvůli nastavení senzoru). A na sběrnici je připojený jiný SDP3x senzor se stejnou adresou.

Oscilace signálů při zatížení větší kapacitou - délkou vodičů

Tak pokud se zapojí TFSLOT do série s TFRPM tak se s docela velkou pravděpodobností na SDA stane tohle (za pozornost stojí zejména to, že generované obdélníky jsou na 6 MHz, tedy naprosto mimo pásmo běžné I2C signalizace):

Newfile4

Vznikne to následující sekvencí příkazů:

icm20948i2c start -X -b 4

V tomto okamžiku je sběrnice ještě v pořádku. Rozbije se až následujícím příkazem:

sdp3x_airspeed start  -X

Pokud se TFASPDIMU odpojí a připojí zpátky, tak se sběrnice zotaví a jsou na ní normální data.

Newfile5

Pokud se k autopilotovi připojí pouze TFASPDIMU na krátké dráty (15cm), tak I2C částečně funguje. Zákmity vznikají jen mezi bity, kdy je sběrnice zřejmě buzena pouze pull-upy.

Newfile6

image

Jedná se tak zjevně o HW problém.

Originally posted by @kaklik in ThunderFly-aerospace/TF-G2#88 (comment)

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.