Fez Panda III Firmware Loading Lockup

I am having issues with my Panda III locking up.

I thought perhaps an application erase and redeploy would fix. It did not.
I tried reflashing the firmware using Fez Config. That crashed half way through leaving me stuck in bootloader mode.
I tried again and sometimes uploading will start and sometimes it won’t.
I tried uploading the new beta firmware just to see if that would load without crashing. It all got sent this time and the board responded as a G80, however, stopped responding again shortly after.
I tried to upload the normal firmware again and that fails at random points depending on when the board freezes.
I’ve switched USB cables, USB ports and the same happens.
I can see the device in Device Manager OK.

The upload process…
When it connects a dialog appears warning of data being deleted. Click Yes.
Config.ghi uploads fine.
Firmware.ghi starts to load but at a random point, normally early on it freezes and fails.

Is there anything I can do to this board to debug or could be board have died?


Just tried the new firmware again and that died early on too. I wonder if the board is freezing after an amount of time.

I just kept trying over and over (why I don’t know) but I managed to get a successful update. Now to find out of the board still freezes after some time without code. Very odd indeed.

1 Like

i am having the same problem. i am new to fez panda iii board.I am having trouble uploading the program into the board.my pc has detected the device as G80 but as i debug the program error occurs as device is not connected.can you please tell me how to upload my program to panda iii board.
Thank you

Start here and let us know if you need more help http://docs.ghielectronics.com/hardware/products/scm/g80.html

Thanks for the reply.I have updated the firmware but still it is showing the same error as device not found or cannot be opened.can you please tell me what i have to do next??
thank you

Share some screenshots please

hi sir,
I have got it… actually there was some mistake and mismatch of the versions I have downloaded. now everything is fine and the board is working. thank you so much for the help. I’m an electrical student and I want to control the speed of an induction motor using panda board by PWM technique, if you have any material or any suggestions regarding this topic please share. Further if I need any help I will let you know…
Thank you

1 Like

hi sir,
i have written a program for my project but i am unable to load this program to pandaiii board.could you please check the program i have written and tell me where i have gone wrong.This is a pwm program for inverter.
using System;
using System.Collections;
using System.Text;
using System.Threading;
using MathNet.Numerics;
using GHIElectronics.TinyCLR.Devices.Pwm;
using GHIElectronics.TinyCLR.Pins;

namespace _1phinverter
public class Program
static void Main()

        PwmController Controller2 = PwmController.FromId(FEZPandaIII.PwmPin.Controller2.Id);
        PwmPin switch1 = Controller2.OpenPin(FEZPandaIII.PwmPin.Controller2.D10);
        PwmPin switch2 = Controller2.OpenPin(FEZPandaIII.PwmPin.Controller2.D21);
        double freqsine = 50.0;
        double freqcarrier = 33.0 * 50;
        double carrierA;
        double simTimeCycles = 1.0;
        double simTimeSeconds =simTimeCycles/freqsine;
        int numSamples = 10000;
        int samplesPersecond = (int)(10000 / 0.02);
        double carrierPeriodSeconds = 1.0 / freqcarrier;
        int carrierPeriodSamples = (int)(carrierPeriodSeconds * samplesPersecond);
        int plotCyclesFund = 1;
        double plotTime = plotCyclesFund / freqsine;
        int plotsamples = plotCyclesFund;
        double[] sine = new double[numSamples];
        double[] carrier = new double[numSamples];
        double[] PWM = new double[numSamples];
        double[] t = new double[numSamples];
            carrierA = 1 ;
            sine = Generate.Sinusoidal(numSamples, samplesPersecond, freqsine, 1.0);
            carrier = Generate.Triangle(numSamples, carrierPeriodSamples / 2, carrierPeriodSamples / 2, -carrierA, carrierA);
        while (true)
            for (int i = 0; i < numSamples; i++)
                t[i] = i / (double)samplesPersecond;
                if (sine[i] > carrier[i])
                    PWM[i] = 1.0;
        while (true)
            for (int i = 0; i < numSamples; i++)
                if (sine[i] < carrier[i])
                    PWM[i] = -1.0;

Thank You

hi there
instead of us looking at your code (when you don’t even know if it works - and we’re even less likely to be able to!), how about we figure out why you can’t load the application? To do that - you absolutely must tell us about your setup, what you have tried, and what errors you’re getting. Without some of this, we’re just shooting in the dark.

two while true loops?

actually i have written and i have got the required result in windows form application in visual c#.but as i have changed the code as per panda board requirements i was unable to upload it. there were no errors, as i run the program with device connected visual studio app stops working.
thank you.

Sorry, that doesn’t really help us (to help you)

Here’s what I think you should do. Start at the beginning - create a new netmf project that blinks the onboard LED on your Panda, and upload that. If that doesn’t work, detail everything you did from the point you opened Visual Studio, and report that back here. If it does, then cut all the code out so it’s no longer in program.cs, and paste your above sample in and resolve any references that you might need to add. And then, tell us what happens when you press debug.

program starts and goes into tight loop. first while true never ends.

Reflash firmware and single step in debugger.

Ah, but @Mike, the code already works in a windows C# app ! :wink:

Agreed, if that’s the only “behaviour” (not being able to attach the debugger after this app is deployed) then yes, reflash firmware and write code that doesn’t do that and that can be debugged and paused before it starts is a great idea. Strategies include waiting for a button press before proceeding into the “do stuff” loop, adding an arbitrary wait of (say) 15 seconds that you can then attach debugger and step debug as needed, or something like that - but at least a sleep(20) thru each iteration of the loop to release the cpu and allow the debugger to do stuff if it needs is essential