Skip to content

ScourgeNest/E-Book-Reader-OpenSource

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“– OpenBook - Open-Source E-Book Reader

Description

OpenBook is an open-source project aimed at developing an affordable and easily manufacturable e-book reader. This repository contains all the necessary hardware design files, including schematics, PCB layouts, 3D models, and manufacturing files.

Table of Contents

  1. πŸ“ Description
  2. πŸ“œ Table of Contents
  3. πŸ“‚ Repository Contents
  4. 🎯 Target Audience
  5. πŸš€ Project Overview & Features
  6. πŸ“Š E-Book Reader Diagram
  7. πŸ“¦ Bill of Materials (BOM)
  8. πŸ”§ Hardware Functionality Description
  9. πŸ”Œ Communication Interfaces
  10. ⚑ Components and Estimated Power Consumption
  11. βš™οΈ ESP32-C6 Pin Usage Breakdown
  12. πŸ› οΈ Implementation Steps
  13. πŸ”§ Finalizing the Project
  14. πŸ–ΌοΈ Images

Repository Contents

  • πŸ“‘ Schematic & PCB Design β†’ Circuit design files (.sch, .brd).
  • 🏭 Manufacturing Files β†’ Gerber files, Bill of Materials (BOM), Pick & Place files.
  • πŸ—οΈ 3D Model & Mechanical Design β†’ Full 3D assembly of the device, including PCB, battery, display, and casing.
  • πŸ“· Renders & Images β†’ Visual representations of the final device and PCB layout.
  • πŸ“œ Documentation β†’ Detailed explanation of hardware architecture, component connections, and design decisions.

Target Audience

This project is intended for hardware developers, electronics engineers, and open-source enthusiasts interested in PCB design, e-paper displays, and embedded systems.

Project Overview & Features

πŸ“Œ Project Goal

OpenBook aims to create an accessible and customizable open-source e-book reader that is affordable and easy to manufacture. By leveraging open hardware and software, we enable users to build and modify their own e-book readers while maintaining a low production cost.

πŸ”Ή Key Features

  • ESP32-C6 based – Low-power microcontroller with Wi-Fi & Bluetooth connectivity.
  • E-paper Display – Energy-efficient and easy on the eyes for long reading sessions.
  • Expandable Storage – Supports microSD cards for storing a large collection of e-books.
  • USB-C Charging – Modern and fast charging capability.
  • Open-Source Hardware – Complete design files available for customization.
  • Compact and Lightweight – Optimized design for portability and comfort.

πŸ”§ System Architecture

The OpenBook device consists of four main components:

  1. PCB & Electronics – The ESP32-C6 microcontroller, display driver, power management, and storage.
  2. E-paper Display Module – A low-power display for efficient reading.
  3. Enclosure & Mechanical Design – A 3D-printed or injection-molded case housing all components securely.
  4. Polymer Lithium-Ion Battery – A rechargeable battery providing power to the device.

E-Book Reader Diagram

E-Book Reader Diagram

Bill of Materials (BOM)

πŸ”© Component πŸ”— Link πŸ“„ Datasheet
ESP32-C6 WROOM-1-N8 SnapMagic Datasheet
ESP32C6 Varistor 1812 Mouser Datasheet
ESP32 WROVER 0805 Capacitor Mouser Datasheet
ESP32 WROVER BME680 Sensor SnapMagic Datasheet
ESP32 WROVER MCP73831 Power Management Mouser Datasheet
LED Chip 0603 SnapMagic Datasheet
SJ GrabCad Datasheet
LTSPICE Resistor 0402 Component Search Engine Datasheet
RCL CPOL 3528 SnapMagic Datasheet
112A-TAAR-R03 Comet Datasheet
Capacitor 0402 Component Search Engine Datasheet
744043680 IND Mouser Datasheet
BD5229G-TR Component Search Engine Datasheet
Custom Button Panasonic Datasheet
CPH3225A SnapMagic Datasheet
DS3231SN RTC SnapMagic Datasheet
FH34SRJ-24S-0.5SH Connector Component Search Engine Datasheet
MAX17048G+T10 Battery Fuel Gauge SnapMagic Datasheet
MBR0530 Schottky Diode SnapMagic Datasheet
PGB1010603MR Inductor SnapMagic Datasheet
QWIIC Connector Mouser Datasheet
USB4110-GF-A USB Hub Component Search Engine Datasheet
SI1308EDL-T1-GE3 MOSFET SnapMagic Datasheet
TPTP20R Comet Datasheet
USBLC6-2SC6Y USB Surge Protection SnapMagic Datasheet
W25Q512JVEIQ Flash Memory SnapMagic Datasheet
XC6220A331MR-G Voltage Regulator Component Search Engine Datasheet

Hardware Functionality Description

1. πŸ”‹ Battery:

  • Model: CELLEVIA BATTERIES LP584174
  • Specifications: 3.7V, 1800mAh
  • Functionality: Provides stable power for the entire device. The Li-Po battery is charged and monitored by a dedicated controller, ensuring longer battery life and protection against overcharging and deep discharge.

2. πŸ–₯️ E-Paper Display:

  • Model: 7.5” e-Paper V2
  • Revision: 2.0 (2019/06/28)
  • Functionality: The e-paper display allows for extremely low power consumption, making it ideal for long-term text reading. It is controlled via an SPI interface and powered by an LDO (Low Dropout Regulator).

3. 🧠 ESP32 C6:

  • Functionality: The main microcontroller of the device, responsible for managing all hardware functions and communication between internal components. It connects to the display, sensors, SD card, external flash, and other peripheral modules.

4. 🌍 Environmental Sensor BME688:

  • Interface: I2C
  • Functionality: Measures temperature, humidity, pressure, and air quality. It provides environmental information and can contribute to adjusting the device's behavior based on the surrounding conditions.

5. ⏰ RTC (Real-Time Clock) - DS3231SN:

  • Interface: I2C
  • Functionality: Keeps accurate time and date even when the device is turned off. It is essential for synchronizing any time-related activities (e.g., saving progress or scheduling device wake-up).

6. ⚑ Li-Po Charging Controller (MCP73831T):

  • Interface: USB-C
  • Functionality: This module regulates the charging of the Li-Po battery, ensuring protection against overcharging and deep discharge. It is powered through the USB-C connector, which enables fast charging.

7. πŸ’Ύ SD Card Module:

  • Interface: SPI
  • Functionality: Allows for the storage of files, including e-book documents, on an external SD card. This is essential for managing the reading files.

8. 🧠 External NOR Flash 64MB:

  • Interface: SPI
  • Functionality: Provides additional storage for the application files and device data.

9. πŸ› οΈ Test Pads and Qwiic/Stemma QT:

  • Functionality: Test pads are used for debugging and testing, while the Qwiic/Stemma QT connectors enable easy addition of new modules through I2C or SPI interfaces.

10. πŸ’‘ LDO Voltage Regulator:

  • Functionality: Ensures a constant voltage supply to all modules, protecting them from input voltage fluctuations.

Communication Interfaces

  • 🟒 GPIO: Used for managing physical buttons (e.g., reset button, power button).
  • πŸ”Œ USB-C: Enables battery charging and connection to a PC for data transfer.
  • πŸ”„ I2C: Used for communication with the πŸ›°οΈ BME688 sensor and ⏰ DS3231SN RTC module.
  • ⚑ SPI: Used to connect to the πŸ’Ύ SD card, πŸ“œ e-paper display, and πŸ”₯ external flash, enabling fast data transfer.

Components and Estimated Power Consumption

Now that we have detailed the components of the project, we can approximate the energy consumption based on typical values for each component.

πŸ”‹ Components and Estimated Power Consumption

1️⃣ Polymer Lithium-Ion Battery (CELLEVIA BATTERIES LP584174)

  • πŸ”‹ Voltage: 3.7V
  • ⚑ Capacity: 1800mAh
  • ⏳ Battery Life: Depends on total consumption, but with a capacity of 1800mAh, the battery could power the device for several hours.

2️⃣ ESP32 C6 (Main Processor)

  • The ESP32 C6 has variable power consumption depending on usage:

    • πŸ’€ Idle mode: ~0.1mA
    • πŸ“‘ Wi-Fi active: ~200mA
    • πŸ”΅ Bluetooth active: ~150mA
    • πŸš€ Max (under heavy load, e.g., during communication): ~350mA
  • ⚑ Assumed average consumption: 150mA

3️⃣ πŸ“œ 7.5” E-Paper Display

  • Typical consumption: 30-50mA during screen updates (very low power when idle).
  • Assuming updates happen a few times per hour, an average consumption of 40mA can be expected.

4️⃣ πŸ›°οΈ Environmental Sensor BME688

  • Typical consumption: 2-3mA during measurement.
  • We estimate 2mA for the BME688 sensor.

5️⃣ ⏰ RTC Module DS3231SN

  • Typical consumption: 1-2mA
  • Assuming an active mode, we estimate 2mA.

6️⃣ πŸ”„ Li-Po Battery Charging Controller (MCP73831T)

  • Power consumption: Minimal during charging, so it is negligible for this estimate.

7️⃣ πŸ’Ύ SD Card

  • Typical consumption: 10-15mA during data access.
  • We estimate 12mA for the SD card.

8️⃣ πŸ”₯ External NOR Flash (64MB)

  • Typical consumption: 20-30mA when reading data, lower in standby mode.
  • We estimate 25mA for active usage.

πŸ“Š Total Power Consumption Estimation (Typical Configuration)

Assuming the ESP32 is continuously active with Wi-Fi, the e-paper display updates every 10 seconds, and the BME688 sensor is continuously measuring.

βš™οΈ Component ⚑ Consumption (mA)
πŸ“‘ ESP32 C6 (Wi-Fi active) 200mA
πŸ“œ E-Paper Display (Updating) 40mA
πŸ›°οΈ BME688 Sensor (measuring) 2mA
⏰ RTC Module (active) 2mA
πŸ’Ύ SD Card (in use) 12mA
πŸ”₯ External NOR Flash 25mA

βœ… Total Consumption (Typical Use):

⚑ 200mA (ESP32) + 40mA (Display) + 2mA (BME688) + 2mA (RTC) + 12mA (SD Card) + 25mA (NOR Flash) = 281mA


⏳ Estimating Battery Life

Given that the battery has a capacity of 1800mAh, and assuming a typical consumption of 281mA, we can estimate the battery life:

πŸ“ Battery Life Calculation:
Battery Life = Battery Capacity / Average Consumption
Battery Life = 1800mAh / 281mA β‰ˆ 6.41 hours

πŸ“’ Conclusion

Under continuous usage (Wi-Fi active, periodic e-paper updates, and sensor readings), the estimated battery life is ~6.4 hours. However, real-world performance may vary due to:

  • πŸ”‹ Power-saving optimizations (e.g., deep sleep mode on ESP32)
  • πŸ”„ Lower update frequency for e-paper display
  • πŸ“‘ Disabling Wi-Fi/Bluetooth when not needed

For longer battery life, optimizing power consumption by using sleep modes, reducing display updates, and minimizing SD card writes will be crucial. πŸš€πŸ”‹

ESP32-C6 Pin Usage Breakdown

πŸ”‹ Power Connections

  • 3V3 (Pin 2 & Top Right) β†’ Provides 3.3V power to the ESP32-C6 and connected components.
  • GND (Bottom Right) β†’ Ground connection for the circuit.

πŸ”„ Boot and Reset Control

  • GPIO8 (Pin 15, IO/BOOT) β†’ Used for boot mode selection. Pulled down via a 10KΞ© resistor.
  • RESET (Pin 3) β†’ Manual reset pin.

πŸ”— SPI Interface (For E-Paper Display & Flash)

  • MISO (Pin 27) β†’ Master-In Slave-Out, used for reading data from peripherals like the E-Paper Display.
  • MOSI (Pin 10) β†’ Master-Out Slave-In, used for sending data to peripherals.
  • SCK (Pin 7) β†’ Serial Clock, used for synchronizing SPI communication.
  • SS_SD (Pin 4) β†’ Likely used as a chip select (CS) for an SD card or another SPI peripheral.
  • EPD_CS (Pin 11) β†’ Chip select for the E-Paper Display.
  • FLASH_CS (Pin 12) β†’ Chip select for external Flash memory.

πŸ–₯️ E-Paper Display Control Signals

  • EPD_BUSY (Pin 26) β†’ Indicates when the E-Paper Display is busy.
  • EPD_DC (Pin 5) β†’ Data/Command control for the E-Paper Display.
  • EPD_RST (Pin 21) β†’ Reset pin for the E-Paper Display.
  • EPD_3V3_C (Pin 19) β†’ Likely an enable pin for EPD power.

