Skip to main content

How to Build a Budget DIY E-Reader with an ESP32-S3 and E-Ink Display

E-readers are popular because of their paper-like displays and excellent battery life. However, many commercial devices are tied to proprietary ecosystems and may include advertisements, subscriptions, or other restrictions.

This project takes a different approach. In this guide, you will learn how to build your own DIY, budget-friendly e-reader using an ESP32-S3 microcontroller and a 4.2-inch E-Ink display. The device uses a rechargeable battery, stores books on a microSD card, and includes physical navigation buttons.

The complete estimated hardware cost is approximately ₹4,525 making it possible to build the entire device for under ₹5,000.



What This DIY E-Reader Can Do

Once completed, the e-reader can:

  • Display e-books on a 4.2-inch E-Ink screen
  • Store e-books on a microSD card
  • Use physical buttons for navigation
  • Show battery information
  • Download, upload and delete files on microSD card through Wi-Fi File Transfer mode
  • Receive firmware updates wirelessly through OTA Code Update
  • Operate without advertisements or subscriptions

Components Required

You will need the following main components:

Electronics

  • ESP32-S3 WROOM-1-N16R8 microcontroller board (Qty-1)
  • Waveshare 4.2-inch E-Ink display module with SPI interface (Qty-1) 
  • 9 × 15 cm single-sided universal PCB prototype board with 2.54 mm hole pitch (Qty-1) 
  • 3.7 V rechargeable lithium-polymer battery (Qty-1)
  • TP4056 lithium battery charging module (Qty-1)
  • Mini DC-DC boost converter module (Qty-1)
  • USB Type-C male connector (Qty-1)
  • Self-locking push-button power switch (Qty-1)
  • Tactile push-button switches (Qty-3)
  • 100 kΞ© resistors (Qty-2)
  • 2.54 mm 1x40 male header pin (Qty-1)
  • 2.54 mm 1x40 female header pin (Qty-2)
  • microSD card (Qty-1)

Wiring and Mechanical Parts

  • 30 AWG solid-core wire
  • 22 AWG stranded copper wire
  • M3 × 30 mm male-to-female nylon hex spacers
  • White PVC or acrylic sheets for the enclosure

Other Materials and Tools

  • Clear tape
  • Double-sided tape
  • Hot glue
  • Superglue
  • Small screws
  • Soldering iron 
  • Heavy duty duct tape

Step-by-Step Construction Guide

Step 1: Prepare the Enclosure

The e-reader uses a simple rectangular box-shaped enclosure measuring: 12.5 cm × 9.5 cm × 2.8 cm.

You can make the enclosure from white PVC or acrylic sheets.



Step 2: Cut the Prototype Board

The prototype board acts as the main motherboard for the project.

Start with a 9 × 15 cm single-sided prototype PCB and trim it lengthwise to 12 cm so that it fits inside the enclosure. Then, make three holes in the prototype board.


Step 3: Create a Removable ESP32-S3 Socket

Instead of soldering the ESP32-S3 permanently to the prototype board, use female header strips to create a removable socket.

Instructions:

  1. Take two 40-pin female header strips.
  2. Break each strip at the 23rd pin.
  3. This creates two 22-pin sections suitable for the two sides of the ESP32-S3 board.
  4. Position the microcontroller on the prototype board so that one row of its pins is aligned with the top row of holes on prototype board. Make sure the black antenna of microcontroller is facing to the left. Also, position the microcontroller as close to the center of the prototype board as possible.
  5. Mark the locations of its pins.
  6. Apply a small amount of hot glue to the marked positions.
  7. Position the two newly created 22-pin female header strips over the marked locations.
  8. Press the plastic housings of the female strips into the hot glue.
  9. Allow the glue to cool.
  10. Solder the exposed metal pins on the opposite side of the prototype board to the copper pads.
  11. Insert the ESP32-S3 into the completed socket.

The removable design allows the microcontroller to be replaced or upgraded more easily in the future.


Step 4: Install Additional Connectors

Use the remaining pieces of the female header strips to create connectors for other parts of the project.

Cut the following:

  • One 8-pin section
  • One 4-pin section

Next, cut matching 8-pin and 4-pin sections from a long male header strip. Solder the female headers onto the prototype board and insert the matching male pins. Using these connectors makes the assembly easier to maintain and disconnect when necessary.


