Are vendor-specific USB serial adapters supported in Metro apps? - serial-port

There's a sample provided for CDC compliant USB devices here. Are vendor-specific USB devices supported too? Or are CDC compliant USB devices the only ones supported in Metro apps?
Your help is much appreciated!!

Vendor specific USB to UART bridge devices will not be supported under CDC, only a USB CDC class device would be supported in that case.
However, since Microsoft has opened up a USB API you could still access vendor specific devices. The downside here is that the devices will not look like a COM port, you would need to use the Windows.Devices.Usb namespace to access the device directly through it's USB protocol. This means that the vendor for a specific device would need to publish their protocol, or you could reverse engineer or use the Linux source as an example of what the setup packets for certain commands should look like.
Since you're using an FTDI converter you can get the device protocol information from their Linux Source (this is from 3.13 kernel) and use this to access the device through Windows RT.

FTDI might support Win RT in the future (today is 2014-Apr-15), you can ask for a beta driver here:
Windows RT Driver

Related

Can I enable PC to support GATT server (peripheral) role?

I tested BluetoothAdapter adapter = await BluetoothAdapter.GetDefaultAsync();
and found out that IsPeripheralRoleSupported = false.
I tested on both desktop and laptop, which are both Windows10(1903), but had no luck.
Is there any way I can enable the PC to support peripheral role?
Or is this property unable to be changed?
Mike Petrichenko answered on the comment if anyone looking for the answer to this question!
You can but with very few Bluetooth Adapters. 100% working one is Laird BT851
You can not "enable" it. It depends only on hardware (Bluetooth module). Use compatible Bluetooth module (the one I posted above is compatible) and GATT server (peripheral mode) will work. Windows has very special requirements fro Bluetooth hardware to support peripheral mode and only few devices can be used.
It's a dongle (https://www.digikey.com/product-detail/en/laird-wireless-thermal-systems/BT851/BT851-ND/8251358). You should replace your one with this. Or, if you have build-in dongle, disable build-in. There are also 2 more known and tested models but they are not USB.

How to emulate GATT server in Bluetooth Developer Studio while connected with a Physical Device?

When a physical device is connected with Bluetooth Developer Studio (BDS), BDS treats it as GATT server and itself behaves like a client. But what if I want to check the client role on physical device.
I'm trying HID over GATT (HOGP) and my physical device works as HID Host role. I wanted to emulate BDS as HID Device but I didn't find any way to make it as HID Device while connected to a physical device as HID Host.
Is there any way or any plugin need to install to host services on BDS when it is connected to a phycial device?
I was looking for the same functionality in BDS, but after looking into it I found that it only supports interfacing with a physical peripheral device and not central devices. I follow the Bluetooth SIG webinars and updates on the roadmap for the tool as well, and this functionality is not listed in their future roadmap for releases.
BDS plugins are only supported for source code generation (at least up to version 1.1).

Communicate between 2 WinCE devices using USB - how?

We've got two WinCE devices that need to talk to each other, they don't have WiFi or Bluetooth so I think a wired USB connection is our best chance. I've been reading up on using ActiveSync and serial over USB, but all the articles are geared towards talking between a WinCE device to a full Windows box, never between two WinCE devices.
If we can get ActiveSync working, that's fine, the other option is just to open COM ports on both sides and write our own communications protocol.
Given the project timelines, writing any sort of device driver isn't an option, this needs to be something that is built in to WinCE.
We are building WinCE for both devices, so I can make any modifications necessary at that level.
Is there a way to get these two guys talking to each other?
If you can't write your own driver then your fastest route is probably to get a USB to serial converter for both devices and then connect them via serial.
Obviously, you'll need to choose one that has support for Windows Mobile. I think FTDI based adapters should work.
Once that's working you just use the built-in serial API to read and write data.

API to access GSM signal on computer

Hope this is the right place to ask - assuming so as it is related to programming.
I am looking for some hardware (say a dongle) that would open up an API for my computer to a SIM card. Does that exist anywhere?
The idea would be that I can then use my existing SIM card on its existing network/contract and with a bit of code, send/receive calls and texts. I figured that if a phone can be programmed to do it why can't a computer? I just need the hardware.
Any suggestions if this kind of thing is possible? Even by maybe integrating a phone?
You can use AT commands with any modem or phone, whose driver exposes a modem port when you connect it to a computer. Plug in the phone or modem, and go to Windows Device Manager, and look under "Modems" and see what you've got. From "properties" of the Modem, you can see which COM port it is on.
AT commands are an older method of communicating with a modem. There is a standard set of commands for GSM/GPRS/3G/4G devices available from 3GPP.org, here. Manufacturers add their own proprietary commands for more obscure functions. Many but not all of these are in the public domain.
Some newer plug-in modems may appear as a network adapter (you can see this in Windows), due to their drivers. In this case, you can use the following interfaces:
on Vista: NDIS, proprietary interfaces
on Windows 7 and 8.x Desktop apps: Windows Mobile Broadband API
on Windows 8.x, in the Metro/app area: Windows.Networking and MobileBroadband APIs.
on Windows 10, UWP, there are UWP APIs here. But they do not give as much functionality as the Desktop APIs.
On Windows 8.1 and Windows 10, if the appropriate drives are present it is possible to use the new MBIM interface via the desktop Mobile Broadband DeviceServices API. Mobile Broadband Interface Model spec available here.
On Linux, use AT commands via the serial port.
I'm a bit puzzled by your requirement to make (voice?) calls via a phone connected to a computer. Do you mean Skype? In this case, of course, you wouldn't need any interface for making calls, you would just open an IP connection over a data session - which can be done via any of the above interfaces.
(added this comment as an answer, as there was more information)
I use this GSM device: http://www.mikroe.com/click/gsm2/ connected to a basic UART like: https://www.sparkfun.com/products/718?gclid=CIj1xOzbur4CFUVbfgodCpQASQ
Then use AT COMMANDS.
I also use a piece of software called QNavigator to inspect the modem/gsm: http://www.soselectronic.com/?str=1329

Activesync connection between two USB-host controllers

For a hobby project I wish to develop some stuff for a WinCE 6.0 device. Ideally, I would have an activesync connection to debug from Visual Studio. The OS appears to have all the prerequisites in place, but I'm not sure about the transport. What are my options?
The device has a USB port which can be used to connect e.g. flash drives for mp3 playback, so this seems to be a USB host port. Can I use this to obtain an activesync connection? I guess using a usb-to-serial cable on both pc and WinCE device could work. Or is there a RNDIS way perhaps?
If possible I rather not disassemble the unit, but if my chances of finding a USB client port or wired ethernet are nonzero I could consider that. Any thoughts?
You can not use USB host port for Activesync connection.
But if it is USB OTG (Both host and client) port, you can use activesync using USB OTG or USB Client functionality.
Your BSP should support USB Serial Client functionality (Search SYSGEN_USBFN_SERIAL sysgen variable in catalog items).
Also, your USB driver (lower level driver) should support USB Client functionality.
ActiveSync will work on a serial cable, so the idea of using an USB-to-serial adapter may work. But you need to have drivers for it in the OS image. There are some CDC drivers and FTDI provides drivers for their chips. You may be able to load them on the device, copying them using a USB thumbdrive and modifying the registry using a registry editor for windows CE, but that's not granted. Windows CE also supports RNDIS compatible USB to ethernet adapter but honestly I don't know if any device of this kind is currently available on the market. If your device has wi-fi connectivity you can skip using ActiveSync and debug over the network.

Resources