I got given a Paulig Muki at a hackathon last weekend. All week I've been working on reverse engineering its Bluetooth LE API, and after finally making a breakthrough this Local Hack Day, I decided to make a demo with the JavaScript module I created!

How it works

When you send a URL in an SMS to the number, Nexmo calls a webhook running on my laptop via ngrok. That then calls my Muki.js module, which converts the image at the URL to a format compatible with the Muki. This was easily the most difficult part.

The app then sends the image to the Muki using the module. It connects via Bluetooth Low Energy and sends a start command, followed by the image data, followed by a stop command.

Challenges I ran into

The Muki is powered by differential heat between the outside of the mug and the liquid inside it. After a while, the outside of the mug heats up and it loses its power. This is quite annoying when you're testing code which needs to connect to the mug in order to run. On average the mug lasts about 15 minutes. Very annoying.

What's next

There are a few bugs with the Muki.js module that I need to sort out. Particularly the bug where you can only send a new image once per time the Node app is run. I encourage you to buy a Muki and submit PRs!

Built With

Share this project: