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.
- π Description
- π Table of Contents
- π Repository Contents
- π― Target Audience
- π Project Overview & Features
- π E-Book Reader Diagram
- π¦ Bill of Materials (BOM)
- π§ Hardware Functionality Description
- π Communication Interfaces
- β‘ Components and Estimated Power Consumption
- βοΈ ESP32-C6 Pin Usage Breakdown
- π οΈ Implementation Steps
- π§ Finalizing the Project
- πΌοΈ Images
- π‘ 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.
This project is intended for hardware developers, electronics engineers, and open-source enthusiasts interested in PCB design, e-paper displays, and embedded systems.
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.
- 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.
The OpenBook device consists of four main components:
- PCB & Electronics β The ESP32-C6 microcontroller, display driver, power management, and storage.
- E-paper Display Module β A low-power display for efficient reading.
- Enclosure & Mechanical Design β A 3D-printed or injection-molded case housing all components securely.
- Polymer Lithium-Ion Battery β A rechargeable battery providing power to the device.
| π© 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 |
- 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.
- 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).
- 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.
- 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.
- 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).
- 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.
- 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.
- Interface: SPI
- Functionality: Provides additional storage for the application files and device data.
- 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.
- Functionality: Ensures a constant voltage supply to all modules, protecting them from input voltage fluctuations.
- π’ 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.
Now that we have detailed the components of the project, we can approximate the energy consumption based on typical values for each component.
- π 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.
-
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
- 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.
- Typical consumption: 2-3mA during measurement.
- We estimate 2mA for the BME688 sensor.
- Typical consumption: 1-2mA
- Assuming an active mode, we estimate 2mA.
- Power consumption: Minimal during charging, so it is negligible for this estimate.
- Typical consumption: 10-15mA during data access.
- We estimate 12mA for the SD card.
- Typical consumption: 20-30mA when reading data, lower in standby mode.
- We estimate 25mA for active usage.
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 |
β‘ 200mA (ESP32) + 40mA (Display) + 2mA (BME688) + 2mA (RTC) + 12mA (SD Card) + 25mA (NOR Flash) = 281mA
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
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. ππ
- 3V3 (Pin 2 & Top Right) β Provides 3.3V power to the ESP32-C6 and connected components.
- GND (Bottom Right) β Ground connection for the circuit.
- GPIO8 (Pin 15, IO/BOOT) β Used for boot mode selection. Pulled down via a 10KΞ© resistor.
- RESET (Pin 3) β Manual reset pin.
- 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.
- 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.
- 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_D- (Pin 13) & USB_D+ (Pin 14) β Differential data lines for USB communication.
- TX (Pin 25) β UART transmit pin.
- RX (Pin 24) β UART receive pin.
- IO_CHANGE (Pin 23) β Might be used as an interrupt or status pin for external components.
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! π
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.
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.
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.
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.
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.
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.
To complete the entire project, I had to add the following files:
- π Schematic File (.sch) - The electronic circuit diagram.
- π Board File (.brd) - The PCB layout with routed connections.
- π 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.
- π 3D File of the Complete Device (.step) - Exploded view of the full assembly.
- ποΈ 3D Fusion360 File - Editable 3D model of the device.
- πΈ Rendered Images - High-quality visuals of the PCB and device.
- π LICENSE - GNU GENERAL PUBLIC LICENSE 2007.
- π README.md - Project documentation and implementation steps.


