Advertise Eddystone Using node.js

We recently came across node-eddystone-beacon that advertises Eddystone using node.js (Javascript). It works across MacOS, Linux (including Raspberry Pi) and Windows but obviously requires the device to have a Bluetooth adapter.

The open source code advertises Eddystone-URL, Eddystone-UID and Eddystone-TLM. Examples are provided.

Our previous post mentioned node-beacon-scanner that provides for node.js Bluetooth scanning.

Cordova Bluetooth LE Plugin Updated

Cordova, previously called PhoneGap, is a mobile cross platform development tool that uses web pages and Javascript.

Don Coleman of Chariot Solutions maintains the open source cordova-plugin-ble-central custom plugin (blue area in above diagram) that provides a Bluetooth API for scanning, connecting to service characteristics, reading and writing values and characteristic change notification. Examples are provided.

The recent updates provide support for new permissions and API changes in Android 10+. It’s great to see the plugin updated because the problem with many tools and libraries is that they rarely keep up to date with changes in the underlying iOS and Android APIs.

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.