FEZ Cerberus Firmware Update?

Hey guys, I purchased a FEZ Cerberus board many months ago and tried to get started with the .NET Gadgeteer and the GHI NETMF software but I was never able to get anything to work. BTW I am very new this the hardware side of things, but I have been programing in .NET and Java for several years. As far as I can tell I need to update the Firmware on my FEZ Cerberus board but I have not had any success yet.

I just decided to come back and try again this weekend. I have downloaded all the necessary software and I am now on the last page of the GHI NETMF installer and it gives the option to update the firmware but all I see are FEZ Spider, FEZ Hydra, G120, and EMX (FEZ Cobra) on the list. Why does this list not include the FEZ Cerberus?

Again I am really new at hardware side of things and I would LOVE to get started but I just can’t seem to get the board to work correctly.

Thanks everyone,
-eric

@ Eric P. - Updating the Cerberus firmware is a little different than the other devices. You can find the details here.
http://www.ghielectronics.com/docs/55/firmware-update-fez-cerberus

1 Like

http://www.ghielectronics.com/docs/55/firmware-update-fez-cerberus

1 Like

Thanks for the fast reply. I have tired these steps months ago when I first purchased the board. I tried them again tonight and I still am not able to get the Firmware updated. I am not even sure what version its currently running and if it even needs updating. This time I was not able to see the BOOTLOADER show up in the Printers list like it did the first time. I have a jumper I use to put the board in LOAD mode.The first time I was using Windows 7 this time I am using Windows XP, I am not sure if that would matter…Win7 is 64bit and I think my XP is 32bit.

I also tried to create a simple program with the board, the red power board and a light sensor. When I run the application I see the following at the bottom of VS in the status bar.

preparing to deploy assemblies to the device
deployed succeed
Device debugging starting…
the debugging target is not in a initialized state; rebotting…
the debugging target initialized successfully

I even put break points in but they never get hit. I also attached a picture of my hardware. If anyone can give me some advice on getting this started I would greatly appreciate it.

Thanks,
-eric

Hi Eric P,

So #1 test is, what devices can you see in Device Manager when you connect the Cerberus board? it’s probably worth attaching a screen shot of Device Manager.

Once you have a board that is recognised by a PC, you can then use MFDeploy to check what version of firmware you have installed on the device, but until then we’re guessing. You can be pretty sure that the SDK you downloaded will be more up to date than the board, so you WILL need to do the firmware update. I’d suggest you don’t bother trying to get an application to work in Visual Studio before we get the driver and firmware sorted. To check, open MFDeploy, select the device in the dropdown (usually change SERIAL to USB is enough) and then check out Device Capabilities report.

1 Like

Ok this shows that the application deployed properly and is running on the Cerberus.
Can you show your code? Where did you put the break points etc.

@ Eric P. - have you removed the boot jumper as in your picture its still there.

1 Like

@ Justin - well spotted.

I had a similar experience. My fix was to switch to a different USB port on my laptop. I also had to reload the TinyBooter, config.hex, and firmware.hex a couple times because I was trying to use the cellular board while using USB port power only. It seemed to really corrupt the flash! If things don’t seem to work right, reboot and try reloading the all the base firmwares.

1 Like

Ok first of all thanks everyone for their responses. I was (at least I think I was) able to update the firmware on the board. I added an image of the Device Manager when the board was connected in boot mode. It did show “SMT Device in DFU Mode” under Universial Serial Bus Controllers. So that was good to see. When I connect the board without the jumper (not in boot mode) I do not see anything in the Device Manager. Is that ok or not?

Next I ran through the instructions to load the framework and it said successful. Next I tried to use the MFDeploy.exe to check the version number of the loaded firmware. It did open the .NET Micro Framework Deployment Tool. I selected USB under device and it said “Cerb-Family_Gadgeteer” in the other combo-box. I clicked Ping and it said the following.

Pinging… TinyBooter
Bootloader build info: Copyright © GHI Electronices, LLC

…and that’s it. Is it suppose to how a version number in the output? I picked Connect under target and it said “Connecting to Cerb-Family_Gadgeteer…Connected” I also clicked Plugin | Debug | Show Device Info and it said “DeviceInfo is not valid!” Not sure if that is bad or not.

Next I created a new Visual Studio project called GadgeteerApp1 using the 4.2 Gadgeteer template. Using the designer I added the usbClientDP and lightSensor to the design and connected the items. I did not change any of the code and I clicked Run…I guess this is a Build and a Deploy. In the VS status bar at the bottom it says “Preparing to deploy assemblies to the device.” There is also a little animation in the status bar showing its working but it never gets past this point. Its just stuck trying to deploy.

BTW the code is just the following.

namespace GadgeteerApp1 {

public partial class Program  {

    // This method is run when the mainboard is powered up or reset.   
    void ProgramStarted()  {
        Debug.Print("Program Started");
    }
}

}

Its very simple. @ Justin yes I bet I did leave the jumper in the board. I am almost sure I did. Well I guess I got a little farther but still not running code on the board yet. @ logictechs can you explain in more detail what you did? I don’t really know what config.hex is or firmware.hex is , etc.

Thanks everyone,
-eric

OK I missed part of the instructions on loading the firmware. I loaded the Config.hex and Firmware.hex files using the .NET Micro Framework Deployment Tool. I assume this is what logictechs was talking about? BTW what is the difference between the Ethernet and Non Ethernet folders for these files? Does that really have to do with connecting to the internet from the board?

OK now after connecting and clicking Device Info it says this.

Pinging… TinyCLR
Connecting to Cerb-Family_Gadgeteer…Connected
DeviceInfo:
HAL build info: 4.2.0.0, Copyright GHI Electronics, LLC
OEM Product codes (vendor, model, SKU): 255, 0, 65535
Serial Numbers (module, system):
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Solution Build Info: 4.2.4.0, Copyright (C) GHI Electronics, LLC
AppDomains:
default, id=1
Assemblies:
mscorlib,4.2.0.0
Microsoft.SPOT.Native,4.2.0.0
Microsoft.SPOT.Hardware,4.2.0.0
Microsoft.SPOT.Graphics,4.2.0.0
Microsoft.SPOT.TinyCore,4.2.0.0
Microsoft.SPOT.Hardware.SerialPort,4.2.0.0
Microsoft.SPOT.IO,4.2.0.0
System.IO,4.2.0.0
Microsoft.SPOT.Hardware.OneWire,4.2.0.0
Microsoft.SPOT.Hardware.Usb,4.2.0.0
Microsoft.SPOT.Hardware.PWM,4.2.0.1
Microsoft.SPOT.Net,4.2.0.0
System,4.2.0.0

I am a huge novice nub at this but to me this look good. :slight_smile: Now I went back to Visual Studio and ran the code and it worked! I see the debug statement “Program Started” in the output window and I added

Debug.Print(lightSensor.ReadLightSensorPercentage().ToString());

…and I see the percentage! This is so freaking sweet! Thanks guys!

The config and firmware hex files are needed to be deployed as the image files in the deployment tool. Make sure your using the 4.2 tool also. The hex files I use are in the C:\Program Files (x86)\GHI Electronics\GHI OSHW NETMF v4.2 SDK\FEZ Cerb Family\Firmware\Non Ethernet directory on my computer. Once those files are loaded see if your program deploys in C# Studio. If it still does not, try using another USB port. I have to use a certain one for things to work correctly. May be a different power capability between the 2 or too much bandwidth being used on the “bad” one.

SWEET! Have fun!