Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Homepage
e-Paper Module¶
Description¶
Waveshare 1.54 e-paper module imported from offiicial code https://www.waveshare.com/wiki/1.54inch_e-Paper_Module Codes are referenced from official Arduino code and Raspberry pi code.
SPI is used for communication between ePaper module and mbed.
Following shapes can be used:
- primitive shape (square, circle, line)
- font (variable sizes)
Pull request are appreciated (Note that the original code is copyrighted by (C) Waveshare )
Example Output¶
Display output with example code will be like following image:

Example Code¶
include the mbed library with this snippet
#include "mbed.h"
#include "epd1in54.h"
#include "m41t62_rtc.h"
// Control
PinName rst;
PinName dc;
PinName busy;
// SPI communication
PinName mosi;
PinName miso;
PinName sclk;
PinName cs;
DigitalOut myled(LED1);
unsigned char frame_black[EPD_HEIGHT*EPD_WIDTH/8];
int main() {
mosi = p5;
miso = p6;
sclk = p7;
cs = p8;
rst = p9;
dc = p10;
busy = p11;
memset(frame_black, 0xFF, sizeof(unsigned char)*EPD_HEIGHT*EPD_WIDTH/8);
Epd epd = Epd(mosi, miso, sclk, cs, dc, rst, busy);
if (epd.Init(lut_full_update) != 0){
return -1;
}
/* Draw something to the frame buffer */
// For simplicity, the arguments are explicit numerical coordinates
epd.DrawRectangle(frame_black, 10, 60, 50, 110, COLORED);
epd.DrawLine(frame_black, 10, 60, 50, 110, COLORED);
epd.DrawLine(frame_black, 50, 60, 10, 110, COLORED);
epd.DrawCircle(frame_black, 120, 80, 30, COLORED);
epd.DrawFilledRectangle(frame_black, 10, 130, 50, 180, COLORED);
epd.DrawFilledRectangle(frame_black, 0, 6, 200, 26, COLORED);
epd.DrawFilledCircle(frame_black, 120, 150, 30, COLORED);
/*Write strings to the buffer */
epd.DrawStringAt(frame_black, 30, 30, "e-Paper Demo", &Font16, COLORED);
epd.DrawStringAt(frame_black, 28, 10, "Hello world!", &Font16, UNCOLORED);
/* Display the frame_buffer */
epd.SetFrameMemory(frame_black, 0, 0, epd.width, epd.height);
epd.DisplayFrame();
epd.Sleep();
while(1) {
myled = 1;
wait(0.5);
myled = 0;
wait(0.5);
}
}