Share this project

Done

Share this project

Done
An Open Source JavaScript microcontroller you can program wirelessly - perfect for IoT! No software needed so get started in seconds.
A JavaScript powered button you can program and debug wirelessly! No software needed - get started in seconds with Web Bluetooth.
A JavaScript powered button you can program and debug wirelessly! No software needed - get started in seconds with Web Bluetooth.
1,887 backers pledged £115,816 to help bring this project to life.

About this project

Puck.js - the ground-breaking bluetooth beacon project video thumbnail
Replay with sound
Play with
sound

Puck.js - the ground-breaking bluetooth beacon

£115,816

1,887

Puck.js is a low energy smart device which can be programmed wirelessly and comes pre-installed with JavaScript. It is both multi-functional and easy to use, with a custom circuit board, the latest Nordic chip, Bluetooth Smart, Infra-red and much more, all enclosed in a tiny silicone case.

We have an easy to use graphical editor, so it’s perfect for any maker, whether you’re just starting out or have been making for years. You can start programming straight out of the box - no wires or software required!

Why choose Puck.js?

Bluetooth Smart (or Bluetooth Low Energy) is an amazing technology - it's now built into virtually all Phones and Computers, and Bluetooth Smart devices have a battery life of years.

Most manufacturers conveniently gloss over the difficulties of programming their hardware, and other beacons are provided without software or left crippled by their boring factory-installed software. Puck.js is different - it comes with our Open Source JavaScript interpreter Espruino pre-installed, which makes it incredibly easy to use and means you can get started in just seconds, without any prior programming experience.

Specifications

  • 35mm diameter, 10mm thick
  • Silicone rubber cover, ABS plastic base
  • CR2032 210mAh battery
  • MAG3110 magnetometer
  • 1x Tactile Button, 4x LED (R,G,B,IR)
  • 8x 0.1" pins - 6x GPIO, 2x Power
  • Bluetooth Smart 5.0, 80M range in Open Space
  • PLUS Nordic Semiconductor's brand new nRF52832 microcontroller. It's packed full of amazing features...
  • ARM Cortex M4F core 
  • Compatible with Bluetooth 5.0 - giving Quadruple the range, and double the speed of Bluetooth 4.2 
  • Near field communications (NFC) built-in 
  • A massive 64kB of RAM and 512kB of Flash - double that of the previous generation nRF51 
  • 64 MHz clock speed - four times that of the nRF51 
  • Over the air firmware updates 
  • 12 bit ADC, timers, SPI, I2C and Serial that can be used on any available pins 
  • Temperature sensor

Input and Output

Puck.js can measure light, temperature, magnetic fields and capacitance, can control Infrared devices, produce any colour light and has a clever tactile switch that turns the Puck into one big button.

We've carefully chosen sensors to make it as useful as possible, while keeping it affordable.

The Magnetometer

The Magnetometer on Puck.js is a digital compass - you can measure its orientation relative to the earth's magnetic field in 3 dimensions.

Like a compass, it'll react to a magnet nearby. This means you can use it to sense all kinds of things:

  • Detect when a magnet is nearby (ie door opening or closing)
  • Detect the angle of a magnet relative to Puck.js (ie. water level via a magnet on a float)
  • Measuring the rotation of Puck.js (you can use your Puck as a knob)
  • Magnetic North, for orientation

Physical Web

The Physical Web (Eddystone) allows Bluetooth devices like Puck.js to advertise themselves to phones in the area. If a phone user clicks a notification they'll be taken to a website set by the Puck.js. Google has a handy YouTube video explaining the Physical Web at https://www.youtube.com/watch?v=1yaLPRgtlR0.

Puck.js advertising packets are fully configurable, so it will also support iBeacon for Apple devices.

Web Bluetooth

With Web Bluetooth, you can control Puck.js straight from a website wirelessly without having to download any software on your PC or your Puck.js. The website simply sends the JavaScript code it wants directly to the Puck and it'll be executed.

Web Bluetooth is currently supported by Chrome on Android, Mac OS, Chromebooks and Linux. Windows support will be available soon, and other browser vendors are adding support too.

If your platform isn't supported we've got a native command-line and an easy Graphical User Interface application that you can use instead.

Don't be a Slave

Puck.js can enter the Bluetooth 'Central' (or 'Master') role. Unlike most other beacons it doesn't have to be told what to do as a 'Slave' - it can actively connect to other Bluetooth Smart devices and control them!

Not only that, but Puck.js can also be a Bluetooth Smart HID device - making your computer see it as a keyboard or mouse, so it can interact with your computer without drivers!

Internet Enabled

Puck.js runs Espruino, our JavaScript interpreter for microcontrollers. JavaScript is one of the most popular programming languages in the world. It's easy to learn and widely supported, running on everything from your Phone to the servers that power some of the biggest sites on the web.

Espruino contains TCP/IP and HTTP Client and Servers (including WebSockets), which will be available in Puck.js. With a suitable Bluetooth Smart to Internet gateway you'll be able to put your Puck on the internet!

You can even wire common ESP8266 WiFi or SIM900 GSM/GPRS modules straight to your Puck, allowing it direct access to the internet without a Bluetooth gateway.

Hacker Friendly

Puck.js contains 8 easy to use pins on a 0.1" pitch (6x GPIO, GND and VCC) - that can be soldered or used with conductive thread. Once connected you can use them to control whatever you want!

Open Source

Hardware, Software, libraries and documentation are all Open Source - you can check out the software and previous hardware designs on GitHub right now!

If you need a case with particular attachments you could easily download the case design file, customise it, and print it off at a local hacker space or online print shop like i.materialise or Shapeways.

By the Espruino developers

Puck.js has been created by Gordon Williams - the creator of Espruino. As with all boards we make, any improvements to the software will work their way back into the other boards - benefiting everyone.

Get Productive

You can start programming Puck.js in seconds. There's nothing to install, just visit the Espruino Website in the Chrome web browser and connect to your Puck.

You can use our example projects, describe what you want Puck.js to do by dragging blocks around, or start programming directly in JavaScript!

But that's not all - once connected, you can modify your code while it's running, and can even debug it - stepping though line by line and even inspecting variables without restarting... all completely wirelessly, with no extra hardware required!

What do you get?

With each Puck.js you'll get:

  • a Puck.js circuit board with all the components mentioned above
  • a water resistant Puck.js case - with silicone top, hard plastic base and fitting
  • a CR2032 battery
  • a 'Getting Started' card with instructions

Current Status

We have working prototypes and a manufacturing partner called Seeed Studios that we used for our first KickStarter, use for all current boards and are extremely confident in.

The software is the popular Espruino JavaScript, which we've shipped on over 12,000 boards now. It's extremely well-proven. However, you'll also be able to update your Puck's firmware wirelessly as new features become available.

Production Timeline and Funding

Work on the Puck's software started in August 2015 when Nordic Semiconductor started porting Espruino to their chips. In September, we added support for the BBC micro:bit, and improvements have steadily been made over the past months.

In late 2015 we started researching hardware options, including the possibility of using existing hardware - nothing fit the bill, so we started designing our own hardware.

We're now on the 5th iteration of the prototype PCB, and the 3rd iteration of the case, and we're extremely happy with the results.

Many of the components on the board can only be sourced cheaply at 1000+ volumes (and need to be paid for up-front), and the moulds needed for the case cost a lot to create. We need your funds so that we can spread those costs over many boards, and can offer them to you at an affordable price.

Moving forwards, our timeline is:

  • 7 / 2016: Improving firmware and final testing of hardware
  • 8 / 2016: Finalising hardware design, develop program & test procedure
  • 9 / 2016: Machining of moulds for casting, ordering parts
  • 10 / 2016: Start manufacturing
  • 12 / 2016: Ready to ship! (we'll do our best to get them out for Christmas, but we can't guarantee it)

