Searching \ for '[EE] Suggestions for a serial numbering scheme' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/io/serials.htm?key=serial
Search entire site for: 'Suggestions for a serial numbering scheme'.

Exact match. Not showing close matches.
PICList Thread
'[EE] Suggestions for a serial numbering scheme'
2008\06\24@233816 by Mohit Mahajan (Lists)

picon face
Hello,

We manufacture a lot of different kinds of instruments (but each in
small quantities). Our serial numbering scheme so far is pretty basic:
ABCD-EFGH. AB tells us the week and CD the last two digits of the year.
EFGH starts at 0000 every year in January, and increases count with each
instrument manufactured. It gives no indication which model or what was
manufactured. This info would be given by a spreadsheet where the
description of the instrument is entered next to the serial number. So
we'd have to look up the serial number in this sheet to know what
instrument we're talking about.

I'd like suggestions for a serial number scheme that could indicate the
instrument model/type, date of manufacture (for warranty purposes). And
it shouldn't be too long, about 8-10 characters.

It would be great to know what schemes members here or their companies
use to number their products.

Thanks,
Mohit Mahajan.

2008\06\25@020642 by Cedric Chang

flavicon
face
How many instruments do you manufacture ?  Do you want the serial  
number to be human decodable or will a simple computer application do ?
I am going to recommend that you use A-Z  and a-z and 0-9 for your  
serial number.  This gives you a base 62 digit.  Be sure to use a  
type style that differentiates between O ( oh ) and 0 (zero ).  A  
slashed zero should work.  Also make sure upper and lower case look  
very different.  A slashed Z would help as well.  You could order  
them 0-9, A-Z and a-z.  ( or whatever )

One digit will give you the years 2008-2069 which should be pretty good.
One digit should give the week of the year.
One digit would give you 62 model numbers.  Two digits would give  
you  3,844 model numbers.
4 digits for the serial number will give you 14 million discrete  
serial numbers per model.
( 3 digits gives 238K discrete numbers )

So a serial number like Fa05-34AB   would translate to
--year = 2008+15 = 2023
--week = a [base 62] = decimal 37
--model number is 05 [base 62] = model #5 ( decimal)
--34AB [base 62] = 3*(62**4) + 4*(62**3) + 10*(62**2) + 11*(62)   <---
decimal

cc


On Jun 24, 2008, at 9:37 PM, Mohit Mahajan (Lists) wrote:

Hello,

We manufacture a lot of different kinds of instruments (but each in
small quantities). Our serial numbering scheme so far is pretty basic:
ABCD-EFGH. AB tells us the week and CD the last two digits of the year.
EFGH starts at 0000 every year in January, and increases count with each
instrument manufactured. It gives no indication which model or what was
manufactured. This info would be given by a spreadsheet where the
description of the instrument is entered next to the serial number. So
we'd have to look up the serial number in this sheet to know what
instrument we're talking about.

I'd like suggestions for a serial number scheme that could indicate the
instrument model/type, date of manufacture (for warranty purposes). And
it shouldn't be too long, about 8-10 characters.

It would be great to know what schemes members here or their companies
use to number their products.

Thanks,
Mohit Mahajan.

2008\06\25@052511 by Mohit Mahajan (Lists)

picon face
> How many instruments do you manufacture ?
Actually the flavours are a lot. For example, we have a dry bath heater
that controls the temperature of a block of aluminium. This block of
aluminium has holes to accommodate various sizes of glass/plastic tubes.
It can be 24 holes of 10mm tubes, 30 holes of 8mm tubes, 18 holes of
12mm tubes. Then, it could be a resistive heater heating alone model or
a peltier based heating+cooling model. So the permutations/combinations
are a lot.

> Do you want the serial number to be human decodable
> or will a simple computer application do ?
Human decodable preferably.


Thanks for your suggestion with the example. It'll still need a
calculator to work out. However, something like what you wrote but base
50 would be easy. Let the "a-z" be "a-n".

Thanks,
Mohit.

Cedric Chang wrote:
{Quote hidden}

2008\06\25@071429 by Tomás Ó hÉilidhe

picon face


Mohit Mahajan (Lists) wrote:
> I'd like suggestions for a serial number scheme that could indicate the
> instrument model/type, date of manufacture (for warranty purposes). And
> it shouldn't be too long, about 8-10 characters.
>  

Have you considered

ABCD-EFGH-IJKL

