Giter Club home page Giter Club logo

remoteidtransmitter's Introduction

RemoteIDTransmitter

IMAGE ALT TEXT HERE

Introduction

Transmit RemoteID messages via Bluetooth on Linux. The software rapidly toggles between standard (legacy) advertisements and extended (LE) advertisements to meet the requirements of simultaneous broadcast as specified in ASTM3411. The Basic ID, Location/Vector and System messages are sent individually. The data is received via MAVLink as OPEN_DRONE_ID_BASIC_ID, OPEN_DRONE_ID_LOCATION, and OPEN_DRONE_ID_SYSTEM messages and encoded into the bluetooth advertisement data.

You can decode these messages by installing the Wireshark dissector plugin and using a supported BLE sniffer such as the NR52840 Dongle. You can also use a mobile app like Drone Scanner to validate the data being broadcast.

If you are new to RemoteID you will need to familiarize yourself with ASTM3411 and ASTM3586. This software does not guarantee compliance. Testing and validation is the responsibility of the airframe manufacturer. If you have any issues or questions please do not hesitate to ask.


Running the application

Pre-requisites

sudo apt-get install -y \
	astyle \
	bluez \
	bluez-tools \
	libbluetooth-dev

Build

make

Run

sudo ./build/rid-transmitter --mavlink-url udp://0.0.0.0:14540

You must be root to use bluetooth. Or you can give the binary capabilities to use bluetooth

sudo setcap 'cap_net_raw,cap_net_admin+eip' build/rid-transmitter

Tested hardware

Notes

  • We do not use message packs and instead send messages individually due to limitations with advertisement data packet size that varies between hardware.

  • BlueZ cannot simultaneously broadcast standard and extended advertisement, so we must toggle between the two modes.

  • The minimum advertising interval is 20ms per bluetooth spec, so we space advertisements 30ms apart.

  • We rely on the mavlink data to contain accurate information. We always publish the RemoteID messages and do not check that all the necessary data is present before transmitting.

  • If things aren't working use sudo btmon to help debug.

  • Check if your device shows up as an hci device using hciconfig.

remoteidtransmitter's People

Contributors

dakejahl avatar alexklimaj avatar

Stargazers

Nicolas MARTIN avatar Dominik Antal avatar  avatar Matheus Drumond avatar  avatar  avatar

Watchers

 avatar  avatar  avatar Nicolas MARTIN avatar

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.