Turning an Espruino Puck.js Into a Universal Presentation Clicker
Espruino boards are unique, because they're programmed with JavaScript. Parasquid used one to build a universal presentation clicker.
A microcontroller is a small integrated circuit (IC) chip that contains the hardware necessary for basic computing, including a processor, memory, and input/output (I/O) pins. They’re most often used in embedded systems, and microcontroller development boards have become very popular over the past couple of decades for prototyping. There are many different development boards on the market with a variety of microcontrollers, complementary hardware, and support for a range of software. The Espruino series of development boards are unique, because they can be programmed with JavaScript. Parasquid used an Espruino Puck.js to build a universal presentation clicker.
There are currently a handful of Espruino-compatible development boards available, each designed for a particular niche. The Espruino Puck.js (currently on version 2) is a small button that is roughly the size of a few quarters stacked up. It can be powered by a coin cell battery, and is meant to be used as a simple Bluetooth IoT button. Despite its diminutive stature, the Puck.js has quite a lot of hardware. That includes an nRF52832 system-on-chip (SoC) with an Arm Cortex-M4 processor, a magnetometer, an accelerometer/gyroscope, a temperature sensor, and IR transmitter, and even a reprogrammable NFC tag. Because it’s an Espruino board, all of that functionality can be controlled with JavaScript code.
Parasquid’s modifications to the Puck.js hardware are very simple. He took the board out of the plastic housing and attached it to a perfboard via a few pin headers. A trio of momentary buttons soldered to the perfboard are connected to the I/O pins of the Puck.js. The software hasn’t been tackled yet, but the great thing about this hardware is how much flexibility it offers. It could, for example, connect to your presentation computer via Bluetooth. But say you’re just using a TV to show slides stored on a USB flash drive. In that case, the infrared transmitter means this clicker can be used in place of the TV remote. The accelerometer and gyroscope could also be used to move a mouse pointer! Even if you don’t give presentations, the Espruino hardware is worth checking out if you’re more comfortable coding in JavaScript than C/C++.