Author Topic: DigiCDC  (Read 28417 times)

cooljam7

  • Newbie
  • *
  • Posts: 1
Re: DigiCDC
« Reply #30 on: October 15, 2015, 03:27:50 am »
So I am having the same problem as the OP and I found it is directly due to an invalid or incompatible coded configuration descriptor 'configDescrCDC' in DigiCDC.cpp.

Although I am close, I unfortunately dont have intimate knowledge of what interrupts or pipes the developer is trying to use in the lowcdc.sys driver. I can see and work with the existing configuration descriptor but for the life of me, I cant figure out what is wrong with the descriptor except that it looks like it might be mistructured.

Duplicated with Windows 8.1 64 bit, Arduino IDE 1.6.5, Digistump AVR 1.6.5, on a brand new digistump pro board.

I am able to coerce the digistump virtual serial port driver to install by changing the size of the returned configuration descriptor, but then the device cannot start. This is line 392 - return sizeof(configDescrCDC); - changed to - return configDescrCDC[0] > of digiCDC.cpp. This change is wrong since windows will now think the descriptor size is only 9 bytes, but this lets windows read the first part and install the corresponding digistumpCDC driver.

If I leave the correct size on the configuration descriptor, and remove the class descriptor and data interface descriptor within it, then the device does start but windows immediately crashes out and gives a 'stack unhandled exception' in lowcdc.sys. I assume this is the case because since I have removed the pipes and it does start/connect, the lowcdc driver crashes because it cannot find an expected resource.

I am using Theyscon's descriptor dump utility to analyze my changes/findings - tool can be found here: http://www.thesycon.de/eng/usb_descriptordumper.shtml

If the developer of digistumpCDC would care to chime in, or any other working user of the latest digistumpCDC library, it would be very helpful.

If I could just get a dump of a working install, I may be able to figure out the problem for installations like mine. Any working setup could help by running the above tool, selecting the digistump pro device in the tool vendor 16D0/product 087E (if your vendor/product id differ you can find it by going to properties for the digistump virtual com port in device manager), select show hex dump under options, and then file - save to file.

Since the descriptor is seen as malformed by windows and the above tool in an installation like mine, I cant see what a good descriptor should look like. If someone can post theirs, I might have a chance at finding a solution. I have two machines with a similar setup, and I have the same problem on both.

My suspicion is that the endpoints are of the wrong count, or in the wrong order, as the class descriptor looks correct, and the interface descriptors look correct, and the total length and size of each descriptor seem fine. Its possible that different versions of windows or different architectures may be more tolerant or less picky, but not in all cases.
« Last Edit: October 15, 2015, 03:29:37 am by cooljam7 »

Peping

  • Newbie
  • *
  • Posts: 1
Re: DigiCDC
« Reply #31 on: October 20, 2015, 04:37:42 am »
I just got a digispark as my first ever arduino. I wanted to make it into a computer-controllable LED and I thought using CDC would be really the simplest way to do it, but I'm running into the same problems.

Is this being investigated? Will it be fixed any time soon? I'd do the fix suggested by cromagn, but only as a last resort as I'd have to download the tools necessary to self-sign the driver again.

torchris

  • Newbie
  • *
  • Posts: 17
Re: DigiCDC
« Reply #32 on: October 25, 2015, 06:48:11 pm »
Would it be possible to update the Wiki page so that it is clearer on how this is to be used? I am getting the "USB device not recognized" in Windows 10 whenever I try this. How is it supposed to work? Is a port supposed to come up in the Tools -> Port menu in the IDE? Having some screen shots in the Wiki would be helpful for us new users.

Is it possible to use a serial adapter off of the DigiSpark Pro UART to do serial debugging.

Really, without being able to use the serial monitor in the Arduino IDE I can't see the point to using the DigiSpark Pro in my project and I may as well go over to the Arduino Pro Mini.

jaromaz

  • Newbie
  • *
  • Posts: 5
Re: DigiCDC
« Reply #33 on: January 27, 2019, 08:07:25 am »

pitchakorn

  • Newbie
  • *
  • Posts: 7
Re: DigiCDC
« Reply #34 on: May 20, 2019, 09:53:33 pm »