• Hey folks,
    I wanted to share a little project I've been working on with both the Puck.js and Bangle.js

    In the Quantified Self community of self-trackers there are regular wishes for having a simple button that allows you to track when discrete events happen (e.g. when/how much you sneeze per day, tracking when you eat, basically all events for which you just want a timestamped record of it happening).

    The Puck.js seemed like an obvious choice to create such a thing, so I created this little website which allows turning a Puck into a button that records the following for each button press:

    • the time at which the button was pressed,
    • for how long it was pressed,
    • the current temperature & light levels,
    • and the current accelerometer data

    The latter two might be useful to later on clean the data by identifying accidental button presses. The website can not only be used for the installation of the bit of JS but also for downloading and deleting data on the Puck. (I've also done a bit longer write-up on my blog).

    For those with a Bangle.js I also made a small widget that turns BTN1 of the Bangle into a one-button tracker. :)

  • Great thing... using Software Buttons - Many buttons from just one hardware button can add to robustness (last two (2) items in your list) and more info: For example Short-Long for begin, Long-Short for end. And if you are Morse code fluent, the sky is the limit for variation. Single clicks - as first char after a decent break of several seconds you discard as accidental.

  • Hey @allObjects, thanks for the pointer. The Software Buttons look really cool and I'll play around with them (I already have some fun use cases for home automation in mind)!

    I tried to keep things simple for now, as I tried to make something that's easy to use for less technical users as I know from our community calls that there's otherwise a high barrier to actually using this kind of tracking. But might be definitely worth to offer some settings to support more complex button varieties!

  • That's awesome, thanks for posting it up! I love the idea of a website that programs your Puck to do something, and then handles the data you get back from it.

    For Bangle.js there's an app loader website (https://banglejs.com/apps/), and before that @benjaminbenben had the idea of making a website to handle programming Puck.js to do different things - but actually having a specific website per app is really neat.

    Just a random thought, but you could place the Puck.js vertically and could draw an arrow on it, with different event types to record all the way around it. You could then rotate it to point to a specific event and press the button - and the accelerometer can be used to figure out which specific event you meant :)

  • Thanks @Gordon, I've seen the Bangle.js app loader (and contributed the one-button widget to it), it's a really neat solution. As there's nothing similar for the Puck I went with the simple single-page website. The only limitation of the 'one website per app' is that you can't easily have a Puck do multiple things unless each website takes care to not wipe the code that came before. But if you try to do that you quickly run into things potentially interfering with each other ;-)

    I love the idea of having the Puck vertically and using the rotation to track different things, that could be very neat when using it in a static (e.g. desktop) setting!

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Using the Puck.js as a one-button tracker for self-tracking

Posted by Avatar for gedankenstuecke @gedankenstuecke