?

2008\06\25@072153 by Tomás Ó hÉilidhe

picon face


Cedric Chang wrote:
> I am going to recommend that you use A-Z  and a-z and 0-9 for your  
> serial number.  This gives you a base 62 digit.  Be sure to use a  
> type style that differentiates between O ( oh ) and 0 (zero ).
>  

I often thought that if I ever devised a serial number scheme, all
ambiguous characters would be forbidden, e.g.:

o 0 i l 1

2008\06\25@074214 by Mohit Mahajan (Lists)

picon face
> Have you considered
>
> ABCD-EFGH-IJKL

:-?

Regards,
Mohit.

2008\06\25@083758 by Gerhard Fiedler

picon face
Mohit Mahajan (Lists) wrote:

>  > Have you considered
>  >
>  > ABCD-EFGH-IJKL
>
>:-?

I think he meant "use you current scheme and add a few positions that
indicate the model and variation.

Gerhard

2008\06\25@085202 by Alan B. Pearce

face picon face
>I'd like suggestions for a serial number scheme that could indicate the
>instrument model/type, date of manufacture (for warranty purposes). And
>it shouldn't be too long, about 8-10 characters.

I always liked the serial number system the HP used to use on their
instruments (don't know if Agilent has carried it on), but it included the
model number and the serial number in this batch, along with a batch number
IIRC.

2008\06\25@101546 by M. Adam Davis

face picon face
I'm sure you have good reasons for needing this scheme, but don't your
products have model numbers?  Wouldn't the serial number be redundant?

What will you do if the serial number suggests one model and the model
number suggests another model?

What will you do if your company suddenly becomes popular and you
outstrip your serial number capability?

What will you do if you are bought by another company (two databases?)
or if you purchase another company?

Some companies that put too much information in the serial number find
they have to simplify it because they have too many errors with people
sending in warranty cards, reading them over the phone, etc.  Same
with using letters, or worse both letters and numbers.

I'm of the camp that a serial number is simply a string of numbers,
incremented for each product out the door, and leave all the other
information in the model number.  You can store a database that
matches model numbers with serial numbers if you want a little
redundancy, but anything more just means more trouble down the road.

But then, I'm a big fan of database normalization, and this isn't
exactly the same thing, so I may be approaching the problem from the
wrong angle.

So, in that vein, your requirements are:
* Date of manufacture (To the week within a decade - 52 weeks, 10
years, 520 possible)
* Model (How many models?  I'll assume less than 100,000 models)
* Serial (10,000 per year)
* Human readale (implied - you probably don't want to have to run to
a computer to figure out if the warranty is valid)
* Easy, convenient

Serial Number:

AAx-xBBx-xCC

AA, BB, CC are letters
xxxx are numbers.
dashes are dashes - spacing to group the numbers for readability.

AA denotes the date of manufacture.  The first letter is the 1/2 year
- so A would be the first half of 2008, B would be the second half.
The second letter is the week within that half year.

xxxx is the plain serial number.  Increment for every product, reset every year.

BBCC is the model number.  I have it split up so the product line is
BB and the model is CC, but I don't know your product line and model
permutations, so you may have to adjust it.

The dashes show where you need to space your serial number.  People
deal with groups of letters/numbers much more readily than one long
string.

An advantage to this scheme is that the numbers and letters have
specific spots, so one can readily recognize it as a serial number (in
your company) and correct simple issues (such as O and 0, 1 and l,
etc).  You're only using capital letters, so some errors are avoided
as well.  Will still have issues with M and N, and B and D over the
phone, but you can eliminate those or use the four digit serial in the
middle and the first letter (year) to find the right one.

This is a very redundant serial number, so it's long, but it's
essentially what you're asking for.  Any scheme will work, though.

Hope this helps.

-Adam

On 6/24/08, Mohit Mahajan (Lists) <spam_OUTmohit.listsTakeThisOuTspamgmail.com> wrote:
{Quote hidden}

> -

2008\06\25@113524 by olin piclist

face picon face
M. Adam Davis wrote:
> Serial Number:
>
> AAx-xBBx-xCC
>
> AA, BB, CC are letters
> xxxx are numbers.
> dashes are dashes - spacing to group the numbers for readability.

Or you could go for total obfuscation and let a computer figure it out.
Let's say you want to identify the manufacturing date down to the week.
2008 to 2099 is 92 years, there are 52 weeks, let's say you want to support
100 models, a 6 bit checksum value to detect garbled serial numbers, and at
least 100000 units per year per model.

92 x 52 x 100 x 64 x 100000 = 3e12

There are 36 common digits and upper case letters, but let's say you exclude
"I", "O", and "S" to avoid confusion with 1, 0, and 5.  When you enter a
serial number into the computer, it automatically converts those letter to
the digits.  That leave 33 choices per digit.  8 digits gives you 1.4e12
combinations, or about half of the number above.  You can use 9 digits or
live with 50000 units per model per year, etc.


********************************************************************
Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products
(978) 742-9014.  Gold level PIC consultants since 2000.

2008\06\25@162951 by Cedric Chang

flavicon
face
drop out vowels to avoid spelling naughty words  or use dashes.
cc

{Quote hidden}

> --

2008\06\25@163620 by Cedric Chang

flavicon
face
You can always break the year into 26 double weeks or into 12 months.
Why would the warranty have to be tracked to the week ?
cc



2008\06\25@163827 by Tomás Ó hÉilidhe

picon face


Cedric Chang wrote:
> drop out vowels to avoid spelling naughty words  or use dashes.
> cc

When I was in school I remembered the "Gas Equation" as the "Pervert
Equation":

PV = nRT

2008\06\25@172613 by Philip Pemberton

face
flavicon
face
Mohit Mahajan (Lists) wrote:
> Hello,
>
> We manufacture a lot of different kinds of instruments (but each in
> small quantities). Our serial numbering scheme so far is pretty basic:
> ABCD-EFGH. AB tells us the week and CD the last two digits of the year.
> EFGH starts at 0000 every year in January, and increases count with each
> instrument manufactured. It gives no indication which model or what was
> manufactured. This info would be given by a spreadsheet where the
> description of the instrument is entered next to the serial number. So
> we'd have to look up the serial number in this sheet to know what
> instrument we're talking about.
>
> I'd like suggestions for a serial number scheme that could indicate the
> instrument model/type, date of manufacture (for warranty purposes). And
> it shouldn't be too long, about 8-10 characters.
>
> It would be great to know what schemes members here or their companies
> use to number their products.

I've been toying with the idea of using:

MMMMMRR-YYWW-NNNNNN

i.e.:
   MMMMM   5-digit model number
   RR      2-letter hardware revision code (AA to ZZ)
   YY      last two digits of manufacturing year
   WW      week of manufacture
   NNNNNN  6-digit incremental serial number (# of unit built in that week)

But that's a little long (17 characters), so let's try and bring it down to 10
characters...

Well, you could use an alphanumeric model number. So to represent around half
of the different possible model numbers of the first scheme, you'd need four
alphanumeric digits. Let's reduce this to Base32 and use 0-9, A-Z and skip the
letters I, O, Z and S (can be confused for 1, 0, 2 and 5 respectively). Now
it's unlikely you're going to have 50,000 different devices, so let's narrow
it down a little. Two digits would provide 1024 combinations, which should be
enough to start with. You can always reserve a range for future expansion.

So that gives us our two-digit model ID. Date of manufacture should ideally be
human-readable; I'd use YY-WW format (year, week of year). Or you could
sacrifice a little accuracy and go for YY-MM (year, month). In any case you
can always search your database for an accurate date of manufacture; the one
in the serial number should really be for quick-reference only. In either
case, that's 4 digits, plus the 2 previous, giving six total so far.

The last four can be the serial number, decimal or Base32, which means you can
uniquely identify up to 10,000 (decimal) or 1,048,576 (Base32) individual
units in a given month or week.

So that's ten digits in the following format:
  MMYYWWNNNN

  MM    Model number
  YY    Year of manufacture (last 2 digits)
  WW    Week of manufacture
  NNNN  Index of unit manufactured in a given week

If you wanted, you could add an extra digit for a hardware revision. Then you
can change hardware and say something along the lines of "all devices with
serial numbers starting 1RA, 1RB or 1RC require Firmware 1.0; 1RD onwards
requires Firmware 2.0". Obviously you'd make any flash upgraders check the
hardware serial number in EEPROM to make sure it's suitable _before_
reflashing the firmware...

If you can squeeze it onto the label, a barcode might also be a good idea.
Though entering 10 digits isn't difficult, it saves a little effort and risk
of incorrect entry. Speaking of which, I'd be sorely tempted to add a check
digit to that serial number scheme... Just so you can check in software to
make sure it's been entered correctly, and beep furiously at the operator if
that isn't the case :)

--
Phil.
.....piclistKILLspamspam@spam@philpem.me.uk
http://www.philpem.me.uk/

2008\06\25@174404 by Cedric Chang

flavicon
face
and so it is !!!
cc
On Jun 25, 2008, at 2:37 PM, Tomás Ó hÉilidhe wrote:



Cedric Chang wrote:
> drop out vowels to avoid spelling naughty words  or use dashes.
> cc

When I was in school I remembered the "Gas Equation" as the "Pervert
Equation":

PV = nRT

2008\06\26@000131 by William \Chops\ Westfield

face picon face

>> Serial Number

I don't think anyone has mentioned it yet, but I'm in big favor of  
having some sort of "check digit" in serial numbers...

BillW


'[EE] Suggestions for a serial numbering scheme'
2008\07\28@221506 by Peter Todd
flavicon
face
part 1 2251 bytes content-type:text/plain; charset=us-asciiOn Wed, Jun 25, 2008 at 09:07:46AM +0530, Mohit Mahajan (Lists) wrote:
> Hello,
>
> We manufacture a lot of different kinds of instruments (but each in
> small quantities). Our serial numbering scheme so far is pretty basic:
> ABCD-EFGH. AB tells us the week and CD the last two digits of the year.
> EFGH starts at 0000 every year in January, and increases count with each
> instrument manufactured. It gives no indication which model or what was
> manufactured. This info would be given by a spreadsheet where the
> description of the instrument is entered next to the serial number. So
> we'd have to look up the serial number in this sheet to know what
> instrument we're talking about.
>
> I'd like suggestions for a serial number scheme that could indicate the
> instrument model/type, date of manufacture (for warranty purposes). And
> it shouldn't be too long, about 8-10 characters.
>
> It would be great to know what schemes members here or their companies
> use to number their products.

My serial numbering scheme is to simply assign randomly created 64-bit
numbers and store all the associated metadata in a database... Not
exactly a scheme for everyone!

Tangentially though is a scheme I've come up with for actually applying
the serial numbers to the pcb. For a recent batch of stuff I got a
8.5x11 sheet of custom letraset made up by All Out Graphics in
Vancouver, BC with a bunch of randomly selected serial numbers in
Courier and Helvetica in a variety of font sizes; attached is a python
script to do this. The letraset is then applied to the PCB and protected
with a thin coat of MGChemicals acrylic spray encapsulant. Aesthetically
it's very nice and professional looking and the same technique could
probably be applied equally well as a silkscreening alternative, indeed,
most of the custom letraset business from my understanding is for design
firms that want to mockup stuff like drink containers without paying for
an expensive silkscreening run. Total cost for the sheet was about $80
with shipping, of which $30 or so was the setup fee, which unfortunately
can't be amortized for serial numbers...

--
http://petertodd.org 'peter'[:-1]@petertodd.org


part 2 17282 bytes content-type:image/jpeg (decode)


part 3 1077 bytes content-type:text/x-python; charset=us-ascii
#!/usr/bin/python

import sys

from reportlab.lib import colors
from reportlab.lib.units import inch
from reportlab.lib.pagesizes import landscape,LETTER
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import SimpleDocTemplate,Paragraph,Table

styles = getSampleStyleSheet()

doc = SimpleDocTemplate(sys.argv[1],pagesize=LETTER)

elements = []

num_rows = 4
num_cols = 4

fonts = ('Helvetica','Courier')
sizes = ('8.0','9.0','10.0','12.0','14.0')

rows = []
for font in fonts:
   for size in sizes:
       for y in range(num_rows):
           row = []
           for x in range(num_cols):
               import random
               t = '<b><font name="%s" size="%s">%0.16x</font></b>' % (font,size,random.randint(0,2**64-1))
               row.append(Paragraph(t,styles['Normal']))
           rows.append(row)
       

t = Table(rows)

elements.append(t)

doc.leftMargin = 0.2 * inch
doc.rightMargin = 0.2 * inch
doc.topMargin = 0.2 * inch
doc.bottomMargin = 0.2 * inch
doc.build(elements)


part 4 35 bytes content-type:text/plain; charset="us-ascii"
(decoded 7bit)

More... (looser matching)
- Last day of these posts
- In 2008 , 2009 only
- Today
- New search...