Main Site Documentation

Fez Hydra and EthernetENC28 Hardware failure or not


#1

I picked up an old project of mine. It uses a Fez Hydra 1.2b and a EthernetENC28. I’m using the GHI Electronics NETMF SDK 2016 R1 + Micro Framework SDK 4.3. I have updated the board to 4.3.8.1 Tiny bootloader and TinyCLR.
The issue is that I cannot use my EthernetENC28 anymore (Connected to connector 3). After a few minutes the power led on the board and the led on power modal dim a bit and start to blink. At that moment also my USB connection is lost to my computer. If I power down and power up after 20 seconds. I have the issue immediately. If I disconnect the EthernetENC28 and power up again the issue is gone. I can even reconnect the device for few minutes and have the same issue again. I tried to use the Ethernet modal programmatically, but simple questions like “is the cable connected” come back with value false, while the cable is connected and the left green led is burning and the right is doing the occasional blinking.
Is the hardware broken, do I have a firmware issue or a software issue?
My program:
var eth = new Gadgeteer.Modules.GHIElectronics.EthernetENC28(3);
eth.NetworkInterface.Open();
eth.NetworkSettings.EnableStaticIP(“192.168.178.9”, “255.255.255.0”, “192.168.178.1”);
eth.NetworkSettings.EnableStaticDns(new string[] { “192.168.178.1” });
characterDisplay.Clear();
characterDisplay.Print(eth.NetworkInterface.CableConnected.ToString()); //returns false

Anyone any idea?


#2

So I’d always suggest that it is possible that something has failed, but I’d first say do you know what the state of the project was before you put it away? Was it working, working reliably, working sometimes, or still a work in progress? If you knew your software worked, then it’s easier to point to hardware failure. What firmware version were you running prior to coming back to it now?

ENC28’s are not uncommon to buy a replacement, but they’re going to be non-Gadgeteer. That would be my expected failed component.

I’d also swap cables and check connectors for bent pins and the like just to make sure it’s not something simple that has happened.


#3

Hi,
in a Gadgeteer Application my setup was like this:

    private IPAddress localIpAddress;
    private IPAddress SubnetMask;
    
    // This method is run when the mainboard is powered up or reset.   
    void ProgramStarted()
    {
        Debug.Print("Program Started");
   
        ethernetENC28.NetworkUp +=ethernetENC28_NetworkUp;
        ethernetENC28.NetworkDown += ethernetENC28_NetworkDown;
        
        if (!ethernetENC28.NetworkInterface.Opened)
        {
            ethernetENC28.NetworkInterface.Open();
        }
        ethernetENC28.NetworkInterface.EnableDhcp();
        ethernetENC28.NetworkInterface.EnableDynamicDns();
        while (ethernetENC28.NetworkInterface.IPAddress == "0.0.0.0")
        {
            Debug.Print("Waiting for DHCP");
            Thread.Sleep(250);
        }
        localIpAddress = IPAddress.Parse(ethernetENC28.NetworkSettings.IPAddress);
        SubnetMask = IPAddress.Parse(ethernetENC28.NetworkSettings.SubnetMask);
        
        Debug.Print("My IP is: " + localIpAddress.ToString());
        Debug.Print("My Sub is: " + SubnetMask.ToString());
    }

    void ethernetENC28_NetworkDown(GTM.Module.NetworkModule sender,    GTM.Module.NetworkModule.NetworkState state)
    {
        Debug.Print("Network Down");
    }

    void ethernetENC28_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
    {
        Debug.Print("Network Up");
    }
}

#4

Thanks for the reply
I checked the following: no pins where bent, I replaced the cable with another one and I still have the same issue.
I changed the connection from connector 3 to connector 4 (Both S connectors). I still have the same issue.
As far as I know I cannot change to non Gadgeteer parts because the Fez Hydra only has Gadgeteer connectors. So any suggestions how to do a non- Gadgeteer setup?
Can I go back to the previous state? That is not possible because the computer was stolen with the original software… I’m working from a back-up / partial rebuild. With my other computer I have moved to VS2013 and the last updates from GHI. I did the necessary firmware updates to the Fez as well (update from 4.2 to 4.3).
Was it working reliable before: the answer was yes but I don’t have the old software anymore. So I have to work from here.

