Auto Manufacturers Running Out Of Unique IDs
wakebrdr writes "Y2K all over again? A story in today's Detroit News explains how the vehicle ID numbering system (VIN) will soon run out of unique numbers. According to the article, a member of the Society of Automotive Engineers says, 'Longer codes would require a major overhaul of computer systems that would dwarf the challenges and expenses spawned by the Y2K computer dilemma.' Golly, if it's that serious maybe I should start stocking up on MREs and ammunition in preparation for the day the assembly lines come to a screeching halt."
The vin is from this vehicle:
VIN: 3P3ES47Y8XT528059
Year/Make/Model: 1999 PLYMOUTH NEON HIGHLINE/EXPRESSO
Body Style: Pillard Hardtop 4 Dr
Engine Type: 2.0L L4 SMPI DOHC 16V
Manufactured In: MEXICO
reprogramming every device that read's VIN's to accept case sensitivity would be just as hard as adding an extra few digits.
Since the article wasn't clear on this, and a comparison with Y2K was made.
The current VIN system is local to the US (and probably Canada, not sure). Other countries do not share the VIN system/database/namespace. Sure, the manufacturers are located all over the world, and there's a unique ID for country of manufacture, but the VIN numbering is only mandatory for vehicles in the US.
Other countries have their own numbering system (usually a chassis/SL No.), and their databases are built around their unique identifiers.
So yes, their proposed solution is feasible, because right now, there are Country codes assigned to countries which will most likely not export vehicles to the US in the near future. But the comparison with Y2K is off because of the fact that this problem is local to the US.
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
Let's think about this:
They designed the system in 1981.
They expected it to last 30 years.
So that's... until 2011?
And now they're saying it'll run out around the end of this decade. That'd be about 2010-2011ish, no?
Sounds like everything's going according to plan.
Actually with a 17 digit number ther would be 100,000,000,000,000,000 different VIN number and that doesn account for the fact that the 17 digits are alphanumeric. the problem is that there is information encoded in many of the digits. For example, the first charicter will idintify the country the engine and body were joined (where the care was "manufactured") others idintify the manufacturer, modle year, etc...
The problem will most likely be solved by assigning each country a secont third or fourth(for us and Japan) identifying digit opening up the rest of the namespace anew.
Strive to make your client happy, not necessarly give them what they ask for
If they produce more than a million units of any particular car in a year, they use letters in here. Sometimes they use letters anyway, to denote different car types and such. The last six characters can be essentially anything 0-Z, it leaves it up to the manufacturer.
The problem is not that duplicates will occur, it's that the year number will repeat starting in 2011. The 7th character (from the right) denotes the year, and anybody can see, this means that it loops over every 36 years. Not particularly good planning, methinks.
One simple solution is to recommend both use of all 36 chars in the serial number and to denote the first character of that number to be a character never used there before by most manufacting companies. In most cases, car companies rarely use anything above A or B for the first character of the serial, so for some this will be easy to work around. For others, it may be more difficult as they'll have to change their own internal coding scheme for the serial.
Most probable change is that the characters for countries (first character) will be stolen, like happened with 4 and 5 for US cars.
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
The VIN includes a year code (10th character from the left) that denotes the year the car was made. However, this loops after 30 years (they left out potentially confusing chars in the yearcode, like I, O, U, Q, Z, and zero).
But in 2011, the year loops. That's the only problem, really.
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
Right, the big thing here is the tooling to punch the codes in to sheet metal or solid metal parts. The tooling is set up to punch certain length codes, just adding another number isn't as simple as just putting another punch on the rack, the whole mechanism would need to be changed in most situations.
matguy(.com)
If I remember correctly the left 11 digits are used for make, model, production location, model year etc.... ---the 8th digit from the right is the model year alpha-numeric 1-9 + A-Z they skip 0, I, O and Q (L = 1990 and S=1995)
They could become case sensitive with the year, or use mor characters in the ASCII table.
I thought the last 6 digits were supposed to be unique, except it doesn't make sense since I have never seen letters there (maybe there are) and that would have broke after 1 Million cars.
They could just reassign the letter used for the manufacturer and start over with the year code. This doesn't sound like it has to be that big of a problem for them. Do all GM's have to start with 1G and all Fords with 1F and all toyotas with 1T?????
See the Pictures of the Flood of '08
No, because the VIN isn't just a serial number. It incorporates the year, manufacturer, and a lot of other info. A given VIN is only usable on another car of the same make, model, year, body style, and place of manufacture.
You could recycle numbers within one year; if a 2005 car got killed in the first year of its life, they could make another 2005 car with the same VIN, but that's probably not going to help much...
The reason this is such a major issue is because you cannot do precisely what you suggest. Most of the states are probably still using heavily antiquated systems to run their licensing operation. This is particularly true in California, whose Department of Motor Vehicles spent some absurd amount of money on what ended up being an already-ancient system to replace their old system. Like most state agencies, they've got shiny new PCs on their desks with flat panel displays, and they're using a terminal emulator (probably 3270) to interface to the systems in which they do all their work.
Given certain apparent truths about bureaucracies, this is probably true to some extent in most of the world. Many systems worldwide would need to upgraded in order to implement a substantial change in VIN encoding, including licensing authorities, car insurance software, law enforcement databases, and others.
I guess there is an up side, though... you COBOL programmers have some more work coming.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Many manufacturers do use barcodes (Code 39, in fact, which only supports the uppercase characters, the numbers, and about six punctuation characters), in addition to the standard metal-punching method. However, they do need to keep that method, for the "rusty VIN" reason stated above, metal is more robust than stickers.
I worked for a barcode reader manufacturer for a while and we got calls from people wanting to use our scanners in just that way, because ours use Bluetooth, and you don't want to deal with wires when you're leaning over a car.
And, in reference to my parenthetical above, not all symbologies support the full ASCII set, in fact, very few do. Barcode Island has some nice low-level specs about specific symbologies.
The previous sig has been removed due to
Your math doesn't hold up. Just because there are 26^17 combo's doesn't mean they all can/could be used.
EG: characters 4-8 are body style/features/engine/type/etc and 10 is the year.
I'm sure a car from 2004 will have any of the similar features of a car from the 80's, so there goes 1 whole factor, down to 26^16, I'm sure if you went through the other characteristics it would narrow it down even further.
Your hair look like poop, Bob! - Wanker.
Lets take a look at a VIN. First you can only use capital letters and numbers, except for the letters I, O and Q. If you can't tell if its a letter or a number then its a number. WVW EE83A2 SE219476 The first three characters are the WMI, world manufacturer identifier. With the above VIN its pretty obvious who made this car (volkswagen). I can't speak for other manufacturers, but with volkswagen the first character is the country of manufacture. This Passat was built in Germany. The next six characters are the VDS, vehicle descriptor section. Manufacturers use this to describe the vehicle traits, and if you google for "volkswagen vin decoder" (or whatever manufacturer you're looking for) you can probably find out what the codes represent. The last digit in this section is a check digit. The final 8 characters are the VIS, vehicle identifier section. At least, the last 5 digits must be numbers and it is the production number of the car (serial number). The first character in this section is the year of manufacture. With VW, the second character in this section is representative of the plant that built the car. The remaining digits are the production number. If you look at the year of manufacture it rolls over every 30 years anyways. With a little common sense it shouldn't matter if two cars have the same VIN... there would be an age difference of 30 years.
And I thought that the Y2k issue was sort of shortsighted. These people have NO excuse for this fiasco. In 1981, the people who invented these VIN's thought that 31 years was sufficient? They didn't know that there were cars around that were more than 31 years old then? They thought so little of the cars made at that time to think that none of them would last for 31 years? To think, our tax money will help the DMV fix this problem, no matter how they fix it.
First of all, you use the VIN to seach for details about a vehicle in a database, its not there to build a vehicle out of, which is the essential purpose of DNA for humans.
Secondly, you can't use a DNA sequence to seach for information about a person by simply typing it into a form somewhere on the net.
And then there exists the fact that there exist humans with the exact same DNA. Identical twins, for example, have the same genetic code.
They should say something like "a VIN is to a vehicle as an SSN is to a person." Even though the SSN is only in the US, its still a better analogy in comparison.
- Aren't necessarily unique, as some NICs are programmable;
- Aren't government-mandated;
- Aren't illegal to change;
- Aren't illegal to hide or otherwise obfuscate.
Your comparison really fell on its face. Care to try again?Liberty in your lifetime
It sure was a problem. But on systems where it mattered, it was fixed. A manufacturing firm's toxic-materials(read: paint) usage tracking computer can't afford to have flawed data points (the fines are tremendous), but most home PCs don't have any such responsibilities or consequences.
The problem here is that nearly all the systems affected matter, from ownership registries to insurance calculations.
tasks(723) drafts(105) languages(484) examples(29106)
Lithuania is already a member of the EU, since May 1 2004.
For example, the VIN can encode the make, model, year, original color, original interior type, factory accessories, the manufacturing line it came off of, etc. It is true that this information could be compressed to some degree, but one of the key features of the VIN is that it is human readable (at least by people who are experienced with it), and doing "clever" things to compress the data into fewer digits will break that.
For example, consider what would happen if we applied your advice to the Y2K problem and tried to find a clever encoding to make "better use" of the available digits.
It was common to encode a date using 6 digits: 2 for the day, 2 for the month, and 2 for the year. Suppose we continue to use 6 digits, but instead of encoding the date as MM-DD-YY, simply write the number of days it has been since January 1, 1970. Using this encoding, it is possible to represent dates for (approximately) the next 2700 years, without making the date field wider than 6 digits.
It should be obvious, though, that such an encoding would be extremely frustrating since it doesn't map to our normal concept of months and days. Quick, what month does day number 516672 fall in? This is exactly why the right choice for Y2K was to simply expand the fields to use the entire year. And the same argument applies to VINs.
They do this already. They mostly stick to their primary character, but sometimes are assigned a different one.
Ford has F, N, and Z.
Chrysler has C.
Honda has H, 7, and S.
Toyota has T, and N. (Shared with Ford.)
Volkswagen has V and B.
It's just that countries get a range of those two characters. While the US has 1*, 4*, and 5*, and Canada has 2*, Mexico has 3A-3W and Costa Rica has 3X-37.
The whole first three characters (known as the WMI) get assigned by the SAE, according to whatever-the-hell-system they feel like using. They just happen to assign it certain ways.
Google for "VIN Country Codes" for the complete list.
- Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
But not to the Euro which is the common currency for the EU.
Remember - you heard it here first (PS - I already solved this problem for one piece of software by having a drop-down select box that lets you choose the year range - pre-1980, 1980 to 2008, 2009 and up. User selects the range, and the proper year is calculated. reject vin if <> 17 chars && > 1979. Handles pre-1980 already :-)
As for the rest, you might want to go here for more information on decoding VINs.
The society should contact people who work on a day-to-day basis writing code to handle the non-standard vins (pre-1980). In my case, I've already put in handlers for post-2008.
Now, since all current systems ALREADY handle vins that are not exactly 17 characters long (pre-1980) by relaxing the validation schemes and enabling extra user input options, not pre-determining the model year, etc., there's not as much work as you would seem to think.
26?!
Umm, let's talk about 26 letters (A-Z) - I'm assuming these systems are case insensitive... plus 10 numbers (0-9), I'd say that would make it 36.
Perhaps they could dramatically increase their potential name-space by making the VINs case-sensitive. That would allow 62 possible characters per place.
- passion
If this thing is 17 digits, that leaves 10^17 possible VIN numbers. How many cars are being made?!? 100,000,000,000,000,000 Vin numbers. I think they have adminstration issues in how they distribute these numbers, not a lack of them.
considering that the VIN system is not reliable prior to 1986. Validating a VIN works something like this...
If VIN is post 1985 then Validate else accept it for what it is.
Just tweak this code to say...
If VIN is post 1985 and pre 2005 then Validate else if post 2004 validate with new 2005 algorithm.
problem f***ing solved. This is just another Y2k scare. VIN information is so botched this won't even register on the radar. I work for an Auto insurance company and I can tell you that atleast 20% of the VINs on our policies are a Hash missing the serial number, plant of manufacter and a couple other useless tidbits. The Insurance Industry only uses the VIN to ensure a valid rate.
Also, the article makes a serious error:
SSNs are not necessarily unique. There was a series of letters exchanged on this very subject in The C User's Journal a decade ago. This is just something that the general population asumes without questioning it.Besides, there are all kinds of ideas in the article itself for getting around it, including many small countries that don't even produce vehicles that use VINs that are taking up a lot of the numbers. Cars build before 1981 didn't even have a standard, each company made up their own VIN numbers. The systems still have to account for those, so we could always go back to the old system. Many cars are out there now with duplicate VINs.