Something about this article just rubs me the wrong way --- it feels like CV padding. So many buzzwords, so much complexity, so many layers of libraries just to write to a display. I didn't know what Nerves was, so clicked over to https://nerves-project.org/ and didn't learn all that much more --- the home page there looks to be more marketing wank than anything else (a lot of projects these days seem to have this affliction; they'll tell you all the great things you can do, but never answer the question of what it is.) What's more, and this isn't specific to this article but basically all e-ink products out there, those layers of complexity almost certainly are not letting you use the display to its full potential; they only offer a dumb framebuffer interface.
That's particularly disadvantaging with eInk, because if you drive the display directly instead of using a pre-packaged controller, you can achieve effects like partial redraws without flickering, and even theoretically infinite levels of grayscale; here's a previous HN discussion of an article where someone did just that:
The ED060SC4 seems to be one of the best for this; you can drive them directly, they're reasonably large (800x600, 6") and cheap, and there's plenty of information on them.
Author here. Sorry to hear that that's your take-away. I can see how it feels framework-loaded. But making a library that works with Scenic (UI framework) and Nerves (embedded runtime and platform, alternative to Raspbian for the Pi) is pretty normal for the Elixir community and ecosystem. They go together largely like the LAMP-stack used to.
This post was not particularly about those frameworks but rather about supporting the release of a library me and a friend just put out there. I don't expect that library to have any real business use for me. I tried to cover the full range of what I've intended for people to do with the base library and the extras we created.
Me and a guy I met in the Elixir Slack put in the work to port the Inky library to Elixir from Python. Mostly because I wanted to be able to use it with Nerves and he got involved to scratch some itches. The post works as a bit of extra documentation for people to get started. I want it to be out there so when wants to know if Inky works with Nerves they'll find guidance.
Anyway, the Inky display as a product is made to be driven by GPIO and SPI. From what I gather we could do a lot weird stuff to try and run it faster (tried some today, but no dice), partial updates, etc. Our library does basic pixel-pushing, nothing fancy, but no huge layering on top either. We kept the level of abstraction from the library we ported.
Scenic was a fairly logical choice for rendering more advanced things than straight pixels in my estimate. A minimal-dependency UI framework on top of OpenGL. It does add a few layers of abstraction and we end up working from a framebuffer since I couldn't be bothered to re-implement all the draw calls. The framework I'd say is the goto for embedded UI rendering in Elixir and Nerves.
I really like the Nerves platform. Embedded is still a hobby for me but the platform seems sound. I think Farmbot is a neat example. I think the Nerves site covers a fair bit of what it does and tries to get to the point. But it isn't the easiest thing to explain briefly either. An embedded runtime that uses the BEAM VM to try and provide better reliability. So then you need to go into what Erlang is and why the BEAM is a good idea.
I'd be interested in driving something a bit more directly but I'm also very new with most of the nitty gritty in hardware. And I think I'm largely done with eInk for a bit. Aside from maintaining the library.
I hope that clarifies my intentions. I'm not sure I care if it changes your mind about the post :)
To be quite clear, if I intend to pad my CV I'd be writing React posts, maybe some GraphQL, sprinkle some devops on there. No recruiter will be beating down my door because I know about Nerves and Scenic. Even Elixir is still early days. This was for fun. I'll be mercenary some other day.
Please don't cross into personal attack. That breaks the site guidelines and we ban accounts that do that. Instead, if you have the karma (which you do), you can downvote such comments, flag them if they break the guidelines, or email hn@ycombinator.com in egregious cases.
That's particularly disadvantaging with eInk, because if you drive the display directly instead of using a pre-packaged controller, you can achieve effects like partial redraws without flickering, and even theoretically infinite levels of grayscale; here's a previous HN discussion of an article where someone did just that:
https://news.ycombinator.com/item?id=16140284
The ED060SC4 seems to be one of the best for this; you can drive them directly, they're reasonably large (800x600, 6") and cheap, and there's plenty of information on them.