Step 5: Prepare the Navigation Button Supports

The physical navigation buttons are mounted on nylon hex spacers.

Instructions:

  1. Gently heat the screws in the nylon hex spacers with a cigarette lighter until the surrounding nylon softens enough for the screws to be removed easily.
  2. Carefully remove the hot screws using pliers. Repeat this process to get two more hex spacers without their screws.
  3. Trim the nylon hex spacers to the required length. Trim each spacer from the end without the screw insert.
  4. Required spacer length = Total spacer length − PVC sheet thickness − tactile push-button body height.
  5. Insert screws into all the small holes in the enclosure. Additional screws can be obtained from other hex spacers by following Step 1.
  6. Next, place the prototype board over the screws and mark the positions of the three screws for which holes have not yet been made in the prototype board. Make holes at the marked positions using the tip of a knife. The screws should then pass easily through all the holes in the prototype board, allowing the board to be properly positioned inside the enclosure. To secure the prototype board, screw the female inserts supplied with the E-Ink display onto the four corner screws.
  7. Mount the hex spacers onto the base of the enclosure using the same screws removed earlier. To do this, insert the three screws through the three closely spaced holes in the bottom surface of the enclosure.
  8. Secure the hex spacers by screwing their threaded ends onto the screws inserted through the enclosure.
  9. Finally, use superglue to attach a tactile push-button switch to the top of each spacer.
Safety Note: The screws will be extremely hot after heating. Handle them carefully using suitable tools.

Step 6: Install the Battery

Attach the 3.7V lithium-polymer battery to the prototype board using double-sided tape.


Step 7: Install the TP4056 Charging Module

The TP4056 module is used to charge the rechargeable lithium-polymer battery.

Instructions:

  1. Place the TP4056 module on the prototype board and align its USB-C port with the small opening in the side of the enclosure.
  2. Secure the charging module to the prototype board using small screws.

Suitable small screws may be available from electronics suppliers or mobile phone repair shops.


Step 8: Install the Main Power Switch

The self-locking push-button switch acts as the main hardware power switch.

To keep the switch firmly in position:

  1. Create a support block from several small rectangular pieces of PVC sheet.
  2. Superglue the pieces together.
  3. Position the support block behind the switch.
  4. Secure the support block with a screw.

The enclosure wall and support block should hold the switch securely.


Step 9: Build the Battery Voltage Divider

The e-reader uses two 100 kΞ© resistors to create a voltage divider.

Solder the two resistors in series on the prototype board according to the circuit design.This voltage divider allows the microcontroller to monitor the battery voltage and use that information for battery-level indication.


Step 10: Mount the E-Ink Display

The display used in this project is a 4.2-inch Waveshare E-Ink display module.

Create a frame from a PVC sheet and mount the E-Ink display onto it using clear tape.

The frame will later be placed over the top of the enclosure.

E-Ink technology is particularly suitable for an e-reader because the display retains its image without continuously consuming power after the page has been rendered.


Step 11: Connect the Components

Use two different types of wire for the internal wiring.

30 AWG Solid-Core Wire: Use 30 AWG solid-core wire for connections on the underside of the prototype board. This wire is useful for creating neat connections that lie flat against the board.

22 AWG Stranded Copper Wire: Use flexible 22 AWG stranded copper wire for connections between the motherboard and the E-Ink display and other components where flexibility is useful.

Carefully follow the project’s circuit diagram and connection table when wiring:

  • ESP32-S3
  • E-Ink display
  • Battery
  • TP4056 charging module
  • Navigation buttons
  • Power switch
  • Voltage divider
  • Mini DC-DC boost converter
  • USB Type-C connector

The lithium-polymer battery provides approximately 3.7V, while the microcontroller is powered through its USB-C connection using a 5V supply in this design. For this reason, the project uses a Mini DC-DC boost converter.

Configure the module for a fixed 5V output and connect it to the USB Type-C male connector used to power the ESP32-S3. A fixed-output boost module can help avoid accidental changes to the output voltage that could occur with an adjustable potentiometer-based converter.


Step 12: Test the Hardware

Turn on the e-reader.

