Using USB Client, and changing the debugging interface

I’m interested in emulating a USB keyboard with my Panda (II!), and I get an InvalidOperationException when I run this line:

var keyb = USBClientController.StandardDevices.StartKeyboard();

It seems to me that this is because the USB port is currently set up as the debugging port. It seems clear to me that I can change this by using something like this:

Configuration.DebugInterface.Set(some_port, some_port);

I have one giant question, though: if I do this, will I lose the ability to communicate with the Panda? Will I be unable to deploy programs to it? Will it be gone forever, running my simple little test program until the end of days?

Take a look at the USB Client section, it details how to do this.

Have you seen the book on the downloads page?

I have, but I don’t have (for example) an RS232 shield. All I really want to know is, if I disable debugging on the USB port, is there a way to reenable it?

I was reading the firmware updates section of the book, and it seems to me that booting the FEZ with the LDR button held down would put it in bootloader mode (regardless of what the user program would try to do), and from there I could simply issue a D command to recover the device. Is that accurate?

Yes you can always recover FEZ so do not worry.

You can use MODE pin to change interface to serial but you do not need to have anything on serial port connected.

  1. set mode high (default) fro USB debugging and load your app using USB
  2. set mode low and reset the board. You can’t debug anymore (unless you connect RS232 or USB TTL cable) but your application will run and be able to use the USB client port.