This project is read-only.

Project Description

Arduino sketches (and UWP apps), focused upon scanning a phone keypad as input (Bluetooth serial) to a UWP app running on a phone, desktop or IoT-Core device.


These projects have been developed using an Arduino Uno (actually a Freetronics EtherTen). They are elements of a bigger Universal Windows Project to remote control a Windows 10 phone camera app (coming). These are being documented on my blog on embedded101,com (under development).

FYI : Arduino Uno Layout


  1. UWP Generic Bluetooth Serial App

A Simple Bluetooth Serial Terminal for testing sketches 2, 3 and 4

  1. Bluetooth Echo Sketch

Using pins 2 and 3, (RX, TX) receives characters over Bluetooth (serial) and adds then to a string. When reception completes with null char or MAXSTRING is reached, the collection is completed and the string is sent back. Uses the Arduino SoftwareSerial Library. Used the Freetronics Bluetooth Shield but could use others connected to pins 2 and 3. (The Freetronics one has jumpers to simplify selection).

  1. Event Keypad Sketch.

Scans a telephone keypad. Captures keypress, release and hold events. Based upon the Arduino Keypad Library. See details for pins etc. Uses an off-the-shelf phone keypad

  1.  Bluetooth Keypad Sketch

This project combines the first two. That is a telephone keypad is scanned and its keypress events (up, down and hold) are transmitted over Bluetooth serial.

  1. UWP KeypadUWPLib

An event driven Phone Keypad library. Includes KeyDown, KeyUp and KeyHoldling events to which event handlers can be attached in apps that use this library. Also includes a mechanism to fire those events from keypad scanning software. No hardware specific code though.

  1. UWP SoftKeypad Test App

A simple app to test the KeypadUWPLib. Implements a keypad as part of the app, which when pressed actions the keypad events. Some limitations imposed by lack of KeyUp event with XAML Buttons.

  1. UWP BTSerialLib

A modularisation of the Generic Bluetooth Serial App extracting out all of the UI functionality. Received serial messages are interpreted as Phone Keypad events. Depends upon KeypadUWPLib as it fires the keypad events based upon received messages.

  1. UWP BTKeypad App

The UI front end of Generic Bluetooth Serial App that uses BTSerialLib to implement the same Generic Bluetooth Serial App Bluetooth functionality with the phone keypad context. Exemplifies the keypad event handlers (ie Requires KeypadUWPLib as well).

  1.  UWP  KeyPadKeysUWPLib

Abstracts the Keypressed event further by interpreting it in terms of the actual key press. Has a delegate for each key which can be programmatically set by the dependant app as the function (implemented in the app) to call when each key is pressed. Conceptually, sits on top of KeypadUWPLib.

  1. UWP  BTKeypad App 2

As per “UWP  BTKeypad App” but calls each key’s delegate when pressed rather than capturing the Key event.
Uses KeyPadKeysUWPLib as well as BTSerialLib and KeypadUWPLib.

Last edited Sep 29, 2016 at 6:16 AM by DJonesEmbedded, version 27