Sam,

Thanks for your input.
In my rather foolhardy attempt at obtaining a UHD device handle in my GRC code, 
I used UHD b2xx_fx3_utils to alter the USB pid value on my B210.
The App note [2] (page 10/14) is slightly conflicting in the specification of 
the B2xx pid values, giving two value options. Having a genuine NI part, I 
tried 0x7814.!

uhd_find_devices fails with “No UHD Devices Found”

however
./b2xx_fx3_utils –init-device –write-vid 0x2500 –write-pid 0x7814
responds with
Device opened (VID=0x2500, PID=0x7814)
B2xx detected...Failed to communicate with the device!
...
and UHD 3.15.0 response
[ERROR [USB] USB open failed: insufficient permissions.
See the application notes for your device.

Perhaps a very cautious patch to the programmer code might help as a workaround?
I will take a look.

Best regards,
David Taylor



From: Sam Reiter 
Sent: Friday, October 9, 2020 10:01 PM
To: David Taylor (manx.net) 
Cc: Marcus D. Leech ; usrp-users (usrp-users@lists.ettus.com) 
Subject: Re: [USRP-users] B210 USRP object creation

David, 

To clarify, you used "write-vid" and "write-pid" arguments with UHD 
b2xx_fx3_utils  [1] to convert your NI-2901 to a B210 using the VID and PID 
values found in the "About the Motherboard and Daughtercard EEPROM on USRP 
Devices" KB [2]. Correct? And after changing these values, you are no longer 
able to reach the device using uhd_find_devices? Does the behavior change if 
you feed in arguments for the unit's serial number? e.g. uhd_find_devices 
--args serial=<xxxxx>

If memory serves, I'd expect you to still be able to find the device with 
uhd_find_devices irrespective of the programmed VID and PID. However, those 
values are necessary for basically anything else as they're used to determine 
the FPGA image that is loaded onto the unit at runtime.

[1] 
https://github.com/EttusResearch/uhd/blob/master/host/utils/b2xx_fx3_utils.cpp
[2] 
https://kb.ettus.com/About_the_Motherboard_and_Daughtercard_EEPROM_on_USRP_Devices#USB_VID.2FPID

On Fri, Oct 9, 2020 at 10:09 AM David Taylor (manx.net) via USRP-users 
<usrp-users@lists.ettus.com> wrote:

  Marcus,

  Thanks again.

  I am using the GRC as a test-bed for writing gr-code as the flow-graph method 
promotes well defined partitioning of the signal processing functions, 
including of course the UHD interface.

  The project which I may have mentioned previously is Direct Sequence Spread 
Spectrum based and GRC C++ OOT blocks have been developed. These generate PRN 
sequences for transmission and then acquire and track the carrier and PRN code 
phases in a modular receiver.
  Much of the concept development can therefore be done using the GRC 
stand-alone or using the USRP in RF loopback with a simple BPSK 
modulator/demodulator pair.

  I am aware of the GRC scheduler shortcomings particularly in terms of 
throughput timing stability, however for now, some form of primitive access to 
the UHD hardware is required for external timing event signalling through the 
GPIO.

  I will have look at some of Balint Seeber’s old code and run some of the UHD 
test code as suggested.

  Finally to add to my woes, the B210 is no longer “found” after my vid and pid 
experiment.
  USB finds the device with the vid and pid as written, but it can no longer be 
accessed through UHD application. I have tried carefully editing the 
uhd-usrp.rules file to comply with the new pid value, but without success.
  Perhaps a cautionary warning should be added to the EEPROM on USRP devices 
note!

  Regards,
  David



  From: Marcus D. Leech via USRP-users 
  Sent: Thursday, October 8, 2020 8:42 PM
  To: usrp-users@lists.ettus.com 
  Subject: Re: [USRP-users] B210 USRP object creation

  On 10/08/2020 03:33 PM, David Taylor (manx.net) via USRP-users wrote:

    Point taken. - I didn’t actually check the original default values of the 
VID and PID, but they were reset according to the table provided, so that they 
could be tested as arguments in the make statement below.
    “About the Motherboard and Daughtercard EEPROM on USRP Devices (5th August 
2020)”

    The aim is to be able to manipulate some GPIO bits in the block work 
function and to align events using the 1PPS input.

    Regards,
    David GD4FMB

  Ok, so presumably you're using Gnu Radio, since you're talking about "block 
work functions".

  So this issue straddles the two universes--UHD/USRP and Gnu Radio.

  I'd encourage you to use the UHD test tools to confirm sanity of your setup 
and then move on to a stupid-simple flow-graph with standard
    blocks.  Once THAT works, then one can think about grabbing the usrp 
source/sink "object" and being able to use it in your own
    processing "block".   There used to be a way to do this even within GRC but 
I fear that it was a custom block (perhaps from the old
    gr-balint set of blocks) that would allow you to grab an object handle and 
pass it as a variable into your own functions.

  It's something I've wanted to do myself from time to time.   Of course if 
you're coding in "naked" GR, without using GRC, it's easy.
    But GRC uses a "data flow" model, and is less "procedural", so it gives an 
added layer of abstraction that makes it difficult to do
    what you want to do.   The gr-uhd module provides GPIO functions:

  
https://www.gnuradio.org/doc/doxygen-v3.7.9.1/classgr_1_1uhd_1_1usrp__block.html#ab09502e1c8c43a546616b9a998f137f1

  But they aren't exposed in any meaningful way into GRC that I know of.

  I'll note that in GR3.9, there is support for something called "code 
snippets" which would let you "dip down into the lower layers" without
    having to post-facto edit generated Python code.



------------------------------------------------------------------------------
  _______________________________________________
  USRP-users mailing list
  USRP-users@lists.ettus.com
  http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

  _______________________________________________
  USRP-users mailing list
  USRP-users@lists.ettus.com
  http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
_______________________________________________
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to