At this stage, the E-Ink display may remain blank because the firmware has not yet been installed. This is expected. The ESP32-S3 needs the custom firmware before it can read and display compatible e-book files.

Step 13: Install the Firmware

To install the firmware:

  1. Unplug the USB Type-C male power connector from the ESP32-S3.
  2. Connect the ESP32-S3 to a computer using a USB Type-C data cable.
  3. Open the Arduino IDE. It is free software available on the internet. Simply search for it online, then download and install it.
  4. Download the firmware file. Click here to download the firmware.
  5. Open the firmware file using a text editor on your computer. Copy the code and paste it into the code editor in the Arduino IDE.
  6. Upload the firmware to the ESP32-S3 by clicking the Upload button in the Arduino IDE.

The firmware enables the microcontroller to read compatible e-book files and display their contents on the E-Ink screen. 

Firmware Navigation and Bookmark Features
  • UP button: Moves the pointer upward through the menu options.
  • DOWN button: Moves the pointer downward through the menu options.
  • SELECT button: Enters the currently selected menu option.
  • Save a Bookmark: While on the page you want to save, press and hold the UP button for about 1 second. The screen will display “Bookmark Saved!”, confirming that your exact scroll position has been saved.
  • Load a Bookmark: While the same book is open, press and hold the DOWN button for about 1 second. The screen will display “Jumping to Bookmark...”, and the e-reader will immediately return to your saved scroll position.
Current Language Limitation: The current firmware is designed primarily to render English text. Rendering additional writing systems requires more processing and memory, which can significantly reduce performance or cause problems on hardware with limited processing resources and RAM.
Step 14: Prepare Your E-Books

This e-reader uses .md files as its e-book format. A compatible PDF conversion workflow can be used to prepare books for the device.

Instructions:

  1. Obtain the English PDF book you want to read.
  2. Use the project’s conversion tool to convert the PDF into a ZIP file.
  3. Extract the ZIP file.
  4. The extracted files will include an .md text file and .bmp image files that were embedded in the original PDF.
  5. Copy the extracted files to a microSD card.
  6. Insert the microSD card into the ESP32-S3 microcontroller board.

Your e-book is now ready to be read on the DIY e-reader.

Click here to download sample pdf books.

Click here to go to the pdf to md converter tool.

Step 15: Complete the Final Assembly

After installing the firmware:

  1. Disconnect the USB Type-C data cable from the computer.
  2. Plug the USB Type-C male connector back into the ESP32-S3.
  3. Turn off the device if necessary.
  4. Place the PVC frame containing the E-Ink display on top of the enclosure.
  5. Align the frame properly.
  6. Secure the frame in place using clear tape.
  7. To make the e-reader serviceable, you can create a hinge along the left edge using duct tape. This is optional.

Your physical DIY e-reader assembly is now complete.


Download Firmware Download sample PDF Convert PDF to MD

Using the DIY E-Reader

Once the device is powered on, the main menu includes three options:

My Library

Select My Library to browse the e-books stored on the microSD card. Select a book to open it and begin reading. To return to the previous menu, long-press the Select button.

Wi-Fi File Transfer

With Wi-Fi File Transfer mode, you can wirelessly manage the files on your microSD card. You can:

  • Upload e-book files
  • Download files
  • Delete files

Connect your computer or smartphone to the “Granthika – Wi-Fi” network. Then use the URL displayed on the E-Ink screen to access the microSD card through a web browser.

OTA Code Update

The OTA Code Update option allows you to wirelessly upload new firmware to the ESP32-S3 microcontroller. This makes it possible to update the device without physically connecting it to a computer every time.

Conclusion

Congratulations! You have built your own homemade, DIY, budget-friendly e-reader.

This project demonstrates that it is possible to create a capable and customizable reading device using readily available electronics and basic DIY construction techniques. The result is a personal e-reader with an E-Ink display, physical controls, expandable storage, wireless file transfer, and firmware update capability.

The best part is that the device can be maintained, repaired, and modified by its builder. You can experiment with the enclosure, improve the user interface, add new features, or continue developing the firmware as the project evolves.

With an estimated hardware cost of roughly ₹4,525, this project shows that building a custom e-reader for under ₹5,000 is possible with careful component selection and a budget-focused DIY approach.







Comments