Issues with ATSC and USB2 on ARM and X86_64
Posted: Tue Mar 04, 2014 9:58 am
All,
I am attempting to get the bladeRF and Gnuradio working on an ARM board and am hoping you can help me with an issue that I have encountered. I'm not sure whether this will come down to bladeRF, Gnuradio, or osmosdr, but I figured that this would be a good place to start.
Hardware:
- Wandboard (Freescale iMX6 Quad-based Cortex A9 32-bit ARM board) running Ubuntu 13.10 ARMHF. 4 cores, 2GB RAM, graphics acceleration, HW floating point support so there's some horsepower here. USB2 only though.
- bladeRF running fpga v0.0.3 and fx3 v1.6.1, connected via a USB2 port on an Anker USB/peripheral dock.
Software:
- Gnuradio 3.7.1 (currently using this as I've had the most luck with it in the past), 3.7.1.1, and 3.7.2.1
- libbladeRF 0.13.0
- bladeRF-cli 0.10.4
- rtl-sdr latest from master
- gr-osmosdr latest from master
All packages compiled natively on from source on both X86_64 and ARM architectures - no cross compiling or VMs
Test:
I'm trying to get this ATSC transmitter working to test the install: https://github.com/argilo/sdr-examples/ ... de-usb2.py argilo's USB3 version works fine on my desktop (Ubuntu 13.10, X86_64 w/ 8 cores and 16GB RAM), but the script with decimation for USB2 crashes on both ARM and X86_64 with the following error:
ARM:
X86_64:
As you can see, both architectures crash in the same way -- chunks_to_symbols in gr-digital. At this point I have tried 3 different gnuradio versions (3.7.2.1, 3.7.1.1, and 3.7.1) and it crashes in the same spot (different actual line in chunks_to_symbols_XX.cc but same instruction). I am currently on 3.7.1 given that it is the version that I have had the most success in the past with. My attempts to dive into the issue with gdb haven't yielded much. The key variables of interest (d_D, d_symbol_table, in, i) are typically optimized out so I haven't gotten too far there.
I will add that this same USB2 script worked on an old desktop running gnuradio 3.7.1. I no longer have access to that machine though (traded up since it didn't have USB3 compatible hardware).
Any ideas? Let me know if I can provide any additional info or run any tests and I'll get it for you ASAP. I appreciate your assistance and hope we can figure out what's going on here.
I am attempting to get the bladeRF and Gnuradio working on an ARM board and am hoping you can help me with an issue that I have encountered. I'm not sure whether this will come down to bladeRF, Gnuradio, or osmosdr, but I figured that this would be a good place to start.
Hardware:
- Wandboard (Freescale iMX6 Quad-based Cortex A9 32-bit ARM board) running Ubuntu 13.10 ARMHF. 4 cores, 2GB RAM, graphics acceleration, HW floating point support so there's some horsepower here. USB2 only though.
- bladeRF running fpga v0.0.3 and fx3 v1.6.1, connected via a USB2 port on an Anker USB/peripheral dock.
Software:
- Gnuradio 3.7.1 (currently using this as I've had the most luck with it in the past), 3.7.1.1, and 3.7.2.1
- libbladeRF 0.13.0
- bladeRF-cli 0.10.4
- rtl-sdr latest from master
- gr-osmosdr latest from master
All packages compiled natively on from source on both X86_64 and ARM architectures - no cross compiling or VMs
Test:
I'm trying to get this ATSC transmitter working to test the install: https://github.com/argilo/sdr-examples/ ... de-usb2.py argilo's USB3 version works fine on my desktop (Ubuntu 13.10, X86_64 w/ 8 cores and 16GB RAM), but the script with decimation for USB2 crashes on both ARM and X86_64 with the following error:
ARM:
Code: Select all
knight@ubuntu-armhf:~/Documents/bladeRF/python/atsc$ python atsc-blade-usb2-works-with-adventure-club.py ~/ramdisk/advatsc.ts
Using Volk machine: generic
gr-osmosdr v0.1.0-70-gcc083037 (0.1.1git) gnuradio 3.7.1
built-in sink types: bladerf
[bladeRF source] Using nuand LLC bladeRF #0 SN a380...a17a FW v1.6.1 FPGA v0.0.3
[WARNING] Loss of precision in reducing fraction from 1230769232/1993006993 to 615384616/996503496
python: /home/knight/sandbox/gnuradio-builds/gnuradio-3.7.1/build/gr-digital/lib/chunks_to_symbols_bc_impl.cc:71: virtual int gr::digital::chunks_to_symbols_bc_impl::work(int, gr_vector_const_void_star&, gr_vector_void_star&): Assertion `((unsigned int)in[i]*d_D+d_D) <= d_symbol_table.size()' failed.
Aborted
Code: Select all
knight@dev-wks-24lx13:~/Documents/bladeRF/python/atsc$ python atsc-blade-usb2-works-with-adventure-club.py ~/Videos/advatsc.ts
Using Volk machine: avx_64_mmx
gr-osmosdr v0.1.0-70-gcc083037 (0.1.1git) gnuradio 3.7.1
built-in sink types: bladerf
[bladeRF source] Using nuand LLC bladeRF #0 SN a380...a17a FW v1.6.1 FPGA v0.0.3
[WARNING] Loss of precision in reducing fraction from 1230769232/1993006993 to 615384616/996503496
python: /home/knight/sandbox/gnuradio-builds/gnuradio-old/build/gr-digital/lib/chunks_to_symbols_bc_impl.cc:71: virtual int gr::digital::chunks_to_symbols_bc_impl::work(int, gr_vector_const_void_star&, gr_vector_void_star&): Assertion `((unsigned int)in[i]*d_D+d_D) <= d_symbol_table.size()' failed.
Aborted (core dumped)
I will add that this same USB2 script worked on an old desktop running gnuradio 3.7.1. I no longer have access to that machine though (traded up since it didn't have USB3 compatible hardware).
Any ideas? Let me know if I can provide any additional info or run any tests and I'll get it for you ASAP. I appreciate your assistance and hope we can figure out what's going on here.