Skip to content

v1.0.2

Choose a tag to compare

@stanelie stanelie released this 05 Sep 19:32
· 10 commits to main since this release

Bug fix release for the Badger, E213 and E290 reader: broken EPUB
chapter order, and a battery-only reboot hang after converting one.

Fixed:

  • EPUB conversion sorted Calibre's multi-part chapter fragments by
    fragment index alone, ignoring which chapter they belonged to - any
    book with more than one multi-fragment chapter (very common) came
    out with every chapter's opening bunched together, followed by every
    chapter's body, instead of each chapter's pieces staying together.
    Now reads the EPUB's own spine (its authoritative reading order)
    instead of guessing from filenames.
  • A crash the above fix introduced on real hardware only: a chapter
    decompressed through the pure-Python fallback inflater comes back
    bytearray-backed, and a bytearray isn't hashable - using one as a
    dict key raised unsupported type for __hash__. Invisible on a
    host-only test, since CPython's zlib always returns bytes.
  • Battery-only EPUB conversions (the only way the E213/E290 converter
    runs at all) reliably hung after converting and needed a manual
    reset. The post-conversion restart was choosing a soft reload
    whenever off USB, for every board - a rule that exists only to
    protect the Badger's power latch. The E213/E290 have no such latch,
    so they're switched to the hard reset that already worked over USB.
  • "Restarting to make room..." reworded to "Please wait..." on the
    conversion screen.

Included: badger-1.0.2.zip, a precompiled, ready-to-copy Badger
2040 build (see README.txt inside for install instructions, or
tools/build_badger_release.py to build your own).

The E213/E290 firmware images from v1.0.0 are unaffected (these are
CircuitPython source-level fixes, not firmware changes) - use v1.0.0's
assets for those.