Hello, I've found an issue with the Rhodium block controller code (rhodium_radio_control.cpp) where the daughterboard serial number is not handled correctly. If you look at line 452 here: https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/dboard/rhodium/rhodium_radio_control.cpp
It looks like this: const std::vector<uint8_t> db_serial_u8 = get_db_eeprom().count("serial") ? std::vector<uint8_t>() : get_db_eeprom().at("serial"); This code attempts to check for the number of instances of "serial". If it does find an instance of "serial", it creates an empty vector and assigns that to "db_serial_u8". If it does NOT find an instance of "serial," it attempts to assign the appropriate "serial" value to "db_serial_u8". I believe this is backwards, and the correct code should be: const std::vector<uint8_t> db_serial_u8 = get_db_eeprom().count("serial") ? get_db_eeprom().at("serial") : std::vector<uint8_t>(); Before making this change and rebuilding UHD, RX IQ calibration coefficients (files generated from the "uhd_cal_rx_iq_balance" tool) were not getting properly loaded on an N320. After making this change, the calibration coefficients are loaded and working as expected. I can tell this both from debug messages and by looking at the FFT of received samples (reduced image when the calibration coefficient file is present). I'm using UHD 4.1.0.5, but I see this issue still exists in "master" -- see the link above. Thanks, Jim
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com