Show / Hide Table of Contents

    Device Information


    CPU usage statistic

    CPU usage statistic measures between 0 and 100%

    while (true) {                
    
        Thread.Sleep(100);  
    
        // Check CPU every one second
        if ((DateTime.Now - last).TotalMilliseconds >= 1000) {
            var cpuUsage = DeviceInformation.GetCpuUsageStatistic();
    
            Debug.WriteLine("Cpu usage = " + cpuUsage + " %");
    
            last = DateTime.Now;    
        }
    }
    

    Debug Interface

    MOD pin is normally used to select the debug interface as explained in the Debugging tutorial. However, the MOD pin feature can be disabled and the debug interface can be forced to a specific interface.

    DeviceInformation.SetDebugInterface(DebugInterface.Usb);
    DeviceInformation.SetDebugInterface(DebugInterface.Serial);
    

    The debug interface can be completely disabled for the managed application's IP Protection DeviceInformation.SetDebugInterface(DebugInterface.Disable);

    The current debug interface can be determined as follows:

    if (DeviceInformation.DebugInterface == DebugInterface.Usb)
       Debug.WriteLine("Debug is in USB mode");
    

    The return results from DeviceInformation.DebugInterface only states the current interface but it does not know if that is due to MOD pin being set in that mode or the interface was forced to that specific interface. The DeviceInformation.IsModePinDisabled can be used to determine if MOD was used.

    As an alternate option, users can change the debug interface using TinyCLR Config tool.

    Note

    Once the debug interfaces changed or disabled, it may not be possible to communicate with the device anymore. However, changing or disabling the interface does not affect the bootloader. Users can always enter the bootloader, which will be in serial or USB depending on MOD pin. From there a Erase All can be issues, manually or though the TinyCLR Config tool.

    APP Pin

    The Special Pin APP's feature can be disabled using:

    DeviceInformation.AppPinDisable();
    var appDisPin = DeviceInformation.IsAppPinDisabled();
    

    TinyCLR Config tool can also be used to disable APP feature.

    Unique ID

    Returns devices UniqueId

    var deviceId = DeviceInformation.GetUniqueId();
    

    Firmware Info

    Returns devices firmware Version.

    var major = (ushort)((DeviceInformation.Version >> 48) & 0xFFFF);
    var minor = (ushort)((DeviceInformation.Version >> 32) & 0xFFFF);
    var build = (ushort)((DeviceInformation.Version >> 16) & 0xFFFF);
    var revision = (ushort)((DeviceInformation.Version >> 0) & 0xFFFF);
    Debug.WriteLine(major +"."+ minor +"."+ build +"."+ revision);
    

    Manufacture Name

    Returns ManufacturerName information.

    Debug.WriteLine(DeviceInformation.ManufacturerName);
    

    Device Name

    Devices have a default name that they ship with. This can be read using DeviceInformation.DeviceName. This name also shows on the USB debug interface. The name can changed only once through DeviceInformation.SetDeviceName("New Device Name"). Once set, a complete device erase is required before changing the name again.

    Tip

    Since Windows caches the name when loading the driver, Windows Device Manager will still show the old name. Simply right-click on the device and uninstall the driver. The next time it installs the drivers it will update with the new name.

    • Improve this Doc
    ☀
    ☾

    Back to top

    Back to top Copyright © 2022 GHI Electronics, LLC
    Generated by DocFX