Puck.js Javascript Programmable Beacon Shipping

Last July we wrote about Puck.js, the Javascript programmable beacon. It’s now shipping and we have it in stock.

This beacon has NFC, temperature, battery level and MAG3110 magnetometer sensors, red/green/blue leds, 8 0.1″ pad GPIOs, 9 x SMD GPIOs and an IR transmitter. Unlike other beacons where you can only change pre-defined settings, it’s totally up to you what you make the beacon do and what it advertises. It can obviously be made to advertise Eddystone and iBeacon and any other custom protocol you might wish to invent. You have full access to what is a 64MHz Cortex M4 based computer with sensors, input/output and Bluetooth.

You can get it to connect to other Bluetooth devices, for example other Pucks, single board computers such as the Raspberry Pi or even fitness wearables. It also has 512kB flash, some of which could be used for data logging purposes.

The Puck is programmed via the Espruino Web IDE or a native IDE:

All hardware and software is open source on GitHub helping you to progress your prototypes to production. Buy Puck.js on BeaconZone.

Puck.js Javascript Programmable Beacon

An interesting beacon has appeared on Kickstarter that’s not just technically interesting but has a high likelihood of coming to fruition because it has been created by someone who has already delivered twice on Kickstarter.


Puck.js is a Nordic nRF52832 SoC beacon that can be programmed via Javascript. The Open Source JavaScript interpreter Espruino is installed in the beacon that allows the user to program what ends up in the advertising data based on the board’s NFC, temperature and magnetometer sensors. The 4 leds and 6 GPIO can also be controlled. Being advertising-data programmable it will support Eddystone, iBeacon or any other custom protocol you might wish to invent.

The programming can be in Javascript or via a visual programming language in a web browser…


Another aspect of the beacon that’s different is that it can act as a Bluetooth master as well as slave. Most beacons are slaves in that things connect to them. The puck beacon can do the connecting and connect to other Bluetooth devices such as other Pucks. This allows for mesh style networking or can be used to cause the beacon behaviour to change depending on the status of other Bluetooth devices in the vicinity.

The hardware, software, libraries and documentation are all Open Source that future-proofs any ideas based on this beacon should the developer be no longer be able to support the product or if your design needs to move outside the original hardware and software scope.

We hope to stock this beacon when it becomes available.