Close
0%
0%

FlickBook

Your own fully-featured eBook reader using an InkPlate 6 Flick dev-board. With EPUB parsing, gesture navigation, battery-powered & more...

Similar projects worth following
The goal of this project is to create a truly open and customizable eBook reader that rivals commercial devices while remaining completely hackable and modifiable. Unlike proprietary e-readers that lock you into specific ecosystems, this DIY solution gives you complete control over your digital library and reading experience. Key motivations: - Full control over your eBook collection without DRM restrictions - Native EPUB support without requiring conversion to other formats - Touch-based navigation with intuitive gestures - Weeks of battery life through efficient e-paper technology - Expandable functionality through open-source codebase - Utilizing Arduino ESP32 Library - Great platform to learn about E-Ink displays and ESP32 For more information, follow, visit and star the github page: https://github.com/spirosbond/FlickBook

Key Features Showcase

Current Capabilities

  • Native EPUB parsing - No conversion required, reads .epub files directly
  • Full gesture navigation - Swipe left/right for pages, up/down for chapters
  • Complete library management - Browse, select, and organize your book collection
  • SD card storage - Load books via microSD card for massive storage capacity
  • Adjustable backlight - 64 levels of brightness control for any lighting condition
  • Progress tracking - Automatically saves your reading position
  • Multiple font options - Choose from serif, sans-serif fonts in various sizes (only adjustable from code currently)
  • Image rendering - Display book covers, illustrations, and diagrams natively
  • Automatic pagination - Smart text flow with chapter detection
  • Partial screen refresh - Fast page turns with minimal full screen flicker
  • Battery monitoring - Real-time battery level display
  • Battery charging - Built in charging capability
  • Automatic EPUB indexing - Fast navigation and page caching
  • 3-D Printable Case - Case designed and provided for free from Inkplate

Performance Highlights

  • Battery life: Over 1 week of continuous use
  • Display: 6" e-paper with 1024×758 pixel resolution
  • Refresh rate: Under 1 second for page turns
  • Storage: Virtually unlimited via microSD cards
  • Icons: Support for Icon rendering for enhanced UI experience
  • Language support: English characters (with plans for expansion)

Images and Videos Section

Hardware Overview:

  • InkPlate 6 Flick board with e-paper display
  • SD card slot and battery connection
  • Touch-responsive screen surface
  • More info at Inkplate Docs

Software Interface:

  • Main library browser showing book collection
  • Reading interface with text and image rendering
  • Settings menu with backlight controls and other features
  • Progress tracking and chapter navigation

Video Demos:

Components List

Core Hardware

  • InkPlate 6 Flick Development Board - Main processing unit with ESP32 and 6" e-paper display
  • MicroSD Card - For book storage (32GB+ recommended)
  • Lithium Battery - 3.7V LiPo battery for portable operation
  • USB-C Cable - For charging and programming

Optional Accessories

  • 3D Printed Case - Protective enclosure (STL files can be created)
  • MicroSD Card Reader - For transferring books from computer

Development Tools

  • Arduino IDE - Primary development environment
  • USB-C Cable - For code upload and debugging

Future Development Roadmap

Software Improvements Ideas

  • WiFi connectivity - Over-the-air library management and book upload
  • Enhanced user settings - More customization options
  • Reading statistics - Track reading speed, time spent, books completed
  • Note-taking system - Highlight text and add personal annotations
  • Hyperlink support - Chapter-to-chapter navigation within books
  • Multi-language support - Unicode character handling for international texts
  • Advanced search - Full-text search within books and library

Hardware Improvement Ideas

  • Custom PCB design for even smaller form factor
  • Solar charging integration for indefinite battery life
  • Improved case design with better ergonomics

Credits and Acknowledgments

External Libraries and Partners

  • Soldered Electronics - For the excellent InkPlate 6 Flick hardware platform and Arduino library support
  • TinyXML2 by Lee Thomason - Lightweight XML parsing library enabling EPUB file processing
  • Arduino Community - For the development environment and extensive documentation
  • Espressif - ESP32 microcontroller and development frameworks

Development Tools

  • Arduino IDE - Primary development environment
  • InkPlate Arduino SDK - Hardware abstraction and display drivers

Hardware Reference

This project is built upon the InkPlate 6 Flick reference design and documentation provided by Soldered Electronics. Their open-hardware approach made this project possible.

Community Contributions

Special thanks to the open-source...

Read more »

  • 1
    Getting Started - Build Your Own

    Prerequisites

    1. Install Arduino IDE (latest version recommended)
    2. Add InkPlate Board Support:
    3. Install Required Libraries:
      • Inkplate Arduino Library (via Library Manager)
      • TinyXML2 Library (for EPUB parsing)
      • ArduinoJson Library (for metadata handling)
      • unzipLIB Library (for handling .zip and epub files)

    Hardware Setup

    1. Prepare the InkPlate 6 Flick:
      • Connect lithium battery (if using battery power)
      • Insert microSD card with EPUB files
      • Connect USB-C for initial programming
    2. Load Books:
      • Copy the contents of the sdcard/ folder to the root of the microSD card
      • Copy .epub files to a folder called "books" in the root directory of your microSD card
      • Organize in folders if desired (library will scan recursively)

    Software Installation

    1. Download the Source Code:
      • Clone or download the project repository
      • Open ebook_reader.ino in Arduino IDE
    2. Configure Board Settings:
      • Select "Inkplate 6(ESP32)" from Tools → Board
      • Choose appropriate COM port
      • Set upload speed to 921600 baud
    3. Compile and Upload:
      • Click Upload to flash firmware to device
      • Monitor serial output for debugging info

    First Boot

    1. Power on the device - you should see loading screen
    2. Main library will display available books from SD card
    3. Touch a book title to begin reading
    4. Use gestures to navigate:
      • Swipe right: Next page
      • Swipe left: Previous page
      • Swipe down: Next section
      • Swipe up: Previous section
      • Tap menu area: Access settings

    Customization Options

    • Add/Modify font sizes and families in UIManager.cpp
    • Adjust gesture sensitivity in touch handling code
    • Add new features by extending the existing modules

View all instructions

Enjoy this project?

Share

Discussions

Does this project spark your interest?

Become a member to follow this project and never miss any updates