Bluetooth Low Energy (BLE) Driver Programmer

Bluetooth Low Energy (BLE) Driver Programmer


Job Description

(**Please see the attached file for a better job description with links**)

The project will consist of developing and testing a Bluetooth Low Energy (BLE) driver and sample Java program for Windows and Mac to allow a Generic BLE USB dongle (example: GMYLE or IOGEAR) to interface with a sensor powered by a TI CC2540 chip. The Java program should use the driver to automatically scan for and establish a connection to the CC2540 sensor.

There is a large emphasis on User Experience (UX) in this project, so the process of installing the driver and pairing to the CC2540 sensor must be very easy from an end-user’s perspective. As an example, please download the syncing program provided by Fitbit that accompanies their Fitbit Flex sensor and USB dongle.

I also currently have a Java program that interfaces with the CC2540 USB dongle (more details below), which will be provided to the selected candidate as a template.

The requirements and constraints of each of the components of the project are outlined below:

1. Bluetooth 4.0 USB Dongle Driver
a. The driver should work with the GYMLE Micro USB Bluetooth 4.0 Dongle (
b. The driver should be able to detect and pair with a CC2540 chip
c. The driver should be able to interpret Bluetooth LE transmissions from a CC2540 chip
d. The windows driver should work on Windows XP and higher
e. The Mac driver should work on Mac OS X 10.7 (Lion) and higher
f. An easy installation package should be provided to install the driver on both Windows and Mac computers
i. The installation package should be very simple, involving only 1 step be plug-and-play

2. Java application
a. The Java application must be able to detect if the driver is installed
b. The Java application must be able to detect if a USB dongle with the associated driver is currently plugged into the computer
c. Should be able to scan and pair with the CC2540 device in one click
d. Should be able to receive the following BLE Transmission from the CC2540:
04 FF 12 1B 05 00 00 00 0C 39 00 3E 97 3E 97 3E 97 3E 97 3E 97

The final outcomes from the project should be:
- A driver for a BLE dongle for Windows and Mac
- A Java application that is able to pair with the CC2540 chip using the driver
- An installation package for the driver for Windows and Mac

We are currently using a modified version of Texas Instruments’ sample Java program that uses the TI CC2540 USB dongle (with a corresponding driver from TI) to interface with the CC2540 sensor. This program will be provided to the selected candidate as a template.

We are looking for a motivated and enthusiastic person to take on this project. The ideal candidate would have the following:
• Experience in writing Bluetooth drivers
• Familiarity with Bluetooth Low Energy protocols (GATT profiles, etc.)
• Experience with Java
• Large emphasis on user experience
• Ability to work well under tight time constraints

Please apply stating your relevant experience and similar projects you have done in the past.

In order to work more closely with you in an iterative process, we would like to set milestones for the following deliverables:

1. Windows driver and simple Java program (25%) – Should be a completed windows driver with a simple Java program that allows pairing to the sensor and transmission of data
2. Revisions and usability improvements to Milestone 1 (25%) – Ensure that all necessary functions to transmit data are present, and simplify the user experience for interfacing with the driver
3. Mac driver (25%)– Mac driver that interfaces with the Java program to transmit data to/from the sensor
4. Final revisions and usability improvements (25%) – This step will involve error handling and final usability revisions to make the product very easy to use for our end-customers

Open Attachment