Stretch Goals

If we can make a big order and get our costs down, we'd like to thank you! 

£50,000 - REACHED - Software for a Raspberry Pi-based Bluetooth hub, allowing you to script and debug any Puck.js devices that are around your home from any Web Browser

£80,000 - REACHED - Allow the hub software (£50,000 stretch goal) to forward messages from Pucks via MQTT

£100,000 - REACHED - 5x our original funding goal! IPv6 over Bluetooth to Puck.js, as well as Raspberry Pi hub software (this will be a firmware update after shipping, to avoid any delays)

£120,000 - One of the following. Please let us know in the comments what you'd like or if you'd prefer something else.

  • One extra case part for your Puck.js - either a white base, or a black silicone top (currently you'll get a black base and a white top).
  • A spare CR2032 battery (one is already included)
  • Support for transpiled languages in the Web IDE (ES6, TypeScript, CoffeeScript, etc)
  • A simple dashboard for the hub software, which allows you to log MQTT data and graph it over time.

Risks and challenges

We've had a great experience with our manufacturing partner over the last 3 years and are very confident in them. However if the worst happens and there are problems, we could still move to a UK-based manufacturer we have used previously.

All the main hardware components on the board can be sourced from multiple manufacturers, with only relatively minor changes to the PCB required - so if we have difficulties sourcing parts then we can quickly recover, with only a few weeks' delay.

We're using a module that contains the nRF52 integrated circuit along with the aerial - while this costs us more, the module comes pre-certified so we can be confident in radio performance and don't risk failing certification, which removes one big risk area.

We've also completed two previous KickStarter campaigns. Both of them were shipped within a month of the estimated ship date, so we're confident that we are accounting for any unexpected delays and costs.

Learn about accountability on Kickstarter

Questions about this project? Check out the FAQ

Support this project

  1. Reward no longer available

    Pledge £24 or more About $32

    Early Bird

    At a special low price for the first 30 backers!

    Includes:
    • Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    Reward no longer available 30 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  2. Select this reward

    Pledge £28 or more About $37

    1x Puck.js

    Start making your world smart!

    Includes:
    • Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    632 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  3. Reward no longer available

    Pledge £45 or more About $60

    2x Early Bird

    At a special low price for the first 50 backers!

    Includes:
    • Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    Reward no longer available 50 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  4. Select this reward

    Pledge £50 or more About $66

    2x Puck.js

    Make one Puck.js control the other, or just use them both separately!

    Includes:
    • Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    687 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  5. Select this reward

    Pledge £73 or more About $97

    3x Puck.js

    Make simple games, or start automating your home!

    Includes:
    • Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    168 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  6. Reward no longer available

    Pledge £100 or more About $133

    5x Early Bird

    At an amazing price for the first 50 backers only!

    Includes:
    • Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    Reward no longer available 50 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  7. Select this reward

    Pledge £115 or more About $152

    5x Puck.js

    Why not make your own games, or start automating your home!

    Less
    Estimated delivery
    Ships to Anywhere in the world
    202 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  8. Select this reward

    Pledge £215 or more About $285

    10x Puck.js

    Get creative - totally kit out your home, share with your friends, or make a game out of all those buttons!

    Includes:
    • 10× Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    39 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  9. Select this reward

    Pledge £500 or more About $663

    25x Puck.js - Teachers' Pack

    Enough for a 5x5 grid, a hack day, to teach a class, or to instrument your house and garden!

    Includes:
    • 25× Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    0 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.
  10. Select this reward

    Pledge £900 or more About $1,193

    50x Puck.js - Distributor Pack

    Start distributing Puck.js - we'll even list you on our website as a seller.

    Includes:
    • 50× Puck.js
    Less
    Estimated delivery
    Ships to Anywhere in the world
    3 backers
    £
    Kickstarter is not a store.

    It's a way to bring creative projects to life.

    Learn more about accountability.

Funding period

- (30 days)