We have published Airconsole LE drivers for Windows 10 (Creators edition) and later to support both native terminal (powershell) serial port access as well as virtual COM port creation from your Airconsole LE serial adaptor. These drivers allow you connect to serial devices from a Windows 10 PC using the bluetooth low energy Airconsole LE.
To change the COM port number of a serial device in Device Manager, complete the following: Open the Device Manager by pressing the Windows Key + R. Type “devmgmt.msc” and press Enter. Expand the Ports (COM & LPT) section. Right-click the COM port and select Properties. Click the Port Settings tab and click Advanced. Bluetooth is a wireless technology that eliminates the need for wires and cables when establishing serial connections. Bluetooth also provides other services such as simple file transfer. Each time a Bluetooth device is connected to a computer, a virtual serial port must be created. The virtual serial port can be configured manually in a few steps. Asus PB60 Mini PC with Intel Core i3-8100T (4GB RAM, 500GB HDD, HDMI, DisplayPort, com Port, 802.11 AC WiFi, Bluetooth, Gigabit LAN, Windows 10 Pro, Vesa Mount) PB60-B3041ZC. PC (Windows 10) Bluetooth connect to HC-06, loopback to PC via USB http://android-er.blogspot.com/2015/10/connect-windows-10-to-hc-06-bluetooth.html.
For more info on how to check, see Fix Bluetooth problems in Windows 10. If you need help adding a device without Bluetooth capabilities, see Add a device to a Windows 10 PC. Turn on Bluetooth. After you've checked that your Windows 10 PC supports Bluetooth, you'll need to turn it on. Here's how: In Settings.
Note Airconsole LE does not support earlier versions of Windows at this stage. We also understand the install process is a little involved so will issue new drivers in the future to further stream line the install process.
The drivers and install instructions are available here: Win 10 ACLE Drivers
Universal Windows App that connects to an embedded Bluetooth device over the Bluetooth Serial Profile using a generic Bluetooth USB dongle.
| × | 1 | |
| × | 1 | |
| × | 1 | |
| × | 1 |
| |
|
This project is discussed in detail in embedded101.com:
This project is a Universal Windows App that connects an IoT-Core device such as a Raspberry PI 2 to an embedded Bluetooth device over the Bluetooth Serial Profile using a genetic Bluetooth USB dongle.
.Bluetooth supports peer to peer networking over a short range. Unlike a Wi-Fi network, Bluetooth connectivity is one to one. Two devices can connect and interact. For example, two devices may connect in a symmetric manner using the serial profile and pas raw data between them. Generally though, Bluetooth connectivity is asymmetric with one end generating a specific data format to be consumed at the other end. For example a mobile phone can implement the A2DP (Advanced Audio Distribution Profile) Profile and stream audio to a head set that implements the HSP (Headset) Profile OBEX (Object Exchange) is a symmetric connection between two devices as they exchange data between them.
The Microsoft IOT-Core Bluetooth Sample project uses the GATT (Generic Attribute Profile Profile). This provides profile discovery and description services for the Bluetooth Low Energy protocol. With this protocol simple low power devices can be connected at one end generating data to be consumed by a complex processor.
This is a far simpler project than the Microsoft sample. It is only concerned with the more generic SPP (Serial Port Profile) which is based upon the RFCOMM profile. It was developed with a very old USB Bluetooth dongle and so should work with any Bluetooth dongle.
This app is a simple Bluetooth Serial Universal Windows (Windows 10) test app. It starts by enumerating (as a list) all devices Bluetooth paired to the device where the app is running. One is selected by double clicking which initiates connection. Text to send is entered in a Textbox and sent when a button is pressed. The app automatically receives any text sent to it ( and displays it). Hence when the endpoint (as above) simply echoes the text its received, the sent text should reappear in the reception box on the UW app.
For testing an Arduino Uno with a Bluetooth adapter is used. It has a simple shield that just echoes back any characters its receives over the Bluetooth connection:
The Shield Setup:
The Shield Loop:
Bluetooth is a peer to peer scenario. Before they can connect over Bluetooth they must be paired. This is not done within the app. Pairing with a passkey can be problematic between embedded devices as they are often headless and may not support popups (as IoT-Core does not). There is a IoT-Core web portal for doing this as well as a command line utility on the device that can be run over an SSH shell. The most recent version of the OS web portal supports passkey pairing which was missing around the time of Windows 10 RTM. 'Win 10 IoT-Core: Bluetooth Universal Windows Serial App' discusses pairing in this context in detail.
The app project is created using in Visual Studio 2015 using the Universal Windows app template:
New Project-->Visual C#->Windows->Blank App (Universal Windows)
The UI is implemented in XAML
Create the UI as per the layout as above (or similar):
The UI is quite straight forward and is created as follows:
You may prefer to layout the UI using Relative StackPanels or use Grid rows and columns etc.
The ConnectDevices is a ListBox with a Binding Source set to PairedDevices(see later) and an ItemTemplate consisting of a TextBlock bound to the Name property of PairedDevices (see later).
Modify the capabilities section (at the bottom) to:
The internetClient capability will already be there. Its not needed for this app so you may wish to remove it. I leave it in.
At the app start the paired devices are enumerated using:
DeviceInformationCollection DeviceInfoCollection
= await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));
This collection is then turned into an ObservableCollection that it can be used in the ListBox: Euroclean jet vacuum cleaner user manual.
_pairedDevices = new ObservableCollection<PairedDeviceInfo>();
The DeviceInfoCollection is iterated through creating a PairedDeviceInfo object for each item which is then added to the _pairedDevices collection.
PairedDeviceInfo is a class with properties:
Name <string>
Id <string>
DeviceInfo <DeviceInformation>
The class has an appropriate constructor.
DeviceInformation is Windows.Devices.Enumeration.DeviceInformation
In the listbox of paired devices, the Name field is (bound) displayed.
When a device is selected (double clicked) the endpoint’s DeviceInformation is actually part of the selected menu item and so is used for establishing the connection.
The DeviceInformation is used to get the RFCOMM service. The connection is then established as a StreamSocket using the Endpoint HostName (actually its Bluetooth Mac Address) and the ServiceName string.
If all is well then we have a connection . the socket will be meaningful (not null).
Of course this is error trapped (try-catch)
Send text and Receive text make use of the socket’s InputStream and OutputStream properties.
Receiving text should be started first as it runs as a separate thread. It runs an async wait to get serial input, handles the input then runs another async serial receive . all in a loop. This loops continuous until a cancellation is generated.
Whilst the received text is performed asynchronously as the arrival of text is nondeterministic from the app’s perspective, sent text is actioned from the app’s UI and so is essentially synchronous (although a await is used to free up the UI).
The command buttons are enabled and disabled depending upon the state of the app. For example Send and Start Recv buttons are disabled when the app isn’t connected but become enabled when the app is connected, etc.
and 25 others
See similar projects