In the quest to achieve a low-power design, most developers quickly come to the conclusion that attempting to incorporate any form of display throws the idea of a low-power budget out of the window.
At loggerheads with the needs of an embedded design – especially those such as an IoT edge node sensor, for example, a temperature or humidity sensor – the provision of a visual display into the design really does enhance the user experience. Rather than being reliant on receiving the data back from a cloud-based app, it provides the ability to quickly view such local data, which can be extremely useful. The challenge is that, no matter how low you can get your microcontroller’s sleep modes, an LCD display needs constant refreshing and feeding with power.
Thankfully, there is a solution. Most commonly encountered as the display used in an Amazon Kindle or similar e-book readers, e-paper displays (EPDs) are starting to become popular for providing ultra-low power display function. Thanks to the underlying ‘bistable’ display technology, the display can, in fact, continue to show information without any power at all. Power is only required to update the display with new information, and this approach can revolutionize the way embedded developers approach their designs.
How EPDs Work
Let’s take a look at how an e-paper display is constructed. One of the differences when comparing one to the ubiquitous TFT LCD display is that e-paper is a reflective display technology, so it doesn’t need any form of backlighting in order to function. That is another factor in the power budget reduction.
The display comprises two electrodes – an upper transparent one and a lower one – which have millions of colored particle-filled capsules between them. The capsules typically contain white and black spherical particles that respond to the charge applied to the electrodes, with the white particles becoming visible to the viewer as a result of receiving a positive charge, and the black particles from a negative charge. Shades of gray are a result of neighboring particles with an opposing charge influencing the charge conditions of the other particles.
Figure 1. In an e-paper display the image is formed by delivering an appropriate charge to the microscopic particles
Low-Power and No-Power Displays
Once the charge has been applied, the particles maintain their visible position and display the resulting image. No power source is required to maintain or refresh the charge applied to the electrodes, making for the second major power saving when compared to an LCD display. A continual screen refresh is required in order to maintain the alignment of the crystals on an LCD display. However, once an image has been composed on an e-paper display, the power source can be removed until a new screen image is required.
The process of applying a charge to an individual sphere, or pixel, can be defined as a number of conditions and goes beyond a simple binary relationship. Initially, a charge is applied to set the whole screen to, say, black. To create an image, the next condition is to reverse the initial charge or, thirdly, leave the charge as is—with no change.
But if an e-paper display only consumes power when it is being updated, exactly how much power does it require? Also, how does this compare to a typical TFT LCD display? If we take a 2-inch V231 e-paper display as an example, you can see in Figure 2 the dramatic differences in power compared to a similarly-sized LCD module.
Figure 2. In an application where a 2-inch display is updated six times a day, an e-paper display module can use as little as 10 uAh of power per day
This comparison illustrates how an e-paper display that uses power-optimized display-driving waveforms and an external timing control circuit can consume as little as 2 mA for an update, compared to 30 mA for an LCD display. Furthermore, only needing to power the display during refresh means that in between the six daily updates, no power at all is consumed by the e-paper display.
Connecting an EPD to an Arduino
One way of investigating how simple it is to use an e-paper display is to connect one up to an Arduino.
In this example, we’ll use an Arduino UNO and a 2-inch display attached to a RePaper extension development board. The 2-inch (diagonal) display provides a resolution of 200 × 96 pixels. Other display sizes are available from 1.44 inches upwards, with up to 2.7 inches being accommodated on the above extension board.
The Arduino UNO is suitable for creating simple e-paper image displays. For larger image sizes, however, more buffer memory is required than the UNO can provide, so the Arduino MEGA 2560 would be a better candidate for those sorts of applications.
Figure 3 illustrates the e-paper display inserted into the flexible printed circuit (FPC) connector on the extension board. FPCs are always delicate, so care needs to be taken not to bend it by exerting excess pressure during insertion into the socket.
Figure 3. RePaper extension development board with 2-inch display. Image courtesy of Adafruit
Pins and Wiring
The extension board is supplied with a cable to connect to the Arduino, with the pin assignments being shown in Figure 4 and Table 1.
Figure 4. Wiring up the extension board to the Arduino UNO
Table 1. Extension board to Arduino pin assignments
Downloading the Code
Having wired up the display extension board to the Arduino, download the example code files from GitHub. Note that files are provided for all sizes of display used with this extension board.
Within the Arduino IDE, access the library manager and install the EPD files. Once this is done you will be able to access the example files from the File/Examples menu. These comprise a number of demos; the simplest one alternates between a simple text image and a picture of a cat.
Creating an Image to Upload
To replace the cat image with a new image in the demo.ino file, start by creating a blank image file according to your display size. For the 2-inch display, that’s 200 × 96 pixels. The goal is to save this image as a binary image file with an .xbm file format. While there are a number of graphics and image editor options, Gimp is an ideal candidate for this because it can export an image in the required .xbm format.
Figure 5. A simple image created with Gimp
Figure 5 illustrates a simple price tag image that has been created and then exported into an .xbm format and, in our case, the image has been saved as Tag1.xbm.
You also need to edit the header information of this file, as illustrated in Figure 6. The demo Arduino script expects the image file name to follow a particular naming convention relevant to the e-paper display size, in our case a 2-inch display. These changes apply to the first three lines of the header.
Figure 6. Editing the header information of the image file
Finally, save the file in the /Arduino/libraries/Images folder on your attached computer.
Then you just need to tweak the demo.ino file with the root name of your image. This is illustrated in Figure 7—note the edit of the define statement in the middle of the screen grab.
Figure 7. Editing image file name within Arduino IDE
Upload and Test
Verify and upload the sketch to the Arduino and you should see the test image appear, followed by your new image. Figure 8 shows the set-up, with the new image on the display.
Figure 8. The new image on the e-paper display
E-paper displays offer significant power savings over alternative display technologies, and the possible applications are nearly endless. They are already finding application in IoT sensors—for example, providing a local indication of temperature—and using energy-harvesting techniques to provide enough power to refresh the display.
If you'd like to learn more about e-paper applications, take a look at the white paper, A Guide to E-Paper Technology and its Growing Range of Applications.