Project Description

A library on Codeplex. Been a long time coming: Arduino sketches and UWP class libraries and apps, focused upon scanning a phone keypad as input (Bluetooth serial) to a UWP app running on a phone, desktop or IoT-Core device.



KeypArd: Arduino Bluetooth Keypad Utilities on Codeplex



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 will be documented on my blog on embedded101,com (also coming).

FYI : Arduino Uno Layout


  1. UWP  Generic Bluetooth Serial App

A Universal Windows Platform App that connects to an embedded Bluetooth device over the Bluetooth Serial Profile using a generic Bluetooth USB dongle. Acts as a serial terminal terminal for testing sketches 2 and 4.
This is the same app as previously published on, on Github, on this blog and on Codeplex with some small code improvements.

Further: See the four links as above.


  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).

 Further: Arduino Bluetooth Keypad Utilities: Bluetooth Echo Sketch

  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. Can be used as the basis of any phone keypad oriented app.

Further: Arduino Bluetooth Keypad Utilities: Event Keypad Sketch


  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. Use the Generic Bluetooth Serial App to test it. Subsequent apps consume the events from this sketch over Bluetooth Serial..

Further: See Further blogs as above.


  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.

Further: Arduino Bluetooth Keypad Utilities: Keypad Events UWP Library


  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.

Further: Arduino Bluetooth Keypad Utilities: Soft Keypad Test UWP App


  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.

Further: Arduino Bluetooth Keypad Utilities:  BluetoothSerialLib UWP Library


  1. UWP  BTKeypad App

This app is the UI front end of Generic Bluetooth Serial App and uses BTSerialLib to implement the same Generic Bluetooth Serial App Bluetooth functionality in the phone keypad context. It exemplifies the Keypad class event handlers.  This app requires the BTSerialLib and KeypadUWPLib libraries. It  requires BT pairing with an Arduino device on which the .Event Keypad running. Keys pressed on the physical keypad connected to the Arduino device are logged on the app.


  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 each key is pressed. Concepotually, sits on top of KeypadUWPLib.

Further: Arduino Bluetooth Keypad Utilities: KeyPadKeysUWPLib


  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.

Further: Arduino Bluetooth Keypad Utilities: KeyPadKeysUWPLib “ see Test App”



Watch this space for more detail