This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Radio block for interfacing with various radio hardware".
The branch, master has been updated
via 164a09fc11cec2d8b15b38e8b512fa542d6cecc7 (commit)
via b206a90f494cf07389d1f24467964afe89f5c111 (commit)
via e6f46a1c04f3f6daa48d2a49b00592a6e1f32b5c (commit)
via 2b798113503be73d67348dec5ed9f944de6fe7b6 (commit)
via d230397957603a026c688dd462d349f8dcb645c8 (commit)
from ac15e7897bb740d083c71bf02729467ca6528635 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://cgit.osmocom.org/gr-osmosdr/commit/?id=164a09fc11cec2d8b15b38e8b512f…
commit 164a09fc11cec2d8b15b38e8b512fa542d6cecc7
Author: Dimitri Stolnikov <horiz0n(a)gmx.net>
Date: Sun Feb 28 17:52:01 2016 +0100
airspy: Option pack={0,1} to enable USB bit packing
Patch provided by Martin Smith.
Last July there were several changes made to the Airspy firmware and
libairspy that added support for a new bit packing mode where 4 sets of
12 bit samples are packed into 3 sets of 16 bits for the transfer across
the USB bus (
https://i.imgur.com/qXnWoEK.png?1 ). 25% less data is
transferred across the bus and this is good for some computers with
cheap USB chipsets. There is an overhead of extra memory bandwidth
required on the host side to unpack the data into a useful format, so
for optimal performance bit packing is disabled by default.
The data is automatically unpacked within libairspy before being passed
along, so no changes are required anywhere else if packing is enabled
(or not enabled). Airspy firmware older than v1.0.0-rc6 does not have
the function, but that is detected and handled by libairspy.
I wrote the attached patch to enable packing in gr-osmosdr, which I
tested and it works. It is basically a clone of the bias=0|1 lines as
pack=0|1 and calls the needed libairspy function.
ref:
https://github.com/airspy/firmware/commit/7e1806b
https://github.com/airspy/firmware/commit/5b7dcab
https://github.com/airspy/host/commit/a51eccb
---
Do some Baseline test with Airspy command line tools to have something
to compare USB throughput results
--------------------------------------------------------------------------------------------------------
$ sudo mount -t debugfs none /sys/kernel/debug
$ sudo modprobe usbmon
$ wireshark -i usbmod3 &
$ airspy_info ; sleep 120 ; \
airspy_rx -t 4 -r /dev/null -n 2400000000 ; sleep 120 ; \
airspy_rx -t 4 -r /dev/null -p 1 -n 2400000000 ; sleep 120 ; \
airspy_info
Wireshark->Statistics->IO Graph
The Bytes/Tick are double the actual data rate because of way wireshark
collects the USB packets, I could have added a filter to fix this. But
the relationship is valid 25% less with packing enabled. The data rate
in the IO Grahp drops from 80MB/sec (in+out) [really 40MB/sec] to
60MB/second (in+out) [really 30MB/sec] from unpacked to packed.
10MSPS no packing, packing
https://i.imgur.com/pA9LPdE.png?1
2.5MSPS no packing, packing
https://i.imgur.com/lA8q5aq.png?1
Verification test with my patched gr-osmosdr
--------------------------------------------
$ sudo mount -t debugfs none /sys/kernel/debug
$ sudo modprobe usbmon
$ wireshark -i usbmod3 &
$ osmocom_fft -a "airspy=0" -s 10000000 --fft-rate=1
$ osmocom_fft -a "airspy=0,pack=1" -s 10000000 --fft-rate=1
$ osmocom_fft -a "airspy=0" -s 2500000 --fft-rate=1
$ osmocom_fft -a "airspy=0,pack=1" -s 2500000 --fft-rate=1
$ osmocom_fft -a "airspy=0" -s 2500000 --fft-rate=1
$ osmocom_fft -a "airspy=0,pack=0" -s 2500000 --fft-rate=1
I ran all of the above tests and the wireshark USB throughput graphs
showed exactly what was expected.
40MB/sec(10MSPS+normal),30MB/sec(10MSPS+packing),10MB/sec(2.5MSPS
+normal),7.5MB/sec(2.5MSPS+packing),10MB/sec(2.5MSPS+normal),10MB/
sec(2.5MSPS+normal).
25% less when packing was enabled and if you did not specify the
"pack=1", then no bit packing is performed by libairspy. All the
magnitudes within the FFT windows looked exactly the same as they do
without bit packing.
http://cgit.osmocom.org/gr-osmosdr/commit/?id=b206a90f494cf07389d1f24467964…
commit b206a90f494cf07389d1f24467964afe89f5c111
Author: Dimitri Stolnikov <horiz0n(a)gmx.net>
Date: Sun Feb 28 17:50:54 2016 +0100
apps: implement --peak-hold option for fft
http://cgit.osmocom.org/gr-osmosdr/commit/?id=e6f46a1c04f3f6daa48d2a49b0059…
commit e6f46a1c04f3f6daa48d2a49b00592a6e1f32b5c
Author: Dimitri Stolnikov <horiz0n(a)gmx.net>
Date: Sun Feb 28 17:46:55 2016 +0100
apps: added --clock-source option to fft and siggen
http://cgit.osmocom.org/gr-osmosdr/commit/?id=2b798113503be73d67348dec5ed9f…
commit 2b798113503be73d67348dec5ed9f944de6fe7b6
Author: Dimitri Stolnikov <horiz0n(a)gmx.net>
Date: Sun Feb 28 17:45:54 2016 +0100
bladerf: implement options for clock configuration
Since firmware 2016.01-rc1 bladeRF has the ability to lock to an
external reference as well as produce arbitrary frequency signal
(25 MHz here) on its clock output.
Use gr-osmosdr source with the following arguments to produce 25
MHz on the SMB connector:
osmocom_fft -a bladerf,smb=25e6
smb=25e6
To lock the bladeRF itself to an external GPSDO reference, use
additional arguments tamer=external for 10MHz or tamer=external_1pps for
1PPS GPSDO signals.
osmocom_fft -a bladerf,smb=25e6,tamer=external
tamer={internal,external_1pps,external}
The described method requires
https://github.com/Nuand/bladeRF/releases/
tag/2016.01-rc1
Carefully *read the instructions for external reference locking*
(especially max allowed voltage levels) on Nuand's blog https://
www.nuand.com/blog/2016-01-rc1-release/
http://cgit.osmocom.org/gr-osmosdr/commit/?id=d230397957603a026c688dd462d34…
commit d230397957603a026c688dd462d349f8dcb645c8
Author: Jiří Pinkava <j-pi(a)seznam.cz>
Date: Mon Feb 15 14:22:04 2016 +0100
allow both 3.7.* and git version of GnuRadio
-----------------------------------------------------------------------
Summary of changes:
CMakeLists.txt | 7 +++-
apps/osmocom_fft | 9 +++++
apps/osmocom_siggen_base.py | 6 +++
grc/gen_osmosdr_blocks.py | 3 +-
lib/airspy/airspy_source_c.cc | 10 +++++
lib/bladerf/bladerf_common.cc | 81 +++++++++++++++++++++++++++++++++++++++++
lib/bladerf/bladerf_common.h | 7 ++++
lib/bladerf/bladerf_sink_c.cc | 15 ++++++++
lib/bladerf/bladerf_sink_c.h | 4 ++
lib/bladerf/bladerf_source_c.cc | 15 ++++++++
lib/bladerf/bladerf_source_c.h | 4 ++
11 files changed, 159 insertions(+), 2 deletions(-)
hooks/post-receive
--
GNU Radio block for interfacing with various radio hardware