Mike Ryan fea9d0fc2d le: disable DMA interrupt to workaround timer interrupt issues
Under certain circumstances, it is possible for a timer interrupt to
fire while a DMA interrupt is being handled. Regardless of interrupt
priority and subpriority between the DMA and timer interrupt, the timer
interrupt will never be serviced.

The LE sniffing code uses the timer interrupt to poll the CC2400's
FS_LOCK status. If this bug is triggered, the FS_LOCK polling will not
occur and the timer interrupt will not be rescheduled, causing capture
to freeze.

Curiously this only occurs after all DMA channels have been disabled,
and the DMACIntStat register will indicate 0 on all channels. The
interrupt fires 8 microseconds after the previous byte is received, when
the next byte would be available from the radio had the DMA channel not
be disabled. Perhaps it's an issue draining the FIFO?

Regardless, if a timer interrupt fires during a DMA interrupt handler,
it should be serviced either pre-emptively (if higher priority) or after
the DMA interrupt handler finishes (same or lower priority). This may be
a hardware issue with the chip.

Closes #326, although this fix is a kludge
2019-11-07 21:33:55 -08:00
2015-05-06 21:22:46 -06:00
2017-03-13 15:45:37 -06:00
2010-10-26 03:38:28 +00:00

Ubertooth

Project Ubertooth is an open source wireless development platform suitable for Bluetooth experimentation. Ubertooth ships with a capable BLE (Bluetooth Smart) sniffer and can sniff some data from Basic Rate (BR) Bluetooth Classic connections.

The latest release is 2018-12-R1. The latest firmware build can be found on the release page.

This release is paired with libbtbb 2018-12-R1.

Instructions for flashing the firmware can be found on the corresponding Wiki page. Instructions for building libbrbb can be found on the corresponding Wiki page.

History

The first hardware revision is called Ubertooth Zero and was demonstrated at ToorCon 12 on October 24th, 2010. Ubertooth Zero has been superseded.

The current hardware revision is called Ubertooth One and was demonstrated at ShmooCon 7 on January 29th, 2011.

More Info

Additional documentation can be found in README files within the various subdirectories and on the web site in the web directory or at the URL below.

project site

Ubertooth GitHub

Contributors

  • Michael Ossmann
  • Dominic Spill
  • Mike Ryan
  • Will Code
  • Jared Boone
  • Many others
S
Description
Software, firmware, and hardware designs for Ubertooth
Readme
14 MiB
Languages
C 77.1%
C++ 7.7%
Python 5.5%
CMake 3.2%
Makefile 2.7%
Other 3.6%