Skip to content

v2.11.0 - Low Memory Mode Support

Pre-release
Pre-release

Choose a tag to compare

@BitMaker-hub BitMaker-hub released this 16 Dec 20:10
· 147 commits to master since this release
feat: Add simple framebuffer display for low memory mode (no LVGL)

MASSIVE memory savings for devices without PSRAM by eliminating LVGL entirely
when not needed.

Memory savings:
- LVGL heap: ~50-60KB
- LVGL task stack: ~8KB
- LVGL display buffers: ~10-20KB
- Total saved: ~70-80KB (from ~243KB total RAM = 30%+ savings!)

New implementation:
- Simple 1-bit framebuffer: only 1KB for 128×64 display
- Direct drawing with embedded 6×8 ASCII font
- No external dependencies (no LVGL, no OpenFontRender)
- Direct esp_lcd_panel_draw_bitmap() updates

Files added:
- display_simple.h/c: Framebuffer-based display with basic text rendering
- Embedded 6×8 font (characters 32-126) in display_simple.c

Modified:
- display.c: Detects PSRAM availability and uses simple mode when unavailable
- display.h: Added display_is_simple_mode() and display_simple_show_text()
- CMakeLists.txt: Added display_simple.c to build

When PSRAM is not available:
- Skip lvgl_port_init() completely
- Use simple_display_init() with 1KB framebuffer
- Display shows "BITAXE LOW MEMORY MODE" on startup
- Can show 4 lines of text (8 pixels per line)

This should FINALLY fix the heap corruption crashes by freeing up massive
amounts of RAM and reducing fragmentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>