Eink
Jump to navigation
Jump to search
Resources
- https://twitter.com/hashtag/epaper
- https://github.com/topics/eink
- Using E Ink displays with a Raspberry Pi
- PaPiRus: ePaper Screen HAT for your Raspberry Pi
- Your next smart home device is a $30 used Kindle
- Share Messages via Kindle on Fridge
- Waveshare hardware connection from Github (4 SPI pins are needed). The first number (eg RES white -> 11) below is from a continuous sequence order (physical location) and the 2nd number (eg BCM: 17) is GPIO number (or BCM pin number).
EPD => Raspberry Pi * VCC red -> 3.3 * GND black -> GND * DIN blue -> 19 MOSI * CLK yellow -> 23 SCLK * CS orange -> 24 (Physical, BCM: CE0, 8) * D/C green -> 22 (Physical, BCM: 25) * RES white -> 11 (Physical, BCM: 17) * BUSY purple -> 18 (Physical, BCM: 24)
vcc red 1 3v3 gnd black 6 ground rst white 11 gpio17 busy purple 18 gpio24 din blue 19 gpio10 (spi mosi) dc green 22 gpio025 clk yellow 23 gpio11 (spi sck) cs orange 24 gpio08 (spi ce0)
- Test Waveshare ePaper (eInk) 2.7” inch 264×176 SPI screen on Raspberry Pi in Python. Refresh time 6s.
- https://www.waveshare.com/wiki/2.7inch_e-Paper_HAT and github example. Five steps were needed to show a screen. 1. Reverse 2. White 3. Black 4. Reverse 5. Normal.
- Clock and weather display for E-Paper 2.7 inch display from Waveshare for Raspberry Pi 3. The screen will refresh every minute (use CPU). It does work but the temperature is in C not F. To fix that, open "epaper.py" file, change the variable "DARK_SKY_UNITS" from "si" to "auto"; see Doc from darksky.net. The cpu and memory usage shown on the screen is different from what I saw from the result of 'htop' (over estimate). Note that darksky.net web information is incredible friendly already. Apple acquires Dark Sky weather app (3/30/2020).
sudo apt-get install libjpeg-dev pip install -r requirements.txt chmod +x run.sh ./run.sh # DO NOT ADD sudo # terminal will show messages from the code. For example, press button 4 # [Button] Btn #4 pressed # [Button] Btn press handled. # App is shuting down. # Display shutdown icon ... # [Epaper] Display. # ... done. # calling exit 0
- Once we put the program in a service, it is tricky to change the settings. It is best to stop the service before doing any change; sudo systemctl stop epaper.service . Then we need to delete all auto-generated *.pyc file; find . -iname "*.pyc" -delete. Now we can start the service again; sudo systemctl start epaper.service .
- If the program was run through the service, press button 4 will shut down the code but the script will be launched again.
- Understand the code. Search shutting_down, shutdown_hook, pressed keywords
- Waveshare ePaper 4.2 inch 400 × 300. Refresh time 4s. But it took 12.7 seconds to display a bmp file from my observation. The image does not disappear after one year without power:)
- https://github.com/waveshare/e-Paper/tree/master/2.7inch_e-paper_code/RaspberryPi/python3 shows what software we need to install.
sudo apt-get install python-pip sudo pip install RPi.GPIO sudo pip install spidev sudo apt-get install ttf-wqy-zenhei ttf-wqy-microhei
- http://www.waveshare.net/wiki/4.2inch_e-Paper_Module. Click on 示例程序 to download 4.2inch_e-paper_code.7z.
wget http://www.waveshare.net/w/upload/8/80/4.2inch_e-paper_code.7z mkdir 4.2inch_e-paper_code cd 4.2inch_e-paper_code sudo apt-get install p7zip-full # It seems the "e" option from 7za will not keep the directory structure properly # We need to use the "x" option. 7za x ../4.2inch_e-paper_code.7z # https://superuser.com/a/379594 cd RaspberryPi/python3
Then follow the 用户手册/manual (useful) to install required software and run the demo. Note when installing the Pillow library (sudo pip3 install Pillow), I got an error: The headers or library files could not be found for jpeg. To fix the problem, try# The original instruction in the manual does not help # sudo apt install libopenjp2-7-dev sudo apt-get install libjpeg-dev
Don't forget to enable SPI (sudo raspi-config) before running "sudo python main.py". I actually got another error complaining font24 = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-microhei.ttc', 24). Follow the suggestion 2.13 epaper display problem and install the required font by sudo apt-get install fonts-wqy-microhei, I am able to run the demo program.
- https://github.com/waveshare/e-Paper/tree/master/2.7inch_e-paper_code/RaspberryPi/python3 shows what software we need to install.
- In order to resize an image to 400x300 and monotone scale (see the last page of the manual), we can use
sudo apt-get install imagemagick wget http://worldartsme.com/images/spring-charlie-brown-clipart-1.jpg -O spring.jpg convert spring.jpg -format bmp -resize 400x300! -monochrome 4in2_spring.bmp cp 4in2.bmp 4in2_original.bmp cp 4in2_spring.bmp 4in2.bmp sudo python3 main.py # notice the exclamation mark, "!". # See http://www.imagemagick.org/script/command-line-processing.php#geometry
- In order to resize an image to 400x300 and monotone scale (see the last page of the manual), we can use
- E-ink calendar using a Raspberry Pi Zero
- Raspberry Pi: an E-Paper display with Widgets Waveshare® 7.5" E-ink Screen.
- Comparison of different e-inks from Waveshare.net. Note the 7.5 inch epaper has a resolution 640x384 (cf 7 inch 800x400 official raspberry pi display).
- Aliexpress
- You can build a DIY E Ink “magic mirror” for under $100
- Build an e-paper to-do list with Raspberry Pi 2020
- Raspberry pi e-paper dashboard with R. It works on Raspberry Pi zero and 4.2" e-paper with appropriate changes. The following provides a solution to create a slideshow on the epaper.
# infinite loop; require many many times of Ctrl+C to stop the execution while true; do for f in *.jpg; do echo $f; convert -monochrome -resize 400x300\! \ $f screen-output.bmp; python3 display.py; done; done # 2 loops. Not stable even on the 1st iteration. # The 'python3 display.py' may not do anything (according to ''htop''). for i in {1..2}; do echo iteration $i; for f in *.jpg; do echo $f; \ convert -monochrome -resize 400x300\! $f screen-output.bmp; \ python3 display.py; done; done # R. Works fine even with iterations for(i in 1:4) for(f in list.files(pattern = "*.jpg")) { cat(f, "\n") system(paste("convert -monochrome -resize 400x300!", f, "screen-output.bmp")) py_run_file("display.py") }
Unfortunately the Chinese characters appear blurry compared to the ones generated from Python code.
If we save the R script to a file, we can launch it by "Rscript XXXX.R" . We can send the job to the background (Ctrl+z, bg) and then quit the ssh connection.
- E-paper Weather Display on 7.5 inch display. The code is simple. See my mod for 4.2 inch display. The free plan on openweathermap allows 60 calls per min.
- WeatherBit.io is used by inxi -W command
ESP32
Misc
Dark Sky
Dark Sky Is Now WeatherKit, Android Apps Could Come Soon
Weather data: OpenWeatherMap
- https://openweathermap.org/api 1,000 API calls per day for free
- How to Fetch Live Weather Data Using Python Using Web Scraping OR OpenWeatherMap API
- PyOWM: Accessing Weather Data Through a Python Library