jan-miksovsky-com-muc8ja.txt (10983B)
1 [1]Jan Miksovsky’s Blog • [2]Archive • [3]2024 [4]About • [5]RSS • [6]JSON • 2 [7]Contact [8] 3 4 MomBoard: E-ink display for a parent with amnesia 5 6 November 12, 2024 7 8 E-ink display on a bathroom counter showing birthday messages 9 10 Today marks two years since I first set up an e-ink display in my mom’s 11 apartment to help her live on her own with amnesia. The display has worked 12 extremely well during those two years, so I’m sharing the basic set-up in case 13 others find it useful for similar situations. 14 15 Note: unless you have specific experience caring for someone who has amnesia 16 but not dementia, please do not offer care suggestions. 17 18 The patient 19 20 In June 2022 the side-effects of a long surgery left my mom with permanent 21 anterograde amnesia: she can no longer form new long-term memories. Memory 22 isn’t just one neurological system, so very occasionally she will be able to 23 remember certain types of things. But for the most part, if she hears or sees 24 something, a few minutes later she will no longer remember it. 25 26 To medical professionals her condition looks a lot like dementia — amnesia is a 27 common symptom of dementia — but she doesn’t have dementia. One difference is 28 that (as I understand it) dementia is a progressive disease, while this amnesia 29 is stable. There is no cure. 30 31 Someday I might post about the experience about caring for her, but for now 32 I’ll just say that this type of amnesia is not something one should wish on 33 one’s worst enemies. 34 35 Needs 36 37 My mom still lives on her own in an apartment. Because she cannot remember 38 things, she goes through each day in a state of low-grade anxiety about where 39 her grown children are and whether they are all right. She feels she hasn’t 40 heard from any of us in a long time. This anxiety manifests as extremely 41 frequent attempts to call or text us. 42 43 Paper notes and other forms of reminders didn’t seem to help, and would become 44 out of date even if they weren’t misplaced. My siblings and I would call to let 45 her know we were okay, but five minutes later she’d be back to being worried. 46 She wasn’t in the habit of scrolling back through text messages, so once she’d 47 read a message, it was immediately forgotten and effectively lost. 48 49 I thought some sort of unobtrusive, always-on device installed in her apartment 50 might be able to show her notes written by my siblings and me. 51 52 Design goals 53 54 My goal was to find a display that: 55 56 1. Could stay on for months on end 57 2. Would let my siblings and I easily post short messages to it that would 58 remain visible until replaced 59 3. Was large enough and easy enough to read without glasses 60 4. Required no interaction to wake or read and was relatively foolproof 61 (touching it wouldn’t disrupt it) 62 5. Was resilient to network failures 63 6. Didn’t glow at nighttime 64 7. Didn’t require hardware hackery (I’m a software person) 65 8. Would boot directly into displaying messages (no interaction needed to 66 start an app) 67 9. Was not enshittified with a subscription service or proprietary app store 68 10. Was reasonably affordable 69 11. Would not look out of place in a home 70 71 Device 72 73 Given the above design goals, I searched for a tablet-size electronic ink 74 display with Wi-Fi connectivity and a decent web browser. 75 76 One device that seemed to fit my parameters was the [9]BOOX Note Air2 Series. 77 At the time it cost US$500, which is expensive but is still far cheaper than 78 screens intended for use as commercial retail displays. It’s marketed as a 79 note-taking device and ebook reader, but it also has a capable web browser. 80 It’s big enough to read from a few feet away. 81 82 A critical question I couldn’t answer online was whether I’d be able to have 83 the device automatically start its web browser and have that browser display a 84 designated start page. Happily, when the device arrived I was able to confirm 85 it could do both of those things. 86 87 The physical case of the Note Air2 looks reasonably nice and not particularly 88 tech-y. The e-ink display is clear and legible; it refreshes quickly enough to 89 not be distracting. By default the device’s backlight was turned on but I could 90 turn it off. 91 92 I found a small metal stand to serve an easel for the display so that it felt 93 more like a picture frame. 94 95 Web software 96 97 Since the physical device was satisfactory, the next step was writing a simple 98 website that could drive the display. The site would have two pages: 99 100 1. A Board page showing the messages. The e-ink device would boot into showing 101 this page. This is the only page my mom needed to see. 102 2. A Compose page my siblings and I write messages and save them to be 103 displayed. 104 105 The device needed to run for months, and needed to be resilient in the case of 106 network and service failures. At the same time, I also needed to be able to 107 remotely update not only the messages being displayed, but the software 108 displaying those messages. 109 110 With that in mind, I factored the Board page into an outer frame and an inner 111 page: 112 113 1. The top-level outer frame acts as a thin shell around the inner page. At 114 top of every hour, the outer frame reloads the inner page to pick up 115 potential software changes. If the network is down and the inner page 116 doesn’t reload, the frame just tries again an hour later. To maximize 117 reliability, the outer frame has very little logic and no external 118 dependencies. 119 2. The inner page actually displays the messages. Every 5 minutes it queries a 120 simple web service for message data and displays the messages. The inner 121 page contains a small amount of logic, but as few dependencies as possible. 122 123 Since it’s essentially impossible to debug anything that happens on the device, 124 I made as much use of vanilla HTML and CSS as possible. I used a small amount 125 of JavaScript but no framework or other libraries. 126 127 Compose form for posting a message to the display 128 129 The Compose page presents a simple web form my siblings and I can use to 130 compose and save a message. I designed the form to work well on a phone screen 131 so that we can write messages when we’re out and about. A small web app 132 manifest lets us save the Compose page to a phone’s home screen as an icon for 133 quick access. 134 135 The whole site is tiny, entails no build process, and with the exception of the 136 service (below) is just static files. 137 138 Visual design 139 140 I was concerned about the possibility of e-ink burn-in, so the Board page 141 randomly changes which message appears where. Other visual elements like the 142 date and time alternate from side to side, with the intention that no single 143 pixel is always on. 144 145 To style the note text I chose the free [10]Architect’s Daughter font for a 146 handwritten feel. This font works well on the e-ink display. Labels are 147 displayed in [11]Open Sans. 148 149 One small challenge was maximizing the size of the message text. Sometimes a 150 message is just a word or two; other times it might be several sentences. A 151 single font size can’t accommodate such a wide range of text content. I 152 couldn’t find a pure CSS way to automatically maximize font size so that a text 153 element with word wrapping would display without clipping. 154 155 I ended up writing a small JavaScript function to maximize font size: it makes 156 the text invisible (via CSS visibility: hidden), tries displaying the text at a 157 very large size, and then tries successively smaller font sizes until it finds 158 a size that lets all the text fit. It then makes the text visible again. 159 160 Service 161 162 Just a tiny amount of text data is necessary to drive the display, so I was 163 happy to find the minimalist [12]JsonStorage service that was perfect for this 164 project. A single JSON object stores the text and metadata for the current set 165 of messages. The Compose page can save to the service with a POST request, and 166 the Board page can retrieve the data with a GET. 167 168 The service has a free tier that I started with, but I liked the service so 169 much that I eventually paid for a $1/month basic tier. (It appears that tier is 170 now $5/month.) 171 172 Trial and installation 173 174 I spent a couple of weeks working on the software and letting it run for long 175 periods of time. I was pleasantly surprised that the Boox display worked as 176 well as it did and seemed to stay up indefinitely. 177 178 I brought the display over to my mom’s apartment on November 12, 2022, turned 179 it on, joined it to her Wi-Fi, and rebooted it to confirm everything worked in 180 the new environment. 181 182 I thought the bathroom counter might be a good place for it, but my mom thought 183 she’d rather have it in her bedroom, so we found a home for it on a windowsill. 184 185 My mom was happy with the display right away. 186 187 Retrospective 188 189 Despite her amnesia, my mom came to remember that this display exists and what 190 it’s for. She looks forward to seeing updates from her children on it. 191 192 If we tell her about something that’s coming up, she often asks whether we’ve 193 already put that event on the MomBoard. On the flip side, we have to be careful 194 to keep it up to date; if we fail to take down a message that no longer 195 applies, it confuses her. 196 197 Looking back, the display is essentially the only intervention of any kind 198 we’ve tried that’s actually been successful at improving her quality of life 199 (and ours). One reason it’s worked so well is that it didn’t require her to 200 learn anything new. Without the ability to remember new things, it’s virtually 201 impossible for her to learn a new skill or to form new habits. 202 203 The device’s reliability has surpassed my expectations. There was one period 204 where the device seemed to stop working, but I traced the problem to a faulty 205 Wi-Fi hub; after that was replaced, it’s worked flawlessly since. For my part, 206 keeping the software as simple as possible and sticking to vanilla web 207 technologies surely helped avoid bugs. 208 209 The display still looks great, and it still displays messages day in and day 210 out. 211 212 If you want to try to set up something similar to what I describe here, I’m 213 happy to answer technical questions or share advice. 214 215 Update: I’ve published the [13]MomBoard source code on GitHub. 216 217 [14]Jan Miksovsky’s Blog • [15]Archive • [16]2024 [17]About • [18]RSS • [19] 218 JSON • [20]Contact 219 220 References: 221 222 [1] https://jan.miksovsky.com/ 223 [2] https://jan.miksovsky.com/posts/ 224 [3] https://jan.miksovsky.com/posts/2024/ 225 [4] https://jan.miksovsky.com/about 226 [5] https://jan.miksovsky.com/rss.xml 227 [6] https://jan.miksovsky.com/feed.json 228 [7] https://jan.miksovsky.com/contact 229 [8] https://jan.miksovsky.com/posts/2024/11-12-momboard 230 [9] https://shop.boox.com/products/noteair2 231 [10] https://fonts.google.com/specimen/Architects+Daughter 232 [11] https://fonts.google.com/specimen/Open+Sans 233 [12] https://www.jsonstorage.net/ 234 [13] https://github.com/JanMiksovsky/momboard 235 [14] https://jan.miksovsky.com/ 236 [15] https://jan.miksovsky.com/posts/ 237 [16] https://jan.miksovsky.com/posts/2024/ 238 [17] https://jan.miksovsky.com/about 239 [18] https://jan.miksovsky.com/rss.xml 240 [19] https://jan.miksovsky.com/feed.json 241 [20] https://jan.miksovsky.com/contact