[USRP-users] GPSDO on usrp2

Dario Lombardo dario.lombardo.ml at gmail.com
Tue Jun 5 05:46:52 EDT 2012


What I can see now is both ref_locked and gpd_locked. But if I run kal I
still have 15kHz of offset.
Which further steps can I do?

On Tue, Jun 5, 2012 at 10:56 AM, Haris Kremo <hkremo at jp.toyota-itc.com>wrote:

>  Dario,
>
> Putting aside the error below, the GPGGA sentence claims your device is
> locked to the satellite signal. It sees 9 satellites and in conjunction
> with Google maps claims you are in Torino.
>
> http://aprs.gids.nl/nmea/#gga
>
> From what I understand, ref_lock tells whether the internal USRP clock is
> locked to the GPSDO or an external reference.
>
> Hope that helps,
>
> H.
>
> On 6/5/2012 4:39 PM, Dario Lombardo wrote:
>
> Ryan
>
>  it compiles and runs perfectly. There's the output
>
>  $ ./test_gpsdo
> linux; GNU C++ version 4.5.1 20100924 (Red Hat 4.5.1-4); Boost_104400;
> UHD_003.004.002-128-g12f7a5c9
>
>
>  Creating the usrp device with: ...
> -- Opening a USRP2/N-Series device...
> -- Current recv frame size: 1472 bytes
> -- Current send frame size: 1472 bytes
> -- Found a Jackson Labs GPS
> -- Setting references to the internal GPSDO
> -- Initializing time to the internal GPSDO
> Using Device: Single USRP:
>   Device: USRP2 / N-Series Device
>   Mboard 0: N210r4
>   RX Channel: 0
>     RX DSP: 0
>     RX Dboard: A
>     RX Subdev: RFX900 RX
>   TX Channel: 0
>     TX DSP: 0
>     TX Dboard: A
>      TX Subdev: RFX900 TX
>
>
>  Querying gps_time sensor...
> Sensor output: GPS epoch time: 1338881388 seconds
>
>
>  Querying gps_locked sensor...
> Sensor output: GPS lock status: locked
>
>
>  Querying ref_locked sensor...
> Sensor output: Ref: unlocked
>
>
>  Querying gps_gpgga sensor...
>  ensor output: GPS_GPGGA: $GPGGA,072949.00,4506.7212,N,0740.3228
> ,E,2,09,1.1,271.7,M,47.2,M,,*5C
>
>
>  Querying gps_gprmc sensor...
>  ensor output: GPS_GPRMC: $GPRMC,072950.00,A,4506.7212,N,0740.3228
> ,E,1.1,0.0,050612,,*03
>
>
>  Querying gps_gpgsa sensor...
> Error: LookupError: Path not found in tree: /mboards/0/sensors/gps_gpgsa
>
>  Which output should be taken into account, gps_locked, or ref_locked?
> If ref_locked, I think that the "clear view of the sky" should be
> improved... since a small roof out of my window could partially hide the
> sky. I can try to move my equipment to the courtyard. Should it be useful?
>
> On Mon, Jun 4, 2012 at 8:57 PM, Ryan Connelly <
> ryan.connelly.6742 at gmail.com> wrote:
>
>> The GPS antenna should have a clear unobstructed view of the sky. Also
>> if the GPS antenna has a little metal dimple on one of its sides, it
>> has to be facing up towards the sky.
>>
>> Here is a C++ program written by someone a while back to check GPS
>> sensors. I don't know if it still works but that gives you an idea of
>> how to query the sensor info. One of the sensors outputs the GGA info
>> as an NMEA string. Here's a link to read the string:
>> http://www.gpsinformation.org/dale/nmea.htm#GGA
>>
>>
>> ---------------------file:
>>
>> test_gpsdo.cpp--------------------------------------------------------------------
>> --------------------example compile: g++ -luhd
>> -lboot_program_options-mt test_gpsdo.cpp -o test_gpsdo -------
>> --------------------example usage: ./test_gpsdo --args
>> "addr=192.168.10.2"-----------------------------------
>>
>> // author: Anonymous ( based on
>> http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions
>> //
>> /6bd7281f83d5311675847b31746525841657c057/entry/host/examples/test_pps_input.cpp
>> )
>> // date: 2012/02/16
>> // purpose: access gpsdo information (by querying all the gpsdo
>> sensors) and output results to console
>>
>> #include <uhd/utils/thread_priority.hpp>
>> #include <uhd/utils/safe_main.hpp>
>> #include <uhd/usrp/multi_usrp.hpp>
>> #include <boost/program_options.hpp>
>> #include <boost/format.hpp>
>> #include <boost/thread.hpp>
>> #include <iostream>
>> #include <complex>
>>
>> namespace po = boost::program_options;
>> int UHD_SAFE_MAIN(int argc, char *argv[]){
>>
>>   uhd::set_thread_priority_safe();
>>
>>   //variables to be set by po
>>   std::string args;
>>
>>   //setup the program options
>>   po::options_description desc("Allowed options");
>>   desc.add_options()
>>       ("help", "help message")
>>       ("args", po::value<std::string>(&args)->default_value(""),
>> "single uhd device address args")
>>   ;
>>
>>   po::variables_map vm;
>>   po::store(po::parse_command_line(argc, argv, desc), vm);
>>   po::notify(vm);
>>
>>   //print the help message
>>   if (vm.count("help")){
>>       std::cout << boost::format("UHD Test PPS Input %s") % desc <<
>> std::endl;
>>       return ~0;
>>   }
>>
>>   //create a usrp device
>>   std::cout << std::endl;
>>   std::cout << boost::format("Creating the usrp device with: %s...")
>> % args << std::endl;
>>   uhd::usrp::multi_usrp::sptr usrp = uhd::usrp::multi_usrp::make(args);
>>   std::cout << boost::format("Using Device: %s") %
>> usrp->get_pp_string() << std::endl;
>>
>>       //query gpsdo sensors and output to console
>>       //gps_time sensor
>>       std::cout << std::endl << "Querying gps_time sensor..." <<
>> std::endl;
>>       uhd::sensor_value_t val_gps_time =
>> usrp->get_mboard_sensor("gps_time",0);
>>       std::cout << boost::format("Sensor output: %s") %
>> val_gps_time.to_pp_string() << std::endl << std::endl;
>>       //gps_locked sensor
>>       std::cout << std::endl << "Querying gps_locked sensor..." <<
>> std::endl;
>>       uhd::sensor_value_t val_gps_locked =
>> usrp->get_mboard_sensor("gps_locked",0);
>>       std::cout << boost::format("Sensor output: %s") %
>> val_gps_locked.to_pp_string() << std::endl << std::endl;
>>       //ref_locked sensor
>>       std::cout << std::endl << "Querying ref_locked sensor..." <<
>> std::endl;
>>       uhd::sensor_value_t val_ref_locked =
>> usrp->get_mboard_sensor("ref_locked",0);
>>       std::cout << boost::format("Sensor output: %s") %
>> val_ref_locked.to_pp_string() << std::endl << std::endl;
>>       //gps_gpgga sensor
>>       std::cout << std::endl << "Querying gps_gpgga sensor..." <<
>> std::endl;
>>       uhd::sensor_value_t val_gps_gpgga =
>> usrp->get_mboard_sensor("gps_gpgga",0);
>>       std::cout << boost::format("Sensor output: %s") %
>> val_gps_gpgga.to_pp_string() << std::endl << std::endl;
>>       //gps_gprmc sensor
>>       std::cout << std::endl << "Querying gps_gprmc sensor..." <<
>> std::endl;
>>       uhd::sensor_value_t val_gps_gprmc =
>> usrp->get_mboard_sensor("gps_gprmc",0);
>>       std::cout << boost::format("Sensor output: %s") %
>> val_gps_gprmc.to_pp_string() << std::endl << std::endl;
>>       //gps_gpgsa sensor
>>       std::cout << std::endl << "Querying gps_gpgsa sensor..." <<
>> std::endl;
>>       uhd::sensor_value_t val_gps_gpgsa =
>> usrp->get_mboard_sensor("gps_gpgsa",0);
>>       std::cout << boost::format("Sensor output: %s") %
>> val_gps_gpgsa.to_pp_string() << std::endl << std::endl;
>>
>>       return 0;
>> }
>>
>> -----------------------------------------------------------
>>
>>
>> On Mon, Jun 4, 2012 at 2:19 PM, Dario Lombardo
>> <dario.lombardo.ml at gmail.com> wrote:
>> >
>> >
>> > On Mon, Jun 4, 2012 at 8:03 PM, Nick Foster <nick at ettus.com> wrote:
>> >>
>> >> I guess I suspect that you aren't getting a valid GPS signal.
>> >
>> >
>> > It's what others have suggested. But I don't know how to improve it.
>> >
>> >>
>> >> I'd suggest doing a little coding and checking the GPSDO lock status,
>> >> probably easiest to modify the UHD examples.
>> >
>> >
>> > Can you suggest one to start from?
>> >
>> >>
>> >> What antenna are you using?
>> >
>> >
>> > It's a GPS/GSM antenna (antennas are packed together, with separate
>> cables
>> > to go to the board).
>> >
>> >>
>> >> Does it have a clear view of the sky?
>> >
>> >
>> > More or less. I'm in a building and the usrp is in my office. Inside the
>> > building I can't get the GPS signal, but I can get it close to my
>> window (I
>> > mean with other GPS equipments). I don't know how clean the GPS signal
>> must
>> > be caught.
>> >
>> > _______________________________________________
>> > USRP-users mailing list
>> > USRP-users at lists.ettus.com
>> > http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>> >
>>
>> _______________________________________________
>> USRP-users mailing list
>> USRP-users at lists.ettus.com
>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>
>
>
> _______________________________________________
> USRP-users mailing listUSRP-users at lists.ettus.comhttp://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
>
>
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20120605/c5fb94a2/attachment-0002.html>


More information about the USRP-users mailing list