Skip to content

Releases: diogo7dias/lector

Lector lector-0.28.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 22:55

Fixed

  • Another firmware flashed from the SD card now stays flashed. Picking a stock or CrossInk .bin, from Settings > System > SD Card Firmware Update or from recovery mode, ran the whole progress bar and then came back to Lector on the next boot, over and over. The record that tells the bootloader which slot to start asked it to keep an eye on the new image and undo the switch unless that image reported itself healthy. Lector reports that automatically; other firmware does not, so it was quietly rolled back every time. The switch is now final. Everything that guarded the flash before still guards it: the file's header, chip id, segment table, checksum and SHA256 are all verified before a byte is written, and a bad file is refused before the boot record is touched.
  • Locking the reader no longer loses the last lines of the log. The serial buffer was cut off mid-sentence on the way into sleep.
  • A missing /sleep.pxc is not an error. Having no sleep image is a choice, and it is no longer reported as a failure.

Changed

  • The sleep path is measured now. Each stage of locking the device, saving state, painting the sleep screen, the Quick Resume frame, Wi-Fi teardown, powering down the panel, is timed and written beside the refreshes that paid for it, and the previous wake's split is logged too. Turn it on with Settings > System > Performance timings.
  • Wallpaper picking got a little quicker on the way into sleep: the chosen file is looked up once instead of twice.

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Lector lector-0.27.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 00:33

Fixed

  • Font downloads complete. A font file arrives over TLS from a server that sends 16 KB records, and wolfSSL needs a receive buffer that size for the whole session. With Wi-Fi up the download started with about 43000 bytes free and ran out a few kilobytes short, every time. It now borrows the framebuffer for the length of the transfer, the same way the chapter builder already does, so the buffer costs the heap nothing. The progress bar holds still while a file is in flight; that is the price of the file arriving at all.
  • The font list no longer eats 29 KB it never gives back. Reading the manifest left the screen with 18608 bytes free, which is where the download died. It now has 41216.
  • A retry that carries bytes counts as progress. A transfer that stopped part way used to spend its five attempts and give up even while it was moving forward, and a partial was thrown away whenever the server answered a resumed request with the whole file.
  • OPDS says when the server refused the login. A feed that came back 401 reported "Failed to fetch feed", which reads as a connection problem. It now says "Wrong username or password". The built-in catalog entry ships with no credentials, so it needs yours before it will answer.

Added

  • Share Wi-Fi and OPDS credentials with another reader. Settings > System > Share WiFi and OPDS sends this device's saved networks and catalog logins to another Lector over the Nearby radio, so a second device does not have to be typed in from scratch. Receive it from File Transfer > Nearby Reader, as for a file. The bundle carries passwords in the clear over an unencrypted radio and is deleted at both ends as soon as it is done; both devices ask first.
  • "Pages to Paragraph" status bar item. Shows >P.0 on most pages, meaning the paragraph you are in ends before the next one starts. >P.2 means it runs two more pages.
  • "Never" is back as a Refresh Frequency. It turns off the page-counted refresh only. The reader still cleans the panel when enough ink has moved to need it, so a long session does not end up smeared.

Changed

  • The Caret selection style lost its underline and now sits beside the row's first line of text, so a row that wraps is marked where reading starts. Brackets are a little finer.
  • The status bar's progress bar reaches the edge of the screen when it is not floating, instead of stopping short of the bezel.

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Lector lector-0.26.6

Choose a tag to compare

@github-actions github-actions released this 23 Aug 01:10

Fixed

  • Locking with a wallpaper no longer ghosts the page underneath on the X3. The reader ran a full-screen clean immediately before painting the sleep face, which leaves the panel in a charge state the grayscale waveform that follows is not calibrated for. The clean is gone, which is how CrossPoint has always done it. Only the grayscale sleep faces were affected; the crest face was always clean.

Changed

  • "Entering sleep" now appears for every sleep face, wallpapers included. It used to be skipped there because the clean was about to wipe it, and a wallpaper lock is the slowest one, so it is the one that most wants a progress note.

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Lector lector-0.26.5

Choose a tag to compare

@github-actions github-actions released this 22 Aug 23:33

Added

  • Settings is one long list. Display, Reader, Controls and System run together in that order, headings kept. Stepping walks the rows as before; holding a step button now jumps to the first row of the next or previous section, which is what the tab strip used to be for. Holding backward is sticky: it snaps to the current section's first row before moving up. Back leaves Settings from any row.
  • The in-book menu can open on its Sleep Screen tab, a fifth choice in Book Menu Opens On. When the lock screen has no wallpaper on the card the tab does not exist, and the menu opens on Navigate instead.

