TL;DR - Gordon Williams has a new Espruino Kickstarter for the fabulous Bangle.js 2. Go and back the project and enjoy every geeky minute of playing with it. I have one of the devices already and it’s a massive leap forward over V1. Imagine running JavaScript and TensorFlow Micro machine learning on your wrist!
I’m still not sure how I heard about the Espruino project originally back in 2013. Hackaday maybe? What I do remember is getting very excited by the idea of running JavaScript directly on a low-power hardware device despite it being the opposite of everything we learned as Realtime Embedded Software Engineers. My first post about it was back when I got the board in 2014.
That first Kickstarter device was a minimalist marvel. I was amazed that you could run useful JavaScript on something so small and had lots of fun trying little experiments.
I was always surprised more people didn’t know about its follow-up, the Pico. Here was a ridiculously tiny device that plugged directly into USB and could do HID and 2FA and lots of other cool USB related things. And was crazy easy to program, because JavaScript. Annnd you could even solder an ESP8266 wifi module on to it.
But it was the Puck.js that I felt was a gigantic leap forward for Espruino. Here was another minuscule device, now running a Bluetooth chip (the NRF52832) and able to run all of the existing code plus opening up a whole new world of Bluetooth applications in JavaScript. To me, it’s as close to perfect as you can get for a combined hardware and software hacker device. The addition of a Web Bluetooth based IDE in Chrome was just the icing on the cake. The entire thing is masterful and it is the core of a simple device I built several years ago that I still use multiple times per day (My “I’m On A Call” Light).
So when I came up with the idea of doing a digital event badge for NodeConf EU 2017 (and was thrilled that others in NearForm were thinking along the same lines), it seemed like a no-brainer to talk to Gordon Williams about possibly designing it for us based on Espruino.
We worked intensely on the spec and were stunned when the first prototype was almost flawless. When we unveiled the final badges in Kilkenny, it completely blew the minds of the attendees. Most of them were from a web background, not hardware, so they had no idea such a thing was even possible.
Here are my posts about it:
- Say hello to the NodeConf EU hackable badge
- Simple hardware mods for your NodeConf EU hackable badge
Gordon took everything he learned from that experience and built the superb Pixl.js which I am still using for some of my treadmill experiments. It’s basically an Arduino for a JavaScript generation!
The 2018 NodeConf EU badge was interesting because it wasn’t revolutionary from a hardware point of view, it was simply much much better overall. Most importantly, it was gorgeous. The design of the bezel by the brilliant Agata Surgot remains one of my favourite things of all time. When it’s lit up by the built in RGB LEDs, it’s utterly perfect.
We also removed a lot of the hardware-hacker-centric features since they weren’t right for the audience. We added LiPo power, charging, those RGB LEDs, the ability to plug-in WiFi and lots of other small tweaks (papercuts as Miguel de Icaza calls them). The focus that year was on all the software we built around it including 20 Raspberry Pis acting as Bluetooth<>MQTT gateways to Azure. It was epic!
- The NodeConf EU 2018 Digital Badge is here and it’s fabulous
- Sending 1.24 million MQTT messages from NodeConf EU to Azure (and lots more digital badge details)
In fact it was so good that Adobe used the core design for their annual conference in Vegas!!
The hardware for that badge is available to buy from Gordon if you want to use it at your own event. You won’t regret it.
2019 then provided us with a major challenge. How the hell do we beat that? Bigger faster stronger didn’t really excite us. Other form factors hit lots of issues (“No Conor a belt buckle badge is not appropriate”). And then Gordon floated the idea of a watch, based on what he, others, and even I, had been playing with in the previous 18 months. After initially thinking “but that’s not a badge”, Agata convinced me that it was actually the perfect device for a conference. And yet again, she was right.
I’ll bore you to death sometime in a pub with the story of the hell we went through over the next few months in testing, selecting, attempting to buy, failing, trying again, and again and again, until finally we had five hundred watches in our hands, four days before the event was due to start.
If people loved the first and second badges, they could not believe what we did with the watch. Web Bluetooth to their wrist, running a JS REPL and TensorFlow Lite Micro!!
Here are my posts about 2019:
- Bangle.js and Open Source pointing to the future of health platforms and wearables
- Why running TensorFlow Lite Micro on very inexpensive devices changes everything
- Bangle.js: Open Source watch built on JavaScript
- Bangle.js – Open Source creating opportunities for Open Health wearables with JS & TensorFlow
- Bangle.js is the first hackable open source JS and TensorFlow-driven smartwatch!
Let’s not be modest here, we knocked it miles out of the park. And I’ll remain forever proud of the name Bangle.js that I devised after sending Gordon a list of some of the most stupid device names in history.
Bangle.js has done incredibly well despite other watch projects getting far more press. And to me, that’s the story of Espruino. It’s so damned good, Gordon mostly lets it speak for itself. The latest version of the code still runs on the original, almost ten year old, board. These are devices you reach for to do useful practical things, they are not one of the endless cool Kickstarters that sit on your desk unused for six months and then go in a drawer never to be used again (I have sooooo many of those).
The Bangle.js 2 device deals with all the compromises we made in 2019. It has the much more powerful CPU I had hoped for back then, along with more RAM. The screen is readable outside. It looks good on the wrist. It uses standard straps. And from a hacking perspective, you can program it over the wire, not just over Bluetooth, using the SWD pins on the back.
I have four unrelated families of technologies that I reach for when I’m starting a project. Every recent hardware project has a mix of one or more of Arduino, Raspberry Pi, ESP32 and Espruino. And there can be no higher compliment for a tool than it’s the thing you reach for, because you know it’ll work.
And here they all are along with some Conor-Mods and the first 3D printed cases for a Puck.js-based watch from way back.