SG-2340/MBT-4220 GPS-Lure Stratum-1 NTP clock under pfSense?


  • Netgate Administrator

    Sorry, I meant to reply here. I did recall correctly, there is no driver so no PPS and hence we don't have any docs for it.

    It may not be hard to adapt at all, that driver looks fairly promising.

    Steve



  • @stephenw10
    I figured something like that. Unfortunately, I have close to zero experience writing device drivers (what what little I have was ages ago on a different platform).

    Is there anyone outside the pfSense community doing any FreeBSD on these boards?

    As far as using the GPS for getting time without PPS: is there anywhere any information on how to configure the serial GPS settings for that?

    ( https://..../services_ntpd_gps.php )

    It seems there are options for MediaTek (which is what I understand is used on the board), and flags that allow for disabling PPS processing. But as for the rest of what's there, I have no idea what the module would require.


  • Netgate Administrator

    Hmm, I used the generic type with a USB connected GPS previously.

    Do you see the com port? You can probably just try connecting to it using cu and some baud rates etc. You should see it spitting NMEA.

    Steve





  • Depending on what your time is worth (no pun intended), this $300 standalone unit with external antenna has worked well for me for years.

    GPS NTP Network Time Server (TM1000A)
    https://timemachinescorp.com/product/gps-time-server-tm1000a/


  • LAYER 8 Global Moderator

    Yup you could go that route for sure... Or for like less than a $100 total and a few minutes time you could setup a pi with a hat and run that as stratum 1.. I have one on my home network, that serves to the pool and my local network for like couple of years now.



  • Thanks for the various alternative proposals.

    Having a stratum-1 NTP clock isn't that important for my purposes, that I what the hassle of once more device that can break, requires an outlet, etc.

    It would just be "cute" to have one, given that the device I use as firewall/router/VPN box would be able to provide one, given proper drivers.

    So it's more about using a device to its fullest, than having a hardcore need for a stratum-1 clock.


  • LAYER 8 Global Moderator

    Hear yah - they really should put a disclaimer that currently does not work on pfsense/freebsd..Until such time that there is driver that allows it to, etc.


  • Netgate Administrator

    I agree, I'll try to get something added.

    Steve


  • LAYER 8 Global Moderator

    I would assume most people buying off the hardware off netgate store prob wanting to use it as their pfsense box ;) So yeah before some actually bitches should prob put disclaimers on any add on sort of hardware that isn't currently easy to get working, without like writing your own driver ;) hehehe



  • Well, on the freeBSD forum (see above links), someone said there's already a working GPIO driver for the board, so all that's missing is the PPS aspect.

    I'm trying to see if I can get more information on that. Maybe sending that person who wrote the GPIO driver for the board a GPS module might be an incentive for him to write the PPS driver.

    That would be a win-win for everyone...



  • Any chance someone knows how the config should look like to simply get the GPS to provide time, i.e. without the PPS?

    I always get that, when I look in the NTP status:

    May 18 23:18:46	ntpd	34463	kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
    May 18 23:18:46	ntpd	34463	kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
    May 18 23:18:46	ntpd	34463	GPS_NMEA(0) serial /dev/gps0 open at 9600 bps
    

    And that with an external GPS antenna, in a location where my phone has no trouble picking up a GPS signal.
    So I assume it's not actually the clock/GPS not being synced up, but the settings being wrong.

    Under NTP "Serial GPS", I have the following:

    GPS Type: MediaTek
    Serial Port: cuau0, 9600 baud
    NMEA Sentences: ZDA or ZDG
    Flags: Prefer this clock, Display extended GPS status
    GPS Initialization:

    $PMTK225,02B
    $PMTK314,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
    28
    $PMTK301,22E
    $PMTK320,0
    2F
    $PMTK330,02E
    $PMTK386,0
    23
    $PMTK397,023
    $PMTK251,9600
    17

    So far no dice....


  • Netgate Administrator

    Are you seeing useful any useful output from the device at 9600? The one I had ran at a lower board rate, 2400 I think.

    ntpd won't sync to what it sees as a bad clock source but you should still see it showing a time value in the ntp status.

    Steve


  • Netgate Administrator

    Mmm, OK the docs indicate 9600 but also to use serial port 4... do you see more than one serial port?



  • @stephenw10

    I tried to use cu to check any device output, but I did't get any, but seeing that least I dealt with serial ports was back when kermit was still under active development, that doesn't mean much, I may just have invoked cu the wrong way.

    I picked 9600, because that's what the Linux setup showed. The standard MediaTek setup is 4800 (if selected on the pop-up), tried that, too, but no change. Also, I updated the init strings to 9600 baud, because they showed 4800, even after increasing the rate to 9600.

    I know about the port number, but cuau0 is the only device showing. Since pfSense supports the serial console, and since that supposedly uses the same pins as the ones to which the GPS lure is attached to (and not regular USB-to-serial), I figure that is the proper device.

    If there's a way to use different serial interfaces, I haven't found it.



  • Does anyone have any input one what it takes to access the GPS module, simply as a clock, without PPS?
    Can't seem to get that working, either.


  • Netgate Administrator

    Ok, this looks promising.

    The minnowboard has a standard com port that is brought out to the 6 pin debug header. That's where you get the serial console if you enable it, /dev/cuau0. It also has two UARTs on the low speed header that the GPS-Lure uses but it appears that in the default config FreeBSD/pfSense does not recognise and attach to them.

    But! If you change the LPSS & SCC Devices Mode to PCI mode in the BIOS an additional two com ports are then detected. That's in Device Manager > System Setup > South Cluster Config > LPSS & SCC Config.
    Also check that both UARTs are enabled there. Mine were here but I've played around with those settings I can't be sure they were by default.

    Anyway once that is done and you see cuau2 and cuau3 in /dev try those ports for NMEA signals from the GPS.

    Steve



  • @stephenw10 Cool, thanks!
    That brings us quite a step forward. (BTW: is there documentation anywhere on all the settings in there? Many of them are obvious, others not, managed to enable some things that resulted in the NICs no longer being recognized by the system, so I reset to factory settings, and then just re-enabled the UARTs).

    Anyway, that done, I now get this, which means the GPS module is seen by the system:

    [2.5.0-DEVELOPMENT][admin@local]/root: cu -s 9600 -l cuau2
    Connected
    $GPGGA,010835.800,,,,,0,0,,,M,,M,,*4F
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPRMC,010835.800,V,,,,,0.00,0.00,060180,,,N*45
    $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
    $GPGGA,010836.800,,,,,0,0,,,M,,M,,*4C
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPRMC,010836.800,V,,,,,0.00,0.00,060180,,,N*46
    $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
    $GPGGA,010837.800,,,,,0,0,,,M,,M,,*4D
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPRMC,010837.800,V,,,,,0.00,0.00,060180,,,N*47
    $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
    $GPGGA,010838.800,,,,,0,0,,,M,,M,,*42
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPGSV,1,1,00*79
    $GPRMC,010838.800,V,,,,,0.00,0.00,060180,,,N*48
    $GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
    $GPGGA,010839.800,,,,,0,0,,,M,,M,,*43
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    

    So, since is obvious from this, that the GPS module can't get a fix, that's not yet being quite there...

    Figuring that the patch antenna on the module inside a metal case might not be ideal, I invested into an external GPS antenna. My iPhone gets a GPS lock where the unit is, so I'd figure with an external antenna, that should be good enough of a location. Maybe not. Maybe the system just takes much longer to get a fix, as it's not assisted by cell tower and WiFi information to acquire one.
    Hopefully in a few hours or so, it will acquire a satellite fix.

    No matter what, at least we now know we can access the device, and that's the biggest obstacle.


  • Netgate Administrator

    There is this though it's a bit outdated: https://elinux.org/Minnowboard:MaxBios

    Yeah that looks like no satellites in view. And, yeah, it can take a while without agps. But that looks pretty promising otherwise. ☺

    Steve



  • @stephenw10 Just had an idea: is the external antenna detected automatically, or do the init commands enable it? If it's not automatic, and the integrated patch antenna is being used, inside of what's a metal case with a few vents, in a basement, I'd 100% be not surprised it can't get a satellite lock.

    On the other hand, if the switch-over is automatic, then I am surprised, because I'd expect an external antenna to have a better reception than what my iPhone gets, and that has no issue locking on to the GPS signal, basement and all.

    Wonder where I can find out, if the external antenna is recognized automatically...


  • Netgate Administrator

    Hmm, good question. Can you move it somewhere with better reception for the patch antenna as a test?

    Steve



  • @stephenw10 Not really, because of where internet comes into the house. I could just try to run the box stand-alone for a while to test, both with and without the cover of the case, and with and without the external antenna (if for some reason it should be busted), but I'd have to do that when I don't need access to the internet for a period of time...


  • Netgate Administrator

    Ok, looks like the external antenna is (or should be) used automatically. Does what you're using meet these specs?
    https://docs.netgate.com/platforms/minnowboard/lures/gps-lure/external-antenna-spec.html#recommended-external-antenna-specification

    Steve



  • @johnpoz said in SG-2340/MBT-4220 GPS-Lure Stratum-1 NTP clock under pfSense?:

    Yup you could go that route for sure... Or for like less than a $100 total and a few minutes time you could setup a pi with a hat and run that as stratum 1.. I have one on my home network, that serves to the pool and my local network for like couple of years now.

    Hi @johnpoz - have been following this thread and your post about using a Pi as a Stratum 1 NTP server intrigued me. Did a bit of research, and I think this could be a fun little project. Do you mind sharing a bit more how you went about it? For instance, did you follow a guide like this?

    https://www.ntpsec.org/white-papers/stratum-1-microserver-howto/

    Also, which components did you end up using for the Pi, especially which GPS module (HAT) and did you choose, and did have modify the Pi's case to make room for the GPS module's SMA connector?

    Thanks in advance.


  • Netgate Administrator

    It's no doubt a fun project but could you start a new thread for that in general discussion?

    This is the Netgate hardware section.

    Steve



  • @stephenw10 I used these:

    https://sixfab.com/product/sma-to-u-fl-rf-adapter-cable-150mm/

    and

    https://sixfab.com/product/external-active-gps-antenna-29db-sma-plug/

    which by my reading should fit the spec, but it's well possible I missed something crucial.



  • @stephenw10 said in SG-2340/MBT-4220 GPS-Lure Stratum-1 NTP clock under pfSense?:

    It's no doubt a fun project but could you start a new thread for that in general discussion?

    This is the Netgate hardware section.

    I posted it here, since both the GPS lure and the SG-2340 nee MBT-4220 were sold and bought by Netgate. AFAIK, Netgate is the prime source of the GPS lure.
    So I figured that would be the appropriate place, as I'm trying to get Netgate hardware running with Netgate software.

    But if there's a better spot for this, by all means, move the thread there.


  • Netgate Administrator

    No, you're fine here. 😀

    I meant discussion of a RasPi NTP server which would be neither Netgate or pfSense so more general discussion. Sorry I should have included an @tman222.

    Steve


  • Netgate Administrator

    I don't see any actual specs on that antenna. Was it supplied with anything additional?

    I would also expect it to work though....



  • Sure thing @stephenw10; apologies for going off-topic.

    Here is the new thread:

    https://forum.netgate.com/topic/143727/building-a-stratum-1-ntp-server-using-raspberry-pi



  • @stephenw10 said in SG-2340/MBT-4220 GPS-Lure Stratum-1 NTP clock under pfSense?:

    I don't see any actual specs on that antenna. Was it supplied with anything additional?

    I would also expect it to work though....

    Description lists this:

    *Description
    This GNSS (GPS, Galileo, Glonass) antenna has magnetic radome so it will stick to any steel structure like a roof of a car. It draws between 5-15mA and works in 2.2-5V DC range. You will need a sort of SMA to u.FL adapter cable to use it with u.FL modules/shields.

    50-ohm impedance
    3-meter cable length with standard SMA connector
    Polarization: RHCP
    Radome Material: ABS
    LNA Gain: 29±1 dB
    Noise Figure: 1.5dB
    Gain(Zenith): 3dB
    V.S.W.R: <1.5*



  • I'm thrilled to report, that it seems the GPS receiver finally has a lock, and I seem to get time just fine! :)

    NTP widget.png

    The settings used are:

    GPS Type: MediaTek
    Serial Port: cuau2
    Port speed: 9600 baud
    NMEA Sentences: All
    Fudge Time 1: <empty>
    Fudge Time 2: 0.400
    Stratum: <empty> i.e. 0
    Flags checked: Prefer this clock, Display extended GPS status
    Flags unchecked: all others, in particular the PPS
    Clock ID: <empty> i.e. GPS
    GPS Initialization:

    $PMTK225,0*2B
    $PMTK314,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0*28
    $PMTK301,2*2E
    $PMTK320,0*2F
    $PMTK330,0*2E
    $PMTK386,0*23
    $PMTK397,0*23
    $PMTK251,9600*17
    

    Auto correct malformed init commands: checked

    This is what got things working, after a LONG LONG wait. So at least it seems the external antenna is working and up to spec, if anyone else needs the same.

    So, having low expectations, that just made my day :D


  • Netgate Administrator

    Nice. What sort of jitter, offset etc do you see without the PPS signal?

    Steve



  • @stephenw10 said in SG-2340/MBT-4220 GPS-Lure Stratum-1 NTP clock under pfSense?:

    Nice. What sort of jitter, offset etc do you see without the PPS signal?

    Reported jitter is itself jittery: have seen it as low as 6-ish and as high as 235-ish. So it's all over the place.

    So on the low side: fine, on the high side: not ideal.

    I wonder if raising the baud rate and reporting frequency would help. I think the module is capable of 5Hz or even 10Hz up reporting, with the proper settings and baudrate.

    That would require some further tweaking of the init commands.


  • Netgate Administrator

    Mmm, yeah that's not great. With the PPS signal the jitter can be waay below 1ms. I think johnpoz was seeing ~10μs on his RasPi setup. Something must be done! 😀

    Steve



  • The idea to increase the update frequency may be foiled:
    for a higher update frequency (like 5 or 10Hz), it requires a correspondingly higher baud rate.
    The problem is, the firmware of the module specifies what default baud rate the module has, and I think these are programmed with 9600 baud.
    It is possible increase both update rate and baud rate with corresponding commands, the problem is, pfSense doesn't have a pre and post configuration baud rate.
    So if I indicate a higher baud rate in pfSense, then it won't be able to talk to the module to set the baud rate to the higher rate, and if I set 9600, and then tell the GPS module to go faster pfSense is stuck at the lower rate, as there's no "auto" setting.

    So either pfSense would need to have an auto-baud setting, so it could sync up at 9600, send over the new config, and then resync at 38400 or 115200, or one would need an init baud rate, and a post-init baud rate, to which it would switch once the init commands are sent.

    In any case: I can't get pfSync to use a higher rate successfully, because either I can't send the init commands, or pfSync won't sync after.

    That means I'm stuck at the 9600/1Hz situation, unless I'd somehow took the risk of attempting to flash different firmware settings, so the module would communicate at 38400 or 115200 out of the the gate.



  • I know this thread is a bit dated, but a lot of good information here on using GPS with pfSense:

    https://forum.netgate.com/topic/51920/gps-receiver-ntp

    My original intention was just to try to a USB based GPS receiver since it's the cheapest approach, but upon seeing the warning in the documentation and reading that threat, it seems like a waste of time and money. PPS capability is also really important. Some more useful info:

    http://support.ntp.org/bin/view/Support/InexpensiveOemGps


  • Netgate Administrator

    Wow was that 2013. Yikes! 😬


  • Netgate Administrator

    Do you see a solid red LED on the lure when it has satellite lock?

    Steve



  • @stephenw10

    Something was blinking red at some point, just noticed the blinking, since the system is in a case, I’m not sure what.
    Can’t check now, as the unit is now at a remote site.
    If it’s important somehow, I can check it out myself in a couple of months...
    ..,otherwise I’d have to get maintenance staff involved.
    Is there a particular reason you ask?


Log in to reply