Show HN: E-Ink Day Schedule(github.com) |
Show HN: E-Ink Day Schedule(github.com) |
You're writing
> I use FBInk on the kindle to display the images after curling them from a API Gateway.
I am the founder of this smart screen product: https://shop.invisible-computers.com/products/invisible-cale...
Curling an image is the same approach that I use for my e-paper smart screen as well. It should be quite easy to bring your dashboard to my device... maybe we can work together on something? My email is info@invisible-computers.com
I want to be fair to DHL here: The parcels are shipped through the letter network to make the overseas shipping more affordable. It's expected that they take bit longer than the normal DHL packages.
Yea, that's something I have been trying to build, but it's surprisingly non-trivial. There are a bunch of headless browser options, but I haven't found a good way to tell them: "Render the page in X width and Y height and then take a screenshot".
That seems like a problem that should have 100 open source solutions for it, and I am sure there are some that work really well! But I personally haven't found one yet.
Some custom content just for yourself, or an app that others can install as well?
And the connectivity is through Wifi. (And Bluetooth during Setup)
Isn't this the exact example of phantomjs?
``` page.viewportSize = { width: 600, height: 600 }; ```
At least that is what I use to do for screen testing for some of our low-hanging-fruit QA. At some point I rewrote it in puppeteer and it was as simple as the above line.
The screenshot results in being the X/Y size.
I'd be interested in why this doesn't work in your usecase.
Headless Chrome seems like it should be able to do what you want pretty easily. https://developer.chrome.com/blog/headless-chrome/
Hopefully you find it useful :)
I can buy an ESP32 e-ink screen and run esphome or any of several other open source projects and put a piece of wood on the front of it, too.
One: https://www.invisible-computers.com/invisible-calendar/image...
Two:
https://github.com/Invisible-Computers/image-gallery/blob/ma...
Both of these require rendering the content via an HTTP endpoint and both of these currently only work together with the device backend.
> I can buy an ESP32 e-ink screen and run esphome or any of several other open source projects and put a piece of wood on the front of it, too.
Yes, you can! And if you do this, you have absolutely no need to use my e-paper smart screen. (Though, for the record, it's not just a piece of wood in front, it's a CNC'd frame)
> Can the device not check the url directly
Yes, it could (with some modifications). But then you need to transmit and store the URL on the device, which requires establishing a bluetooth connection to change it. I am considering to offer this as an option to give myself and other peace of mind.
> Do you respect etags and other caching headers like if-modified-since
Not yet, but I could implement this very quickly if you send me an email and tell me you need this. :) (This is a great example how proxying things though the backend makes development easier: If I wasn't proxying, this change would require a firmware update.)
The big part, is the power is delivered at a pretty high voltage, so you are going to need a buck converter to get it down to the 5V usb expects.
Isn't this called a USB-A plug?
EDIT: I cannot respond to the child comment, but yes: The Device has a male USB plug, and then the cable goes right into the device, no receptacle on the device.
Edit: I understand. I'm used to devices with receptacles rather than captive cables. Any reason why you went that way?
But that would still expose your authentication credentials to the backend, so a malicious backend could MITM you.
Reducing the polling is definitely an option, I want to make that configurable very soon.
Btw, the cached data in the backend is encrypted with a token that is only transmitted from the device to the backend during the API request of the device. It's not end-to-end, but it's a step.
Also makes it easier to place it on the included stand.
There's a lot of low-hanging fruit there. Particularly because the device has a USB port and, by design, exposes a user partition that you can read/write to (so you can upload files and documents and ebooks to the device).
There's definitely been an effort by Amazon to lock them down, but just taking your reverse-engineering tool of choice and decompiling their firmware binary will give you tons of readable code to dig through. They use a mix of java, native c, and javascript.
Fun fact, at startup the Kindle looks for certain files in the user partition, with certain naming patterns. You can, for example, disable the screensaver by dropping a file with a special name there. They patched this once, but after doing a grep for the user-partition mount location (to see all the places in their code where they read from user partition files) I was pretty quickly able to find another way to do this. It's fun stuff.
Here's my weather E-Ink board (which consistently gives a faster result than waiting for the iOS weather app to fetch & render): https://github.com/OmerShapira/theres-some-weather-outside
It worked way better than I thought it would and is a pretty decent size.
Little pricey.
[1] https://www.youtube.com/watch?v=-ZXrJRpA0Jw
[2] https://www.amazon.com/DASUNG-Paper-Monitor-Knight-Version/d...
1. His project does allow rendering any HTML: https://www.invisible-computers.com/programmable-e-paper-scr...
2. It is in stock. :) Raspberry Pi Zero 2 and the waveshare displays are in a bit of a stock crunch, and the frame I ended up mounting this in, along with the special flat USB cable, pushed the project cost to the same price. It's my own aEsTheTic tho.
I am here to answer any questions anyone might have.
There are some more pictures on the shop page here: https://shop.invisible-computers.com/products/invisible-cale...
One thing I will point out from observation, the radios on ereader devices aren't great for heavy use; they were originally created for occasional syncing. Projects like these will require an HTTP request to somewhere to fetch data, on a regular basis, and the radio eventually stops working. It's not a terrible thing considering it's just an unused device. If you're looking for something longer lived, the waveshare screen are worth considering for mini projects.
Dithering works brilliantly on these devices. I made a photo frame out of one of these by calling some imagemagick from golang.
I agree, dithering on these devices works really well. After this project I worked on displaying images of the sun from the NOAA satellite. Until I got dithering working displaying the image with just 4 levels of grey was was very lackluster.
Do you have any pointers on where to start?
What I don't want is to run a server to host something for them to display. I want it self-contained, so once made, it's alive until the device breaks. My experience is 95% of the cost of these is maintenance, and that goes away once a project is no longer new, glitzy, and flashy.
What I actually want to build myself is a clock which displays time in time zones where my friends, relatives, and family are. Most of the other things I'd like are equally esoteric. I'd like this to be a <3 hour project (so it sustains a child's attention span too).
I got a little screen and the demo code worked, didn't know Python well enough at the time to keep running with it (part of the motivation to learn Python in the past year). Might need some work to build a case/enclosure, but beyond that it's a little piece of hardware that does what you wish. I'm thinking similar things, some specific cases in mind.
(I can be hired to do work like this for $15/hr for the first 90 days, contact info in profile).
This was about a month after I returned from a six week trip during which I kept that thing running.
Reminder that a lot of battery-powered devices really don't like to be connected to power all the time.
Shitty ones don't, yeah. A thing you can do with those is remove the battery fully, so it's not being recharged/used at all.
(I know you can get some way toward this with various apps but it’s definitely not the same as something OS-level)
Because they claim to be!
Maybe they could soft lock them to 50% or something but under normal circumstances it's too dangerous.
Connectivity is easy, as you can connect over USB or WiFi (my Kindle connects to my iPhone's hotspot).
I did something similar, but with photos. I managed to process everything on the device in 100% golang with imagemagick C-bindings.
As Imagemagick is also able to render text, it might be a solution for you to get rid of the need for an external server. The ARM build process happens on GitHub actions, so you can check it out.
https://github.com/landgenoot/kindle-synology-photos-photofr...
Really nice project.
I’m getting into having more purpose-built gadgets even if they seem to 70% overlap with each other.
Reading a book on my phone or tablet just isn’t the same.
Displays like this would be a good candidate for wireless power schemes, but they aren’t sited in places with a good set of power scavenging options. Maybe solar.
https://www.stavros.io/posts/making-the-timeframe/
I had to turn it into a generic signage platform first (it lets you show any image you want), and then screenshot GCal onto that image. It works really well, though.
Nowadays it's an electronic power meter, which also looks great.
I made a solar powered conways game of life with an esp32 and a 4.2 waveshare display but the whole time I wanted a few more pixels.
Edit: can you believe it? https://shop.pimoroni.com/products/inky-frame-7-3?variant=40...
1. It's very easy to put it into developer mode and set "don't lock screen if plugged in"
2. I can just open it to a web page of my calendar.
This is great as I don't get nerd-sniped into some dev project trying to set it all up and actually get a functional calendar so I don't miss things.
The expensive corporate version of this is called a Joan - https://getjoan.com/digital-signage/
The software runs on an ESP32 and is all open source: https://inkplate.readthedocs.io/en/latest/
Amazon also gives you a 20% discount for buying a new one, if you send the old one in, even if it doesn’t work at all anymore.
But I understand why… it’s 169eur, the cheaper CO2 meters are just much cheaper.
[1] https://github.com/pascalw/kindle-dash/blob/main/src/dash.sh...
I use to leave it plugged in but got sick of looking at the cord.
Still, "generate a static image from a computer and send it to a display at a certain rate" is an underrated way to do fun things
I just wanted to avoid having to pull data out of Notion & re-build a UI. Would be nice for some way to apply CSS to a page to make it more viewable.
Is it something that you plan on doing and document? Or is there an easy way I can ssh into the device and figure out on my own?
TIA!
EDIT : well, 1 minute later you answered part of my question here : https://news.ycombinator.com/item?id=37645339. How about ssh-ing?
For scrolling, I am not quite sure what you mean - are you referring to a button that would allow to move the time forward on the calendar? (That doesn't exist yet)
Tho I think PoE is neat for a device like this. White cable (assuming wall is white) and you're done.
Though I wouldn't rely on a proprietary solution. Nor on Google Calendar.
There are plenty of such options available. For example [1] but there's many more. Here another [2]. Can't find the one I got but yeah it broke and remember you need to update the software at times. I put it on a VLAN and guest WLAN to be sure.
[1] https://hackaday.io/project/189632-e-ink-weather-station-pum...
[2] https://www.hackster.io/lmarzen/esp32-e-paper-weather-displa...
The refresh time blows (something like 30 seconds), but otherwise I've been pretty happy with it.
When it comes to the layout, there is definitely a lot that could be done, that hasn't been implemented yet. I am always working to add features but of course there are always more ideas than time. :D
(For example, I recently, I added the option to display the calendar vertically:
https://shop.invisible-computers.com/cdn/shop/files/IMG_0304...
https://github.com/Invisible-Computers/image-gallery/blob/ma...
I admit that this is still a bit rough around the edges...
As a simpler alternative, if you just want to build some layout for yourself and you do not need user management, you can simply render it as an image on the internet and point the device to it:
https://www.invisible-computers.com/invisible-calendar/image...
Wait? It's always proxied through your service? So there is no way to show something on the screen without you also being able to see it? That's a big nope for me.
Actually, from another comment
> Privacy Information: Plese note that the data is proxied through the Invisible Computers API backend and a non-reversible hash of most recent image is stored for up to 48 hours.
So there's some mechanism to make API calls to your own cloud infrastructure, but customers can't use it to skip the middleman and send things directly to the device? I hope I'm reading this wrong, because that's awful.
The upside of this is that you can easily configure it remotely, because all settings after the initial setup are stored server-side...
... and it makes the whole development flow easier when you can build, iterate and deploy on a server.
What's the actual communication technology? Is it Wi-Fi? Cellular?
Edit: I see elsewhere you state it's Bluetooth and Wi-Fi. From a Wi-Fi perspective and workplace deployment does it support 802.1x?
Not yet, I want to support that in future but it's not possible yet. I have personally decided that I will keep the backend running even if I decide the project isn't worth it for me any more... but of course, I understand the this is no 100% guarantee.
> From a Wi-Fi perspective and workplace deployment does it support 802.1x? Uhhh, I don't know.. how would I check that?
A touch screen might be cool, maybe for a future version... but it would drive up the price.
From a product perspective, I wonder if people wouldn't rather pick up their smart phone if they want to look at their calendar more deeply. I don't think the device should try to compete with the smart phone, it can only lose.
Everybody will have their opinion, 100% :)
FWIW: In family scenario, being able to quickly check next week (a simple scroll), can be very beneficial as we plan our kids activities etc (but I understand you don't want to overcomplicate it, and everybody has "just one more thing it needs":). I'll have a chat with my wife on whether it's something she would use as currently is; I'll be happy to share feedback either way if it's helpful :).