-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Submission Details
Type of Submission:
- 3 Pull requests
- Self-initiated open-source project
Link to open-source project:
https://github.com/lirc572/EPD75BHD
Additional information (optional):
This may be considered as a hardware project. It is an Arduino driver library for the Waveshare 7.5 inch 3-color e-paper display.
I bought the e-paper display some time ago and wanted to create a project with it. After I received the display, I tried searching for existing Arduino libraries for it, but then I found out that this is a relatively newly released module and I only found one library provided the producer, which does not satisfy my needs 😕 because:
- It is written in pure C and the it exports functions and structures that are tightly coupled, thus difficult to use in a large application
- To draw an image, it only supports converting the image to bitmap and put it in a C header file. This approach is very limited since it does not support drawing an image retrieved at runtime, and the microcontroller has enough flash memory to store only one full-screen image
- Its text drawing functions use a unique font format that is not compatible with Adafruit GFX fonts (the most popular font format for the Arduino framework), therefore it is difficult to port new fonts
- Its text drawing functions are very inflexible. It requires specifying a starting position for every text drawing operation, and formatted print is not supported, so it is necessary to call different functions to draw characters and numbers
To solve these problems, I decided to write a new driver library for the e-paper display, which leads to this project. About this library:
- It is completely written in C++. The whole library only exposes 2 classes and 2 stand-alone functions, all of them being straight-forward to use
- It supports reading images of PPM format from SD card. This format can be directly viewed on computers. I have also created a script to convert any color image to the supported PPM format using image dithering algorithm
- It uses Adafruit GFX fonts
- It has a formatted print function that is able to process format specifiers. It provides a similar experience as using C's
printfin a computer termital
Please let me know if this project is acceptable! 😊😊😊