DroneBridge Docs
  • Introduction
  • Comparison
  • DroneBridge for Raspberry Pi
    • Release Notes
    • Getting started
    • Supported hardware
    • Standard Modules
    • Milestones
    • mwptools
    • Adjusting TX Power & EIRP
  • DroneBridge for ESP32
    • Overview
    • Hardware & Wiring
    • Installation
    • Configuration
    • Safety & Integration
    • Hardware Setup Examples
    • Troubleshooting/Help
    • Logging & Debugging
    • Developer & API Documentation
  • DroneBridge for Android
    • DroneBridge for Android (deprecated)
  • DroneBridge Desktop
    • Enabling monitor mode
    • Video stream playback
  • Developer Guide DroneBridge for Raspberry Pi
    • Downloading & Compiling
    • System Architecture
    • Startup & Logs
    • Raw protocol
    • Communication protocol
    • Status messages
    • RC message/packet
    • USB message
    • Plugins
    • Image Build
    • System Integration Test Specification
    • DroneBridge lib example usage
    • Notes About Injection
Powered by GitBook
On this page
  1. Developer Guide DroneBridge for Raspberry Pi

Notes About Injection

Atheros AR9271

A great chip with open source drivers & firmware. However it got some very strange behaviour when it comes to injection bit rates. Path of packets is as follows:

  • Data rate specified in Radiotap header. Visible in Wireshark on sending interface

  • Data rate gets overwritten by driver to 1Mbit?! Visible as a second packet in Wireshark in sending interface

  • Sent packet has data rate configured by iw dev "$interface" set bitrates legacy-2.4 11

  • Data rate must be set while interface is in managed mode. Command will fail if device is on monitor mode

The final data rate used by the system for sending is not visible in Wireshark on the sending interface. This means that the firmware decides about the final data rate. To verify the transmission rate a second adapter is required. Rates can be set using following script:

enable_monitor
#!/bin/bash
declare -a wifi_adps=("wlx00c0ca973410" "wlxfgdfgd513d1fg51")

frequency="2472"
bitrate="36"

for adapter in "${wifi_adps[@]}"
do
   echo "$adapter"
   interface="$adapter"
   ip link set "$interface" down
   iw dev "$interface" set type managed
   ip link set "$interface" up
   iw dev "$interface" set bitrates legacy-2.4 "$bitrate"
   ip link set "$interface" down
   iw dev "$interface" set type monitor
   ip link set "$interface" up
   iw dev "$interface" set freq $frequency
done

iwconfigc

PreviousDroneBridge lib example usage

Last updated 5 years ago