-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuilding-an-e-ink-laptop.html
241 lines (186 loc) · 36.7 KB
/
building-an-e-ink-laptop.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
<!DOCTYPE html><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><meta content="width=device-width, initial-scale=1" name="viewport" /><!--replace-start-0--><!--replace-start-5--><!--replace-start-8--><title>Building an E-Ink Laptop - alexsoto.dev</title><!--replace-end-8--><!--replace-end-5--><!--replace-end-0--><link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/semantic.min.css" rel="stylesheet" /><link href="https://fonts.googleapis.com/css?family=Merriweather|Libre+Franklin|Roboto+Mono&display=swap" rel="stylesheet" /><!--replace-start-1--><!--replace-start-4--><!--replace-start-7--><style>
html {
font-size: 15px !important;
}
body div.zettel-view .zettel-content h1 {
text-align: right !important;
background-color: inherit !important;
font-weight: 400 !important;
line-height: 1 !important;
}
body div.zettel-view .zettel-content h2 {
text-align: left !important;
background-color: inherit !important;
border-bottom: none !important;
font-style: italic !important;
font-weight: 400 !important;
line-height: 1 !important;
}
body div.zettel-view .zettel-content h3 {
font-style: italic !important;
font-weight: 400 !important;
line-height: 1 !important;
text-align: left !important;
background-color: inherit !important;
}
body div.zettel-view .zettel-content h4 {
border-bottom: none !important;
text-align: left !important;
background-color: inherit !important;
}
/* Title */
#zettel-container > div.zettel-view > article > h1:first-child {
/* text-align: center !important; */
/* font-family: "Crimson Text", serif !important; */
/* font-style: italic; */
text-align: right !important;
font-weight: normal !important;
font-size: 2rem !important;
padding: 1rem !important;
text-align: right !important;
/* padding-top: 1rem; */
/* padding-right: 1rem; */
/* padding-left: 1rem; */
background-color: inherit !important;
}
.ui.segment {
background-color: #fffff8 !important;
}
#zettel-container {
max-width: 800px !important;
}
</style>
<!-- add social share buttons -->
<script>
window.addEventListener("load", function(){
var socialButtons = document.getElementById("socialMediaLinks");
socialButtons.innerHTML +=
"<a id='facebook' title='Share on Facebook' class='ui facebook button'><i class='facebook icon'></i> Share</a><a id='twitter' title='Tweet' class='ui twitter button'><i class='twitter icon'></i> Tweet</a><a id='linkedin' title='Share on LinkedIn' class='ui linkedin button'><i class='linkedin icon'></i> Share</a><a id='reddit' title='Share on Reddit' class='ui reddit button'><i class='reddit icon'></i> Share</a><a id='hnews' title='Share on Hacker News' class='ui hacker news button'><i class='hacker news icon'></i> Share</a>"
document.getElementById("facebook").addEventListener("click", function(e) {
window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(document.URL) + '"e=' + encodeURIComponent(document.URL)); return false;
});
document.getElementById("twitter").addEventListener("click", function(e) {
window.open('https://twitter.com/intent/tweet?text=' + encodeURIComponent(document.title) + ':%20' + encodeURIComponent(document.URL)); return false;
});
document.getElementById("linkedin").addEventListener("click", function(e) {
window.open('https://www.linkedin.com/shareArticle?mini=true&url=' + encodeURIComponent(document.URL) + '&title=' + encodeURIComponent(document.title)); return false;
});
document.getElementById("reddit").addEventListener("click", function(e) {
window.open('https://www.reddit.com/submit?url=' + encodeURIComponent(document.URL) + '&title=' + encodeURIComponent(document.title)); return false;
});
document.getElementById("hnews").addEventListener("click", function(e) {
window.open('https://news.ycombinator.com/submitlink?u=' + encodeURIComponent(document.URL) + '&t=' + encodeURIComponent(document.title)); return false;
});
document.getElementById("rss").addEventListener("click", function(e) {
window.open('https://alexsoto.dev/blog.xml');
});
})
</script>
<script>
window.addEventListener("load", function(){
var socialButtons = document.getElementById("subscriptionLinks");
socialButtons.innerHTML +=
"<a id='rss' title='Subscribe to RSS feed' class='ui rss button'><i class='rss square icon'></i> RSS</a> <a id='mail' title='Subscribe to mailing list' class='ui paper plane button'><i class='paper plane icon'></i> Subscribe</a>"
document.getElementById("rss").addEventListener("click", function(e) {
window.open('https://alexsoto.dev/blog.xml');
});
document.getElementById("mail").addEventListener("click", function(e) {
window.open('https://buttondown.email/alexsotodev');
});
})
</script>
<style>
#socialMediaLinks {
text-align: center;
}
#socialMediaLinks .ui.reddit.button {
background: #FF5700;
color: #ffffff;
}
#socialMediaLinks .ui.hacker.news.button {
background: #ff4000;
color: #ffffff;
}
#socialMediaLinks .ui.rss.button {
background: #FF9249;
color: #ffffff;
}
#subscriptionLinks .ui.rss.button {
background: #FF9249;
color: #ffffff;
}
#subscriptionLinks {
text-align: center;
}
#subscriptionLinks .ui.paper.plane.button {
background: #5A90E0;
color: #ffffff;
}
</style>
<!-- replace logo -->
<script>
window.addEventListener("load", function(){
let element = document.querySelector('div.footer-version > div > a > img[alt="logo"]')
let parent = element.parentNode.parentNode.parentNode
// element.remove()
console.log(parent)
let p = document.createElement("p")
let n = document.createTextNode("© 2021 Alexander Soto")
p.appendChild(n)
p.style.height = "80px";
// parent.appendChild(n)
parent.replaceChild(p, parent.firstChild)
// parent.replaceChild(element.parentNode, p)
});
</script>
<!-- mermaidjs -->
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<script>window.addEventListener("load", mermaid.initialize({startOnLoad:true}))</script>
<!-- graphviz -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/viz.js" integrity="sha512-vnRdmX8ZxbU+IhA2gLhZqXkX1neJISG10xy0iP0WauuClu3AIMknxyDjYHEpEhi8fTZPyOCWgqUCnEafDB/jVQ==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/2.1.2/full.render.js" integrity="sha512-1zKK2bG3QY2JaUPpfHZDUMe3dwBwFdCDwXQ01GrKSd+/l0hqPbF+aak66zYPUZtn+o2JYi1mjXAqy5mW04v3iA==" crossorigin="anonymous"></script>
<script>
window.addEventListener("load", function(){
let viz = new Viz();
for (let element of document.getElementsByClassName("graphviz")) {
let parent = element.parentNode
let pparent = parent.parentNode
viz.renderSVGElement(element.textContent)
.then(function(element) {
element.setAttribute("width", "100%")
pparent.replaceChild(element, parent)
});
}
});
</script>
<!-- chartjs -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.bundle.min.js" integrity="sha512-SuxO9djzjML6b9w9/I07IWnLnQhgyYVSpHZx0JV97kGBfTIsUYlWflyuW4ypnvhBrslz1yJ3R+S14fdCWmSmSA==" crossorigin="anonymous"></script>
<script>
window.addEventListener("load", function(){
for (let element of document.getElementsByClassName("chartjs")) {
let parent = element.parentNode
let pparent = parent.parentNode
let canvas = document.createElement('canvas');
let box = document.createElement('div');
box.appendChild(canvas);
let ctx = canvas.getContext("2d")
let myChart = new Chart(ctx, JSON.parse(element.textContent));
box.setAttribute("style","display:block;width:75%;text-align:'center';margin: 5px auto;");
pparent.replaceChild(box, parent)
}
});
</script>
<script defer src="https://cdn.commento.io/js/commento.js"></script>
<script async defer src="https://scripts.simpleanalyticscdn.com/latest.js"></script>
<noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt=""/></noscript>
<!-- Calendly badge widget begin -->
<link href="https://assets.calendly.com/assets/external/widget.css" rel="stylesheet">
<script src="https://assets.calendly.com/assets/external/widget.js" type="text/javascript" async></script>
<script type="text/javascript">window.onload = function() { Calendly.initBadgeWidget({ url: 'https://calendly.com/rc-alex-s/open-office', text: 'Schedule time with me', color: '#00a2ff', textColor: '#ffffff', branding: true }); }</script>
<!-- Calendly badge widget end -->
<link href="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" rel="icon" /><meta content="Alexander Soto" name="author" /><meta content="" name="description" /><link href="https://alexsoto.dev/building-an-e-ink-laptop.html" rel="canonical" /><meta content="Building an E-Ink Laptop" property="og:title" /><meta content="alexsoto.dev" property="og:site_name" /><meta content="article" property="og:type" /><meta content="https://alexsoto.dev/static/building-an-e-ink-laptop/eink-t480.jpg" property="og:image" /><script type="application/ld+json">[{"@context":"https://schema.org","itemListElement":[{"name":"Blog","item":"https://alexsoto.dev/blog.html","@type":"ListItem","position":1}],"@type":"BreadcrumbList"},{"@context":"https://schema.org","itemListElement":[{"name":"Dasung Paperlike HD-FT teardown","item":"https://alexsoto.dev/dasung-paperlike-hdft-teardown.html","@type":"ListItem","position":1}],"@type":"BreadcrumbList"},{"@context":"https://schema.org","itemListElement":[{"name":"About this site","item":"https://alexsoto.dev/","@type":"ListItem","position":1},{"name":"Alexander Soto","item":"https://alexsoto.dev/about.html","@type":"ListItem","position":2},{"name":"Projects","item":"https://alexsoto.dev/projects.html","@type":"ListItem","position":3}],"@type":"BreadcrumbList"}]</script><style type="text/css">body{background-color:#eeeeee !important;font-family:"Libre Franklin", serif !important}body .ui.container{font-family:"Libre Franklin", serif !important}body h1, h2, h3, h4, h5, h6, .ui.header, .headerFont{font-family:"Merriweather", sans-serif !important}body code, pre, tt, .monoFont{font-family:"Roboto Mono","SFMono-Regular","Menlo","Monaco","Consolas","Liberation Mono","Courier New", monospace !important}body div.z-index p.info{color:#808080}body div.z-index ul{list-style-type:square;padding-left:1.5em}body div.z-index .uplinks{margin-left:0.29999em}body .zettel-content h1#title-h1{background-color:rgba(27,28,29,0.1)}body nav.bottomPane{background-color:rgba(27,28,29,2.0e-2)}body div#footnotes{border-top-color:#1b1c1d}body p{line-height:150%}body img{max-width:100%}body .deemphasized{font-size:0.94999em}body .deemphasized:hover{opacity:1}body .deemphasized:not(:hover){opacity:0.69999}body .deemphasized:not(:hover) a{color:#808080 !important}body div.container.universe{padding-top:1em}body div.zettel-view ul{padding-left:1.5em;list-style-type:square}body div.zettel-view .pandoc .highlight{background-color:#ffff00}body div.zettel-view .pandoc .ui.disabled.fitted.checkbox{margin-right:0.29999em;vertical-align:middle}body div.zettel-view .zettel-content .metadata{margin-top:1em}body div.zettel-view .zettel-content .metadata div.date{text-align:center;color:#808080}body div.zettel-view .zettel-content h1{padding-top:0.2em;padding-bottom:0.2em;text-align:center}body div.zettel-view .zettel-content h2{border-bottom:solid 1px #4682b4;margin-bottom:0.5em}body div.zettel-view .zettel-content h3{margin:0px 0px 0.4em 0px}body div.zettel-view .zettel-content h4{opacity:0.8}body div.zettel-view .zettel-content div#footnotes{margin-top:4em;border-top-style:groove;border-top-width:2px;font-size:0.9em}body div.zettel-view .zettel-content div#footnotes ol > li > p:only-of-type{display:inline;margin-right:0.5em}body div.zettel-view .zettel-content aside.footnote-inline{width:30%;padding-left:15px;margin-left:15px;float:right;background-color:#d3d3d3}body div.zettel-view .zettel-content .overflows{overflow:auto}body div.zettel-view .zettel-content code{margin:auto auto auto auto;font-size:100%}body div.zettel-view .zettel-content p code, li code, ol code{padding:0.2em 0.2em 0.2em 0.2em;background-color:#f5f2f0}body div.zettel-view .zettel-content pre{overflow:auto}body div.zettel-view .zettel-content dl dt{font-weight:bold}body div.zettel-view .zettel-content blockquote{background-color:#f9f9f9;border-left:solid 10px #cccccc;margin:1.5em 0px 1.5em 0px;padding:0.5em 10px 0.5em 10px}body div.zettel-view .zettel-content.raw{background-color:#dddddd}body .ui.label.zettel-tag{color:#000000}body .ui.label.zettel-tag a{color:#000000}body nav.bottomPane ul.backlinks > li{padding-bottom:0.4em;list-style-type:disc}body nav.bottomPane ul.context-list > li{list-style-type:lower-roman}body .footer-version img{-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%)}body .footer-version img:hover{-webkit-filter:grayscale(0%);-moz-filter:grayscale(0%);-ms-filter:grayscale(0%);-o-filter:grayscale(0%);filter:grayscale(0%)}body .footer-version, .footer-version a, .footer-version a:visited{color:#808080}body .footer-version a{font-weight:bold}body .footer-version{margin-top:1em !important;font-size:0.69999em}@media only screen and (max-width: 768px){body div#zettel-container{margin-left:0.4em !important;margin-right:0.4em !important}}body span.zettel-link-container span.zettel-link a{color:#1b1c1d;font-weight:bold;text-decoration:none}body span.zettel-link-container span.zettel-link a:hover{background-color:rgba(27,28,29,0.1)}body span.zettel-link-container span.extra{color:auto}body span.zettel-link-container.errors{border:solid 1px #ff0000}body span.zettel-link-container.errors span.zettel-link a:hover{text-decoration:none !important;cursor:not-allowed}body [data-tooltip]:after{font-size:0.69999em}body div.tag-tree div.node{font-weight:bold}body div.tag-tree div.node a.inactive{color:#555555}body .tree.flipped{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}body .tree{overflow:auto}body .tree ul.root{padding-top:0px;margin-top:0px}body .tree ul{position:relative;padding:1em 0px 0px 0px;white-space:nowrap;margin:0px auto 0px auto;text-align:center}body .tree ul::after{content:"";display:table;clear:both}body .tree ul:last-child{padding-bottom:0.1em}body .tree li{display:inline-block;vertical-align:top;text-align:center;list-style-type:none;position:relative;padding:1em 0.5em 0em 0.5em}body .tree li::before{content:"";position:absolute;top:0px;right:50%;border-top:solid 2px #cccccc;width:50%;height:1.19999em}body .tree li::after{content:"";position:absolute;top:0px;right:50%;border-top:solid 2px #cccccc;width:50%;height:1.19999em}body .tree li::after{right:auto;left:50%;border-left:solid 2px #cccccc}body .tree li:only-child{padding-top:0em}body .tree li:only-child::after{display:none}body .tree li:only-child::before{display:none}body .tree li:first-child::before{border-style:none;border-width:0px}body .tree li:first-child::after{border-radius:5px 0px 0px 0px}body .tree li:last-child::after{border-style:none;border-width:0px}body .tree li:last-child::before{border-right:solid 2px #cccccc;border-radius:0px 5px 0px 0px}body .tree ul ul::before{content:"";position:absolute;top:0px;left:50%;border-left:solid 2px #cccccc;width:0px;height:1.19999em}body .tree li div.forest-link{border:solid 2px #cccccc;padding:0.2em 0.29999em 0.2em 0.29999em;text-decoration:none;display:inline-block;border-radius:5px 5px 5px 5px;color:#333333;position:relative;top:2px}body .tree.flipped li div.forest-link{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}</style><!--replace-end-7--><!--replace-end-4--><!--replace-end-1--></head><body><div class="ui fluid container universe"><!--replace-start-2--><!--replace-start-3--><!--replace-start-6--><nav class="flipped tree deemphasized" id="zettel-uptree" style="transform-origin: 50%"><ul class="root"><li><ul><li><div class="forest-link"><span class="zettel-link-container"><span class="zettel-link" title="2021-02-27T15:44"><a href="projects.html">Projects</a></span></span></div><ul><li><div class="forest-link"><span class="zettel-link-container"><span class="zettel-link" title="2021-02-27T15:41"><a href="about.html">Alexander Soto</a></span></span></div><ul><li><div class="forest-link"><span class="zettel-link-container"><span class="zettel-link"><a href=".">About this site</a></span></span></div></li></ul></li></ul></li><li><div class="forest-link"><span class="zettel-link-container"><span class="zettel-link" title="2021-02-20T16:02"><a href="dasung-paperlike-hdft-teardown.html">Dasung Paperlike HD-FT teardown</a></span></span></div></li><li><div class="forest-link"><span class="zettel-link-container"><span class="zettel-link"><a href="blog.html">Blog</a></span></span></div></li></ul></li></ul></nav><div class="ui text container" id="zettel-container" style="position: relative"><div class="zettel-view"><article class="ui raised attached segment zettel-content"><div class="pandoc"><h1 id="title-h1">Building an E-Ink Laptop</h1><p><img class="ui right floated small image" src="static/building-an-e-ink-laptop/eink-t480.jpg" /></p><p>A series where I’m documenting my process of designing and building an e-ink laptop.</p><ul><li><span class="zettel-link-container folge"><span class="zettel-link" title="2021-02-20T16:02"><a href="dasung-paperlike-hdft-teardown.html">Dasung Paperlike HD-FT teardown</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span></li><li><span class="zettel-link-container folge"><span class="zettel-link" title="2021-04-22T12:00"><a href="challenges-building-an-open-source-eink-laptop.html">Challenges Building an Open-Source E Ink Laptop</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span></li><li><span class="zettel-link-container folge"><span class="zettel-link" title="2022-01-13T16:43"><a href="modos-paper-laptop.html">The Modos Paper Laptop</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span></li></ul><h2 id="background">Background</h2><p>Since the E Ink Corporation’s founding in 1997 and the patenting of its microencapsulated electrophoretic display, or epaper, manufacturers started to incorporate e-ink film into consumer devices. <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn1" id="fnref1">1</a></sup></span>. Some of the first devices were ereaders: The Sony Librie in 2004<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn2" id="fnref2">2</a></sup></span> and the Amazon Kindle in 2007 <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn3" id="fnref3">3</a></sup></span>.</p><p>Throughout the years, we’ve seen several e-ink products and prototypes: e-ink film used with larger screens<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn4" id="fnref4">4</a></sup></span>, color<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn5" id="fnref5">5</a></sup></span>, flexible material<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn6" id="fnref6">6</a></sup></span> and most recently have started seeing e-ink displays used in smartphones and tablets, notably from Hisense and Onyx Boox product lines. And while e-ink has been around for 24 years, we have yet to see a laptop with an e-ink panel.</p><h2 id="why-isnt-there-an-e-ink-laptop">Why isn’t there an E Ink Laptop?</h2><p>There have been attempts in the past to create a similar device: Pixel Qi and OLPC<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn7" id="fnref7">7</a></sup></span>, Boox Typewriter<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn8" id="fnref8">8</a></sup></span>, Yoga Book C930<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn9" id="fnref9">9</a></sup></span> and the ThinkBook Plus<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn10" id="fnref10">10</a></sup></span>. These attempts did not materialize, were discontinued, or were not sufficiently suitable to meet users’ demands due to hardware or lack of a cohesive UX/UI paradigm. <strike>To make matters worse, the E Ink Corporation holds the patents for its e-ink technology and only licenses its technology to large manufacturers making availability or mass adoption difficult.</strike><span data-nosnippet=""><sup class="footnote-ref"><a href="#fn11" id="fnref11">11</a></sup></span></p><p>Fortunately, some of the most exciting work and innovation happening today is in the e-ink modding community<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn12" id="fnref12">12</a></sup></span>. There have been attempts to re-purposing ereaders: as a calendar,<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn13" id="fnref13">13</a></sup></span> to display a static image or site<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn14" id="fnref14">14</a></sup></span>, Kobo devices running GNU/Linux<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn15" id="fnref15">15</a></sup></span>, Amazon Kindle devices repurposed as a development platform<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn16" id="fnref16">16</a></sup></span>, the Remarkable 1 running Parabola<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn17" id="fnref17">17</a></sup></span>, and PINE 64 recently announcing a native e-ink single-board computer<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn18" id="fnref18">18</a></sup></span>.</p><p>After following the development of e-ink for some time, I’ve decided to re-use some of the existing hardware I have and create an e-ink laptop.</p><h2 id="why-do-you-want-to-build-an-e-ink-laptop">Why do you want to build an E Ink laptop?</h2><p>From about 6 am to 7 pm, I’m in front of a computer or digital device that’s emitting blue light. Throughout the day, I’m supporting students, attending meetings, reading documentation, news articles, programming, learning, using emacs and org-mode to capture information, write down thoughts, create tasks, and conversing with my knowledge management system.</p><p>I try to use my e-ink monitor as much as possible throughout the day to reduce eye strain, fatigue and lessen distractions while intermittently taking breaks. The Dasung monitors go a long way to make this possible when I’m home or in a stationary place. Though there are times, I’m not working in front of my desktop or would like to work at a different location. The teardown and set-up of my environment when using an e-ink monitor is somewhat tedious, in addition to changes having to make when switching from an LCD to an e-ink monitor:</p><ul><li>making adjustments and tweaks to the window manager.</li><li>adjusting font sizes.</li><li>changing themes in different applications.</li></ul><p>I am then having to switch the changes back when using an LCD for meetings or videos. I’ve already solved some of this by writing some scripts and making adjustments in some applications. Still, I would like to design the experience for using an e-ink monitor with a dedicated device from the ground-up.</p><h2 id="creating-an-e-ink-laptop">Creating an E Ink Laptop</h2><p>I’ll be using a ‘headless’ Thinkpad T480 <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn19" id="fnref19">19</a></sup></span> combined with the Dasung HD-FT <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn20" id="fnref20">20</a></sup></span>.</p><p><img class="ui centered medium image" src="static/building-an-e-ink-laptop/eink-t480.jpg" /></p><h2 id="thinkpad-t480">Thinkpad T480</h2><p>The Thinkpad T480 seems to be an ideal laptop for building an e-ink laptop, The T480 has <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn21" id="fnref21">21</a></sup></span>:</p><ul><li>A hot-swappable battery (internal and external).</li><li>13 hours of battery while web browsing with the 72Wh battery.</li><li>Supports up to 64 GB of ram.</li><li>Two Nvme drives (type 2280 and 2242).</li><li>Standard HDMI port, USB-C, Thunderbolt 3, Headphone Jack, Ethernet, and SD card slot.</li><li>Uses a standard USB-C charger. <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn22" id="fnref22">22</a></sup></span></li><li>Lightweight and portable.</li><li>It can be modded to use the classic 7-row keyboard. <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn23" id="fnref23">23</a></sup></span></li></ul><p>The hot-swappable battery and long battery life are essential for any portable setup, especially with an e-ink monitor. The T480 supports up to 64Gb of ram and two Nvme drives, providing plenty of power and expansion as a daily driver.</p><p>Since the Dasung monitors connect via HDMI and receives power through USB, the T480 has all of the necessary ports without an adapter. Lastly, after removing the lid cover with the T480, there is room here to hack and mod the Dasung screen to the T480.</p><p><img class="ui medium spaced image" src="static/building-an-e-ink-laptop/t480-mobo.jpg" /> <img class="ui medium spaced image" src="static/building-an-e-ink-laptop/t480-no-lcd.jpg" /></p><h2 id="dasung-hd-ft">Dasung HD-FT</h2><p>Dasung currently is the only manufacturer of e-ink monitors that I’m aware of <span data-nosnippet=""><sup class="footnote-ref"><a href="#fn24" id="fnref24">24</a></sup></span>, and their third-generation monitors are a substantial upgrade from prior generations.</p><p><img class="ui centered medium image" src="static/building-an-e-ink-laptop/dasung-monitor.jpg" /></p><p>Directly from the monitor, you can:</p><ul><li>Change image modes (M1, M2, M3, Fast, Fast+, Fast++, Black, Black+, Black++)</li><li>Adjust contrast</li><li>Clear the screen</li><li>Turn on and off the backlight</li></ul><p>The ability to easily change the monitor’s modes without software, the fast screen refresh, screen resolution of 2200×1650 and the backlight make it a great base to build an e-ink laptop.</p><h2 id="next-steps">Next Steps</h2><p>The first post went over my reasons for building an e-ink laptop, some history about e-ink technology, the e-ink modding community, recent advancements, and the hardware I’ve selected to create an e-ink laptop.</p><p>The next post in the series will be a teardown of the Dasung HD-FT, inspired by Kev Zettler’s work on the Dasung Paperlike Pro.<span data-nosnippet=""><sup class="footnote-ref"><a href="#fn25" id="fnref25">25</a></sup></span></p><h2 class="ui horizontal divider header" id="about">About</h2><p><img class="ui left floated small image" id="avatar" src="static/profile.jpeg" /></p><p>Hi, I’m Alexander Soto.</p><p>I’m a community organizer, educator, software engineer, hacktivist, and agent of social change. My interests are in exploring community-building, social justice, education, and leveraging technology to address social problems.</p><p>In the past, I’ve worked as a labor rights organizer, a teacher, and I’m currently the Project Lead at <a href="https://ei2030.org/">EI2030</a>, an Expert In Residence at <a href="https://www.resilientcoders.org/">Resilient Coders</a>, and founder of <a href="https://www.modos.tech/">Modos</a>.</p><p>I enjoy tinkering/playing/breaking things, 3D printing, painting, playing piano, swimming, and writing in my spare time.</p><p>This site is the <a href="https://alexsoto.dev/impulse.html">scattered and unfinished version of my thoughts</a> while documenting what I’m currently learning and exploring.</p><p>If you’d like to know the updates of a post, have questions, comments, suggestions, or would like to collaborate, send me a <a href="https://twitter.com/messages/compose?recipient_id=4648173315">direct message</a> on <a href="https://twitter.com/alexsotodev">Twitter</a>, or an <a href="mailto:[email protected]">email</a> and we can talk.</p><section id="subscriptionLinks"></section>
<div class="ui section divider"></div>
<section id="socialMediaLinks"></section>
<div class="ui section divider"></div>
<div id="commento"></div>
<div id="footnotes"><ol><li id="fn1"><p><a href="https://en.wikipedia.org/wiki/E_Ink">E Ink - Wikipedia</a></p><a href="#fnref1">↩︎</a></li><li id="fn2"><p><a href="https://en.wikipedia.org/wiki/Sony_Reader">Sony Librie - Wikipedia</a></p><a href="#fnref2">↩︎</a></li><li id="fn3"><p><a href="https://www.engadget.com/2007-11-19-live-from-the-amazon-kindle-launch-event.html">Live from the Amazon Kindle launch event</a></p><a href="#fnref3">↩︎</a></li><li id="fn4"><p><a href="https://www.youtube.com/watch?v=RRvlJ2HjH30">DASUNG Releasing Large Size 25.3“ E-ink Monitor: Paperlike 253</a></p><a href="#fnref4">↩︎</a></li><li id="fn5"><p>Video: <a href="https://www.youtube.com/watch?v=OlnzrxaZViU">The Color E-Reader is Here: Hands-On with E Ink “Kaleido” on the PocketBook Go</a></p><a href="#fnref5">↩︎</a></li><li id="fn6"><p>Video: <a href="https://www.youtube.com/watch?v=j5Jf_3xqpF8">E Ink releases new flexible and foldable 32 inch E-Paper Display</a></p><a href="#fnref6">↩︎</a></li><li id="fn7"><p><a href="http://www.olpcnews.com/hardware/screen/breaking_news_olpc_pixel_qi_to.html">Breaking News: OLPC & Pixel Qi to Share XO Laptop Screen Patents AND All Current & Future Display IP</a></p><a href="#fnref7">↩︎</a></li><li id="fn8"><p><a href="https://www.theverge.com/circuitbreaker/2017/4/11/15264394/boox-typewriter-e-ink-laptop-is-my-dream-computer">This weird e-ink laptop is my dream computer</a></p><a href="#fnref8">↩︎</a></li><li id="fn9"><p><a href="https://www.theverge.com/2018/10/25/18019840/lenovo-yoga-book-c930-review-e-ink-tablet-laptop-windows">Lenovo Yoga Book C930 review: two screens and lots of compromises</a></p><a href="#fnref9">↩︎</a></li><li id="fn10"><p><a href="https://www.theverge.com/2021/1/12/22226031/lenovo-thinkbook-plus-gen-2-e-ink-lid-display-ces-2021">Lenovo’s ThinkBook Plus Gen 2 has an even bigger and better E Ink display on the lid</a></p><a href="#fnref10">↩︎</a></li><li id="fn11"><p>Correction, this is an unsubstantiated claim. <a href="https://news.ycombinator.com/item?id=26143407">Ask HN: Why are e-ink note-taking devices so expensive compared to iPads?</a></p><a href="#fnref11">↩︎</a></li><li id="fn12"><p><a href="https://www.reddit.com/r/eink/comments/lo5hkk/eink_ergo_cyberdeck_ideas/">E-ink ergo cyberdeck ideas</a></p><a href="#fnref12">↩︎</a></li><li id="fn13"><p><a href="https://rahulrav.com/blog/e_ink_dashboard.html">Building an E-Ink Calendar, and a UI Toolkit along the way</a></p><a href="#fnref13">↩︎</a></li><li id="fn14"><p><a href="https://alexanderklopping.medium.com/an-updated-daily-front-page-of-the-new-york-times-as-artwork-on-your-wall-3b28c3261478">An updated daily front page of The New York Times as artwork on your wall</a></p><a href="#fnref14">↩︎</a></li><li id="fn15"><p><a href="https://www.youtube.com/watch?v=8rkoHcJGo18">Kobo Mini running Debian Linux tablet</a></p><a href="#fnref15">↩︎</a></li><li id="fn16"><p><a href="https://blog.lidskialf.net/2021/02/08/turning-an-old-kindle-into-a-eink-development-platform/">Turning an old Amazon Kindle into a eink development platform</a></p><a href="#fnref16">↩︎</a></li><li id="fn17"><p><a href="http://www.davisr.me/projects/parabola-rm/">Parabola-rM</a></p><a href="#fnref17">↩︎</a></li><li id="fn18"><p><a href="https://www.makeuseof.com/quartz64-e-ink-sbc/">Pine64 Announces a Native E-ink Single Board Computer</a></p><a href="#fnref18">↩︎</a></li><li id="fn19"><p>Inspired by the <a href="https://www.raspberrypi.org/products/raspberry-pi-400/">Raspbery Pi 400</a> and <a href="https://en.wikipedia.org/wiki/Commodore_64">Commodore 64</a>.</p><a href="#fnref19">↩︎</a></li><li id="fn20"><p><a href="https://dasung-tech.myshopify.com/products/dasung-e-ink-paperlike-hd-front-light-and-touch-13-3-monitor?variant=34835004850333">Dasung’s Shopify Store</a></p><a href="#fnref20">↩︎</a></li><li id="fn21"><p>Video: <a href="https://www.youtube.com/watch?v=621WJlMJq98">Best used ThinkPad to buy in 2020?</a></p><a href="#fnref21">↩︎</a></li><li id="fn22"><p><a href="https://www.amazon.com/dp/B07RGTHQNW/">thinkplus Portable Lightweight 65W USB-C Wall PD Charger</a></p><a href="#fnref22">↩︎</a></li><li id="fn23"><p><a href="https://www.xyte.ch/thinkpads/t25-frankenpad/">T25 Frankenpad</a></p><a href="#fnref23">↩︎</a></li><li id="fn24"><p>While Onyx Boox has made Android Tablets that can be used as a secondary monitor, in my experience with the Onyx Boox Max 2, the referesh rate and performance was no where near comparable to a comparable Dasung monitor of the same generation. In addition, there have been reports that <a href="https://news.ycombinator.com/item?id=23735962">Onyx is violating the Linux kernel’s license, refuses to release source code</a>, as such I would prefer to not support them.</p><a href="#fnref24">↩︎</a></li><li id="fn25"><p><a href="https://kevzettler.com/2018/02/11/dasung-paperlike-pro-teardown/">Dasung Paperlike Pro Teardown</a></p><a href="#fnref25">↩︎</a></li></ol></div></div><div class="metadata"><div class="date" title="Zettel date"><time datetime="2021-02-17T22:13">2021-02-17</time></div></div></article><nav class="ui attached segment deemphasized backlinksPane" id="neuron-backlinks-pane"><h3 class="ui header">Backlinks</h3><ul class="backlinks"><li><span class="zettel-link-container cf"><span class="zettel-link" title="2021-04-22T12:00"><a href="challenges-building-an-open-source-eink-laptop.html">Challenges Building an Open-Source E Ink Laptop</a></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><p>In a previous article, I discussed my intention of <span class="zettel-link-container folge"><span class="zettel-link" title="2021-02-17T22:13"><a href="building-an-e-ink-laptop.html">Building an E-Ink Laptop</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span>. In this article, I want to introduce <a href="https://ei2030.zulipchat.com/register/">EI2030</a> and how we are building an open-source eink laptop and its challenges.</p></div></li></ul></li><li><span class="zettel-link-container cf"><span class="zettel-link"><a href=".">About this site</a></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><em>Parent directory zettel</em></div></li></ul></li></ul><h3 class="ui header"><span title="Backlinks from folgezettel parents">Uplinks</span></h3><ul class="backlinks"><li><span class="zettel-link-container folge"><span class="zettel-link" title="2021-02-27T15:44"><a href="projects.html">Projects</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><span class="zettel-link-container folge"><span class="zettel-link" title="2021-02-17T22:13"><a href="building-an-e-ink-laptop.html">Building an E-Ink Laptop</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span></div></li></ul></li><li><span class="zettel-link-container folge"><span class="zettel-link" title="2021-02-20T16:02"><a href="dasung-paperlike-hdft-teardown.html">Dasung Paperlike HD-FT teardown</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><span class="zettel-link-container folge"><span class="zettel-link" title="2021-02-17T22:13"><a href="building-an-e-ink-laptop.html">Building an E-Ink Laptop</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span></div></li></ul></li><li><span class="zettel-link-container folge"><span class="zettel-link"><a href="blog.html">Blog</a><span data-nosnippet="" style="user-select: none; color: gray" title="Folgezettel">#</span></span></span><ul class="context-list" style="zoom: 85%;"></ul></li></ul></nav><nav class="ui attached segment deemphasized bottomPane" id="neuron-tags-pane"><div><span class="ui basic label zettel-tag" title="Tag">blog</span><span class="ui basic label zettel-tag" title="Tag">e-ink</span><span class="ui basic label zettel-tag" title="Tag">root</span></div></nav><nav class="ui bottom attached icon compact inverted menu black" id="neuron-nav-bar"><!--replace-start-9--><a class="item" href="." title="Home"><i class="home icon"></i></a><!--replace-end-9--><a class="right item" href="impulse.html" title="Open Impulse"><i class="wave square icon"></i></a></nav></div></div><!--replace-end-6--><!--replace-end-3--><!--replace-end-2--><div class="ui center aligned container footer-version"><div class="ui tiny image"><a href="https://neuron.zettel.page"><img alt="logo" src="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" title="Generated by Neuron 1.9.24.1" /></a></div></div></div></body></html>