πŸ“‘ I2C Interface (For RTC and Sensors)

  • SDA (Pin 20) β†’ Data line for I2C communication.
  • SCL (Pin 21) β†’ Clock line for I2C communication.
  • I2C_PW (Pin 18) β†’ Likely a power enable signal for I2C devices.
  • INT_RTC (Pin 8) β†’ Interrupt signal from the RTC module.
  • RTC_RST (Pin 16) β†’ Reset line for the RTC module.

πŸ”Œ USB Communication

  • USB_D- (Pin 13) & USB_D+ (Pin 14) β†’ Differential data lines for USB communication.

πŸ“Ά Serial Communication (UART)

  • TX (Pin 25) β†’ UART transmit pin.
  • RX (Pin 24) β†’ UART receive pin.

βš™οΈ Other GPIO Assignments

  • IO_CHANGE (Pin 23) β†’ Might be used as an interrupt or status pin for external components.

πŸ› οΈ Why These Pins?

This pin selection follows these principles:

  • SPI pins (MISO, MOSI, SCK, CS) handle high-speed communication with the E-Paper Display and Flash.
  • I2C pins (SDA, SCL) facilitate low-speed communication with sensors (RTC & environmental sensor).
  • Dedicated control pins (EPD_BUSY, EPD_DC, etc.) ensure efficient E-Paper operation.
  • UART pins (TX, RX) enable debugging or external serial communication.

This setup ensures proper functionality and efficient communication between components. Let me know if you need clarifications! πŸš€

Implementation Steps

πŸ”§ Step 1: Component Placement and Schematic

The first step was to place the components on the PCB and connect them according to the provided schematic. This step was crucial to ensure that all the components were correctly positioned and interconnected.

πŸ“ Step 2: PCB Layout and Compatibility with Case

Once the components were placed, the second step was to arrange them on the PCB layout to fit the given casing. I made sure that the connectors and pins aligned properly with the case's openings for ports and buttons.

πŸ”Œ Step 3: Routing the Connections

The third step involved routing the connections between the components (wires), where I encountered my first challenge. Due to suboptimal component placement, I had to route some power lines using vias, which were also routed on the bottom layer of the PCB. Additionally, I used a relatively large number of vias. However, as an engineer, I recognized that things don't need to be perfect, so I moved forward with the process, compensating with extra attention to detail in later steps.

πŸ–₯️ Step 4: 3D Models for Each Component

With the electrical schematic and PCB layout complete, the next step was to import and attach 3D models for each component. I sourced the models from various platforms, such as SnapMagic, Mouser, Comet, Component Search Engine, etc. These models helped visualize how the components would fit together in the final product.

πŸ”‹ Step 5: Battery and Display 3D Design

At this point, I used the datasheet for the Polymer Lithium-Ion Battery (CELLEVIA BATTERIES LP584174) to create its 3D model for the PCB. Similarly, I applied the same process for the 7.5-inch e-Paper V2 display, ensuring both components were accurately represented in the 3D design.

πŸ—οΈ Step 6: Final Design Assembly

With the 3D PCB design complete, along with all components in place, I moved on to assembling the full design of the E-Book Reader. This included the PCB, battery, display, and casing, resulting in the final product design.

Finalizing the Project

To complete the entire project, I had to add the following files:

πŸ› οΈ Hardware

  • πŸ“œ Schematic File (.sch) - The electronic circuit diagram.
  • πŸ“ Board File (.brd) - The PCB layout with routed connections.

🏭 Manufacturing

  • πŸ“‚ Gerbers.zip - Files for PCB fabrication.
  • πŸ“‹ Bill of Materials File (.csv) - List of components used.
  • πŸ“Œ Pick and Place File (.csv) - Component placement data for assembly.

🎨 Mechanical

  • πŸ“Ž 3D File of the Complete Device (.step) - Exploded view of the full assembly.
  • πŸ–ŒοΈ 3D Fusion360 File - Editable 3D model of the device.

πŸ–ΌοΈ Images

  • πŸ“Έ Rendered Images - High-quality visuals of the PCB and device.

πŸ“„ Additional Files

  • πŸ“ LICENSE - GNU GENERAL PUBLIC LICENSE 2007.
  • πŸ“– README.md - Project documentation and implementation steps.

Images

🎯 Final Product

Final Product
Final Product

About

OpenBook is an open-source project aimed at developing an affordable and easily manufacturable e-book reader. This repository contains all the necessary hardware design files, including schematics, PCB layouts, 3D models, and manufacturing files.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors