Hello,
I am trying to adapt the existing cal_tx/rx_iq_balance utility to a
development daughterboard.
Initially, I am trying to just get the existing code running and then I
intend to modify it if it is not compatible out-of-the-box with my dboard.
At the moment, I am working through a series of obstacles that throw errors
of the "this device is not supported" nature.
I have found the code that has a hardcoded check list for known boards and
am adding mine to the list.
There is one part in usrp_cal_utils.hpp that requires modification but I am
unsure about it.
There is a section that checks motherboard names, USRP2, B100, E100, and
E110.
I can deal with the daughterboard issues, but do not know why the USRP1 does
not show up in the list of checks.
Also, if I was to simply add the USRP1 to the code, I'm not so sure what the
tx/rx_rates are referring to in the other boards, and what would be a
suitable value for the USRP1.
This is the code section I am referring to:
static inline void set_optimum_defaults(uhd::usrp::multi_usrp::sptr usrp){
uhd::property_tree::sptr tree = usrp->get_device()->get_tree();
const uhd::fs_path mb_path = "/mboards/0";
const std::string mb_name = tree->access<std::string>(mb_path /
"name").get();
if (mb_name.find("USRP2") != std::string::npos or mb_name.find("N200")
!= std::string::npos or mb_name.find("N210") != std::string::npos){
usrp->set_tx_rate(12.5e6);
usrp->set_rx_rate(12.5e6);
}
else if (mb_name.find("B100") != std::string::npos){
usrp->set_tx_rate(4e6);
usrp->set_rx_rate(4e6);
}
else if (mb_name.find("E100") != std::string::npos or
mb_name.find("E110") != std::string::npos){
usrp->set_tx_rate(4e6);
usrp->set_rx_rate(8e6);
}
else{
throw std::runtime_error("self-calibration is not supported for this
hardware");
^^^ THIS IS THE CASE RUN WITH USRP1 ^^^
}
So in summary, my questions are:
1. Can I simply expand the code to include the USRP1 like so:
else if (mb_name.find("USRP1") != std::string::npos){
usrp->set_tx_rate(xxx);
usrp->set_rx_rate(xxx);
Or is the USRP1 physically incompatible?