I made a new 4.3 Gadgeteer application in VS2013. I only connect the usb client power modal to connector 2 and EthernetENC28 to connector 4 (all new cables). Also did a simple code implementation (see below). I now get an IP from my DHCP server. That is nice. But after a few minutes the power led start to dim and the same issue of the power LED blinking is back again even with extra power from an external power supply. So any suggestion on what to do next?

using System;
using System.Collections;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
using Microsoft.SPOT.Presentation.Media;
using Microsoft.SPOT.Presentation.Shapes;
using Microsoft.SPOT.Touch;

using Gadgeteer.Networking;
using GT = Gadgeteer;
using GTM = Gadgeteer.Modules;
using Gadgeteer.Modules.GHIElectronics;

namespace GadgeteerApp1
{
public partial class Program
{
void ProgramStarted()
{
Debug.Print(“Program Started”);

        ethernetENC28.NetworkUp += ethernetENC28_NetworkUp;
        ethernetENC28.NetworkDown += ethernetENC28_NetworkDown;

        if (!ethernetENC28.NetworkInterface.Opened)
        {
            ethernetENC28.NetworkInterface.Open();
        }
        ethernetENC28.NetworkInterface.EnableDhcp();
        ethernetENC28.NetworkInterface.EnableDynamicDns();
        while (ethernetENC28.NetworkInterface.IPAddress == "0.0.0.0")
        {
            Debug.Print("Waiting for DHCP");
            Thread.Sleep(250);
        }

        Debug.Print("My IP is: " + ethernetENC28.NetworkSettings.IPAddress.ToString());
        Debug.Print("My Sub is: " + ethernetENC28.NetworkSettings.SubnetMask.ToString());
    }

