Internal Measurement

27 views
Skip to first unread message

ahme...@gmail.com

unread,
Jan 7, 2023, 9:31:56 PM1/7/23
to Powder Users
Hi 

I trying to run internal measurement using Emulab-meb mimo BS where pilots are transmitted from all antennas and received by all antennas (without using reference node). I enabled "internal_measurement" and disabled reference node from config.cc file. My baseStation-only json file is as follow:

{

        "serial_file" : "files/topology.json",

        "frequency" : 3.54e9,

        "sample_rate" : 5e6,

        "channel" : "AB",

        "rx_gain_a" : 65,

        "tx_gain_a" : 81,

        "rx_gain_b" : 65,

        "tx_gain_b" : 81,

        "max_frame" : 4000,

        "ofdm_symbol_per_slot" : 1,

        "fft_size" : 512,

        "cp_size" : 32,

        "ofdm_tx_zero_prefix" : 160,

        "ofdm_tx_zero_postfix" : 160,

        "pilot_seq": "zadoff-chu",

        "internal_measurement": true

}

and my topology file is attached. In this topology file you will find that I using BS antennas serial IDs in both sections (BS and client). When I did this I got this error:

"72:739661 ERROR: No calibration node ID found in topology file!"

I also tried to remove client sdr section from topology file, but I also got an error saying "terminate called after throwing an instance of 'std::out_of_range

 what():  vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)" 

My third attempt is to add frame_schedule to baseStation json file, and I got the error

HDF5-DIAG: Error detected in HDF5 (1.10.4) thread 140716909095744:

  #000: ../../../src/H5A.c line 619 in H5Awrite(): null attribute buffer

    major: Invalid arguments to routine

    minor: Bad value

terminate called after throwing an instance of 'H5::AttributeIException'


Any suggestion to figure this issue out would appreciated.


Thanks


Topology.json

Oscar Bejarano

unread,
Jan 8, 2023, 12:49:15 PM1/8/23
to powder...@googlegroups.com

Hi Ahmed,

Are you using the latest develop branch?

It seems like the code is looking for the reference node even though you've disabled it.
We might need to change that, but meanwhile try adding the reference node serial such that the structure of the topology file is as follows (ignore the actual serials, this example is from a different setup. replace with the correct ref node.):

The 'internal measurements' mode was something we added for our own tests so we don't really maintain it.
So, it is possible it will break again. Let us know if you are still having issues and we'll take a closer look.
Best,
-Oscar
--
You received this message because you are subscribed to the Google Groups "Powder Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to powder-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/powder-users/7d345e3d-d754-403e-b60f-41829acc27e3n%40googlegroups.com.

Rahman Doost-Mohammady

unread,
Jan 8, 2023, 5:38:40 PM1/8/23
to powder...@googlegroups.com
To disable the need for the reference node, try adding the following line to your JSON config

"reference_node_enable" : false

Also, play with the value of the parameter "meas_guard_interval_mult" . The more antennas you have, the value should be increased to support real-time dataset recording.

Rahman


ahme...@gmail.com

unread,
Jan 14, 2023, 1:32:59 AM1/14/23
to Powder Users
Thanks Oscar and Rahman 
I have tried this again with your suggestions. I added "reference_node_enable" : false to my config json and it solved the reference node issue. However, another issue has raised which is saying "Client Schedule is not supported!". I have tried multiple things such as increasing the number of guards through defining the UE frame schedule in the config json and also by using "meas_guard_interval_mult" but that did not solve the issue.


Thanks

Rahman Doost-Mohammady

unread,
Jan 14, 2023, 10:26:00 AM1/14/23
to powder...@googlegroups.com
For this mode to work, you also need to remove the client serial numbers block in topology.json. 


--
Rahman Doost-Mohammady,
Assistant Research Professor
ECE Department, Rice University
Duncan Hall 2091

ahme...@gmail.com

unread,
Jan 19, 2023, 11:48:08 PM1/19/23
to Powder Users
Thanks Rahman 

I am having another issue. It says "WARNG: DataSet: Failed to write to dataset at primary dim index: 234terminate called after throwing an instance of 'H5::DataSetIException'
Abort (core dumped)"
When I decrease the "max_frame" to 2000 or less, it works fine and save the hdf5, but when I keep it 4000, it raise this error. I have tried several config setup, such as increasing "ofdm_symbol_per_slot" but did not work. Is this error related to memory space I have? or there are any config I can change to resolve this.

Thanks

Oscar Bejarano

unread,
Jan 20, 2023, 10:31:48 AM1/20/23
to powder...@googlegroups.com

Hi Ahmed,

Can you please share your configuration and topology files?
In which directory are you running things (path)? also, what profile are you using?

-Oscar

ahme...@gmail.com

unread,
Jan 20, 2023, 11:26:22 AM1/20/23
to Powder Users
Hi

I attached my json config. file.
the path I am running things is /users/ahmedpdx/RENEWLab/CC/Sounder
My profile is ahme...@pc17-fort.emulab.net


internal_meas.json

Oscar Bejarano

unread,
Jan 20, 2023, 12:02:22 PM1/20/23
to powder...@googlegroups.com

Alright, a couple of things:

1) You should be running things from the "scratch" directory (/scratch/).
When your experiment launches, it should automatically clone the repo into /scratch/repos/
You would have something like: /scratch/repos/RENEWLab/
If that's not the case, please let us know, something in the startup script might've failed.
There isn't enough memory in your home folder to run something like the sounder.
Here's more info on how to get started: https://wiki.renew-wireless.org/en/quickstartguide/userenewonpowder

2) The profile is what you choose when you are about to launch your experiment. You should be using "renewlab"
Just want to make sure that's the case.

3) Also, just a reminder to switch to the "develop" branch ('git checkout develop') and make sure it's the latest ('git pull', 'git log' and check it's d734485 from Dec 6, 2022).

Give that a try and let us know if you find any other issues.

-Oscar

Oscar Bejarano

unread,
Mar 15, 2023, 5:15:12 PM3/15/23
to powder...@googlegroups.com

Hi Ahmed,

After our office hours I spent some time trying to reproduce your issue.
At this point I believe you guys are using an old version of the code.

If I plot the magnitude on a grid using your dataset, you are right, you get this funny wrap-around at antenna 32 (first figure below).
However, I collected some data today using even more antennas and I do not see that issue (second figure below).
Please, ignore those vertical/horizontal lines of course. They are probably faulty radios. I ran this test in our local setup so it won't correspond exactly to what's available on POWDER, but, the code is the same...

Also, the metadata in your file is different to the metadata in the latest code.
(I didn't dig deeper to find out when that changed but at this point I don't think it's relevant.)

Can you try again using the latest code from the develop branch?
Ping me when you have an experiment running and maybe we can look at the data together.

I'll try to push this parsing/plotting code soon so you can make use of it as well.

Best,

-Oscar



Reply all
Reply to author
Forward
0 new messages