This project is read-only.

Socket & Pin GPIO Limitations

Oct 17, 2012 at 1:27 PM
Edited Oct 17, 2012 at 2:05 PM


  I am looking at a chip for porting the TinyCLR to. I have encountered this issue with the Argon R1 where the USB_DP pin is not controllable as a GPIO pin, meaning the socket cannot function as an X socket. This would not be a problem, except that the H and D socket types require a user controllable GPIO on these pins.

  This leads to the following error displayed to the user:

Warning: socket 6 is not compliant with Gadgeteer : Cpu pin 4 must be specified for socket of type D

  Can we either:

  • Change the definition of H to stop Pin 4 (A USB Differential Pin!) to stop being GPIO capable.
  • Find some way to mask this error. I'm considering putting in a dummy Pin Number to remove this error, but I wondered if anyone from Gadgeteer could propose a better solution?


Oct 17, 2012 at 1:36 PM


The bug here is "just" in the software, and this will be fixed with the next release.  

The spec, which is the pin mapping table in the builder's guides, is already as you ask: it says that the D+ and D- pins for both H and D sockets are not required to be GPIO-capable.

As a workaround, you can put a fake pin number in there; if you don't specify socket type X or Y on that socket (in the socket.SupportedTypes array) then this fake pin number should never be used anyway.


Oct 17, 2012 at 1:45 PM

Thanks James, I'll add a duff pin to this port definition.