The SurfPad project as on GitHub and 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.


As covered in previous blogs ...
Interconnect issue over Bluetooth Serial    &  Notes on RPI Windows 10 IoT-Core WiFi & BT Connectivity  
... there is problem passing data between two UWP apps over Bluetooth Serial. This uses the SPP profile that sits on top of RFCOMM the underlying Bluetooth serial conduit. 
Whilst it does working quite simply between a UWP app and an embedded device such as an Arduino Uno (Arduino Bluetooth Shield) it doesn't work between two UWP apps, whether Windows 10 desktop or IoT Core. A suggested alternative mechanism is RFCOMM Chat (Client-Server) as in the GitHub UWP sample:
Bluetooth RFCOMM chat sample

The RFCOMM Chat Client page from this was reworked as option for the UWP app (roundedBox app). The RFCOMM Char Server page from the sample was reworked as an option for the remote backend app when running on an IoT Core device such as a RPI (SurfPadIoT app). This update is now include in the repository:

Note that for automatic start, the jumper settings have been amended for the RPi:
- Physical pins 3,5,7 and 11 if individually (ie only one) jumpered low (and the 3 other jumpered high) set the RPI mode to BT Serial. Sockets, USB Serial or RFCOMM Chat mode respectively.