Main Site Documentation

Machine/Device ID


#1

I want to be able to get the Device ID/Serial Number or other unique ID for a device (Domino/Panda/Mini).

I’ve looked at Microsoft.SPOT.Hardware.SystemInfo but cant find the answer there?

Please help.


#2

Use GHIElectronics.NETMF.FEZ.FEZ_System.GetSystemType()


#3

Mike GetSystemType just return the system type, i.e. domino, mini etc…

I need the unique serial number of the board, on a PC its called the MID or MAC address.

Thanks

Jason.


#4

You can use Configuration.PermanentUserKey Class

Take a look into the documentation here :

http://www.ghielectronics.com/downloads/NETMF/Library%20Documentation/html/ebe3bf60-213f-9ea6-c3f7-20575d9e9fb2.htm


#5

I was hoping that a unique key would be already setup on each dev board at production stage.

So what your saying is that I can set a perminent serial number on each device, but there isnt one already set.


#6

That is correct.


#7

Is there a way i can deploy this code on all FEZ devices ? In order to use GetSystemType() method i need to reference any of the “FEZ(…)_GHIElectronics.NETMF.FEZ.dll” libraries but by doing that this code can only be deployed on one particular FEZ.


Debug.Print(GetSystemType().ToString());


#8

Then you do not use the GHI.NETMF.FEZ class and instead the GHI.NETMF.USBizi pin class then you can make a pin provider class that exposes the pins you need to use


#9

I only want to know on which FEZ the code runs. I can use GetSystemType() method but i need to include one of the mentioned libraries which narrows my deployment platformst to one particular FEZ (so no need to determine at runtime which FEZ is this). I was wondering if i can deploy exactly the same code (without changing library references) and output the name of FEZ platform.


#10

Copy the function to your code, but if GHI will change model numbering in the future - the function will brake.



public enum FEZ_Type : byte
{
    Cobra = 3,
    Domino = 2,
    Mini = 1,
    Rhino = 4,
    Unknown = 0
}


public static FEZ_Type GetSystemType()
{
    switch (SystemInfo.SystemID.Model)
    {
        case 1:
            return FEZ_Type.Mini;

        case 2:
            try
            {
                using (InputPort port = new InputPort((Cpu.Pin) 0x3f, false, Port.ResistorMode.Disabled))
                {
                    if (!port.Read())
                    {
                        return FEZ_Type.Rhino;
                    }
                }
            }
            catch
            {
            }
            return FEZ_Type.Domino;

        case 5:
            return FEZ_Type.Cobra;
    }
    return FEZ_Type.Unknown;
}


#11

Thanks, SystemInfo.SystemID.Model is just what i was looking for. I only need to now if I’m runing on Domino or Mini so this works.