Skip to content

1.5.0.22-dev1-cpr-vcodex-steroids

Choose a tag to compare

@marcoand75 marcoand75 released this 23 Aug 12:45
· 26 commits to master since this release

πŸš€ CPR-vCodex Steroids β€” Upstream Alignment + Status Bar Enhancements

This release consolidates the full upstream 1.5.0.20–1.5.0.22 alignment into Steroids, plus expands the status bar time display with two new reading-time modes.

πŸ“Š Status Bar Time-Left: 2 New Modes (5 total)

The reader status bar now offers 5 options instead of 3 for what to display:

Mode Shows What it means
Hide β€” Nothing (as before)
Chapter Est. time to finish the chapter Per-book pace from page turns (as before)
Book Est. time to finish the book Per-book pace + progress extrapolation (as before)
πŸ†• Session Duration Time read since you opened this book Resets every time you open/close a book. Shows how long you've been reading this session.
πŸ†• Today Total Total time read today Sum of all reading today across all books, including the current session.

The label in settings was renamed from "Time Left" β†’ "Display Time" (EN) / "Tempo rimanente" β†’ "Tempo visualizzato" (IT) since it now also shows elapsed time, not just remaining estimates.

How it works (simplified):

  • Session Duration uses the internal reading session timer β€” it starts counting when you open a book and resets when you close it.
  • Today Total reads from the existing daily summary file (summary.json), which already tracks everything you've read today. It includes the current session automatically β€” no double counting.

Settings β†’ Customize Status Bar β†’ Display Time β†’ cycle through all 5 options. Also configurable from the web interface (/steroids-settings page).


πŸ› οΈ What Was Ported from Upstream 1.5.0.20–1.5.0.22

All deferred items from the previous alignment are now resolved:

πŸ“Ÿ HAL Crash Detection

  • Ported the panic capture mechanism (PANIC_CAPTURE_MAGIC) that distinguishes genuine crashes (watchdog resets with the magic marker set) from normal deep-sleep wake cycles. False-positive crash reports after sleep are now suppressed.
  • CrashActivity no longer redundantly clears the panic marker β€” the HAL handles it automatically after verifying the capture was written completely.

πŸ“š SdCardFont Fragmentation-Resistant Storage (1.5.0.20)

The single biggest technical port β€” 16 files changed, 800+ lines. The font system no longer allocates one large contiguous buffer for glyphs. Instead:

  • 4 KiB chunked storage (24 chunks Γ— 4 KiB = 96 KiB virtual space) β€” each chunk allocated independently, so only one 4 KiB contiguous block is needed at a time instead of a large buffer. Eliminates render failures caused by heap fragmentation on the 380 KB ESP32-C3.
  • CJK fallback font resolution β€” new hasCodepoint() + coverageHandler on font families automatically picks a font that can render Chinese/Japanese/Korean characters.
  • TextGetter prewarm β€” pre-warms font data before rendering without re-allocating.
  • FrameBufferLoan β€” loans the framebuffer during EPUB section builds, giving the inflate stream a guaranteed ~43 KB contiguous window. Prevents "Failed to init inflate stream" errors.
  • FontDecompressor refactor β€” raw uint8_t* + realloc instead of std::vector, removing lazy-init complexity.

πŸ–ΌοΈ Grayscale Image Pipeline (Steroids-specific, unchanged)

  • Shared gamma LUT (1.5) + empiric thresholds (50/120/200) + error-diffusion dithering. Already in place.

πŸ”Œ Web Server Serial + FirmwareFlasher Chip Validation

  • Web server serial number endpoint and FirmwareFlasher now validate the chip target before flashing. Ported from upstream.

🏠 Carousel Recents Panel Fix

  • The "Carousel Recents (N)" panel was appearing in the wrong theme. Fixed the guard so it only shows in Lyra Marcoand75, not Lyra Carousel.
  • App icon menu slots increased from 5 β†’ 7 (matching Marcoand75).
  • Recent books count increased from 3 β†’ 20 (clamped to 10 by the home activity).

πŸ“¦ Files Changed

Area Files
Status bar time-left CrossPointSettings.h, ReadingStatsStore.h/.cpp, EpubReaderActivity.cpp, StatusBarSettingsActivity.cpp, SettingsList.cpp, CrossPointWebServer.cpp, I18nKeys.h, english.yaml, italian.yaml
HAL crash detection lib/hal/HalSystem.cpp, CrashActivity.cpp
SdCardFont (font system) SdCardFont.h/.cpp, SdCardFontManager.h/.cpp, EpdFont.h/.cpp, EpdfFamily.h/.cpp, EpdFontData.h, FontDecompressor.h/.cpp, GfxRenderer.h/.cpp, FontCacheManager.h/.cpp, main.cpp
Carousel fix HomeActivity.cpp, LyraCarouselTheme.h/.cpp
FirmwareFlasher FirmwareFlasher.cpp/.h
Docs STEROIDS-ADDICTIONS.md, STEROIDS-ALIGN-TO-UPSTREAM.md, README.md, CHANGELOG.md

πŸ“‹ Build Verification

  • RAM: 16.0% (52,276 / 327,680 bytes)
  • Flash: 98.5% (6,456,613 / 6,553,600 bytes)
  • Warnings: 0

πŸ“ Full Commit List (14 commits)