Today we are announcing the final preview release for the 2015 NETMF and Gadgeteer SDK. We added a new capacitive touch feature (technically called Pulse Feedback) which allows you to use almost anything as an input for your project. For example, a few days ago we had a picnic to celebrate…well just to celebrate being awesome and because we are nerds, we turned someones lunch into a 3 key piano! ;D
This preview release is the final preview before we release the officially supported 2015 NETMF and Gadgeteer SDK. So please take this opportunity to download and use this preview SDK. We will continue releasing BETA SDKs but this will be your last opportunity to address anything related to the official 2015 release.
I have a need for the G400-D (v1.3) to operate as a USB Device with a vendor defined class, the other hardware is a G400HDR, USB Client DP powered from an adapter, and the RS-232 module on COM1. I will eventually need a IN / OUT Bulk endpoints and an IN Interrupt endpoint.
I am using the Pre-Release 2 build with serial port to output flow statements to COM1, also have set the USB vendor to 0x1B9F and USB product ID to 0x0102, and Revision to 0x200. Visual Studio is not running for the test. Pressing the reset button will repeat the same results. (I have modified the manufacture strings as well.)
The issue I am having is that the following line of code throws an exception.
usbStream = usbController.CreateUsbStream(WRITE_EP, READ_EP);
I tried this on a second Windows system that does not have the GHI USB drivers installed and the results are the same.
My COM1 outputs this from the catch exception handler, usbController.ConfigurationError.ToString() is zero or ConfigOK
Also the Windows device manager displays, "Unknown USB Device(Device Descriptor Request Failed).
Something likely changed since Pre-Release 1 of this SDK, as the G400-D had to be completely re-initialized with TinyBoot Loader, and TinyCLR, this release I can just deploy new code as needed.
Not sure if there is anything else I can try at this point. I have read the note about USB Custom Devices and how the registry can retain a bad configuration.
@ John - Good question John, the discussion link states that “It should run on any NETMF board that supports Microsoft.SPOT.Hardware.Usb …I suppose your board also needs free endpoints, etc. But basically, if you debug via USB I think this code will work on your board.” Most of the other messages describe issue with debugging of a the same USB port.
Unfortunately I do not have access to a USB Analyzer at this time, I have a few weeks to decide to use off the shelf USB Data Acquisition, a GHIElectronics SoC running .NETMF, or a more typical embedded solution. I have the OTS approach working now, have started the evaluation some Microchip controllers (past experience with the non-USB devices in a Fax PBX / DID solution, and over the past two years I have evaluated the G400-D, these previous projects require lossless serial port operation. We are replacing the dependency on serial ports with USB connections. It would be nice to have our main control program in .NET 4.x and switch to .NETMF for the distributed control of devices.
If we move away from the OTS solution, then we will purchase a USB Analyzer.
I just plugged the G400-D in to a Windows XP system that has never had a G400-D attached or GHI SDKs installed, the device manager shows Unknown Device, the Hardware Id shows “USB\UNKNOWN” with the same ConfigurationError of ConfigOK
@ John - No it does not, I always get that error in device manager, get descriptors failed.
That’s why I switched to using COM1 to put trace statements in to determine where the crash was occurring, grant it that test of the original code was on Pre-Release 1 where every time I tried something the TinyBoot loader would require re-installation.
On Pre-Release 2 I have COM1 output.
Also even if I leave the USB cable disconnected, I get the same configuration.error = ConfigOK in the exception handler.
I have several G400-D maybe I should try another one, to see what the behaviour is.