-
Notifications
You must be signed in to change notification settings - Fork 969
Description
Expected Behavior
Recording a signal longer than 100M samples should not interfere with signal integrity.
Actual Behavior
After recording ~100M samples both the appearance in the live preview as well as the measurement in the recorded file confirm that test signal pulses are reduced in length and their regularity is compromised.
This implies that the signal is somehow altered, maybe in samplerate, maybe buffers are dropped, maybe something else.
I have recorded the signal via the native bladeRF-cli for reference and can ensure, that the bug is not due to bugs in the firmware of the bladeRF.
As I currently don't have a setup to record a pure sine wave, I cannot determine the exact moment when signal integrity is lost.
I speculate the threshold is actually near 102,3M / 102,4M samples and might be related to some binary counting scheme (2^10 = 1024).
EDIT: After 101M samples already signal integrity appears to be compromised, so it does not appear to be related to 2^10.
Steps To Reproduce
- Install Linux Mint 20.1 Cinnamon
- Run
apt update && apt upgrade - Install the latest urh from source
- Install bladeRF dependencies via
apt install git libusb-1.0-0-dev libtecla-dev help2man - Build the latest libBladeRF and bladeRF-cli from source
cmake -DBUILD_DOCUMENTATION=ON -DENABLE_BACKEND_LIBUSB=ON -DINSTALL_UDEV_RULES=ON -DENABLE_LOG_FILE_INFO=ON -DENABLE_LIBTECLA=ON ../ - Plug in the bladeRF into USB3 with SuperSpeed
- Download the latest bladeRF firmware and flash it
- Download the latest FPGA image and define it as autoloading
- Setup a test signal with fixed pulse lengths
- Open urh
- Record your test signal at 5MS/s-60MS/s sample rate for at least 150M samples. (I cannot prove nor disprove the bug at 2.5MS/s sample rate)
- Save and Open capture
- Measure pulse length before 100M samples and after
- See error
Screenshots
Platform
- OS: Linux Mint 20.1 Cinnamon
- URH: 2.9.2
- Python: 3.8.10
- Installed via git / built from source
- bladeRF-cli: 1.8.0-git-5a146b2a
- libBladeRF: 2.4.1-git-5a146b2a
- bladeRF_fw_latest.img: 2021-01-12 - v2.4.0
- hostedxA4-latest.rbf: 2021-10-04 - v0.14.0
Additional Context
Apparently, urh's libbladeRF is outdated.
[INFO::Device.py::start_rx_mode] BladeRF: Starting RX Mode
[INFO @ host/libraries/libbladeRF/src/helpers/version.c:79] Firmware version (v2.4.0) is newer than entries in libbladeRF's compatibility table. Please update libbladeRF if problems arise.
[INFO @ host/libraries/libbladeRF/src/helpers/version.c:103] FPGA version (v0.14.0) is newer than entries in libbladeRF's compatibility table. Please update libbladeRF if problems arise.
[INFO::Device.py::log_retcode] BladeRF-OPEN: Success

