A library for easier setup and prototyping of IoT devices (pucks), by collecting everything that is common for all pucks in one place.

Dependencies:   BLE_API nRF51822

Dependents:   ir-puck display-puck ir-puck2 BLE_ScoringDevice ... more



Raspberry Pi took the maker community by storm when it launched in 2012. With its internet access it allowed small projects to be internet-of-things enabled. We have created a platform to take this one step further.

Our platform, called the Puck platform, is an internet of things platform for mbed. mbed makes it easy to program embedded hardware for people new to embedded systems. Our platform is built upon the first mbed chip with Bluetooth, the nRF51822 created by Nordic Semiconductor. We hope to create a community around these BLE devices where people contribute to the project, and share their designs with each other. Everything is open-source, of course, with lots of supporting materials.

We make it easy to rapidly prototype and develop Bluetooth LE enabled devices - get up and running in under 10 lines of code.

Tutorials and in-depth documentation is available at the project's GitHub page


We've developed a handful of awesome examples to demonstrate the platform. These examples are named 'Pucks'. By talking to the internet through your smartphone, the barrier to creating your own Internet of Things device is lower than ever.

Files at this revision

API Documentation at this revision

Fri Jul 24 18:43:36 2015 +0000
Commit message:
Update for latest nRF51822 repo.

Changed in this revision

BLE_API.lib Show annotated file Show diff for this revision Revisions of this file
Puck.h Show annotated file Show diff for this revision Revisions of this file
nRF51822.lib Show annotated file Show diff for this revision Revisions of this file
diff -r cd6703df9501 -r 5ac5f1d1a11e BLE_API.lib
--- a/BLE_API.lib	Mon Mar 09 13:38:22 2015 +0000
+++ b/BLE_API.lib	Fri Jul 24 18:43:36 2015 +0000
@@ -1,1 +1,1 @@
diff -r cd6703df9501 -r 5ac5f1d1a11e Puck.h
--- a/Puck.h	Mon Mar 09 13:38:22 2015 +0000
+++ b/Puck.h	Fri Jul 24 18:43:36 2015 +0000
@@ -18,7 +18,7 @@
 #ifndef __PUCK_HPP__
 #define __PUCK_HPP__
-#include "BLEDevice.h"
+#include "BLE.h"
 #include "mbed.h"
 #include "Log.h"
 #include <vector>
@@ -97,16 +97,13 @@
-void onConnection(Gap::Handle_t handle,
-        Gap::addr_type_t peerAddrType,
-        const Gap::address_t peerAddr,
-        const Gap::ConnectionParams_t * connectionParams) {
+void onConnection(const Gap::ConnectionCallbackParams_t *params) {
-void onDataWrittenCallback(const GattCharacteristicWriteCBParams *context) {
-    Puck::getPuck().onDataWritten(context->charHandle, context->data, context->len);
+void onDataWrittenCallback(const GattWriteCallbackParams *params) {
+    Puck::getPuck().onDataWritten(params->handle, params->data, params->len);
 bool isEqualUUID(const UUID* uuidA, const UUID uuidB) {
diff -r cd6703df9501 -r 5ac5f1d1a11e nRF51822.lib
--- a/nRF51822.lib	Mon Mar 09 13:38:22 2015 +0000
+++ b/nRF51822.lib	Fri Jul 24 18:43:36 2015 +0000
@@ -1,1 +1,1 @@