Develop, prototype and release your idea with Gem SDK

The Gem SDK is made to let you prototype and develop your ideas as fast as possible, without spending too much time on things like Bluetooth Low-Energy communications and protocols. The SDK handles the communication with the Gem(s) for you and gives you only the relevant data.

Download, add a reference to, and start using the SDK right away!

Quick Start

Example:

Here are a few examples of using the SDK on different platforms:

								GemManager.Initialize();
Gem gem = GemManager.GetGemByAddress(new BluetoothAddress(new byte[] { 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC }));
gem.OnCombinedDataReceived += (float[] quaternion, float[] acceleration) =>
{
	Console.WriteLine("{0},{1},{2},{3}", quaternion[0], quaternion[1], quaternion[2], quaternion[3]);
};
gem.Connect();
							
								Gem gem = GemService.getDefault().getGem(new GemListener() {
	@Override
	public void onSensorsChanged(GemSensorsData data) {
		float[] q = data.quaternion; // w x y z
		float[] a = data.acceleration; // x y z
	}
});
GemService.getDefault().bindService(this);
							
								gemManager = GemManager.sharedInstace()
gemManager.delegate = self
gemManager.startScan()
func onDeviceDiscovered(gem: Gem!, rssi: NSNumber!) {
    gemManager.stopScan()
    gem.delegate = self
    gemManager.connectGem(gem)
    myGem = gem
}
func onCombinedData(data: GemCombinedData!) {
    NSLog("Quaternion X:%f, Y:%f, Z:%f, W:%f", data.quaternion[0].floatValue, data.quaternion[1].floatValue, data.quaternion[2].floatValue, data.quaternion[3].floatValue)
}
							

Video Gallery

Documentation

Reference-style documentation for the current supported platforms: Windows, Android and iOS

LEARN

Forum

Get involved with the community! Discuss, make suggestions, share your work, ask questions.

TALK

FAQ

We recommend to take a quick look here to see if your question has already been answered!

GET ANSWERS