displayController Error on initialization

I’m getting an error that I’m having a bit of a struggle to figure out what’s going on. I have built an application using the car wash example (which uses the UI library and multiple screens). It’s been working fine until recently, where I can’t seem to be able to execute the line:

var displayController = GHIElectronics.TinyCLR.Devices.Display.DisplayController.GetDefault();

I get the following error:

Step into: Stepping over non-user code ‘GHIElectronics.TinyCLR.Devices.Display.Provider.DisplayControllerApiWrapper.DisplayControllerApiWrapper’
#### Exception System.InvalidOperationException - CLR_E_INVALID_OPERATION (1) ####
#### Message:
#### GHIElectronics.TinyCLR.Devices.Display.Provider.DisplayControllerApiWrapper::Acquire [IP: 0000] ####
#### GHIElectronics.TinyCLR.Devices.Display.Provider.DisplayControllerApiWrapper::.ctor [IP: 0015] ####
#### GHIElectronics.TinyCLR.Devices.Display.DisplayController::FromName [IP: 000c] ####
#### GHIElectronics.TinyCLR.Devices.Display.DisplayController::GetDefault [IP: 001a] ####
#### Water_System_Display.Program::DoTestWPF [IP: 0019] ####
#### Water_System_Display.Program::Main [IP: 0008] ####
Exception thrown: ‘System.InvalidOperationException’ in GHIElectronics.TinyCLR.Devices.Display.dll

The code is set up based on the car wash example, with the following:

using System.IO;
using System.Threading;
//using MBN;
//using MBN.Modules;
using System.Text;
using GHIElectronics.TinyCLR.Devices.Adc;
using GHIElectronics.TinyCLR.Devices.Display;
using GHIElectronics.TinyCLR.Devices.Gpio;
using GHIElectronics.TinyCLR.Devices.Storage;
using GHIElectronics.TinyCLR.Devices.I2c;
using GHIElectronics.TinyCLR.Devices.Network;
using GHIElectronics.TinyCLR.Networking.Mqtt;
using GHIElectronics.TinyCLR.Devices.Rtc;
using GHIElectronics.TinyCLR.Devices.Spi;
using GHIElectronics.TinyCLR.Drivers.FocalTech.FT5xx6;
using GHIElectronics.TinyCLR.Native;
using GHIElectronics.TinyCLR.Pins;
using GHIElectronics.TinyCLR.IO;
using GHIElectronics.TinyCLR.UI;
using GHIElectronics.TinyCLR.UI.Media;
using GHIElectronics.TinyCLR.UI.Controls;

namespace Water_System_Display
{

class Program : Application
{
  ... bunch of constants declared here........

    public Program(DisplayController d) : base(d)
    {
    }
    private static bool linkReady = false;

    static void Main()
    {  
 var controller = GpioController.GetDefault();
        DoTestWPF();
    }

    static Program app;
    static FT5xx6Controller touch;

    static void DoTestWPF()
    {

        var backlight = GpioController.GetDefault().OpenPin(SC20260.GpioPin.PA15);

        backlight.SetDriveMode(GpioPinDriveMode.Output);

        backlight.Write(GpioPinValue.High);

        var displayController = GHIElectronics.TinyCLR.Devices.Display.DisplayController.GetDefault();

Any idea why I can’t initalize displayController?

Thanks for your help!! - John

And I have removed and re-installed all 20 nugets, and I’ve erased the firmware and reloaded to see if that was it, no luck.

You need a new simple project to test. Probably you use one of lcd pins somewhere else.

There is 2.1 and 2.2 is latest. If you are using 2.0 then make sure nuget and firmware 2.0.

Thanks Dat I will spin through all the pin assignments - I was converting from using the internal adc’s to using a Mikroe adc3 Click board on the portal so that is probably it.

John