[USRP-users] N210 undetectable

2022-11-08 Thread ali . mahbas
Dear all,

We need your help to solve an issue we having recently with one of N210.

\
N210 - It works (the fan can be heard and some of the LEDs are on (please see 
attached pic). Unfortunately, it is 'timed out' when I ping it and it is 
undetectable (I tried both Windows and Ubuntu). Could you please help me to 
solve this issue.

Thank you in advance.
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread Marcus Müller

Probably, the device is programmed to use a different IP address than you think 
it's using.

See https://files.ettus.com/manual/page_usrp2.html#usrp2_loadflash_brick on how to use the 
safe-mode button to temporarily set a fixed IP address. Do that, use the address to 
correct the programmed IP address to what you expect, and power-cycle the device after.


Best regards,
Marcus

On 08.11.22 11:43, ali.mah...@brunel.ac.uk wrote:


Dear all,

We need your help to solve an issue we having recently with one of N210.


N210 - It works (the fan can be heard and some of the LEDs are on (please see attached 
pic). Unfortunately, it is 'timed out' when I ping it and it is undetectable (I tried 
both Windows and Ubuntu). Could you please help me to solve this issue.



Thank you in advance.


___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread ali . mahbas
Dear Marcus,

Thank you for your reply. 

I thought the NI-USRP Configuration Utility would detect it even though it has 
a different IP address.
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread ali . mahbas
Dear Marcus,

UPDATE

I just did what you told me. it is detected when I use the safe mode. I changed 
the IP address by using NI-USRP Configuration Utility. Although it tells me 
that IP has been updated, I have the same issue when I dont use the safe mode.

It is only detectable on the safe mode. 

by the way, it shows me ‘update needed’ on the image status - IN-USRP 
Configuration Utility. 

Thank you again
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread Marcus D. Leech

On 08/11/2022 06:42, ali.mah...@brunel.ac.uk wrote:


Dear Marcus,

Thank you for your reply.

I thought the NI-USRP Configuration Utility would detect it even 
though it has a different IP address.



Only if it happens to be on the same subnet as the host that is doing 
the query.


I'd take Mr. Mueller's advice



___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread Marcus Müller

To which address and subnet do you configure it in the utility?

Best regards,
Marcus

On 08.11.22 14:39, ali.mah...@brunel.ac.uk wrote:


Dear Marcus,


UPDATE


I just did what you told me. it is detected when I use the safe mode. I changed the IP 
address by using NI-USRP Configuration Utility. Although it tells me that IP has been 
updated, I have the same issue when I dont use the safe mode.


It is only detectable on the safe mode.


by the way, it shows me ‘update needed’ on the image status - IN-USRP Configuration 
Utility.



Thank you again


___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread ali . mahbas
it was changed to 192.168.10.3. The utility only allows to change the IP not 
the subnet.

kind regards,

Ali
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: How can we develop two RFNOC block that there is a reg relation between them?

2022-11-08 Thread Wade Fife
Gain and multiply are pretty simple operations. Perhaps you could put them
both in the same block? Then you would not need to share this register
between different blocks.

Wade

On Sun, Nov 6, 2022 at 1:06 PM sp  wrote:

> I am developing two RFNOC blocks, a gain block, and a multiplier block...
> But I need there to be a reg relation between RFNOC blocks...
> for example, a multiply_const is calculated in multiply rfnoc block and it
> is used to block gain...
> when I add the reg in rfnoc block and I define it as input and output
> ...
> I redefine rfnoc block in this filex300_rfnoc_image_core.v
> when I build again, x300_rfnoc_image_core.v will be deleted to the
> previous state. How can solve this problem?
>
> I ask this problem in this link but my problem is not solved yet...
>
> https://lists.ettus.com/empathy/thread/R7N27SR37EPZKMJLG7K6FR3FKBXOMBNO?hash=R7N27SR37EPZKMJLG7K6FR3FKBXOMBNO#R7N27SR37EPZKMJLG7K6FR3FKBXOMBNO
> ___
> USRP-users mailing list -- usrp-users@lists.ettus.com
> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: N210 undetectable

2022-11-08 Thread Marcus Müller
As you might have guessed, I'm not aware at all of the NI-USRP utilities. If they just 
allow setting an IP address, but not a subnet, that would be pretty … incomplete.


If that's the case, please try following the guide I linked you to about setting `ip-addr` 
and `subnet` fields in the N2xx.


Best regards,
Marcus

On 08.11.22 15:43, ali.mah...@brunel.ac.uk wrote:


it was changed to 192.168.10.3. The utility only allows to change the IP not 
the subnet.



kind regards,

Ali


___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com

___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Custom FPGA image "version" register

2022-11-08 Thread ri28856
I use a modified FPGA image on a few x310s. Is there a convenient mechanism for 
writing some kind of versioning to a register on the FPGA?

The specific problem I’m trying to solve is I have a lot of USRPs, and I would 
like my application to report when one of the radios it connects to is still on 
the base image. My application is compatible with both images, but gets better 
performance with my custom image. I run into the issue where I don’t know when 
I get degraded performance because somebody else reflashed it, or if there was 
a regression in the application code itself.
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: How can I define a global reg variable in Verilog between RFNOC blocks?

2022-11-08 Thread sp
Thanks very much, Marcus. Can explain more? I had not any idea how develop
your way?

On Mon, Nov 7, 2022 at 11:29 PM Marcus Müller 
wrote:

> Hi sp,
>
> That sounds like a bad idea. How are you planning to synchronize access to
> that register?
>
> Generally, in almost *any* context, avoid global state. That makes things
> complicated and
> error prone; this is true for python as much as it is for C++, as much as
> it is for
> digital hardware design (in verilog or any other way); it's even true for
> design of
> mechanical machine factory floors (if you make each processing step as
> independent from
> the other as possible, you increase reliability).
>
> So, I'd recommend you find a different way to exchange information between
> two blocks.
> Exchanging information is the point of RFNoC, by the way.
>
> Best regards,
> Marcus
>
> On 31.07.22 17:52, sp wrote:
> > How can I define a global reg variable in Verilog between RFNOC blocks?
> > I developed two RFNOC blocks: RFNOC block A, and RFNOC block B
> > How can define a reg variable that shares between RFNOC blocks in USRP?
> > Can anyone guide me?
> >
> > I study about global reg variable in the Verilog module, see below
> link,  but I can not
> > do it for RFNOC blocks...
> > How can implement this mechanism in RFNOC blocks
> >
> https://www.edaboard.com/threads/how-to-define-global-variable-in-verilog.174172/
> >
> > Thanks in advance
> >
> > ___
> > USRP-users mailing list -- usrp-users@lists.ettus.com
> > To unsubscribe send an email to usrp-users-le...@lists.ettus.com
> ___
> USRP-users mailing list -- usrp-users@lists.ettus.com
> To unsubscribe send an email to usrp-users-le...@lists.ettus.com
>
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: Custom FPGA image "version" register

2022-11-08 Thread Marcus D. Leech

On 08/11/2022 11:01, ri28...@mit.edu wrote:


I use a modified FPGA image on a few x310s. Is there a convenient 
mechanism for writing some kind of versioning to a register on the FPGA?


The specific problem I’m trying to solve is I have a lot of USRPs, and 
I would like my application to report when one of the radios it 
connects to is still on the base image. My application is compatible 
with both images, but gets better performance with my custom image. I 
run into the issue where I don’t know when I get degraded performance 
because somebody else reflashed it, or if there was a regression in 
the application code itself.



___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com
You could take a look at the "uhd_usrp_probe" code -- since it displays 
the FPGA rev number.


___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: Custom FPGA image "version" register

2022-11-08 Thread ri28856
I found the following line in uhd_usrp_probe that looks like it does what I’m 
looking for:

`if (tree->exists(path / "fw_version")) {`

` ss << "FW Version: " << tree->access(path / "fw_version").get()`

` << std::endl;`

` }`

The next question is where does the firmware version get set? I did some poking 
around fpga/usrp3/top, but it’s not immediately obvious. Is this set somewhere 
in the build scripts? I run the standard Makefile when I build my custom image. 
I would like to write something so I can definitely distinguish this FPGA is 
running my modified firmware.
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: Custom FPGA image "version" register

2022-11-08 Thread Marcus D. Leech

On 08/11/2022 12:47, ri28...@mit.edu wrote:


I found the following line in uhd_usrp_probe that looks like it does 
what I’m looking for:


|if (tree->exists(path / "fw_version")) {|

|ss << "FW Version: " << tree->access(path / 
"fw_version").get()|


|<< std::endl;|

|}|

The next question is where does the firmware version get set? I did 
some poking around fpga/usrp3/top, but it’s not immediately obvious. 
Is this set somewhere in the build scripts? I run the standard 
Makefile when I build my custom image. I would like to write something 
so I can definitely distinguish this FPGA is running my modified 
firmware.




Did:

find uhd -name "*.cpp" -exec grep -H fw_version '{}' ';'


Which yielded:

hd/host/utils/uhd_usrp_probe.cpp:    if (tree->exists(path / 
"fw_version")) {
uhd/host/utils/uhd_usrp_probe.cpp:    ss << "FW Version: " << 
tree->access(path / "fw_version").get()
uhd/host/lib/usrp/b100/b100_impl.cpp: 
_tree->create("/mboards/0/fw_version")
uhd/host/lib/usrp/usrp2/usrp2_impl.cpp: 
_tree->create(mb_path / "fw_version")
uhd/host/lib/usrp/usrp2/usrp2_impl.cpp: 
.set(_mbc[mb].iface->get_fw_version_string());
uhd/host/lib/usrp/usrp2/usrp2_iface.cpp:    const std::string 
get_fw_version_string(void) override
uhd/host/lib/usrp/x300/x300_impl.cpp: _tree->create(mb_path 
/ "fw_version")
uhd/host/lib/usrp/b200/b200_impl.cpp: 
_tree->create("/mboards/0/fw_version")
uhd/host/lib/usrp_clock/octoclock/octoclock_impl.cpp: _proto_ver = 
_get_fw_version(oc);
uhd/host/lib/usrp_clock/octoclock/octoclock_impl.cpp: 
_tree->create(oc_path / "fw_version")
uhd/host/lib/usrp_clock/octoclock/octoclock_impl.cpp:uint32_t 
octoclock_impl::_get_fw_version(const std::string& oc)



So, a little bit further into the weeds


___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: Custom FPGA image "version" register

2022-11-08 Thread Marcus Müller
It's actually set in the firmware software code, firmware/usrp3/x300/x300_main.c towards 
the end. What the host-side UHD does is ask the firmware running on the X3x0 to reply with 
the content of that piece of memory.


How to figure out such things: you see how the code you found access a leaf "fw_version" 
in the almighty property tree.
You either get very clever with your debugger, or you're like me and just grep for 
fw_version in the uhd/host/ source code for '"fw_version"', find where that property is 
created (host/lib/usrp/x300/x300_impl.cpp), then check that source code file for the 
values/getters/setters that this property has, and see it is just in the end a value poked 
(via `iface->peek32(SR_ADDR(X300_FW_SHMEM_BASE, X300_FW_SHMEM_COMPAT_NUM));`) from the 
firmware.

From there, you go into uhd/firmware directory and find that place.

I'd honestly do roughly the same as for that firmware compatibility number, but outside 
the firmware, directly in FPGA fabric: you instantiate a settings_reg module in your 
verilog/VHDL, pick an address that isn't in use yet, and then query it from the iface with 
peek just like the compat version getter does. I'd recommend copying an already 
functioning settings_reg instance and modifying the address parameter accordingly :)


Best regards,
Marcus

On 08.11.22 18:47, ri28...@mit.edu wrote:


I found the following line in uhd_usrp_probe that looks like it does what I’m 
looking for:

|if (tree->exists(path / "fw_version")) {|

|ss << "FW Version: " << tree->access(path / "fw_version").get()|

|<< std::endl;|

|}|

The next question is where does the firmware version get set? I did some poking around 
fpga/usrp3/top, but it’s not immediately obvious. Is this set somewhere in the build 
scripts? I run the standard Makefile when I build my custom image. I would like to write 
something so I can definitely distinguish this FPGA is running my modified firmware.



___
USRP-users mailing list --usrp-users@lists.ettus.com
To unsubscribe send an email tousrp-users-le...@lists.ettus.com___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com


[USRP-users] Re: How can I define a global reg variable in Verilog between RFNOC blocks?

2022-11-08 Thread Brian Padalino
On Mon, Nov 7, 2022 at 6:29 PM Marcus Müller 
wrote:

> Hi sp,
>
> That sounds like a bad idea. How are you planning to synchronize access to
> that register?
>
> Generally, in almost *any* context, avoid global state. That makes things
> complicated and
> error prone; this is true for python as much as it is for C++, as much as
> it is for
> digital hardware design (in verilog or any other way); it's even true for
> design of
> mechanical machine factory floors (if you make each processing step as
> independent from
> the other as possible, you increase reliability).
>

As a point of order, though, reducing redundancy is also an admirable goal.

I think the idea of sharing registers between multiple RFNoC blocks is not
a bad idea.  It's the idea of a single configuration space with fanouts to
multiple consumers.  In C++, imagine it as a singleton of configuration
parameters to be referenced during execution.

As a practical example, imagine you have a TDMA system which needs timings
defined by which the TX and RX both adhere.  Or a modulation/coding scheme
which is shared between RX and TX.  These are independent blocks with
common configuration items.  A suggestion to duplicate registers would not
be seen as appropriate - there is a singular configuration space with
fanout to multiple blocks.

>From an FPGA perspective, it is not unheard of that a registerfile may be
common amongst numerous individual blocks which make up a system.  The
suggestion earlier, I believe, was to have a custom input to the block
which is the shared configuration space.

Now, speaking in terms of RFNoC, I imagine this as an RFNoC block which is
the configuration space, and has no flows in or out but only exists in the
register space.  It has outputs which fanout but no other inputs.

Is there a document which describes how to build this type of system with
RFNoC?  Custom output/input port automatically instantiated with the
system?  Or does it need to be a custom instantiation after the rest of it
has been templated?

Thanks,
Brian
___
USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-le...@lists.ettus.com