Alex wrote:
Hello,
I've constructed the Spectrum Analyzer as seen on this page (see following link to GNU radio wiki) in hopes to test the functionality of GNU radio's compatibility with the b200-mini I plan to use for a project:
https://wiki.gnuradio.org/index.php?title=Guided_Tutorial_Hardware_Considerations
Unfortunately, when I run execute the flow graph, I get:
RuntimeError: LookupError: KeyError: No devices found for -----> Empty Device Address
and it doesn't run as intended. I've verified the connection of the device through UHD command uhd_find_devices (as well as several other commands), where it sees the b200-mini just fine, but GNU Radio isn't seeing it for some reason. The device is interfaced via USB. ...
Hi Alex,
Running your b200-mini (or any usrp, or HackRF) for the first time can be a bit confusing. These steps should get you going:
- I'll assume you understand setting sample rate, frequency, etc.
1. For any B200/B210 leave "device address" empty regardless of what error message say - because bus-series USRPs don't use an IP address.
2. You need to enter the 'type' and 'serial' as a single string for "Device Arguments" ... but how?
3. Outside of GRC, at the command line, type: `apropos uhd` - this should show a list of gnuradio-related uhd utilities.
2. You need to enter the 'type' and 'serial' as a single string for "Device Arguments" ... but how?
3. Outside of GRC, at the command line, type: `apropos uhd` - this should show a list of gnuradio-related uhd utilities.
NOTE: If `apropos uhd` doesn't show a bunch of uhd* commands, see advice at bottom.
4. The one you want is `uhd_find_devices` - this will work by itself, but to avoid extraneous error messages, type:
4. The one you want is `uhd_find_devices` - this will work by itself, but to avoid extraneous error messages, type:
$ uhd_find_devices --args 'type=b200'
You should see results something like below [notes: * ** ***]
--------------------------------------------------
-- UHD Device 0
--------------------------------------------------
Device Address:
serial: 2F9B3B1
name: MyB210
product: B210
type: b200
* NOTE: that's a fake serial number, and it's for a B210, not a b200-mini)
** CAUTION: prior to that 'normal' message you **may** see messages about your b200 loading firmware.
That's especially likely if running for the first time and/or after a reboot. Except ...
*** Worst-case, for very-first-time use you may need to download firmware images from Ettus to the appropriate location in the gnuradio install directories.
Docs in the uhd* utilities explain how to download firmware.
5. Now, if your b200-mini serial number was 2F9B3B1, this is what to enter for "Device Arguments" property - IN QUOTES, NO SPACES! ...
'type=b200,serial=2F9B3B1'
6. (I believe the following is optional, I don't have my mini plugged in right now to check ...)
For the property "Mb0: Subdev Spec" enter (NO QUOTES!)
A:A
7. Keep that serial number / connection string under your pillow - you'll need it for any uhd source or sink block.
8. Your flowgraph should work now. Be mindful that you're on the air, particularly if transmitting.
9. Final note: there's an analogous procedure for HackRF, except for the subdev-spec part.
--------
ADVICE AT BOTTOM
If the uhd_* commands aren't installed and/or aren't in your path, then something isn't right and you have two options:
1. Do what Marcus recommends for ubuntu / other platforms.
2. Alternately, if you're focused on python and you plan to use a non-ubuntish platform (e.g. M1 Mac), I personally use radioconda - including on Linux.
Note that radioconda **is not** part of gnuradio (it includes a full build of gnuradio, but much other stuff as well).
No comments:
Post a Comment