Using Cerberus board, with 4.3 SDK. I’m the same guy that had a problem with the Tunes module earlier last week.
Getting an exception every time I deploy. I put a break point in the code, but it throws an exception as soon as it instantiates the module. Used a different Ethernet ENC28 module and new Cerberus board with the same results.
The general idea is to poll a temperature module and then be able to post the retrieved temp to a website that is running on the Cerberus. Pretty simple I thought.
Maybe there’s a conflict going on with another module? I have all but 1 socket being used.
Socket 1- Unused
Socket 2- RFPipe
Socket 3-Tunes
Socket 4-led7C
Socket 5- Ethernet ENC28
Socket 6-Button
Socket 7-led7C (second one)
Socket 8-USB Client DP (for power)
Here’s the exception and I’ll paste the code right below it:
Found debugger!
Create TS.
Loading start at 807a53c, end 80a04c8
Assembly: mscorlib (4.3.1.0) Assembly: Microsoft.SPOT.Native (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.Hardware.PWM (4.3.1.0)
Loading Deployment Assemblies.
Attaching deployed file.
Assembly: Gadgeteer.WebServer (2.43.1.0) Attaching deployed file.
Assembly: Microsoft.SPOT.Net.Security (4.3.1.0) Attaching deployed file.
Assembly: GHIElectronics.Gadgeteer.FEZCerberus (4.3.8.1) Attaching deployed file.
Assembly: GHI.Hardware (4.3.8.1) Attaching deployed file.
Assembly: Microsoft.SPOT.Net (4.3.1.0) Attaching deployed file.
Assembly: GTM.GHIElectronics.EthernetENC28 (4.3.8.1) Attaching deployed file.
Assembly: System.Net.Security (4.3.1.0) Attaching deployed file.
Assembly: GTM.IngenuityMicro.RfPipe (4.3.1.0) Attaching deployed file.
Assembly: GHI.Networking (4.3.8.1) Attaching deployed file.
Assembly: Gadgeteer.WebClient (2.43.1.0) Attaching deployed file.
Assembly: System (4.3.1.0) Attaching deployed file.
Assembly: GTM.GHIElectronics.Button (4.3.8.1) Attaching deployed file.
Assembly: Gadgeteer.SPI (2.43.1.0) Attaching deployed file.
Assembly: HomebaseV3 (1.0.0.0) Attaching deployed file.
Assembly: GHI.Usb (4.3.8.1) Attaching deployed file.
Assembly: System.Http (4.3.1.0) Attaching deployed file.
Assembly: GTM.GHIElectronics.USBClientDP (4.3.8.1) Attaching deployed file.
Assembly: GTM.GHIElectronics.LED7C (4.3.8.1) Attaching deployed file.
Assembly: GTM.GHIElectronics.Tunes (4.3.8.1) Attaching deployed file.
Assembly: Gadgeteer (2.43.1.0) Resolving.
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\mscorlib.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.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.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.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.Net.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.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.WebServer.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)\GHI Electronics\NETMF v4.3 SDK\Libraries\le\GHI.Hardware.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics\NETMF v4.3 SDK\Libraries\le\GHI.Usb.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics.NET Gadgeteer SDK\Mainboards\FEZCerberus\NETMF 4.3\le\GHIElectronics.Gadgeteer.FEZCerberus.dll’
‘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)\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.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)\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)\IngenuityMicro\Microsoft .NET Gadgeteer\Modules\RfPipe\NETMF 4.3\le\GTM.IngenuityMicro.RfPipe.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.NET Gadgeteer SDK\Modules\Button\NETMF 4.3\le\GTM.GHIElectronics.Button.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics.NET Gadgeteer SDK\Modules\Tunes\NETMF 4.3\le\GTM.GHIElectronics.Tunes.dll’
‘Microsoft.SPOT.Debugger.CorDebug.12.dll’ (Managed): Loaded ‘C:\Program Files (x86)\GHI Electronics.NET Gadgeteer SDK\Modules\LED7C\NETMF 4.3\le\GTM.GHIElectronics.LED7C.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:\HomebaseV3withNetworking\HomebaseV3\bin\Debug\le\HomebaseV3.exe’, Symbols loaded.
The thread ‘’ (0x2) has exited with code 0 (0x0).
Using mainboard GHI Electronics FEZ Cerberus version 1.3
A first chance exception of type ‘System.Exception’ occurred in GHI.Networking.dll
An unhandled exception of type ‘System.Exception’ occurred in GHI.Networking.dll
WARN: Total initialization time exceeds 10 seconds.
: ProgramStarted is blocking execution, which means events and timers will not run properly.
: Make sure not to use blocking code such as while(true) - use a GT.Timer instead.
Uncaught exception
The thread ‘’ (0x1) has exited with code 0 (0x0).
WARN: Total initialization time exceeds 20 seconds.
: ProgramStarted is blocking execution, which means events and timers will not run properly.
: Make sure not to use blocking code such as while(true) - use a GT.Timer instead.
WARN: Total initialization time exceeds 30 seconds.
: ProgramStarted is blocking execution, which means events and timers will not run properly.
: Make sure not to use blocking code such as while(true) - use a GT.Timer instead.
WARN: Total initialization time exceeds 40 seconds.
: ProgramStarted is blocking execution, which means events and timers will not run properly.
: Make sure not to use blocking code such as while(true) - use a GT.Timer instead.
WARN: Total initialization time exceeds 50 seconds.
: ProgramStarted is blocking execution, which means events and timers will not run properly.
: Make sure not to use blocking code such as while(true) - use a GT.Timer instead.
// here’s the C# code:
using System;
using System.Text;
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.Touch;
using Microsoft.SPOT.Hardware;
using Gadgeteer.Networking;
using GHIElectronics.Gadgeteer;
using GT = Gadgeteer;
using GTM = Gadgeteer.Modules;
using Gadgeteer.Modules.GHIElectronics;
using Gadgeteer;
using Gadgeteer.Modules.IngenuityMicro;
namespace HomebaseV3
{
public partial class Program
{
private string currentPolledTemp = string.Empty;
private bool receivedTemp = false;
// This method is run when the mainboard is powered up or reset.
void ProgramStarted()
{
rfPipe.DataReceived +=rfPipe_DataReceived;
button.ButtonPressed +=button_ButtonPressed;
Mainboard.SetDebugLED(false);
led7C.SetColor(LED7C.Color.Off);
led7C2.SetColor(LED7C.Color.Off);
ethernetENC28.NetworkUp += ethernetENC28_NetworkUp;
ethernetENC28.NetworkDown += ethernetENC28_NetworkDown;
if (!ethernetENC28.NetworkInterface.Opened)
{
ethernetENC28.NetworkInterface.Open();
}
ethernetENC28.NetworkInterface.EnableStaticIP("192.168.17.17", "255.255.255.0", "192.168.17.1");
WebEvent postTemp = WebServer.SetupWebEvent("northtemp");
postTemp.WebEventReceived += postTemp_WebEventReceived;
WebServer.StartLocalServer("192.168.17.17", 80);
}
void postTemp_WebEventReceived(string path, WebServer.HttpMethod method, Responder responder)
{
// web event
var uptime = GT.Timer.GetMachineTime();
if (receivedTemp)
{
var HTML =
Encoding.UTF8.GetBytes(
@ "<head><style type=""text/css"">.style1{width: 100%;}.auto-style1 {text-align: center;}.auto-style2 {font-size: large;}.auto-style3 {text-align: right;}" +
@ "</style></head><html><body bgcolor=""33cc33""><p><div class=""auto-style1""><span class=""auto-style2"">Uptime = " +
FormatDuration(uptime) +
@ "</span><br class=""auto-style2""/></div><table class=""style1""><tr><td class=""auto-style3"">Temp</td><td> </td><td>" +
currentPolledTemp + " " +
@ "</td></tr></table></body></html>");
responder.Respond(HTML, "text/html");
}
else
{
// have not received temperature since bootup
var HTML =
Encoding.UTF8.GetBytes(
@ "<head><style type=""text/css"">.style1{width: 100%;}.auto-style1 {text-align: center;}.auto-style2 {font-size: large;}.auto-style3 {text-align: right;}" +
@ "</style></head><html><body bgcolor=""33cc33""><p><div class=""auto-style1""><span class=""auto-style2"">Uptime = " +
FormatDuration(uptime) +
@ "</span><br class=""auto-style2""/></div><table class=""style1""><tr><td class=""auto-style3"">Temp</td><td> </td><td>" +
"No Temperature Reading Since Startup" +
@ "</td></tr></table></body></html>");
responder.Respond(HTML, "text/html");
}
}
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");
}
void button_ButtonPressed(GTM.GHIElectronics.Button sender, GTM.GHIElectronics.Button.ButtonState state)
{
// when button is pressed - send out a signal to all receivers
Mainboard.SetDebugLED(false);
rfPipe.SendData("fd power poll");
Thread.Sleep(750);
rfPipe.SendData("sd power poll");
var melody = new Tunes.Melody();
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
tunes.Play(melody);
led7C.SetColor(LED7C.Color.Off);
// reset polled flag
receivedTemp = false;
}
void rfPipe_DataReceived(string val)
{
#region "fd opened"
if (val == "fd opened")
{
led7C.SetColor(LED7C.Color.Red);
led7C2.SetColor(LED7C.Color.Red);
var melody = new Tunes.Melody();
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
tunes.Play(melody);
Mainboard.SetDebugLED(true);
Thread.Sleep(30000);
return;
} // end if front door opened
#endregion
#region "sd opened"
if (val == "sd opened")
{
led7C.SetColor(LED7C.Color.Blue);
led7C2.SetColor(LED7C.Color.Blue);
var melody = new Tunes.Melody();
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.C5, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
melody.Add(new Tunes.MusicNote(Tunes.Tone.A2, 500));
tunes.Play(melody);
Mainboard.SetDebugLED(true);
Thread.Sleep(30000);
return;
} // end if study door opened
#endregion
#region "yes fd power"
if (val == "yes fd power")
{
var melody = new Tunes.Melody();
melody.Add(new Tunes.MusicNote(Tunes.Tone.D4, 500));
tunes.Play(melody);
} // end if we receive a front door poll response
#endregion
#region "yes sd power"
if (val == "yes sd power")
{
var melody = new Tunes.Melody();
melody.Add(new Tunes.MusicNote(Tunes.Tone.D4, 500));
tunes.Play(melody);
} // end if we receive a front door poll response
#endregion
#region "temperature signal received"
// receives: Temp: 84
if (val.ToLower().Substring(0,4) == "temp")
{
// check if the temp was triple digits
if (val.Length > 8)
{
// temp received, assign value to global
currentPolledTemp = val.Substring(7,2);
// raise polled flag
receivedTemp = true;
}
else // temp was double digits
{
// temp received, assign value to global
currentPolledTemp = val.Substring(6,3);
// raise polled flag
receivedTemp = true;
}
} // end if we receive a front door poll response
#endregion
}
private string FormatDuration(TimeSpan x)
{
return x.Days.ToString("D") + ":" + x.Hours.ToString("D2") + ":" + x.Minutes.ToString("D2") + ":" +
x.Seconds.ToString("D2");
}
}
}