Fixed

  • A firmware update survives a dropped connection. One drop anywhere in the 5 MB image used to fail the whole update. It now makes up to three attempts and each one carries on from where the last stopped, costing the remaining bytes rather than all of them.
  • The reader no longer offers to forget a network every time a connection fails. A connection drops for reasons that have nothing to do with the password. Forget is still there, on Left on a saved network in the list.
  • Connecting is steadier, worst on the X4. The reader was erasing the stored network and powering the radio down before every attempt, which makes some routers fail the handshake that follows.
  • Downloads hold the radio at full power for their duration, instead of letting it park between beacons and lose packets a weak link then has to resend. Font downloads, the update check, OPDS and sync all get this; only firmware installs had it before.
  • A section jump opens the section at its heading, instead of leaving the arrived-at row against the top or bottom edge with its heading off screen.
  • A failed Wi-Fi connection says why in the logs, naming the router's own reason rather than reporting a bare timeout.

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Lector lector-0.26.4

Choose a tag to compare

@github-actions github-actions released this 22 Aug 20:29

Added

  • The selection highlight has a style. Display offers Solid (the old filled black row, still the default), Brackets (corner marks around a row's own label and value) and Caret (an arrow and a rule). It applies to every menu, list, popup and tab.
  • One margin for all four sides is back. Link Top/Bottom becomes Link Margins: Off keeps Top Margin and Bottom Margin apart, Top+Bottom gives one Vertical Margin, All Sides puts a single number on every side. All Sides turns Dynamic Margins off and stops offering it, because Dynamic Margins works out a horizontal margin of its own. New devices start on All Sides at 20; existing settings and presets keep the margins and link they had, including anyone still on the old Uniform Margins switch.
  • Nine font sizes on SD families, and five more families. Every downloadable family now ships point sizes 10 through 18 instead of 12/14/16/18 (OpenDyslexic runs 8 through 16, its glyphs being larger per point). New: ChareInk, XCharter, Newsreader, LexendDeca, AnonymousPro.
  • Tables with merged cells lay out correctly. A row holding a colspan or rowspan cell flows stacked and full width, a rowspan carries down the rows beneath it, and text alignment set on the table, row, body, head, foot, column group or caption now reaches the cell text.

Fixed

  • Sleep screens no longer ghost on the X3. The panel's BUSY idle wait, dropped by the 0.26.3 stock-driver revert, is back; the timing tuning stays out.
  • No white band above the status bar on the X3. Bezel insets come from the board profile instead of the X4's measurements.
  • The Continue Reading cover no longer fills solid black once the selector moves off it, and it is marked once rather than three times.
  • The nearby peer list, the OPDS browser and the XTC chapter list follow the selection style like every other list.
  • Favoriting a wallpaper from the image viewer shows up in the file browser. The row asked the queue using its display label, and a failed open could leave a doubled slash in the path, so neither the progress file nor the queue answered.
  • Chapters ending with stray data after </html> parse again.

Note

  • Cached page layout is rebuilt on first open of each book, because table cells now place differently.

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Lector lector-0.26.3

Choose a tag to compare

@github-actions github-actions released this 22 Aug 08:54

Added

  • Text Settings is one long list with a true-page preview, instead of tabs and pop-up sliders.
  • Embedded Style is now two switches. Embedded Text Style keeps the book's fonts and emphasis; Embedded Layout Style keeps its margins, indents and spacing. Either can go without the other.
  • Installed fonts can be managed offline, and a whole font family can be sent to another reader nearby.

Fixed

  • Your per-book settings and reading presets survive this update. The Embedded Style split changed the shape of the per-book file without saying so; every book's own settings would have been lost on first open.
  • Chapters that go nowhere are gone from the table of contents, and picking a chapter no longer does nothing.
  • Books whose contents point at files through a different folder index quickly instead of stalling.
  • Reset Reader Settings restores your real global settings, not the shipped defaults.
  • Queued favorites appear in the file browser, and row paths no longer carry a doubled slash.
  • A stray reader nearby can no longer break a font family transfer, and an offer is answered only to the device that sent it.
  • The settings file is no longer rewritten on every press while a value is held.
  • Bar outlines stay inside their own bounds.
  • The X3 panel runs on stock timing again, like every sibling firmware.

Changed

  • Text Settings can no longer be bound to a gesture or put in the pop-up. A binding that pointed at it reads as Disabled; pick another action.

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Lector lector-0.26.2

Choose a tag to compare

@github-actions github-actions released this 21 Aug 20:11

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Full Changelog: lector-0.26.1...lector-0.26.2

Lector lector-0.26.1

Choose a tag to compare

@github-actions github-actions released this 21 Aug 18:59

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Full Changelog: lector-0.26.0...lector-0.26.1

Lector lector-0.26.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 15:56

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Full Changelog: lector.exp.53...lector-0.26.0

Lector lector.exp.53

Lector lector.exp.53 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 15:23

Easiest install: use the browser flasher (Chrome/Edge, USB cable). One build serves both Xteink X3 and X4.

Update from the SD card: download firmware.bin, copy it to the SD card, then on the device open Settings and choose SD Card Firmware Update.

Manual flash (esptool):

esptool.py --chip esp32c3 write_flash \
  0x0 bootloader.bin \
  0x8000 partitions.bin \
  0xE000 boot_app0.bin \
  0x10000 firmware.bin

firmware.elf is for symbolizing crash reports, not for flashing.


Full Changelog: lector.exp.52...lector.exp.53