MFDeploy unable to recognize FEZ Cerberus Device

I am currently using Visual C# Express 2010 to program my FEZ Cerberus board and flash the board through it’s debug port. It is working fine, but now I would like to flash the hex file onto the board without using visual studios. The only issue is that I cannot find any generated hex file under visual studios. This post seemed helpful:

and it told me that visual studios doesn’t generate any hex file (which is why I can’t find it), and I should try to use MFDeploy to get the hex file from the one already on the FEZ board so I have it on my pc. The only issue is that the MFDeploy application is not recognizing my device at all. I select the usb choice but no options are listed in the drop down menu. I also shut down all over applications to make sure the debug port is not busy, but that didn’t work. It’s just weird because I can connect with it and flash it with Visual Studios, but MFDeploy doesn’t even recognize it. I’ve researched a lot of topics and posts but have found nothing. Any guidance would be great.

Hi tyjames008, welcome to the forum.

The behaviour seems interesting. Usually this is caused by something in your program that is running in a tight loop, rather than allowing the debug threads to behave and attach to the debugger. Is that something that is possible in your app?

One check to make sure things are operating correctly on the PC and Fez before worrying about MFDeploy is to look at Device Manager and make sure that the netmf debugging device appears. If it does, that means everything at the USB connection layer is working as expected.

Wow, good guess! Yes, I do have a tight loop running continuously, relaying the position of a motor every .5 seconds. This doesn’t seem very fast though, but I also have other loops I have to look into (some of the loops are not mine but my partner who is also coding so I need to check them).
When I plug the device in, the computer does make a sound indicating that it recognizes something has been plugged into it, and the device manager refreshes as if something new should appear in its listings, but I don’t see the debugging device anywhere.
So how do I go about fixing this? Do I have to change the code to perform these loops in a different manner, or can I somehow disable it while debugging?

Note: I should have included this in the last post, but it is also good to know that the FEZ Config application from GHI recognizes the device under usb as Cerb-Family_Gadgeteer and I am able to ping it and get the response:
Pinging… TinyCLR

hehe, you think it was a guess… :wink:

What you can do that often gives you enough time to attach the debugger is to add a start-up delay or action to your app, like if a button is pressed in the first 3 seconds after start you then fork into an “idle” state rather than let the app continue. Then you won’t have to fight the tight loops.

It’s strange that you can’t see the device in Device Manager. It’s especially strange since FezConfig can see the device ! Depending on your OS version you will usually find the device under the “USB Controllers” category - for me the device gets listed as “GHI NETMF Debug Interface”.

Can I ask more about the reason you want/need to do deployment in this way ? Are you attempting to go into “production” and make multiple installs of the same code base on many devices? Have you looked at FezConfig, as the team has spent some time adding that capability !

1 Like

Looks like you provided the answer Brett. I didn’t realize that FEZ Config had that capability (all the posts online said that MFDeploy was the only way, but they must have been before this new app was created), so I was able to get the hex file through FEZ Config.

And yes, we want to be able to flash the hex file on many devices without having to go through visual studios, and now we can!