# e-Ink Beeminder Dashboard

**URL:** https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775
**Category:** Tech
**Created:** [January 16, 2019, 11:19pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775 "2019-01-16T23:19:54Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 16, 2019, 11:19pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/1 "2019-01-16T23:19:54Z")

</div>

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

 ![image](https://us1.discourse-cdn.com/flex019/uploads/beeminder/original/2X/1/1757aa12977606994e8510388c8d8d08d774d67d.jpeg)  
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?

_Poll ([view on site](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/1))_

---

<div class="post-metadata">

### Author: ![apolyton](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/apolyton/32/1965_2.png) [@apolyton](https://forum.beeminder.com/u/apolyton)
#### Post date: [January 17, 2019, 5:54pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/2 "2019-01-17T17:54:53Z")

</div>

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 😃

---

<div class="post-metadata">

### Author: ![nikana](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/nikana/32/1567_2.png) [@nikana](https://forum.beeminder.com/u/nikana)
#### Post date: [January 18, 2019, 1:56am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/3 "2019-01-18T01:56:45Z")

</div>

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)

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 18, 2019, 9:01pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/4 "2019-01-18T21:01:56Z")

</div>

> [@nikana](#):
>
> How do you compute the picture to display

I didn’t study computer graphics for no reason 😁

> [@nikana](#):
>
> is your ESP8266 logged in at beeminder and refreshing the page every half hour or so ?

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.

> [@nikana](#):
>
> The video seems to say the display only offers very low-level display functions.

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 😉

---

<div class="post-metadata">

### Author: ![nectar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/nectar/32/1719_2.png) [@nectar](https://forum.beeminder.com/u/nectar)
#### Post date: [January 19, 2019, 11:24am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/5 "2019-01-19T11:24:26Z")

</div>

It seem like what you want is a large version of the [Beeminder Watchapp for Pebble](https://forum.beeminder.com/t/new-mobile-app-android-ios-windows-plus-7-new-integrations/3421) (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](https://developer.rebble.io/developer.pebble.com/guides/tools-and-resources/pebble-tool/index.html#installing-watchapps) on your Raspberry Pi. The watchapp source code is [here](https://github.com/beeminder-capstone/pebble) 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:

- [https://www.reddit.com/r/pebble/comments/4k8zkf/i\_created\_my\_first\_watchface\_and\_had\_an\_extra/](https://www.reddit.com/r/pebble/comments/4k8zkf/i_created_my_first_watchface_and_had_an_extra/)
- [https://www.reddit.com/r/pebble/comments/3lqtsz/ok\_i\_have\_pebbe\_walldesk\_clock\_now/](https://www.reddit.com/r/pebble/comments/3lqtsz/ok_i_have_pebbe_walldesk_clock_now/)
- [https://www.reddit.com/r/pebble/comments/2xhv2n/pebble\_next\_announced\_is\_going\_to\_be\_digital/](https://www.reddit.com/r/pebble/comments/2xhv2n/pebble_next_announced_is_going_to_be_digital/)
- [https://www.reddit.com/r/pebble/comments/3kgsn1/going\_to\_make\_a\_pebble\_wall\_clock\_i\_think/](https://www.reddit.com/r/pebble/comments/3kgsn1/going_to_make_a_pebble_wall_clock_i_think/)

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 19, 2019, 12:12pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/6 "2019-01-19T12:12:54Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![nectar](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/nectar/32/1719_2.png) [@nectar](https://forum.beeminder.com/u/nectar)
#### Post date: [January 19, 2019, 4:08pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/7 "2019-01-19T16:08:21Z")

</div>

> [@phi](#):
>
> 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?

![image](https://us1.discourse-cdn.com/flex019/uploads/beeminder/original/2X/7/7c9eb2c1a41f45fde2e59ffd309e7d484c028f62.png)

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!

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 19, 2019, 4:37pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/8 "2019-01-19T16:37:06Z")

</div>

> [@nectar](#):
>
> I thought this might be an easy solution for your use case, since there is existing code and others have done it before.

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 😁

---

<div class="post-metadata">

### Author: ![zedmango](https://avatars.discourse-cdn.com/v4/letter/z/c67d28/32.png) [@zedmango](https://forum.beeminder.com/u/zedmango)
#### Post date: [January 19, 2019, 6:33pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/9 "2019-01-19T18:33:34Z")

</div>

It sounds awesome! I want one!

---

<div class="post-metadata">

### Author: ![cam](https://avatars.discourse-cdn.com/v4/letter/c/bbe5ce/32.png) [@cam](https://forum.beeminder.com/u/cam)
#### Post date: [January 21, 2019, 8:08am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/10 "2019-01-21T08:08:13Z")

</div>

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

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 21, 2019, 9:26am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/11 "2019-01-21T09:26:15Z")

</div>

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 🐝. OK now that I got my evangelism out…

The parts are ordered and once I’m done with [https://beeminder.com/phi/spiht](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 🙃

---

<div class="post-metadata">

### Author: ![zedmango](https://avatars.discourse-cdn.com/v4/letter/z/c67d28/32.png) [@zedmango](https://forum.beeminder.com/u/zedmango)
#### Post date: [January 21, 2019, 4:26pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/12 "2019-01-21T16:26:51Z")

</div>

It’s dreev, not dreeves, FYI

---

<div class="post-metadata">

### Author: ![zedmango](https://avatars.discourse-cdn.com/v4/letter/z/c67d28/32.png) [@zedmango](https://forum.beeminder.com/u/zedmango)
#### Post date: [January 21, 2019, 4:53pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/13 "2019-01-21T16:53:47Z")

</div>

> [@phi](#):
>
> 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.

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

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 21, 2019, 6:10pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/14 "2019-01-21T18:10:05Z")

</div>

> [@zedmango](#):
>
> It’s dreev, not dreeves, FYI

Whoops! I blame the reply-by-mail 😛

> [@zedmango](#):
>
> What will the buttons do?

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

---

<div class="post-metadata">

### Author: ![zedmango](https://avatars.discourse-cdn.com/v4/letter/z/c67d28/32.png) [@zedmango](https://forum.beeminder.com/u/zedmango)
#### Post date: [January 21, 2019, 7:36pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/15 "2019-01-21T19:36:57Z")

</div>

Yes the ones here:

> [@Defragmenting my schedule](https://forum.beeminder.com/t/defragmenting-my-schedule/4711/30):
>
> Sorry @hmowilliams for hijacking your awesome thread grimacing I’ve had my instance of Vim running in background for two years now. I hope to find a way to exit it in 2019. to quote a friend of mine who was once a very very avid vim user, then joined the church of emacs for “bigger” files and then… “I now use an emacs without any packages for small files for which I have used vim before. I aliased it to eq for emacs quick. Because with using both vim and emacs I ended up using emacs short…

Is that a different project?

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 21, 2019, 9:08pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/16 "2019-01-21T21:08:29Z")

</div>

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 🙂

---

<div class="post-metadata">

### Author: ![cam](https://avatars.discourse-cdn.com/v4/letter/c/bbe5ce/32.png) [@cam](https://forum.beeminder.com/u/cam)
#### Post date: [January 23, 2019, 5:49am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/17 "2019-01-23T05:49:02Z")

</div>

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

---

<div class="post-metadata">

### Author: ![mary](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/mary/32/317_2.png) [@mary](https://forum.beeminder.com/u/mary)
#### Post date: [January 26, 2019, 3:29pm UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/18 "2019-01-26T15:29:33Z")

</div>

I’m super excited about this!

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [January 30, 2019, 11:18am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/19 "2019-01-30T11:18:24Z")

</div>

Guess what arrived in the mail today!

 ![image](https://us1.discourse-cdn.com/flex019/uploads/beeminder/original/2X/0/089379d2c9335a764c400d30254d80058b7831e9.jpeg)  
(Beeminder sticker and flic button for size & colour comparison)

Here in comparison with a kindle (LEDs turned off)

 ![image](https://us1.discourse-cdn.com/flex019/uploads/beeminder/original/2X/0/0185b01dd2fd9a08eff71644d4c56a6640a2515c.jpeg)  
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 😉 A third one easily slides over the panel.

---

<div class="post-metadata">

### Author: ![phi](https://sea1.discourse-cdn.com/flex019/user_avatar/forum.beeminder.com/phi/32/2586_2.png) [@phi](https://forum.beeminder.com/u/phi)
#### Post date: [February 1, 2019, 2:32am UTC](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775/20 "2019-02-01T02:32:10Z")

</div>

Tadaaaa!

 ![image](https://us1.discourse-cdn.com/flex019/uploads/beeminder/original/2X/e/eeb06e786c8059e8de5c86fcd2298e956fd74d4b.jpeg)  
Almost done, eh? 😛

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 😉

[Next page](https://forum.beeminder.com/t/e-ink-beeminder-dashboard/4775.md?page=2)
