Slashdot Mirror


Your GPS Devices May Stop Working On April 6 If You Don't Or Can't Update Firmware (theregister.co.uk)

Zorro shares a report from The Register: Older satnavs and such devices won't be able to use America's Global Positioning System properly after April 6 unless they've been suitably updated or designed to handle a looming epoch rollover. GPS signals from satellites include a timestamp, needed in part to calculate one's location, that stores the week number using ten binary bits. That means the week number can have 210 or 1,024 integer values, counting from zero to 1,023 in this case. Every 1,024 weeks, or roughly every 20 years, the counter rolls over from 1,023 to zero. The first Saturday in April will mark the end of the 1,024th week, after which the counter will spill over from 1,023 to zero. The last time the week number overflowed like this was in 1999, nearly two decades on from the first epoch in January 1980. You can see where this is going. If devices in use today are not designed or patched to handle this latest rollover, they will revert to an earlier year after that 1,024th week in April, causing attempts to calculate position to potentially fail. System and navigation data could even be corrupted, we're warned. U.S. Homeland Security explained the issue in a write-up this week. GPS.gov also notes that the new CNAV and MNAV message formats will use a 13-bit week number, so this issue shouldn't happen again anytime soon. The site recommend users consult the manufacturer of their equipment to make sure they have the proper updates in place.

88 of 149 comments (clear)

  1. Thans for the forewarning by dunkelfalke · · Score: 2

    Going to ask our hardware supplier about this as soon as I arrive st work.

    --
    "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    1. Re:Thans for the forewarning by dunkelfalke · · Score: 2

      Well, sorry for that. Writing on a mobile phone while standing in a moving train is somewhat difficult.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    2. Re:Thans for the forewarning by CaptainDork · · Score: 1

      We need American Sign Language-keyboard translators when a GPS-enabled device determines that our coordinates are variable in three dimensions.

      --
      It little behooves the best of us to comment on the rest of us.
    3. Re:Thans for the forewarning by liquid_schwartz · · Score: 1

      Interesting sig. Were you on the committee that also redefined the word racism to be not even close to it's traditional and still common usage?

    4. Re:Thans for the forewarning by aybiss · · Score: 1

      I was there. Your name came up several times.

      --
      It's OK Bender, there's no such thing as 2.
  2. 210 by Askmum · · Score: 1

    That means the week number can have 210 or 1,024 integer values

    Only after reading the original article I understood the connection between 210 and 1024. Copy-paste is so wonderful.

    1. Re:210 by Racemaniac · · Score: 5, Informative

      for the poor souls who don't want to go to the article, it's supposed to be 2^10

    2. Re:210 by Mister+Transistor · · Score: 1

      Ah, thank you! I was trying to figure out what that was all about!

      It sounds like the new format will still have a similar problem, but by adding 3 bits, now it will still happen, but 8x less often. So what, every 160 years instead of 20 after the protocol changes?

      Feh. Don't hash dates!! What is it with these people? /seinfeld

      --
      -- You are in a maze of little, twisty passages, all different... --
    3. Re: 210 by Cmdln+Daco · · Score: 1

      Things that are overly'styled' should disappear.

      Me, I think the eighth bit should be stripped from chars on Slashdot. (Also control-g should sound the bell.)

    4. Re:210 by ConceptJunkie · · Score: 1

      The way I see it, in 160 years we won't need to write software any more. Either the computers will be writing software for us, or we won't have computers at all.

      --
      You are in a maze of twisty little passages, all alike.
  3. Seriously? by Calydor · · Score: 1

    The last time this happened was while the world was in a complete panic over the Y2K doomsday prophecies, and you're telling me that new GPS units made since then STILL do not have a way of handling this?!

    --
    -=This sig has nothing to do with my comment. Move along now=-
    1. Re: Seriously? by TheRaven64 · · Score: 1

      that was designed by competent enough people

      Ah, I see what the problem is, thank you.

      --
      I am TheRaven on Soylent News
    2. Re:Seriously? by arglebargle_xiv · · Score: 1

      "It would take extra time and money to develop and test it, and it's years away, why bother investing the effort, we, or the product, or both, won't be around long enough for it to be a problem".

  4. 13 Bit ? really ? by Crashmarik · · Score: 1

    They couldn't just go to a 16 bit number they had to save 3 freaking bits ? and for what to have an odd length numeric ?

    1. Re:13 Bit ? really ? by hawguy · · Score: 2

      They couldn't just go to a 16 bit number they had to save 3 freaking bits ? and for what to have an odd length numeric ?

      When you're sending data at 50 bits/second over an unreliable transport that makes retransmissions likely, every bit counts.

      But in the updated CNAV block, they increased the week number to 13 bits, which will extend the next time to zero to 2037

    2. Re:13 Bit ? really ? by mentil · · Score: 1

      I wonder if instead of doing that again, they'll just decide that something less susceptible to jamming, that's easier to deploy than a satellite constellation, might be better for positioning. Say, some self-calibrating optical system using image recognition, a high-res camera sensor, and maths, that looks at the position of the stars and combines that with an onboard clock to determine latitude and longitude. An auto-sextant, if you will, far more precise than one operated with eye and hand.

      --
      Corruption is convincing someone that the selfless ideal is the same as their selfish ideal.
    3. Re:13 Bit ? really ? by hawguy · · Score: 2

      I wonder if instead of doing that again, they'll just decide that something less susceptible to jamming, that's easier to deploy than a satellite constellation, might be better for positioning. Say, some self-calibrating optical system using image recognition, a high-res camera sensor, and maths, that looks at the position of the stars and combines that with an onboard clock to determine latitude and longitude. An auto-sextant, if you will, far more precise than one operated with eye and hand.

      Isn't that system easily jammed by smoke screens, clouds, and daylight?

    4. Re:13 Bit ? really ? by AmiMoJo · · Score: 1

      13 bits of week numbers is about 137 years... Shouldn't it be good for at least a century? Presumably they moved the epoch for the new field as well.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    5. Re:13 Bit ? really ? by CaptainDork · · Score: 1

      The Sun and its planets and their satellites move around the center of the Milky Way, which is moving through the universe.

      The current topology works better because it has less moving parts.

      The problem lies not in our stars ...

      --
      It little behooves the best of us to comment on the rest of us.
    6. Re:13 Bit ? really ? by CaptainDork · · Score: 1

      We're sorry, but in the US most school zones, in addition to limiting speeds, provide penalties for sextanting while driving.

      --
      It little behooves the best of us to comment on the rest of us.
    7. Re:13 Bit ? really ? by CaptainDork · · Score: 1

      No we're getting somewhere.

      The Mysterious 137

      If you have ever read Cargo Cult Science by Richard Feynman, you know that he believed that there were still many things that experts, or in this case, physicists, did not know. One of these ‘unknowns’ that he pointed out often to all of his colleagues was the mysterious number 137.

      --
      It little behooves the best of us to comment on the rest of us.
    8. Re:13 Bit ? really ? by Shotgun · · Score: 1

      Great. A system that I can disable with a hand flair.

      --
      Aah, change is good. -- Rafiki
      Yeah, but it ain't easy. -- Simba
    9. Re:13 Bit ? really ? by hawguy · · Score: 1

      13 bits of week numbers is about 137 years... Shouldn't it be good for at least a century? Presumably they moved the epoch for the new field as well.

      Yeah, that was a typo, I should have typed "2137". I noticed it after I posted, didn't think anyone else would so didn't bother posted a followup. If only there was some web technology allowed one to edit posts.

    10. Re:13 Bit ? really ? by ConceptJunkie · · Score: 1

      I got a ticket for that once. Then I had to register as a sextant offender. All the sailing ship captains are now shunning me.

      --
      You are in a maze of twisty little passages, all alike.
    11. Re:13 Bit ? really ? by CaptainDork · · Score: 1

      You insensitive clod.

      DO NOT BE FUDDIER THAN ME.

      Well played. :)

      --
      It little behooves the best of us to comment on the rest of us.
  5. Delayed failures by cpt+kangarooski · · Score: 5, Informative

    Another thing to watch out for are delayed failures caused by date windowing. Basically, some developers of devices using GPS-derived time were aware of the problem, and put in a pivot so that dates from before the device was made are treated as being in the future. (e.g. a device built in 2009, ten years after the last time this happened with GPS might treat dates from the 1999-2008 time period as being in 2019-2028, since that's when the device would first encounter them)

    So this may be causing random failures of devices for years.

    --
    -- This and all my posts are in the public domain. I am a lawyer. I am not your lawyer, and this is not legal advice.
    1. Re:Delayed failures by muecksteiner · · Score: 5, Interesting

      Right, thanks a lot for this piece of information, which probably solves an issue that has been puzzling to me for years.

      In my free time, I fly gliders. These things are very simple craft, but usually still have some sort of on-board computer which is used for basic navigation tasks (such as "given our glide capabilities, can we still reach airfield X from where we are right now?"). And as part of that, these on-board computers of course have to use GPS. As they are permanently installed in the cockpit, these devices tend to be quite rugged, and usually are kept around for many, many years: replacements are costly, and changing something in the panel of an aircraft, no matter how small, is a major PITA (what with the necessary regulatory paperwork, and all that). So a lot of gliders fly around with positively antique - but functional - electronics on their dashboards.

      In my particular glider, which is not exactly a new plane, this function is provided by a slightly ancient device from the early 90ies: a Filser DX50, which has been in the plane since it was built. And few years ago, this thing developed the classical sort of "GPS dementia" which is typical for devices that can't handle a roll-over. For my purposes (purely recreational flying), this is not a big issue: I don't care that the thing thinks it's 1995 all over again, as long as the position is correct. Which it, interestingly, still is.

      The only thing about the failure which was (and still is) a bit of a head-scratcher was that it occurred far away from any actual GPS decade roll-over: as far as I remember, it croaked during the change-over from 2014 to 2015. But your explanation might be the answer: when they created the device, they probably assumed "no one will use this device beyond 20 or 22 years after manufacture", and only patched the loop-around for that long.

    2. Re:Delayed failures by AmiMoJo · · Score: 1

      Could also be a rollover of days since some time in 1923 (16 bit signed int). 1923 is a popular epoch as that was when it was decided to settle on the modern calendar and dates before then can be ambiguous. It's also possible that it's just an overflow in the calculation using that value, that wasn't tested when it gets very large.

      Either way, I wouldn't rely on it working after April 6th. There doesn't appear to be a firmware fix either.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    3. Re:Delayed failures by Falconhell · · Score: 1

      Just built a new panel for my Glider, bought new Borgelt B800 vario and 7” tablet and only needed to replace 80mm altimeter with 57mm Winter. With the Borgelt vario I got a Bluetooth combiner, which combine FLARM and B800 outputs and makes them available to the tablet, which has its own GPS, baro altitude and accelerometers. Given my DG200-17C has a very small panel, it shouldn’t be they hard to do other gliders. I carry a Sony Z3 android phone in the side pocket as a fully independent backup.
      Modern various are vastly superior too. I wouldn’t fly without a FLARM these days.
      Time to bite the bullet! :)

    4. Re:Delayed failures by tepples · · Score: 1

      1923 is also when US copyright expiration was held up for two decades on account of Gershwin and Disney.

    5. Re:Delayed failures by muecksteiner · · Score: 1

      Yeah, I know, at some point I'll have to update the panel of my ship. But as I'm a computer scientist, a day of flying for me means getting away from it all. So I try to keep the amount of (visible) electronics in my plane to a bare minimum, and do the flying hipster thing of navigating with paper maps as much as possible. There is of course a FLARM, already now, even though I think these devices are far less useful than they are purported to be. But it can't hurt to broadcast your position to others, so why not.

      But the inane airspace structure in the country I usually fly in might force me to get something fancy, like an LX9050 or similar. I'd prefer not to have yet another computer display to watch, but tracking airspace boundaries on my smartphone while trying to extricate myself from the demented 3D onion layers which surround my home airfield is just too error prone and dangerous. And mounting a tablet in the glider is not for me: anything that gets in the way of bailing out in an emergency is a no-no. I recently borrowed a friend's plane, and it was so full of gizmos and gadgets on stalks and additional mountings that the interior almost looked like the inside of a squirrel nest. One could hardly extricate oneself from that cockpit whilst on the ground: so getting out in an emergency would not really be an option. At least one saves the money one would normally need for the emergency parachute, in such a set-up...

  6. Deja vu? by Superdarion · · Score: 4, Funny

    Oh no, it's Y2K all over again!

    1. Re:Deja vu? by sad_ · · Score: 2

      on April 6, planes will fall out of the sky!
      elevators won't know if they need to go up or down!

      --
      On a long enough timeline, the survival rate for everyone drops to zero.
    2. Re:Deja vu? by e3m4n · · Score: 1

      The one difference was that Y2K gave us an army of COBOL programmers with not much other skills, but still fixable in programming. Whereas, in this case, I forsee the manufacturers feigning an inability to patch in order to drive sales. I think my newest Garmin is 10yrs old. I am sure they wished we replaced them as fast as cell phones.

        I have thought about getting a new one, I was just waiting to see if some needed features ever got incorporated. I have never liked the touchpad interface on these. I have always wondered why they aren’t Bluetooth so that I can transmit an address from my phone into my Garmin. Not only is data input a little easier on the phone but there are many times where the address I’m putting in was sent to me via email or calendar. I’m not a fan of using my phone itself as GPS mapping because any sort of notification or incoming call always suspends everything else. Mostly my GPS functions as a HUD when its not gving directions.

    3. Re:Deja vu? by houghi · · Score: 1

      To be fair, if it acxtually IS 2000/01/01 00:00 GMT again, that could indeed cause a problem.

      --
      Don't fight for your country, if your country does not fight for you.
    4. Re: Deja vu? by AngryOnions · · Score: 1

      That's supposed to happen again in 2038. Because no one has done more than the patch they deployed back in 1999.

    5. Re:Deja vu? by CaptainDork · · Score: 1

      Each and every goddam entity, be it a small business providing cupcakes or enterprises manufacturing the muffin pans will be sending compliance letters to each other 1.) demanding that suppliers better not mess up and that 2.) the author of the demand will do its best to be in compliance, but no promises, and no liability for failures beyond their control.

      --
      It little behooves the best of us to comment on the rest of us.
  7. Re:Stupid n1gger GPASS by Rosco+P.+Coltrane · · Score: 4, Informative

    Before posting judgmental crap like that, you should know your history: the Global Positioning System project was launched in 1973, and the first satellite went up in 1978. The design was done sometime in-between.

    Well guess what: in the mid-seventies, EVERYBODY was coding stuff without thinking it'd still be there 40 years later, saving bits and CPU cycles everywhere they could thinking X or Y weeks / years / kilobytes / megahertz should be enough. Even the long-term thinking Unix people thought 2038 should be far enough in the future.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  8. Good, this is when we attack by Gabest · · Score: 4, Funny

    Hope you have a bunker and supplies.

    1. Re:Good, this is when we attack by clydoz · · Score: 3, Funny

      Won't help much, because you won't be able to find it.

    2. Re: Good, this is when we attack by AngryOnions · · Score: 1

      Well they'll find SOMETHING. Just might be a different target than what was intended. I wonder how far off the target would be?

    3. Re:Good, this is when we attack by CaptainDork · · Score: 1

      Is there an app for locating the bunker I built out in an abandoned oil field in Lufkin, Texas back in 1955?

      Asking for a friend.

      --
      It little behooves the best of us to comment on the rest of us.
  9. Re:They went backwards... by pushing-robot · · Score: 1

    13 bits of weeks = 157.5 years. It's safe to assume there will be entirely new navigation systems by the year 2175.

    --
    How can I believe you when you tell me what I don't want to hear?
  10. Google Maps by SeaFox · · Score: 1

    I can only hope the date string is interpreted by Google Maps itself, and not handled by Android or the handset hardware.

    Imagine you GPS functionality becoming useless because you're not getting an Android update since the handset manufacturer considers your phone EOL.

    1. Re: Google Maps by Anonymous Coward · · Score: 1

      The problem is you're assuming GPS uses geostationary orbits and it doesn't. When you first start up a GPS receiver, that first fix can take a while. This is because it needs to download an almanac. This almanac basically calculates where the birds are in the sky. Then based off of timing signals, combined with the satellite location information, you can figure out exactly where you are. If you think it's 1999, rather than 2019, you're location calculation will be based on where those satellites were in 1999 rather than where they actually are.

    2. Re: Google Maps by AngryOnions · · Score: 1

      Verizon will be releasing that patch next year. (snark)

    3. Re: Google Maps by Dhericean · · Score: 2

      Each satellite transmits its location (ephemeris) as well as the exact time in each 30 second message. This means that the GPS device does not need to calculate the location. Though the ephemeris updates every 2 hours, a value is considered valid for 4 hours.
      The Almanac, a list of the status and rough location for each satellite, is also part of the message and takes over 12 minutes for complete transmission (25 messages). It is used to help determine which satellites to look for on acquisition amongst other things, though this is not essential with modern equipment.
      This means that the date is not used to adjust the position information as that is part of the message itself. The alert is nothing to do with general GPS stopping working, but rather anything that depends upon the GPS signal to get the UTC time being at risk (an operation requiring the Almanac).

      The information is from the Navigation Message section of the Wikipedia article on GPS Signals (https://en.wikipedia.org/wiki/GPS_signals#Navigation_message), which is very detailed.

      --

      Gamma Testing - Where testing is extended to the full user community (AKA Shipping the Program)
  11. Re:They went backwards... by Sique · · Score: 5, Interesting

    That's what the developers in 1978 also assumed. There is an old saying in engineering: Nothing stays around as long as an interim solution.

    --
    .sig: Sique *sigh*
  12. Re:Stupid n1gger GPASS by AmiMoJo · · Score: 4, Interesting

    With Unix they didn't really pick 32 bits as being "good enough", it was just the largest they could easily handle at the time.

    With GPS they probably just assumed that the military would update or replace receivers when necessary. Civilian use wasn't a major concern, and due to the cost of the equipment they probably didn't consider the use-case where every cheap $10 smart device from China has a GPS receiver in it.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  13. Re: Trigonometry, anyone? by Anonymous Coward · · Score: 2, Informative

    You don't know the angle to the satellites. What you know is the run time difference of the signal. You have to compute the distance from that, compensate for things like the impact of gravity and after all that, you can do compute the intersection of the spheres.

  14. Re:Stupid n1gger GPASS by kurkosdr · · Score: 2

    Some programmers are STILL designing stuff with the assumption something won't still be there 40 years later. The DVB standard has a roll-over date in 2038 (that's a project created in 1992 no less!) and Go has UnixNano which has a rollover date in 2262 (because of course the graybeards that gave us the original 2038 bug and unsafe arrays couldn't build a decent language the third time). BTW you don't need a 64-bit number to have dates that go beyond 2038. You may need 2 or 3 32-bit numbers too It's all a matter of formatting. All these time storage bug were a result of massive lack of foresight. Also, Go uses a single 64-bit value to count nanoseconds from epoch (*sigh*). Now that's some lack of foresight that you don't see every day.

  15. The 13-bit week number is actually a bug IMHO by Terje+Mathisen · · Score: 5, Informative

    I have been a member of the NTP Hackers team for 25+ years: As many of you probably know most reference clocks on the Internet are based on GPS timing receivers. The last time we had a week rollover a small percentage of Stratum 1 servers went temporarily offline, or they were marked as "falsetickers" due to announcing a date which was nearly 20 years wrong. Most servers were either unaffected or got back online shortly after.

    The key here is that 1024 weeks is a short enough time span that most competent developers will realize that their (embedded or otherwise) product might still be in operation during the next rollover so they have to handle this, while a 13-bit week counter is so long (8192 weeks or 157.5 years) that it is likely that many will simply forget about the issue until it comes back to bite everyone in 2137. :-(

    BTW, there are _many_ ways to handle rollovers like this, the easiest is probably to compile in the build date in your firmware and then simply make sure that the date calculated from the week number is greater than this, adding blocks of 1024 (or 8192) weeks if needed. Another option, if you have any kind of non-volatile memory, is to write the current date to permanent storage regularly, like once a month or once a year.

    Terje

    --
    "almost all programming can be viewed as an exercise in caching"
    1. Re:The 13-bit week number is actually a bug IMHO by Anonymous Coward · · Score: 1

      until it comes back to bite everyone in 2137. :-(

      The satellites will not be operating by that time. Why do you think this is a bug?

      In addition, lets say for some reason they boost the orbits of all the GPS satellites by that time so they don't degrade to unusability or death....if they can do that for 1000s of satellites in the 22nd centure, why wouldn't we have the technology to work around a few 130+ year old servers who spit out the bad time?????

      This is seriously the craziest comment I've heard from someone who seems relatively intelligent in a LONG TIME. Bravo.

    2. Re:The 13-bit week number is actually a bug IMHO by Anonymous Coward · · Score: 3, Interesting

      This isn't about hardware (satellites), but the protocol. Whenever new satellites are launched, they should work with the existing devices and new devices have to work with the existing satellites. This means we can easily be stuck with the same protocol for many generations of hardware. Think about IPv4 vs IPv6.

      The Roman empire had really dirty roads and in order to cross them without getting wet/dirty, they made pedestrian crossings, which were a row of stone blocks, which were raised. For wagons to pass they had to fit in the gaps meaning they had to make a standard distance between wheels. They picked one based on the size of a horse, or rather the size of two horses side by side. This meant all wagons in Rome had to match the roads, then roads elsewhere had to match the wagons coming out of Rome and it turned into an empire wide standard for both wagons and roads. Fast forward to the 18th century. England is still using the roads built by the Romans. Somebody realized it was inefficient if wheels kept getting stuck and a level surface would allow more efficient transport. Wagons then started traveling on wooden bars. However the wheels kept falling off the bars, which was solved by adding guard rails to the side. A road with guard rails became known as a railroad. Later the rails were made out of iron, the shape changed and steam was used instead of horses. Each time something new was built, it had to work with the existing fleet of wagons and rails meaning there is no point in time where it was obvious to change everything and as a result modern trains are pretty much backward compatible with the trains from the Rainhill trials in 1829. This means if you sit in a bullet train traveling at half the speed of sound and think the train is too narrow, you should blame the Roman horses for being too narrow.

      Assuming your standard to be as short lived as the hardware you are building is rather dangerous because there are countless examples of standards lasting forever because once everything matches a certain standard, then you tend to be stuck replacing the hardware one piece at a time meaning the new hardware has to apply to the same standard. Being concerned with a serious flaw in 2137 is a valid one.

    3. Re:The 13-bit week number is actually a bug IMHO by Aristos+Mazer · · Score: 1

      So we should add to the standard a clause that says "20 years before the new epoch, for one solid minute, all devices must send a junk packet that says: 'DOOM IS COMING! The 157 years are up! Read the spec to learn more!" Enough people will be frustrated by this failure that someone will dig into it and realize that they have 20 years to come up with a new version. With the computing power of 157 years from now, it should be easy... unless they're all watching cat videos.

    4. Re:The 13-bit week number is actually a bug IMHO by Areyoukiddingme · · Score: 1

      You sound awesome enough for an interview.

      Do you want to be on a stellar engineering team?

      You do realize that entire tale about railroad gauges being the same width as Roman roads is apocryphal and contradicted by the evidence, right? Around the world there have been more than 90 different narrow gauges deployed and more than 40 broad gauges. Many of them enjoyed widespread usage for decades. Hell, so-called "standard gauge" is only used by 55% of the railroads in the world today. Even the original horse drawn railways in England in the late 1700s had widely varying gauges, from under 4 feet up to 5 feet, despite involving literal horses.

      The coward's observations about the stickiness of protocols are perfectly valid though.

  16. So let me get this straight by cyber-vandal · · Score: 1

    After the widely publicised Y2K debacle, avoiding a similar scenario wasn't considered by GPS manufacturers at about the same time?

    1. Re:So let me get this straight by drinkypoo · · Score: 2

      My Garmin GPS 12 units predate Y2K substantially, you insensitive clod! And they're my only standalone GPS-without-map units. The last firmware update was in 2003. I presume they're about to be rendered useless, which is sad to me because they're reasonably sensitive, have serial output, and support DGPS.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    2. Re:So let me get this straight by drinkypoo · · Score: 1

      They should work fine for navigation and positioning, but the date/time displayed may be incorrect.

      In that case, everything is fine. Now I only have to worry about my neo6m GPS modules, one of which I actually want to use as a time source. It's got a PPM output. But it's probably also counterfeit because I'm cheap :p

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  17. Re:Stupid n1gger GPASS by Megane · · Score: 1

    NeXTstep (and by extension OS X) uses a double float seconds since 1970 in its NSDate class. This not only avoids the Y2038 (and Y10000) problem, but gives you microsecond accuracy for dates that are inside the current era. There is also no floating-point round-off error for any whole number of seconds because they are the base unit.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  18. Re:Stupid n1gger GPASS by kurkosdr · · Score: 1

    And as usual the best technology didn't make it. Oh well, at least this state of affairs will keep us computer people employed.

  19. Re:Stupid n1gger GPASS by kurkosdr · · Score: 1

    Missed the OS X part. Sometimes I forget significant part of OS X is NextStep. Anyway, still a minority OS.

  20. Not perceived as fundamental limets by Junta · · Score: 1

    In the case here, assumption was that GPS firmware would know which window of 20 years would make most sense. A GPS designed to be remotely viable over a large timespan would generally have to have persistent writable storage for map data, so storing the current general 20 year window should be feasible.

    Similarly, I seem to recall some man page back in the day defining the timestamp as being in terms of the 'current' epoch and explictly saying the epoch would change. Of course I don't think any agreement was made on how to denote the current epoch so I don't know what was expected of developers in terms of handling that tidbit in that man page. I suppose they presumed a consensus would be eventually reached and software could be updated to deal, since the hardware they were working on would definitely not be making it to 2038 anyway, so an epoch change is the least of their worries in terms of problems to solve to be runnable software in 2038.

    --
    XML is like violence. If it doesn't solve the problem, use more.
  21. Why though? by stealth_finger · · Score: 1

    Why does it even need to send a week number? Don't they just do the time and satellite number, and they are all in as fixed a position as they can be so you just get 3+ signals and triangulate. Easy peasy. Where does week number come in and why is it relevant?

    --
    Wanna buy a shirt?
    https://www.redbubble.com/people/stealthfinger/shop?asc=u
    1. Re:Why though? by pjt33 · · Score: 1

      It's part of the time, which is actually date and time.

    2. Re:Why though? by AmiMoJo · · Score: 1

      My understanding is that it's to do with the way the almanac data describing the satellite orbits is transmitted. They send data for one point in time and the receiver extrapolates from there for the next 7 days. So the week number is associated with almanac data packages, and there is one package per week.

      The data rate is extremely low (50 bps) so this trades some accuracy (as the predictions are never perfect and the error increases over time) for the ability to receive the data for all the satellites in a reasonable period of time. That allows a receiver to start from cold in a few minutes.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    3. Re:Why though? by CaptainDork · · Score: 1

      I'm really scared.

      I used to have a straight day job, 9-5.

      I'm planning to embrace the gig economy and the week will be unpredictable.

      --
      It little behooves the best of us to comment on the rest of us.
  22. Re:Chinesium GPS Pucks by _merlin · · Score: 1

    The 13-bit week number is in a completely different message format broadcast using different modulation. Using that signal will require completely new hardware, not just a firmware update. But they're likely to keep the current '70s-style signal around for a couple of decades yet.

  23. Re:They went backwards... by thereddaikon · · Score: 1

    At this point there is no reason any system should be using anything less than a 64bit value for time moving forward. I can sort of understand the limitations from back in the day and trying to save resources. Although making one integer smaller is not going to save you anything measurable even on a system from the 70's. Its one integer. But with 64bit processors and OS's being the standard today there is no reason time should be kept in anything less. Its probably overkill to make it more than that but that wouldn't necessarily hurt either.

  24. car manufacturers may charge $250-$500 for update by Joe_Dragon · · Score: 2

    car manufacturers / dealers may charge $250-$500 for update

  25. Comparing sizes by slipped_bit · · Score: 1

    "10 bits should be enough for anyone" - US DOD

  26. Bingo by ISoldat53 · · Score: 1

    Buzzword Bingo - Glider edition.

    1. Re:Bingo by Falconhell · · Score: 1

      Fair comment. :)

  27. Re: Stupid n1gger GPASS by AngryOnions · · Score: 1

    I believe this is similar to the Y2K problem in computers (I am admittedly not an expert), the fix for which delays another event until 2038. That bug isn't about bad programmers, it's about programmers using a register size that seemed reasonable and worked within the limits of the hardware they had at the time.

  28. Re:They went backwards... by Shotgun · · Score: 1

    Never worked in a shop that makes commercial hardware have you? The pencil pushers driving those guys are still clawing back every bit they can in order to use a chip that is one copper penny cheaper.

    --
    Aah, change is good. -- Rafiki
    Yeah, but it ain't easy. -- Simba
  29. Re:They went backwards... by CaptainDork · · Score: 1

    Early computers were designed with the same mentality. "The year 2000 is WAY off."

    --
    It little behooves the best of us to comment on the rest of us.
  30. Floating point for time by hawkfish · · Score: 1

    NeXTstep (and by extension OS X) uses a double float seconds since 1970 in its NSDate class. This not only avoids the Y2038 (and Y10000) problem, but gives you microsecond accuracy for dates that are inside the current era. There is also no floating-point round-off error for any whole number of seconds because they are the base unit.

    The problem with using floating point for time is that the precision varies with distance from the epoch. Over the course of a century, this comes to 100 * 365 = 36500 or over 15 bits for representing (say) the number of days, which reduces the precision for fractions of a day by the same amount.

    Conversely, if you want ns precision, 64 bits will only give you ~20,000 days, which is less than a century. But 128 bits will give you ~10^20 years at ns precision. Which should cover the big bang to the effective heat death of the universe...

    --
    You will not drink with us, but you would taste our steel? - Walter Matthau, The Pirates
    1. Re:Floating point for time by Megane · · Score: 1

      precision varies with distance from the epoch

      We got ~68 years from 32 bits. Start with a 64-bit float, take 8 bits for the exponent, and you have 24 bits left for the fractional accuracy. 2^10 is about 1024, that's about a microsecond near the epoch, with 4 bits left over, so you get microsecond accuracy for another 64 years x 15, or 960 years. I'm going to guess that even millisecond precision is still sufficient as a general timestamp format. This is supposed to replace a timestamp of whole seconds, after all. The fractional part would be scaled from an internal clock in the computer, which might not have true millisecond precision anyhow. And there is no floating point math inaccuracy for whole seconds, because those are the integer portion of the float.

      You would have to go a long time before those 24 bits get used up. Quick back-of-the-envelope is 68 years x 1024 x 1024 x 16, or just over a billion years, before the seconds start to skip. Not quite the heat death of the universe, but I think there are a few bigger problems before that happens. It's certainly a much better use of the extra bits than "duh just make it a long long" and waste 30 bits every time. All that would do is "merely" extend the problem out to ~300 billion years.

      tl;dr: You haven't made a case for needing that much precision, over that time scale, in a timestamp.

      --
      #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
    2. Re:Floating point for time by tap · · Score: 1

      Say I take a timestamp and add one nanosecond to it. That will increment the timestamp if I test near the start of the epoch. But eventually it will be far enough from the epoch that one nanosecond falls off the end of the mantissa and now this fails.

  31. Re:Stupid n1gger GPASS by AmiMoJo · · Score: 1

    Signed int is 32 bits. They went with signed because it makes it possible to detect overflows because the number goes negative, although interestingly that's not actually guaranteed by the C spec which says it is technically undefined.

    --
    const int one = 65536; (Silvermoon, Texture.cs)
    SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  32. Re:2038 wasn't a bug by WaffleMonster · · Score: 1

    And lo and behold unix time was updated to 64 bits years ago, so 2038 isn't an issue. The only unix things that will hit that wall are things that are either not dynamic (scripting language) or can't be recompiled with the 64 bit time_t size.

    Some have addressed the problem long ago. For example Microsoft fixed visual studio over a dozen years previous to have time_t be 64 bit for 32-bit and 64-bit software.

    Others have elected to do nothing. time_t is still 32 bit in present day 32-bit Linux systems.

  33. Re:Stupid n1gger GPASS by WaffleMonster · · Score: 1

    Signed int is 32 bits.

    Relevance?

    Y2038 exists because people elected to use only 31-bits to address time.

    Using 32-bits to address time delays run out until 2106.

    They went with signed because it makes it possible to detect overflows because the number goes negative

    This line of thought was a bad idea then. Today it amounts to nothing short of willful negligence.

  34. Re:Stupid n1gger GPASS by Darinbob · · Score: 1

    32 bits works even longer if you make it unsigned. For uses where you don't have to worry about things in the distant past, this is fine and trivial to implement. This is really helpful for the hordes of 16-and 32-bit embedded systems out there. Certainly 64-bits would be better for newer products, or anything between 33 and 64 bits (say you're on an 8bit cpu and would prefer 5 bytes instead of 8). You can also tweak the epoch start time to not be 1/1/1970 as well, if you know your time format will only stay local to the device, then converting between the device time and Unix time is a simple addition.

    For something like GPS where you have data transmitting over the air then going to 64-bit is a waste of bandwidth. If you're talking to a Mars rover, then the extra bits are a serious disadvantage. So instead you rely on having good documentation of the format and that you can convert to other time formats as needed. Since we've known that GPS times will rollover in a relatively short period of time (ten years is shorter than many expected product lifetimes) you would assume that the receivers know how to deal with this. The problem is not that everyone needs to update firmware, but that you need to check if you have a halfway decent GPS receiver versus a piece of junk designed by noobs.

  35. Re:Stupid n1gger GPASS by Darinbob · · Score: 1

    They originally used this format for file timestamps, so it was unlikely to ever have file's created or modified before 1970... It was after this point that people started wanting to use this format for all sorts of uses for which it was not suitable. Ie, I worked on a medical device that initially used this signed 32-bit time format for medical records; but that was a problem since you couldn't express some patient's date of birth, whoops.

    Much of the problems come from blind reliance on third party libraries, or naivete about domain knowledge. They expect that they don't have to worry about such issues if they only call the appropriate library. It's only later that they discover that the library wasn't intended for what it was being used for. I am seriously amazed at how many experienced programmers don't know much about time and yet seem to think that it's simple and that anyone can do it.

  36. Re:Stupid n1gger GPASS by Darinbob · · Score: 1

    I don't think the time formats had a lack of foresight. They were used for particular uses where it made sense. What broke was when people took the original signed 32-bit file time format to use for other purposes. Ie, purposes other than the file time on a specific PDP filesystem implementation. But it slowly got standardized in many file systems, the function calls dealing with time got standardized, and the file timestamp format started being used for things other than file timestamps. The original Unix system is no longer in use, their assumption was entirely correct and it isn't around still after 40 years later except as simulations.

  37. Re:They went backwards... by dryeo · · Score: 1

    At this point there is no reason any system should be using anything less than a 64bit value for time moving forward.

    So you're saying it should take over a second to transmit the time? GPS has 50 bps data rate (100 bps in some configurations) according to table #1 at https://gssc.esa.int/navipedia.... I'm pretty sure there are other circumstances such as communicating with Mars or further or a submarine deep down with low bit rates as well.

    Although making one integer smaller is not going to save you anything measurable even on a system from the 70's. Its one integer.

    In 1984, Apple released the ProDos disk operating system which packed day, month and year into 2 bytes to save room. I'd guess going further back that packing more then the date into an integer happened as well as systems such as the PDP-1 that used 6 bit bytes.

    --
    https://en.wikipedia.org/wiki/Inverted_totalitarianism
  38. Re: The Issues With Unsigned Time by Cardcaptor_RLH85 · · Score: 1

    The problem with unsigned time were mentioned by another commenter here. There are medical applications that use signed 32-bit time for patient dates of birth. That's a problem in and of itself since some of those patients were born before December 13, 1901 (back when the software was originally written at least, this isn't a problem anymore). However, there are certainly still people who were born before January 1, 1970 tooling around. For them, you'll need negative numbers to represent dates of birth in UNIX time.

  39. Re: The Issues With Unsigned Time by Darinbob · · Score: 1

    I made the date of birth comment... But for some products it doesn't matter. I'm working on one where time means "right now", and unsigned long works great for most of that. Some security layers are using 64-bit time. If I had designed the thing, I'd probably make sure that any external view of time was done in signed 64-bit; internally signed time would get rid of some pesky typecasts but otherwise there's no need for 64-bits there.

    You sound as if you just want one format for all time uses. Except that it doesn't work, it doesn't take into account microsecond resolution that many applications need or even smaller in some domains. Different domains have different uses for time and trying to cram it all into a single standardized format doesn't always work.

    Already we have to work with multiple time formats. I run across stuff I have to interface with that uses 2010 as the time base, stuff that uses 16-bits for the time-of-day (with the silly 2-second resolution that MSDOS had), stuff with no concept of daylight saving's time, and so forth. So having to deal with time is a part of job in some segments of embedded devices.