Machine/Device ID

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.

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

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.

You can use Configuration.PermanentUserKey Class

Take a look into the documentation here :

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

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.

That is correct.

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());

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

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.

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;
}

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.