v1.397: obtaining full-resolution GPS location (admin privileges necessary)


  • It appears that [kiwi_IP}:[kiwi_port]/status only returns the lat/lon from the Webpage tab rather than any value actually read from the GPS. Is there a way to retrieve the GPS's idea of lat/lon when it is present? I'm trying to make a mobile kiwi system that can be used to map signals and noise vs. location and it would be very useful to use the kiwi to provide position information as well as levels. If there isn't I'll have to bring in another GPS receiver which seems a shame.
  • No, because /status is a public interface (for public Kiwis). High-resolution GPS location is never revealed on public interfaces. I have a long standing commitment to a number of people about this.

    The only thing I'd consider doing is adding a Kiwi server-side command you could run to dump the GPS location. That way you'd have to use ssh from any non-Kiwi machine to get to it.
  • Thanks John. Maybe I'm the only one who wants it in which case adding a separate GPS receiver to the portable system is the right solution. I'd forgotten that publicly available location would be sensitive.
  • jksjks
    edited June 2020
    I've already got something working. So I'll put it in the next release.
  • jksjks
    edited June 2020
    In the next release send a "hangup" signal to the Kiwi server, sleep a bit, then look at a file in the config directory.
    Sample command from a Linux host:
    ssh root@[Kiwi_IP] 'killall -v -s HUP kiwid; sleep 3; cat /root/kiwi.config/info.json'
    The contents of info.json will be like:
    { "utc": "Wed Jun 17 02:42:11 2020", "gps": { "lat": 51.nnnnnn, "lon": -2.nnnnnn, "grid": "IO81xx", "fixes": 20, "fixes_min": 14 } }
    Process with your favorite JSON format processor.
  • The info.json thing is in v1.397 that was just released.
  • Thanks John. That seems to work well. Was the 3 seconds delay to write the file a guess that might be shortened or the result of a measurement? It's probably OK as is, given the GPS positional jitter/wander and how fast I can move the receiving system between points of stability, even with a quadcopter, but I can investigate if there's reason to try.
    Glenn n6gn
  • The 3 seconds is arbitrary. Experiment and see what happens.
  • Thanks for adding that John. It seems to work fine and I've been able to look at the on-board GPS's stability. I find it surprisingly good in spite of very poor antenna positioning. Here's a map of 'wander' of a fixed kiwi over an hours' time

    Axes represent on the order of 1m in latitude and 2m in longitude and in spite of antenna position on NW corner of house and entirely shielded by it this small amount of positional error is all I see after a few ten's of minutes warmup in the Kiwi:
  • jksjks
    edited June 2020
    Yes, that seems pretty good. An entire subject I was not aware of is the effect of not having good satellite reception geometry, usually as a consequence of antenna shielding: https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation)
  • Since reporting my experience with administrative GPS access which John kindly added to the kiwiSDR's capabilities, I feel I need to provide an update based on further investigation.

    With help from G3ZIL it is now clear that the apparent high precision of the GPS data was due to the Kalman filter. Additional "step change" tests were performed whereby I moved the kiwi/GPS about 20m between two points along a line of longitude and nearly N/S. I did this twice, once with the Kalman filter switched on and another time with it off. For each test the system was given time to stabilize prior to start of test.

    The general results seem to be much less noisy with filter ON but having the step/impulse response of a narrow bandwidth filter as should be expected. This filter, like any similar filter, has group delay. This means that rapid changes don't propagate through it quickly and in order to get good data one must wait.
    With the filter switched OFF the data is very noisy. This is what the filter takes out. Standard deviation was on the order of 7m in longitude and in this case 50 or more samples need to be taken to get within the ~1m range.
    For my portable/active-antenna/GPS/kiwi/battery measurement system and John's administrative access method, taking this many data points requires many minutes.

    I think the summary may be that while the internal GPS can eventually give good data, this data must be filtered either by the Kalman filter or otherwise in order to achieve precision. It appears that the time required for this may be significantly longer than for other GPS receivers.
    If your kiwi/GPS is stationary, has good satellite coverage and tracking you may be able to achieve pretty good location accuracy, however if you are moving it be prepared to process the data and wait a while if you want precision.

    At least that's how it looks at this point.
  • To me as the built in GPS works for the intended purpose I wonder if there is some way to use an external GPS stream rather than pushing the limited processing power?.
    I've a couple FrSky GPS modules which are using their own S-BUS comms but there are many others specifically for RC flight use with Android/Linux (see Ardupilot).
    I think they might be NMEA format (don't quote me).
    I've just ordered a couple of USB GPS dongles as I wanted one for other HAM timing use.
    If standard serial (E.G. USB) GPS was an option there is nothing to stop someone tailoring the GPS cost, bands and location to the application.

    I don't mean to be negative by the way, looking to improve GPS while moving is great for a few users but probably more work than taking external data(?).
  • Inexpensive GPS receivers do work fine and would perhaps be better for small-area surveying. However I'm now thinking that using a geostationary satellite to provide location data across a typical residence-sized yard is probably not the best way to go. I think for this it may be better to physically survey - lay the turf out as a grid and manually indicate location with each data/location set acquired. For somewhat larger areas alternate receiver(s) have already been shown to work. The GPS in any of my quadcopters can hold the craft into very tight position so clearly this is not too difficult to do with this kind of equipment.
    Since at the moment I'm trying to use a portable kiwi to understand near-field noise source characteristics I think Google maps with the above method may be just fine.

    The GPS in the Kiwi is an economical way to provide time/frequency data and serves that purpose well. Fine-grained surveying really isn't in the requirements list. I really was only updating my previous report as a caution in case others might try to push performance past what seemed possible because of my first report.
  • Here's a plot of the two 21m steps in Latitude with the Kalman filter turned off midway between the moves.
Sign In or Register to comment.