Hi @reddish
I run your example with Ethernet connection for 2 hour without any issues.
You could try the Linux boot mode. This is recommended for embedded use but also supports USB and Ethernet device connection. It boots slower and has a bit lower rates but the Ethernet support may be better than with the Standard boot mode (bare-metal USB and Ethernet device).
The device enumeration can be filtered by connection type like: FDwfEnum(enumfilterType|enumfilterUSB, &cDev)
The connection type (DTP) of a device is only available with the following:
DWFAPI BOOL FDwfEnumEDVC(int idxDev, EDVC* pedvc);
dpcdecl.h
typedef DWORD DTP;
const DTP dtpUSB = 0x00000001;
const DTP dtpEthernet = 0x00000002;
typedef DWORD PDID; // device product id
typedef WORD FWVER; // device firmware version number
typedef DWORD DCAP; //capabilities bitfield
#pragma pack(16)
typedef struct tagDVC{
char szName[cchDvcNameMax];
//in dvctable: Alias
//not in dvctable: user assigned name in device
//not in dvctable, no user defined name: device type with identifier
char szConn[MAX_PATH+1];
//in dvctable: connection string in dvctable
//not in dvctable: USB: PATHNAME
// Eth: IP:192.168.1.1
// Ser: COM1:9600,N,8,1
// EPP: EPP:0x378
DTP dtp;
} DVC;
typedef struct tagEDVC{
DVC dvc;
// standard DVC, may be used anywhere a DVC is required
char szUsrName[cchUsrNameMax+1];
// user name string returned by the device
char szProdName[cchProdNameMax+1];
// product name string returned by the device
char szSN[cchSnMax+1];\
// serial number string returned by the device
char szMAC[cchMacMax+1];
// MAC Address (EUI-48) returned by the device
char szIPV4[cchIpv4Max+1];
// IPV4 address returned by the device
char szIPV6[cchIpv6Max+1];
// IPV6 address returned by the device
char szPort[cchPortMax+1];
// port number network device is listening on
PDID pdid;
// product identifier returned by the device
FWVER fwver;
// firmware version returned by the device
DCAP dcap;
// device capabilities returned by the device
INT32 cOpen;
// count of handles open for this device on this system
union {
struct {
WORD discovered:1;
// 0: device was not discovered during enumeration
// 1: device was discovered during enumeration
WORD table:1;
// 0: device is not in the device table
// 1: device is in the device table
WORD pdidIsValid:1;
// 0: pdid field is invalid
// 1: pdid field is valid
WORD fwverIsValid:1;
// 0: fwver field is invalid
// 1: fwver field is valid
WORD dcapIsValid:1;
// 0: dcap field is invalid
// 1: dcap field is valid
WORD v2FieldsValid:1;
// 0: V2 fields are not valid
// 1: V2 fields (ctlsSupported, dtlsSupported,
// authSupported, and authEnabled) are valid
WORD ctlsSupported:1;
// 0: device does not support TLS on the control channel
// 1: device supports TLS on the control channel
WORD dtlsSupported:1;
// 0: device is not in the device table
// 1: device is in the device table
WORD authSupported:1;
// 0: client authentication is not supported
// 1: client authentication is supported
WORD authEnabled:1;
// 0: client authentication is disabled
// 1: client authentication is enabled
WORD rsv:6;
// reserved for future use
};
WORD fs;
};
} EDVC;
#pragma pack()
The pins are 0.64 mm square as cnegrea correctly indicated. You can find some more details in this thread:
I'll work on getting this detail into the Cmod A7 Resource Center for easier future reference.
Thanks,
JColvin
Two PPPC241LFBN-RC (DigiKey PN: S7057-ND) assembled in 0.6 inch side by side.
https://www.digikey.com/en/products/detail/sullins-connector-solutions/PPPC241LFBN-RC/810196
asmi,
If you want to defend bad design choices, that's your privilege; I choose to call them out.
There's no point to continuing this little debate, so I 'll just stop with this thought, in the context of all of your arguments. The Raspberry Pi3 has a micro USB connector... with through-hole tabs. The RPi4 has 2 micro HDMI and a USB C connectors, all with through-hole tabs. These products are on very densely populated, very small PCBs, and retail for under $50 in single quantities. No one's complaining about connectors being ripped off of these products. That's just on example of well thought out product design, because the people making them care about their customers. I have lot's of cheap development boards with quality components that counter your arguments.