The SurfPad project as on GitHub and hackster.io is a UWP app that runs on a touchscreen Windows device. It runs as the configurable UI for an app running on an embedded device such as an Arduiino device or a Raspberry Pi (running IoT Core).. The frontend sends single characters as commands (representing button presses) whereas the backend returns responses as text strings, representing sensor data that the remote device has determined. So the communication data is textual. The communication between the two devices can be a network sockets client-server conduit, USB Serial or Bluetooth Serial. Whilst Bluetooth Serial works OK between a Windows 10 desktop (or IoT Core) as the frontend and an Arduino device as the remote backend, using an IoT Core device as the backend has been shown to be problematic. This article presents an alternative based upon Bluetooth RFComm Chat client –server architecture, which does work.

Index of articles..

If you are used to right clicking on a Device in My Devices to get a menu of options for connecting to your device, then this functionality has been moved to the Actions column in the current version of IoTCoreDashboard.

As part of a series of articles on a set of projects targeted at using a Windows Surface device as the presentation layer for a RPI or Arduino device, this article views the apps as state machines and documents the app states coupling through message passing between them.