diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2026-01-08 22:28:37 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2026-01-08 22:28:37 +0800 |
| commit | e836c4b9e78cc3892cdebf8126cb650f1b91ed37 (patch) | |
| tree | 4e52155aef0105cc9b888a42b3e760455a2bcb36 /_site/log/e-reader | |
| parent | 57ff09d2eefefa2462a2af0175e3e8164c7bc828 (diff) | |
| download | www-e836c4b9e78cc3892cdebf8126cb650f1b91ed37.tar.gz | |
Tighten prose.
Diffstat (limited to '_site/log/e-reader')
| -rw-r--r-- | _site/log/e-reader/index.html | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/_site/log/e-reader/index.html b/_site/log/e-reader/index.html index 33c08d2..13b4efa 100644 --- a/_site/log/e-reader/index.html +++ b/_site/log/e-reader/index.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> - <title>512 KB e-reader</title> + <title>512KB e-reader</title> <link rel="stylesheet" href="/assets/css/main.css"> <link rel="stylesheet" href="/assets/css/skeleton.css"> </head> @@ -37,10 +37,10 @@ <main> <div class="container"> <div class="container-2"> - <h2 class="center" id="title">512 KB E-READER</h2> + <h2 class="center" id="title">512KB E-READER</h2> <h5 class="center">24 OCTOBER 2023</h5> <br> - <div class="twocol justify"><p>First project with e-paper displays and ESP32.</p> + <div class="twocol justify"><p>First project with e-paper.</p> <video style="max-width:100%;" controls="" poster="poster.png"> <source src="ereader.mp4" type="video/mp4" /> @@ -49,13 +49,13 @@ <p>ESP-WROOM-32, 7.5” Waveshare e-paper display, three-button interface (prev/next/sleep).</p> -<p>Memory: 512KB SRAM + 4MB flash. Internal 4 MB flash unsuitable for storing -books due to P/E cycle limits. HTTP Range requests for on-demand bitmap -streaming. Progress saved to RTC memory to survive deep sleep without flash -wear.</p> +<p>Memory: 512KB SRAM + 4MB flash. Internal flash unsuitable for storing books due +to P/E cycle limit. Used HTTP Range requests to stream them on-demand. +Progress saved to RTC memory to survive deep sleep without flash wear.</p> -<p>EBM format: Raw bitmap sequence. 1 byte = 8 pixels, 1 page = 48 KB (display -resolution), headerless. Optimized for HTTP Range requests:</p> +<p>PDFs are rasterized and stored as sequences of bitmaps on a server. 1 byte = 8 +pixels, 1 page = 48KB (display resolution), headerless. Optimized for Range +requests without server-side logic:</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>int r0 = ((page_n - 1) * PAGE_SIZE); int rn = page_n * PAGE_SIZE - 1; @@ -68,8 +68,9 @@ esp_http_client_set_header(http_client, "Range", buf); esp_http_client_perform(http_client); </code></pre></div></div> -<p>Page buffer: Three pages (prev/current/next) in RAM—maximum possible. On -request: cycles buffer, updates screen, prefetches next page.</p> +<p>Three pages (prev/current/next) held in a buffer—maximum possible. Upon +request, embedded software cycles the buffer, updates the screen, prefetches +the next page.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>c_page_num++; pg.page_num = c_page_num + 2; @@ -82,12 +83,14 @@ epd_draw_async(pages[c_page_num % PAGE_LEN], PAGE_SIZE); epd_draw_await(); </code></pre></div></div> -<p>Responsiveness: inadequate. Scheduling GPIO, SPI, and HTTP tasks on a single -thread causes input lag. Pinned GPIO/SPI tasks to one core and the HTTP task to -the other.</p> +<p>System isn’t as responsive as I’d hoped. Scheduling GPIO, SPI, and HTTP tasks +on a single thread causes input lag. Pinned GPIO/SPI tasks to one core and the +HTTP task to the other.</p> -<p>Better, but screen updates block user input. Moved SPI buffers to DMA and made -transfers async. Few more cycles saved.</p> +<p>Better, but screen updates block user input.</p> + +<p>Moved the SPI buffers to DMA and made the transfers async. Few more cycles +saved.</p> <p>Can’t think of anything else.</p> |
