E-book with Ameba (AMB23)

Making an E-book with AMB23 and 7.5-inch E-paper Display Module

Public Chat
Similar projects worth following
Ever thought of making your own E-Book? I would like to develop an E-book using AMB23 as AMB23 has an onboard micro SD card reader that we can make use of to read the contents in a SD card. Many E-book functions will also be implemented in this project!

Getting started with Ameba E-Book Project

The goal of this project is to build an E-book with AMB23.

1. Contents will be written into a text file and save in a SD Card. 

2. The content in the text file will be read and display on to the E-paper display. 

3. The contents will be split into pages based on the height and width of the E-paper display dimension.

4. Changing of pages can be done by pressing a button.


My plan is to add in the following functions to this project:

1. Long Text Wrap

2. User to be able to choose the orientation

3. Drawing of shapes

4. Add in page number as user flip the pages using button

5. Flip pages using button

The text in the text file is read from an SD card using the onboard micro SD card reader. A long text wrap function is implemented to change the line whenever the sentence approaches the limit of the E-paper width or height without a word being split. A shape drawing function is also implemented to allow users to draw shapes such as rectangle, circle, lines, etc. 


Sketch for ebook

ino - 9.52 kB - 07/18/2022 at 01:11


cpp - 64.91 kB - 07/18/2022 at 01:11


cpp - 96.79 kB - 07/18/2022 at 01:11


cpp - 50.16 kB - 07/18/2022 at 01:11


h - 2.71 kB - 07/18/2022 at 01:11


View all 11 files

  • 1 × AMD23
  • 1 × Button
  • 1 × Breadboard Electronic Components / Misc. Electronic Components
  • 1 × SD card
  • 1 × Waveshare 7.5-inch E-Ink display HAT

  • E-book with Ameba (AMB23) Update #3

    pammyleong07/18/2022 at 01:15 0 comments


    - e-Book is able to read longer/infinite content. Removed the limit to be displayed onto the EPD.

    - 2 orientations supported: Portrait and landscape

    Wiring diagram provided:

  • E-book with Ameba (AMB23) Update #2

    pammyleong07/04/2022 at 03:04 0 comments

    Added a simple cover page for E-book. 

    Cover Page for EPD

    Added button to change pages and text wrap

    Long text are split into many pages and pages can be changed using a button. Page numbers are also added at the bottom right hand corner. The texts are being wrapped according to the size of the E-paper display so that sentence or word will not be cut off. Users can choose and set their preferred font size in the ino. file. Font Size choices: 16, 20, 24. Orientation of the E-book can also be chosen by the user. Orientation choices: 0o, 90o, 180o, 270. When the last page is reached, it will return to page 1 after the button is pressed again.

    Display text with font size 16

    Display text with font size 16
    Display text with font size 20
    Display text with font size 20
    Display text with font size 24
    Display text with font size 24

  • E-book with Ameba (AMB23) Update #1

    pammyleong06/29/2022 at 06:41 0 comments


    Functions implemented:

    • Capable to read contents from SD card and display 
    • Long Text Wrap
    • Drawing of Shapes
    • User able to choose their preferred orientation of the EPD by modifying the ino file
    • Flip pages using button

View all 3 project logs

  • 1
    Arduino IDE Ameba Board installation

    Add the following line to "Additional Board Manager URLs" under "Preference",

    Next, go to “Tools” -> “Board” -> “Boards Manager” to install AmebaD package.

    Find “Realtek Ameba Boards (32-bits ARM Cortex-M33 @200MHz)” in the list, click “Install”, then the Arduino IDE starts to download required files for AmebaD.


  • 2
    Connection between AMB23 and E-paper Display

    Take a look at the pin diagram for AMB23

    get-start-3and connect accordingly. 

    Busy - D21

    Reset - D20

    DC - D19

    CS - D12

    CLK - D11

    DIN - D9

    The pin numbers definition can be found in epdif.h .

    #define RST_PIN         20
    #define DC_PIN          19
    #define CS_PIN          12
    #define BUSY_PIN        21

    Do note that Display Config should be set to B and Interface Config should be set to 0. 

  • 3
    Connection between button and AMB23

    Button pin is defined to be D2.

    Button setting can be found in ino file.
    int button = 2;
    int buttonState = 1;

View all 6 instructions

Enjoy this project?



traceyhoward65 wrote 09/23/2022 at 10:53 point

Really cool idea. When I was at university, I had a guy in my group who had an idea to pull this off. But he didn't make it. I studied at the university of pennsylvania, use to learn more. The university really allows you to create something unique. There is everything for this condition, there would be only a desire.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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