i want to use limesdr with UHD, but i did’t find any tutorial about this. i want to get some help here
thank you.
i want to use limesdr with UHD, but i did’t find any tutorial about this. i want to get some help here
thank you.
using openusrp project
You can also use SoapyUHD:
There are pre-built packages in the PPA.
@jocover When will you “fix” your project to stop faking hardware from Ettus? As Marcus pointed out on Twitter, it is not only unethical and disrespectful but also stupid and pointless.
UHD is GPL License,I can modify it.this’s no problem
https://kb.ettus.com/Licensing_FAQ
B210 need $1136 but LimeSDR only $289.features is almost the same
I think openusrp project is a good idea.let more people to learn SDR
You are missing the point. You are welcome to modify UHD all that you want, but using somebody else’s hardware identifier, in this case Ettus USRP B210 is not OK. It may even be violation of their trademark, if they have it.
Ettus has always been exemplary supporter of open source SDR. As it has been pointed out, you could use the UHD plugin API to hook up the limesdr or any other hardware for that matter. Why don’t you do that? Why do you have to hijack their product name?
thanks for your reply,i want to use limesdr with UHD.
which means i want to use the UHD API to set thw limesdr,just like the example in the source of UHD,for example to set the gain and freq,sample rate, i am reading the SoapyUHD and openUSRP source code.
thnak you.
How do I use soapyUHD to work with LabVIEW, the OpenUSRP works great, but it does not have the ability to use all of the LimeSDR features and functions as the LabVIEW thinks its controlling an Ettus B210. I have since been trying to use the soapyUHD, but I haven’t had much success with it using LabVIEW.
Can somebody help me out?
Thanks in advance
From my experience official labview usrp support has several modifications to prevent this and similar use cases.
just so I’m clear, you are saying that I cannot use the soapy stuff with labview, correct? You mentioned about usrp, what about the hackrf? if there a way to interface labview and soapy with the hackrf?
thanks
hey @eldueno looks like I got carried away. I don’t really know the current state of labview driver stuff, but if OpenUSRP works, I don’t see why other similar modules cant work. What did you do to install OpenUSRP with labview? Building it from source, copying over the module file? Because if that works, then presumably other SoapySDR supported modules should work.
So to support that, a lot of the instructions found here are kind of similar in terms of installing the uhd module and setting UHD_MODULE_PATH. Can you try this:
Hi,
It seems that this does not work:
root@ubuntu:~/SoapyUHD/build# uhd_find_devices
[INFO] [UHDlinux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_3.11.0.git-191-g1cd96dde]
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
addr: 1d50:6108
driver: lime
label: LimeSDR-USB [USB 3.0] 9070602462C00
media: USB 3.0
module: STREAM
name: LimeSDR-USB
serial: 0009070602462C00
type: soapy
root@ubuntu:~/SoapyUHD# uhd_usrp_probe
[INFO] [UHDlinux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_3.11.0.git-191-g1cd96dde]
uhd_usrp_probe: symbol lookup error: /usr/local/lib/uhd/modules/libsoapySupport.so: undefined symbol: _ZN3uhd3msg4_msgC1ENS0_6type_tE
root@ubuntu:~/SoapyUHD/build# SoapySDRUtil --probe="driver=uhd,type=b200"
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################
Probe device driver=uhd,type=b200
Error probing device: SoapySDR detected ABI compatibility mismatch with UHD library.
SoapySDR UHD support was build against ABI: 3.10.2,
but UHD library reports ABI: 3.11.0
Suggestion: install an ABI compatible version of UHD,
or rebuild SoapySDR UHD support against this ABI version.
Can you share how you installed or compiled the software including LimeSuite, UHD, SoapySDR, SoapyUHD? I know 3.10.2 is the UHD from the PPA, so 3.11.0 is from a source build? So perhaps the uhd executable is from one version and the other libs are from another? Make sure that there is only one version of the tools installed at any time, otherwise they can “clash”.
joshblum, thank you for the reply,
I used this guide: http://happyf337.blogspot.ru/2017/07/limesdr-ubuntu-desktop-1404-x8664-setup.html
This should work, but the manual is a bit outdated, so I do not know how to fix it.
so 3.11.0 is from a source build?
Yes, it is.
Ok, seems now it’s working.
Fix:
pybombs remove uhd -d
wget https://github.com/EttusResearch/uhd/archive/release_003_010_002_000.zip
unzip release_003_010_002_000.zip
mv uhd-release_003_010_002_000/ uhd
cd uhd/host/lib/usrp
git clone https://github.com/jocover/OpenUSRP.git
echo "INCLUDE_SUBDIRECTORY(OpenUSRP)">>CMakeLists.txt
cd OpenUSRP
cd ../../../
mkdir build && cd build
cmake ..
make -j4
make install
Result:
root@ubuntu:~/airprobe/gsm-receiver# uhd_find_devices
linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.002.000-0-unknown
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
type: b200
product: B210
module: STREAM
media: USB 3.0
name: LimeSDR-USB
serial: 0009070602462C00
root@ubuntu:~/airprobe/gsm-receiver# uhd_usrp_probe
linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.002.000-0-unknown
Using OpenUSRP
Reference clock 30.720 MHz
LMS7002M cache /root/.limesuite/LMS7002M_cache_values.db
Rx Filter calibrated from cache
Tx Filter calibrated from cache
Rx Filter calibrated from cache
Tx Filter calibrated from cache
_____________________________________________________
/
| Device: B-Series Device
| _____________________________________________________
| /
| | Mboard: B210
| | revision: 4
| | product: 2
| | serial: 2462C16
| | FW Version: 3
| | FPGA Version: 2.11
| |
| | Time sources: none, internal, external
| | Clock sources: internal, external
| | Sensors: ref_locked
| | _____________________________________________________
| | /
| | | RX DSP: 0
| | |
| | | Freq range: -10.000 to 10.000 MHz
| | _____________________________________________________
| | /
| | | RX DSP: 1
| | |
| | | Freq range: -10.000 to 10.000 MHz
| | _____________________________________________________
| | /
| | | RX Dboard: A
| | | _____________________________________________________
| | | /
| | | | RX Frontend: A
| | | | Name: FE-RX1
| | | | Antennas: TX/RX, RX2
| | | | Sensors: temp, lo_locked, rssi
| | | | Freq range: 30.000 to 3800.000 MHz
| | | | Gain range PGA: 0.0 to 76.0 step 1.0 dB
| | | | Bandwidth range: 1000000.0 to 60000000.0 step 1.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | RX Frontend: B
| | | | Name: FE-RX2
| | | | Antennas: TX/RX, RX2
| | | | Sensors: temp, lo_locked, rssi
| | | | Freq range: 30.000 to 3800.000 MHz
| | | | Gain range PGA: 0.0 to 76.0 step 1.0 dB
| | | | Bandwidth range: 1000000.0 to 60000000.0 step 1.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | RX Codec: A
| | | | Name: B210 RX dual ADC
| | | | Gain Elements: None
| | _____________________________________________________
| | /
| | | TX DSP: 0
| | |
| | | Freq range: -10.000 to 10.000 MHz
| | _____________________________________________________
| | /
| | | TX DSP: 1
| | |
| | | Freq range: -10.000 to 10.000 MHz
| | _____________________________________________________
| | /
| | | TX Dboard: A
| | | _____________________________________________________
| | | /
| | | | TX Frontend: A
| | | | Name: FE-TX1
| | | | Antennas: TX/RX
| | | | Sensors: temp, lo_locked
| | | | Freq range: 30.000 to 3800.000 MHz
| | | | Gain range PGA: 0.0 to 89.8 step 0.2 dB
| | | | Bandwidth range: 800000.0 to 60000000.0 step 1.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | TX Frontend: B
| | | | Name: FE-TX2
| | | | Antennas: TX/RX
| | | | Sensors: temp, lo_locked
| | | | Freq range: 30.000 to 3800.000 MHz
| | | | Gain range PGA: 0.0 to 89.8 step 0.2 dB
| | | | Bandwidth range: 800000.0 to 60000000.0 step 1.0 Hz
| | | | Connection Type: IQ
| | | | Uses LO offset: No
| | | _____________________________________________________
| | | /
| | | | TX Codec: A
| | | | Name: B210 RX dual ADC
| | | | Gain Elements: None
Don’t use OpenUSRP, use SoapyUHD.
FFY00, thank you for the suggestion! Everything is ok (look’s like).
root@ubuntu:~/SoapyUHD/build# SoapySDRUtil --probe="driver=uhd,type=b200"
######################################################
## Soapy SDR -- the SDR abstraction library
######################################################
Probe device driver=uhd,type=b200
linux; GNU C++ version 5.4.0 20160609; Boost_105800; UHD_003.010.002.000-0-unknown
Using OpenUSRP
Reference clock 30.720 MHz
LMS7002M cache /root/.limesuite/LMS7002M_cache_values.db
Rx Filter calibrated from cache
Tx Filter calibrated from cache
Rx Filter calibrated from cache
Tx Filter calibrated from cache
----------------------------------------------------
-- Device identification
----------------------------------------------------
driver=b200
hardware=B210
fpga_version=2.11
fw_version=3
mboard_id=B210
mboard_name=
mboard_serial=2462C00
rx0_antenna=RX2
rx0_id=Unknown (0xffff)
rx0_serial=
rx0_subdev_name=FE-RX1
rx0_subdev_spec=A:A A:B
rx1_antenna=RX2
rx1_id=Unknown (0xffff)
rx1_serial=
rx1_subdev_name=FE-RX2
rx1_subdev_spec=A:A A:B
tx0_antenna=TX/RX
tx0_id=Unknown (0xffff)
tx0_serial=
tx0_subdev_name=FE-TX1
tx0_subdev_spec=A:A A:B
tx1_antenna=TX/RX
tx1_id=Unknown (0xffff)
tx1_serial=
tx1_subdev_name=FE-TX2
tx1_subdev_spec=A:A A:B
----------------------------------------------------
-- Peripheral summary
----------------------------------------------------
Channels: 2 Rx, 2 Tx
Timestamps: YES
Clock sources: internal, external
Time sources: none, internal, external
Sensors: ref_locked
GPIOs: FP0, RXA, TXA
----------------------------------------------------
-- RX Channel 0
----------------------------------------------------
Full-duplex: YES
Supports AGC: NO
Stream formats: CS8, CS12, CS16, CF32, CF64
Native format: CS16 [full-scale=32768]
Stream args:
* Samples per packet - The number of samples per packet.
[key=spp, units=samples, default=0, type=int]
* Bus format - The format of samples over the bus.
[key=WIRE, type=string, options=(sc8, sc16)]
* Peak value - The peak value for scaling in complex byte mode.
[key=peak, default=1.0, type=float]
* Receive frame buffer size - The size an individual datagram or frame in bytes.
[key=recv_frame_size, units=bytes, type=int]
* Receive number of buffers - The number of available buffers.
[key=num_recv_frames, units=buffers, type=int]
Antennas: TX/RX, RX2
Corrections: DC removal, DC offset, IQ balance
Full gain range: [0, 76, 1] dB
PGA gain range: [0, 76, 1] dB
Full freq range: [20, 3810] MHz
RF freq range: [20, 3810] MHz
BB freq range: [-10, 10] MHz
Tune args:
* LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
[key=OFFSET, units=Hz, default=0.0, type=float, range=[-1e+07, 1e+07]]
* BB - Specify a specific value for this component or IGNORE to skip tuning it.
[key=BB, units=Hz, default=DEFAULT, type=float, range=[-1e+07, 1e+07], options=(DEFAULT, IGNORE)]
Sample rates: 0.1, 65 MSps
Filter bandwidths: [0.8, 60] MHz
Sensors: temp, lo_locked, rssi
----------------------------------------------------
-- RX Channel 1
----------------------------------------------------
Full-duplex: YES
Supports AGC: NO
Stream formats: CS8, CS12, CS16, CF32, CF64
Native format: CS16 [full-scale=32768]
Stream args:
* Samples per packet - The number of samples per packet.
[key=spp, units=samples, default=0, type=int]
* Bus format - The format of samples over the bus.
[key=WIRE, type=string, options=(sc8, sc16)]
* Peak value - The peak value for scaling in complex byte mode.
[key=peak, default=1.0, type=float]
* Receive frame buffer size - The size an individual datagram or frame in bytes.
[key=recv_frame_size, units=bytes, type=int]
* Receive number of buffers - The number of available buffers.
[key=num_recv_frames, units=buffers, type=int]
Antennas: TX/RX, RX2
Corrections: DC removal, DC offset, IQ balance
Full gain range: [0, 76, 1] dB
PGA gain range: [0, 76, 1] dB
Full freq range: [20, 3810] MHz
RF freq range: [20, 3810] MHz
BB freq range: [-10, 10] MHz
Tune args:
* LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
[key=OFFSET, units=Hz, default=0.0, type=float, range=[-1e+07, 1e+07]]
* BB - Specify a specific value for this component or IGNORE to skip tuning it.
[key=BB, units=Hz, default=DEFAULT, type=float, range=[-1e+07, 1e+07], options=(DEFAULT, IGNORE)]
Sample rates: 0.1, 65 MSps
Filter bandwidths: [0.8, 60] MHz
Sensors: temp, lo_locked, rssi
----------------------------------------------------
-- TX Channel 0
----------------------------------------------------
Full-duplex: YES
Supports AGC: NO
Stream formats: CS8, CS12, CS16, CF32, CF64
Native format: CS16 [full-scale=32768]
Stream args:
* Samples per packet - The number of samples per packet.
[key=spp, units=samples, default=0, type=int]
* Bus format - The format of samples over the bus.
[key=WIRE, type=string, options=(sc8, sc16)]
* Peak value - The peak value for scaling in complex byte mode.
[key=peak, default=1.0, type=float]
* Send frame buffer size - The size an individual datagram or frame in bytes.
[key=send_frame_size, units=bytes, type=int]
* Send number of buffers - The number of available buffers.
[key=num_send_frames, units=buffers, type=int]
Antennas: TX/RX
Corrections: DC offset, IQ balance
Full gain range: [0, 89.8, 0.2] dB
PGA gain range: [0, 89.8, 0.2] dB
Full freq range: [20, 3810] MHz
RF freq range: [20, 3810] MHz
BB freq range: [-10, 10] MHz
Tune args:
* LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
[key=OFFSET, units=Hz, default=0.0, type=float, range=[-1e+07, 1e+07]]
* BB - Specify a specific value for this component or IGNORE to skip tuning it.
[key=BB, units=Hz, default=DEFAULT, type=float, range=[-1e+07, 1e+07], options=(DEFAULT, IGNORE)]
Sample rates: 0.1, 65 MSps
Filter bandwidths: [0.8, 60] MHz
Sensors: temp, lo_locked
----------------------------------------------------
-- TX Channel 1
----------------------------------------------------
Full-duplex: YES
Supports AGC: NO
Stream formats: CS8, CS12, CS16, CF32, CF64
Native format: CS16 [full-scale=32768]
Stream args:
* Samples per packet - The number of samples per packet.
[key=spp, units=samples, default=0, type=int]
* Bus format - The format of samples over the bus.
[key=WIRE, type=string, options=(sc8, sc16)]
* Peak value - The peak value for scaling in complex byte mode.
[key=peak, default=1.0, type=float]
* Send frame buffer size - The size an individual datagram or frame in bytes.
[key=send_frame_size, units=bytes, type=int]
* Send number of buffers - The number of available buffers.
[key=num_send_frames, units=buffers, type=int]
Antennas: TX/RX
Corrections: DC offset, IQ balance
Full gain range: [0, 89.8, 0.2] dB
PGA gain range: [0, 89.8, 0.2] dB
Full freq range: [20, 3810] MHz
RF freq range: [20, 3810] MHz
BB freq range: [-10, 10] MHz
Tune args:
* LO Offset - Tune the LO with an offset and compensate with the baseband CORDIC.
[key=OFFSET, units=Hz, default=0.0, type=float, range=[-1e+07, 1e+07]]
* BB - Specify a specific value for this component or IGNORE to skip tuning it.
[key=BB, units=Hz, default=DEFAULT, type=float, range=[-1e+07, 1e+07], options=(DEFAULT, IGNORE)]
Sample rates: 0.1, 65 MSps
Filter bandwidths: [0.8, 60] MHz
Sensors: temp, lo_locked
Hello @isk007, Not sure if this applies to your situation or not, I saw in your output text information about filters being calibrated from cache. I was under the impression that calibrating from the cache had be abandoned as there were issues and that other users had been deleting the cache db file to eliminate some problems.
Like I said, not sure if it applies to you in this situation but thought I would at least “warn” you of what I had seen.
Good luck with your projects
Regards,
Bevan
OpenUSRP fakes a B210 which is obviously not optimal. With SoapyUHD, you can use the UHD api without faking a B210. You can run the same apps, there shouldn’t be a problem with that, so SoapyUHD is a better option than OpenUSRP.