    void ethernetENC28_NetworkDown(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
    {
        Debug.Print("Network Down");
    }

    void ethernetENC28_NetworkUp(GTM.Module.NetworkModule sender, GTM.Module.NetworkModule.NetworkState state)
    {
        Debug.Print("Network Up");
    }
}

}

Found debugger!

Create TS.

Loading start at 20252248, end 2028757c

Assembly: mscorlib (4.3.1.0) Assembly: Microsoft.SPOT.Native (4.3.1.0) Assembly: Microsoft.SPOT.Security.PKCS11 (4.3
.1.0) Assembly: System.Security (4.3.1.0) Assembly: Microsoft.SPOT.Hardware (4.3.1.0)
Assembly: Microsoft.SPOT.Graphics (4.3.1.0) Assembly: Microsoft.SPOT.TinyCore (4.3.1.0)
Assembly: Microsoft.SPOT.IO (4.3.1.0) Assembly: System.IO (4.3.1.0) Assembly: Microsoft.SPOT.Hardware.Usb (4.3.1.0)
Assembly: Microsoft.SPOT.Hardware.SerialPort (4.3.1.0) Assembly: Microsoft.SPOT.Touch (4.3.1.0)
Assembly: Microsoft.SPOT.Ink (4.3.1.0) Assembly: Microsoft.SPOT.Hardware.PWM (4.3.1.0)
Assembly: Microsoft.SPOT.Hardware.OneWire (4.3.1.0) Assembly: System.Xml (4.3.1.0)
Assembly: Microsoft.SPOT.Time (4.3.1.0) Assembly: Microsoft.SPOT.Net (4.3.1.0)
Assembly: System (4.3.1.0) Assembly: Microsoft.SPOT.Net.Security (4.3.1.0)
Assembly: System.Net.Security (4.3.1.0) Loading Deployment Assemblies.

Attaching deployed file.

Assembly: Gadgeteer (2.43.1.0) Attaching deployed file.
Assembly: Gadgeteer.WebClient (2.43.1.0) Attaching deployed file.
Assembly: GHI.Hardware (4.3.8.1) Attaching deployed file.
Assembly: System.Http (4.3.1.0) Attaching deployed file.
Assembly: Gadgeteer.SPI (2.43.1.0) Attaching deployed file.
Assembly: GadgeteerApp1 (1.0.0.0) Attaching deployed file.
Assembly: GTM.GHIElectronics.USBClientDP (4.3.8.1) Attaching deployed file.
Assembly: Gadgeteer.WebServer (2.43.1.0) Attaching deployed file.
Assembly: GHIElectronics.Gadgeteer.FEZHydra (4.3.8.1) Attaching deployed file.
Assembly: GTM.GHIElectronics.EthernetENC28 (4.3.8.1) Attaching deployed file.
Assembly: GHI.Networking (4.3.8.1) Resolving.

GC: 1msec 473784 bytes used, 5817348 bytes available

Type 0F (STRING ): 24 bytes
Type 15 (FREEBLOCK ): 5817348 bytes
Type 17 (ASSEMBLY ): 40080 bytes
Type 1E (BINARY_BLOB_HEAD ): 433608 bytes
Type 34 (APPDOMAIN_HEAD ): 72 bytes

GC: performing heap compaction…

The debugging target runtime is loading the application assemblies and starting execution.
Ready.

‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Native.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Security.PKCS11.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.Security.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Graphics.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.TinyCore.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.IO.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.IO.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.Usb.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.SerialPort.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Touch.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Ink.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.PWM.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Hardware.OneWire.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.Xml.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Time.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Net.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\Microsoft.SPOT.Net.Security.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.Net.Security.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Gadgeteer\Core\Assemblies.NET Micro Framework 4.3\le\Gadgeteer.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.3\Assemblies\le\System.Http.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Gadgeteer\Core\Assemblies.NET Micro Framework 4.3\le\Gadgeteer.WebClient.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics\NETMF v4.3 SDK\Libraries\le\GHI.Hardware.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Gadgeteer\Core\Assemblies.NET Micro Framework 4.3\le\Gadgeteer.SPI.dll’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics\NETMF v4.3 SDK\Libraries\le\GHI.Networking.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics.NET Gadgeteer SDK\Modules\EthernetENC28\NETMF 4.3\le\GTM.GHIElectronics.EthernetENC28.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics.NET Gadgeteer SDK\Modules\USBClientDP\NETMF 4.3\le\GTM.GHIElectronics.USBClientDP.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics.NET Gadgeteer SDK\Mainboards\FEZHydra\NETMF 4.3\le\GHIElectronics.Gadgeteer.FEZHydra.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Thermostaat\Basics\Ethernet\GadgeteerApp1\bin\Debug\le\GadgeteerApp1.exe’, Symbols loaded.
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\Microsoft .NET Gadgeteer\Core\Assemblies.NET Micro Framework 4.3\le\Gadgeteer.WebServer.dll’, Symbols loaded.
The thread ‘’ (0x2) has exited with code 0 (0x0).
Using mainboard GHI Electronics FEZ Hydra version 1.2
Program Started
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
Waiting for DHCP
My IP is: 192.168.178.59
My Sub is: 255.255.255.0
Network Down
Network Up
The thread ‘’ (0x3) has exited with code 0 (0x0).


#5

This sounds like a power issue to me.

First, when the problem occurs, I would check the temperature of the regulator on the power module. If it is hot, then it says something on the processor board is causing excessive current draw. If it is on the board side, I would think it might be a problem on the ethernet module.

If the power module regulator is cool, then it would point to the USB cable or USB port on the PC. Loading the program, and then power the board with a high powered USB charger would answer whether the PC port can not provide sufficient current.


#6

A Gadgeteer board can easily use non-Gadgeteer modules. You just need a breakout module of some form, either of the two GHI Gadgeteer breakouts or even splice your own by using a cable and soldering into those fine wires… not for the faint at heart, but if you have one of the breakouts, it just gives you 0.1" header pins


#7

Additionally I would make sure that the ENC28 module has a valid MAC.
MfDeploy --> Target --> Configuration --> Network (e.g. 00-21-03-00-00-01)
or
byte[] myMac = new byte[6] {0x00, …….}
netif.PhysicalAddress = myMac;
(is than used after reboot)