Embedded Computing
  • About
  • Blog
  • Hardware
    • Which Platform?
    • Controller Platforms >
      • Adafruit Platform
      • Arduino Plaform
      • BBC micro:bit
      • Espressif Platform
      • iLabs Platform
      • Raspberry Pi Platform (MCU)
      • Seeed Platform
      • Silicon Labs Platform
      • Teensy Plaform
    • Computer Platforms >
      • BeagleBone Platform
      • Raspberry Pi Platform (SBC)
      • UDOO Platform
    • Peripherals >
      • Shields
      • Grove System
      • Sensors
      • Actuators
    • Displays >
      • E-Paper Displays
      • Reflective Displays
      • TFT Displays
      • LCD Displays
    • Legacy Platforms >
      • chipKIT Plaform
      • 4D Systems Platform
      • Intel Platform
      • LaunchPad Plaform
      • BoosterPacks for LaunchPads
      • LightBlue Bean
      • Maple Plaform
      • Mediatek Platform
      • Microsoft Azure IoT DevKit
      • Particle Platform
  • Software
    • Exploring RTOS with Galaxia >
      • Event Library
      • Semaphore Library
      • Mailbox Library
      • Timer Library
      • Clock Library
      • SWI Library
      • Task Library
    • Ultra-Low Power with EnergyTrace >
      • Ultra-Low Power with MSP430
      • Ultra-Low Power with Energia MT and Galaxia
    • Using Integers Instead of Reals
    • Going Python?
  • IoT
    • IoT Platforms: Which Hardware? >
      • Matter with Silicon Labs MG24
    • IoT Services: Which Solution? >
      • Recommended IoT Solutions
      • Platform-Specific IoT Solutions
      • Other IoT Solutions
      • Not tested IoT Solutions
      • Notification Solutions
    • Get Date and Time from Internet with NTP
    • Fast and Easy WiFi Connection with QR-Code
  • Tools
    • How to Start?
    • Reference >
      • Asking for Help
      • Boards Pins Maps
      • Ruler
      • Boards and Plugs
      • I²C Logic Level Converter
      • Standards for Connectors
    • Training >
      • Texas Instruments Workshops
      • Embedded Systems: Shape The World — MOOC edX UTAustinX UT.6.02x
      • Embedded Systems - Shape The World: Microcontroller Input/Output — MOOC edX UTAustinX UT.6.10x
      • Embedded Systems - Shape The World: Multi-Threaded Interfacing — MOOC edX UTAustinX UT.6.20x
      • Real-Time Bluetooth Networks: Shape the World — MOOC edX UTAustinX UT.RTBN.12.01x
      • Systems Thinking with Texas Instruments Robotics System Learning Kit
    • Books >
      • Getting Started with the MSP430 LaunchPad
      • Getting Started with Arduino
      • Arduino Cookbook
    • IDE >
      • The Battle of IDEs
      • More Options
      • Assessing the Next Generation of IDEs
      • Tools for Documentation
    • Equipment >
      • Saleae Logic Analyser
      • Rigol DS1102E Oscilloscope
      • XDS110 Debug Probe with EnergyTrace​
      • Segger J-Link Programmer-Debugger
      • Nordic Power Profiler Kit II
  • Projects
    • Libraries >
      • Master I²C Software Library
      • Date and Time Library
      • highView Library Suite
      • Others Libraries
    • smartDevices >
      • I²C smartColours Smart Sensor
      • I²C smartRFID Smart Sensor
      • I²C smartLED Display
      • I²C smartControls Smart Device
      • I²C smartWiFi Smart Device
      • I²C smartBLE Smart Device
      • I²C smartNode Smart Device
    • IoT Projects >
      • Remote E-Paper Weather and Message Board
      • Typie-Walkie with LoRa and E-Paper Screen
      • Typie-Walkie with E-Paper Screen
      • Remote e-Paper Pictures Panel
      • Remote e-Paper Messages Panel
      • Industrial IoT Project
      • Remote Contactless Temperature Monitor
      • Using Node-RED for IIoT
      • Low Power Home Network Weather Monitoring
      • Updated Low Power Home Network Weather Monitoring
      • Weather and Security Station with Blynk
      • SensorTag to Blynk Using Node-RED
      • Pervasive Reporting
    • AI Projects >
      • Colour Recognition with Neural Network
    • Other Projects >
      • Air Quality Monitoring
      • Driving a Large E-Paper Display with a Compact Xiao RP2040
      • Low-Power E-Paper Weather Station
      • Portable Particulate​ Matter Monitor
      • FRAM-based E-Paper Screen Controller
      • General Purpose 3.5" Screen
      • Colour Recognition with Neural Network
      • A Low Power Weather Station
      • Digital Volt-Amp-Watt Meter
      • Mobile Measurement with LCD Display
      • Screen with SRAM for GUI
      • Volt-Amp-Watt-Meter for Grove
      • Multi-Touch Project with CapTIvate

Remote e-Paper Pictures Panel

How to display pictures on a remote screen? The project combines two technologies to solve this problem.
  • A remote device with an e-ink display connected to an IoT-capable board to receive and display the pictures.
  • A control device running an MQTT broker to send the pictures.
Pervasive Displays offers a wide range of e-paper screens, from 1.54" up to 12.2", in black-and-white or black-white-red versions, as well as the Pervasive Displays Extension Kit Gen 3, a universal driver board.

Compared to the previous Remote e-Paper Messages Panel project, the Remote e-Paper Pictures Panel doesn't rely on proprietary protocols and infrastructures. Instead, it uses the MQTT protocol and the broker can be hosted in any local PC or even single-board computer (SBC). To save bandwidth, the pictures are first compressed on a local PC and then sent.
​
Picture
The e-paper screens act like a sheet of paper: they only need power during the printing of the text or image. Once the text or image has been printed, the screens no longer need power. They can even be detached: the text or image stays on! A more detailed presentation explains How e-paper works.

Apart from the low power and the persistent display, the e-paper screens offer high readability even in direct sunlight and high resolution up to 130 dpi, 117 dpi on the 2.71" panel used on this project.

Espressif has revolutionised IoT with the affordable and powerful ESP8266 and ESP32 SoCs. ​
Picture

Remote device

The remote device consists on the ESP32-DevKitC or ESP32-Pico board, the Pervasive Displays Extension Kit Gen 3 board and a Pervasive Displays e-ink display.
Picture

Hardware

For the hardware part, proceed as follow:
  • Attach the screen flat cable to the 24-way connector to the Pervasive Displays Extension Kit Gen 3 board.
  • Set the jumper to the ≤4.37" position on the Pervasive Displays Extension Kit Gen 3 board.
  • Connect the signals 1 to 10 of the Pervasive Displays Extension Kit Gen 3 board to the pins of the Particle Photon as shown below. I recommend using the provided cable or a 10-way flat cable with the standard electronic colours.
​
Picture
The e-paper screen requires an external frame-buffer, stored in SRAM. The size of the screen is thus limited by the SRAM available on the ESP32 board, about 128 kB from total of 520 kB.

​The project here uses a 2.71" monochrome screen.
​
Picture

Software

The application relies on two main libraries:
  • The excellent PubSubClient library by Nick O'Leary provides all the features for an MQTT client. ​

​The buffer size needs to be set with setBufferSize() to handle the header and the image.
hV_Configuration.h

    

  • The PDLS_EXT3_Basic or PDLS_EXT3_Basic_Fast library manages the e-paper screen.​​
PDI_EXT3_Messages_Particle.ino

    
All the credentials are stored in a separate header file.

The GitHub repository provides the code for the Arduino project. 
Credentials.h

    

Main device

The main device can be any PC or single-board computer (SBC). It hosts the image converter and the MQTT broker. Both are used through the terminal.

Convert the picture

The images native formats are not optimised for IoT. A typical 264x176 BMP image weights 136 kB. Since the e-paper screen is monochrome, the images are going to be translated into the portable bitmap (PBM) format. The header features P4 as magic number and the size of the screen, here 176 horizontal by 264 vertical.

To do so, the project uses GraphicsMagick, a command-line utility to convert virtually any format into portable bitmap. A converted 264x176 image weights less than 6 kB in PBM format. 
Code Editor

    
The header of a PBM file

MQTT broker

The project uses Mosquitto as MQTT broker. It comes with useful utilities to publish and subscribe topics.

Recent releases of Mosquitto require to be configured to allow external and anonymous connections. 

​Just edit the file /etc/mosquitto/mosquitto.conf and add the three lines on the left.
mosquitto.conf

    

Run the project

There are two steps to send a picture to the remote e-paper display.
Picture
The initial image

Convert the picture

​First, gm converts the picture into the portable bitmap format with the following options;
  • -resize ensures the right dimensions,
  • -rotate ensures the right orientation,
  • PBM: sets the format.

    

Send the picture

Then, mosquitto_pub sends the image, with the following options:
  • -h 127.0.0.1 defines the IP address of the broker and can be omitted for local host,
  • -t image/show sets the topic,
  • -f IMAGE1.PBM sends the file of the portable bitmap image.
​

    
Finally, the ESP32 receives and displays the image.
Picture

Other options

The image/clear topic clears the screen.​

​Going further

For a cleaner interface, Node-RED provides a nice dashboard to encapsulate the command-line procedure. The Image button opens a dialogue box to select an image. The Send button is then enabled and sends the image through MQTT.

The GitHub repository provides the code for the Node-RED flow. 
​
Pervasive Displays offers a wide range of screens, from 1.54" up to 12.2". Larger screens may require an external memory like an SPI SRAM on the Pervasive Displays e-Paper EPD Extension Kit Gen 3 or a PSRAM available on some advanced ESP32 boards. 

The MQTT solution is widely used and offers advanced features like quality of service (QoS).

The WiFi radio is power-hungry and obliterates the low-power capabilities of the e-paper screen. So changing for a radio like Bluetooth or sub-1 GHz would enable a year-long autonomy with standard batteries, albeit with a different protocol like MQTT-SN.
Picture

Links

  • Pervasive Displays Extension Kit Gen 3
  • Pervasive Displays e-paper screens
  • ​PubSubClient library by Nick O'Leary
  • ePaper EXT3 Basic Library
  • Mosquitto MQTT broker
  • GraphicsMagick image utility
  • Node-RED website
  • GitHub repository 
Picture
Picture
Picture
Picture
Posted: 14 Feb 2022
Updated: 23 Feb 2022
Powered by Create your own unique website with customizable templates.