Skip to content
MagicMirror on 7.5 ePaper Waveshare Display
Branch: master
Clone or download
BenRoe Update Readme
- new resources list
- short explanation how the script works
- link to 3d print case
Latest commit 61b2797 Jan 27, 2019

MIT prs welcome

How it works

The node.js script uses puppeteer (Headless Chrome Node API), to take a screenshot of the local running MagicMirror site (localhost:808) and saves it.
You can change the size of the screenshot and the MagicMirror port in the config.js file.

Then the script executes a the eInk Python script from the ePaperPython folder and updates the eInk screen.
This is the original Python script from Waveshare.



Install dependencies

  • Update packages and install Git, Chrome Browser
sudo apt-get update && sudo apt-get install -y git chromium-browser
  • Install Node.js and npm
curl -sL | sudo -E bash -
sudo apt-get install -y nodejs
  • Install PM2 (process manager for Node.js)
sudo npm install -g pm2
// Starting PM2 on Boot
pm2 startup
// pm2 start node serveronly
// pm2 save


  • Clone/copy the project files to your system.
git clone
  • Move to the project folder
cd rpi-magicmirror-eink
  • Install Node.js dependencies (inside the rpi-magicmirror-eink folder)
npm install
  • Copy all files & folder from magicmirror-files/css to your MagicMirror css folder.
cp -a magicmirror-files/css/. ~/MagicMirror/css
  • Copy the prepared MagicMirror config.js to MagicMirror config folder.
cp magicmirror-files/config.js ~/MagicMirror/config/
  • Start the script with PM2 and run it in the background
pm2 start index.js --name "eink-update"
pm2 save


  • 3d print case
  • support more waveshare epaper display sizes
  • white background/black font mode (invert image with jimp (image.invert();))


You can’t perform that action at this time.