Beeminder Forum

e-Ink Beeminder Dashboard


#1

So ever since I watched https://youtu.be/kAmnU5Y96MA?t=64


I was secretly looking for an excuse to play around with e-Ink displays. And since I started using Beeminder I sometimes wished there was a more permanent dashboard in my flat rather than just “some browser tab” that I could forget about too easily.

Short story long in the screenshot here you can see there is an e-Ink display that offers white/black/yellow which is just asking to be turned into something Beeminder-y.
Together with an ESP8266 with deep sleep this could be turned into a WiFi connected Beeminder dashboard that would run for months on some rechargeable batteries. Or some USB power plug of course.

Such an e-Ink display would be non intrusive since it’s not lit and it is mostly static so it won’t divert attention too much. But I hope if placed within eyesight of your desktop it could still serve as a gentle reminder that you got only 2hrs left to do the 1.5hr task you set out to do that day.

Yes, there are already notification mechanisms implemented in Beeminder. Plenty of them in fact. So maybe this is a solution looking for a problem.
But who knows – maybe y’all are like “omg I need this! I didn’t know I did but now I do!”.
Are you?

  • Sounds cool!
  • Yeah OK that was mildly interesting. Now stop procrastinating and get back to work.

0 voters


#2

10 out of 10 (me included) so far have chickened out from telling you the hard truth that you need to stop procrastinating and get back to work :smiley:


#3

How do you compute the picture to display, is your ESP8266 logged in at beeminder and refreshing the page every half hour or so ? The video seems to say the display only offers very low-level display functions.

I’d love such a static screen that’d display an internet-hosted text file / picture for my desk, do tell how it goes ! (I’d plug it to a dumb usb battery pack that’d get recharged monthly, hopefully)


#4

I didn’t study computer graphics for no reason :grin:

No that would require a web browser in some form which is probably beyond the capabilities of such a tiny micro controller. For that I would use a Raspberry Pi Zero W. Which coming to think of it would indeed be a viable alternative, good idea @nikana! I shall order a Pi Zero W and the Pi hat for the display so I can toy around with this, too.

My plan is to query the beeminder API and with this recreate the beeminder dashboard in a simplistic way. I mean, it really is just a few boxes with a bit of text. And a .png of the graph.
And the display (or rather the library for it) can do raster graphic images.
How hard can it bee #famouslastwords :wink:


#5

It seem like what you want is a large version of the Beeminder Watchapp for Pebble (bottom of post), which was in part designed to show the users progress towards a goal on (a smartwatch with) an e-ink display. You should be able to run the emulator on your Raspberry Pi. The watchapp source code is here and it can easily be modified to show any other information from the Beeminder API…

Here are some links where others have done something similar:


#6

I am amazed at how many people make stuff around Beeminder and to what lengths they go. And that definitely holds true for the post you linked. Impressive!
I skimmed the post multiple times and looked at the github but was unable to find any sort of screenshot / photo of what the interface looks like in action. Where is it hiding?

All in all this is a nice assortment of links you provided but I fail to see how exactly the source code would be of too much help for this particular case. All I wanna do is make some REST calls, and put what comes back in some decent looking “GUI” (read: text, lines, boxes and images) and paint that onto the e-ink display. No interactivity.
And then build a nice dark stained wooden laser cut case around it. With some laser engraved dark acrylic labels. Something dank.


#7

image

This was of course made for a watch, but you could replace the date and time with other information from the API…

I thought this might be an easy solution for your use case, since there is existing code and others have done it before. Regardless, I look forward to seeing what you create!


#8

I hate reinventing the wheel so, yes, good thinking! But does it run on an Arduino, ESP8266 or ESP32? I think not. Does it run on a Pi? I guess but the setup instructions seem a bit… involved. Certainly more involved than what I had in mind.
And lastly I would need to adapt the code that does the actual rendering on the display for the e-ink module I ordered has its own library and does not use anything close to what Pebble does.
Just to give you an impression of what I picture the code to look like:

#include "e_ink_lib.h"
#include "wifi_lib.h"
#include "tcp_lib.h"

SSID="meep";
PASSWORD="moop";

e_ink display = e_ink();
wifi_thing wifi = wifi_thing(SSID, PASSWORD);
tcp_https_thing socket;

void setup() {
  wifi.connect();
  socket =  = tcp_https_thing("https://beeminder.com/api/…");
  socket.connect();
  socket.read(…);
  display.draw_text("This could be your goal name");
  display.draw_box(…);
  display.draw_all_the_other_fancy_stuff();
  // you get the idea
  deep_sleep(pin_42);
  timer(pin_42, 30000);
  socket.close();
  wifi.close();
}

So yeah it will be THAT simple. Obviously there will be actual error handling and so on and I want this dashboard to look real nice. Close to the real thing. And not just one goal but multiple. This is a 7.5" screen after all.

I expect to spend more time on building a nice looking case around it than writing the code. Of course I have never used this micro controller before or these displays so who knows! I certainly don’t :grin:


#9

It sounds awesome! I want one!


#10

post directions if you do make it and i will 100% copy this!


#11

There is no question about „if“! And it feels incredible to be able to say that with confidence! Thanks @bee and @dreev who had the foresight years ago to make Beeminder :honeybee:. OK now that I got my evangelism out…

The parts are ordered and once I’m done with https://beeminder.com/phi/spiht and then one more secret crafty thing I’m gonna beemind this e-ink dashboard.

And yes I am gonna open source the design and code for this!

And maybe offer to make this for people who want one but don’t have a FabLab nearby or would rather not get into the nitty bitty details of making the pixies move for a little tip or something. But first the prototype has to work :upside_down_face:


#12

It’s dreev, not dreeves, FYI


#13

Very excited for this. I’m definitely in. What will the buttons do?


#14

Whoops! I blame the reply-by-mail :stuck_out_tongue:

Buttons? What buttons? The ones from the hijacked 15 minutes toggle thread?


#15

Yes the ones here:

Is that a different project?


#16

That’s a different project. The dashboard is gonna be something you could put on your wall while the buttons would be something on your desk for example.

Think of one being the mission control screen and the other one being the launchpad :slightly_smiling_face:


#17

that’s awesome! can’t wait to see it when it’s done!


#18

I’m super excited about this!


#19

Guess what arrived in the mail today!


(Beeminder sticker and flic button for size & colour comparison)

Here in comparison with a kindle (LEDs turned off)


As you can see there is an ever so slight difference in the colour temperature of the “white” of both displays with the waveshare display being slightly more on the warmer side.
It is not quite as visible as on the photo however. In reality it doesn’t look bad at all (compare that to the first photo).
The resolution is of course nowhere near as high as on a dedicated e-reader but certainly enough to put it on a wall and look at it from a distance.

It is really thin and light! It is about 2 Beeminder stickers thick :wink: A third one easily slides over the panel.


#20

Tadaaaa!


Almost done, eh? :stuck_out_tongue:

So the image refresh is… slow. But I suppose you get what you pay for. If I remember in the video I linked earlier he mentioned it being 7s and that seems about right. What bothers me more is that I can still see remains of the previous image. But I assume those will eventually disappear. If not I’ll make 'em.
Also I am amazed by how all of this work is lifted by this tiny tiny µ-controller.
We got access to such tiny technology and it’s dirt cheap. Admittedly it’s a fair bit of chinesium and that meant fiddling with drivers but it’s all good now. And I found two bugs on the beeminder website so this little project is already good for something :wink: