diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..fd02320f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.pyc +*.log +settings.json +E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc +E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2g.pyc +E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__init__.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index 37207b271..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd10in85.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd10in85.cpython-37.pyc deleted file mode 100644 index 7cafcf29d..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd10in85.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 3d40c83a2..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/epd10in85.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/epd10in85.pyc deleted file mode 100644 index a7a4c765c..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/epd10in85.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/epdconfig.pyc b/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index e6d6d5d60..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper/RaspberryPi/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/python/lib/epd10in85g.pyc b/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/python/lib/epd10in85g.pyc deleted file mode 100644 index 372620430..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/python/lib/epd10in85g.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/python/lib/epdconfig.pyc b/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/python/lib/epdconfig.pyc deleted file mode 100644 index 65bea62e9..000000000 Binary files a/E-paper_Separate_Program/10.85inch_e-Paper_G/RaspberryPi/python/lib/epdconfig.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index bdc3cbd68..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd10in2g.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd10in2g.pyc deleted file mode 100644 index d8fe18e03..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd10in2g.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc b/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index 3b99fc0c1..000000000 Binary files a/E-paper_Separate_Program/10in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index 0a0eef9fe..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54g.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54g.pyc deleted file mode 100644 index b450e5d58..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54g.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc b/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index 0d2539987..000000000 Binary files a/E-paper_Separate_Program/1in54_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83g.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83g.cpython-37.pyc deleted file mode 100644 index 718e2816f..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/2.9inch_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index 5b80b8d68..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.pyc deleted file mode 100644 index ae6e2a341..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g_V2.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g_V2.pyc deleted file mode 100644 index 420535a6e..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13g_V2.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc b/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index 452227454..000000000 Binary files a/E-paper_Separate_Program/2in13_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/2in15_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/3.6inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/3in52_e-Paper_B/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/epd_4in2g_test.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/epd_4in2g_test.py new file mode 100644 index 000000000..72c3763f0 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/epd_4in2g_test.py @@ -0,0 +1,69 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +import sys +import os +picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') +libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') +if os.path.exists(libdir): + sys.path.append(libdir) + +import logging +from waveshare_epd import epd4in2g +import time +from PIL import Image,ImageDraw,ImageFont +import traceback + +logging.basicConfig(level=logging.DEBUG) + +try: + logging.info("epd4in2g Demo") + + epd = epd4in2g.EPD() + logging.info("init and Clear") + epd.init() + epd.Clear() + time.sleep(3) + font15 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 15) + font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18) + font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24) + font40 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 40) + + # Drawing on the image + logging.info("1.Drawing on the image...") + Himage = Image.new('RGB', (epd.height, epd.width), epd.WHITE) + draw = ImageDraw.Draw(Himage) + draw.rectangle([(0,0),(50,50)],outline = epd.BLACK) + draw.rectangle([(55,0),(100,50)],fill = epd.RED) + draw.line([(0,0),(50,50)], fill = epd.YELLOW,width = 1) + draw.line([(0,50),(50,0)], fill = epd.YELLOW,width = 1) + draw.pieslice((55, 60, 95, 100), 90, 180, outline = epd.RED) + draw.pieslice((55, 60, 95, 100), 270, 360, fill = epd.BLACK) + draw.chord((10, 60, 50, 100), 0, 360, fill = epd.YELLOW) + draw.ellipse((55, 60, 95, 100), outline = epd.RED) + draw.polygon([(110,0),(110,50),(150,25)],outline = epd.BLACK) + draw.polygon([(190,0),(190,50),(150,25)],fill = epd.BLACK) + draw.text((120, 60), 'e-Paper demo', font = font15, fill = epd.YELLOW) + draw.text((110, 90), u'微雪电子', font = font24, fill = epd.RED) + + epd.display(epd.getbuffer(Himage)) + time.sleep(3) + + # read bmp file + logging.info("2.read bmp file") + Himage = Image.open(os.path.join(picdir, '4.2inch_G-1.bmp')) + epd.display(epd.getbuffer(Himage)) + time.sleep(3) + + logging.info("Clear...") + epd.Clear() + + logging.info("Goto Sleep...") + epd.sleep() + +except IOError as e: + logging.info(e) + +except KeyboardInterrupt: + logging.info("ctrl + c:") + epd4in2g.epdconfig.module_exit(cleanup=True) + exit() diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/example_horizontal_blackstrip.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/example_horizontal_blackstrip.py new file mode 100644 index 000000000..fd18fbab0 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/example_horizontal_blackstrip.py @@ -0,0 +1,48 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +import sys +import os +picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') +libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') +if os.path.exists(libdir): + sys.path.append(libdir) + +import logging +from waveshare_epd import epd4in2g +import time +from PIL import Image, ImageDraw +import traceback + +logging.basicConfig(level=logging.DEBUG) + +try: + logging.info("epd4in2g Demo") + epd = epd4in2g.EPD() + logging.info("Initializing display") + epd.init() + time.sleep(1) + + # Create an image where the left half is black and the right half is white + + # ToDo: appearing top row as black and bottom row as white in (landscape mode) ? is this expected? + logging.info("Rendering 50 percent black test pattern") + img_width = epd.height + img_height = epd.width + Himage = Image.new('RGB', (img_width, img_height), epd.WHITE) + draw = ImageDraw.Draw(Himage) + draw.rectangle((0, 0, img_width // 2, img_height - 1), fill=epd.BLACK) + + epd.display(epd.getbuffer(Himage)) + time.sleep(3) + + logging.info("Goto Sleep...") + epd.sleep() + +except IOError as e: + logging.info(e) + traceback.print_exc() + +except KeyboardInterrupt: + logging.info("ctrl + c:") + epd4in2g.epdconfig.module_exit(cleanup=True) + exit() diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/gpiod_test_hardcoded_pin_mapping.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/gpiod_test_hardcoded_pin_mapping.py new file mode 100644 index 000000000..72b7633c3 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/gpiod_test_hardcoded_pin_mapping.py @@ -0,0 +1,54 @@ +import gpiod +import time + +''' +This is a cleaner version of gpiotest_raw.py so you don't have to calculate line offset. +''' + +def gpio_from_pin(pin): + chip, line = PINMAP[pin] + c = gpiod.Chip(chip) + l = c.get_line(line) + return c, l + + +PINMAP = { + # --- Power / GND pins intentionally omitted --- + # Header pin : (gpiochip, line) + 3: ("gpiochip0", 63), # GPIOA_14 + 5: ("gpiochip1", 5), # GPIOA_15 ⚠ USB related + 7: ("gpiochip1", 3), # GPIOAO_3 + 8: ("gpiochip1", 0), # GPIOAO_0 + 10: ("gpiochip1", 1), # GPIOAO_1 + 11: ("gpiochip1", 2), # GPIOAO_2 + 12: ("gpiochip0", 74), # GPIOX_9 + 13: ("gpiochip0", 76), # GPIOX_11 + 16: ("gpiochip0", 75), # GPIOX_10 + 18: ("gpiochip0", 73), # GPIOX_8 + + 19: ("gpiochip0", 20), # GPIOH_4 + 21: ("gpiochip0", 21), # GPIOH_5 + 22: ("gpiochip0", 48), # GPIOC_7 (open-drain) + 23: ("gpiochip0", 23), # GPIOH_7 + 24: ("gpiochip0", 22), # GPIOH_6 + + 27: ("gpiochip1", 3), # GPIOAO_3 (same as pin 7) + 28: ("gpiochip1", 2), # GPIOAO_2 (same as pin 11) + + 32: ("gpiochip1", 4), # GPIOAO_4 + 34: ("gpiochip1", 8), # GPIOAO_8 + 36: ("gpiochip0", 24), # GPIOH_8 ⚠ 5V open-drain + 37: ("gpiochip1", 9), # GPIOAO_9 + 38: ("gpiochip1", 10), # GPIOAO_10 (not always bonded) + 40: ("gpiochip1", 11), # GPIOAO_11 +} + +chip, line = gpio_from_pin(19) +line.request(consumer="app", type=gpiod.LINE_REQ_DIR_OUT) +line.set_value(1) + +time.sleep(1) +line.set_value(0) +time.sleep(1) +line.release() +chip.close() \ No newline at end of file diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/gpiodtest_raw.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/gpiodtest_raw.py new file mode 100644 index 000000000..7271f0417 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/gpiodtest_raw.py @@ -0,0 +1,74 @@ +import gpiod +import time + +CHIP_NAME = "gpiochip0" +LINE_OFFSET = 20 # GPIO pin 19 gpio-532 = 532 - 512 +''' +Note the first line gives the BASE GPIOs 512-596 so 512 is the base +Global GPIO number = base + line_offset. + +TO test this connect LED +ve to GPIO pin 19 and -ve to GND (pin 6) of the radxa zero amlogic board. + +$ sudo cat /sys/kernel/debug/gpio +gpiochip0: GPIOs 512-596, parent: platform/ff634400.bus:pinctrl@40, periphs-banks: + gpio-532 (19 [GPIOH_4] ) + gpio-533 (21 [GPIOH_5] ) + gpio-534 (24 [GPIOH_6] ) + gpio-535 (23 [GPIOH_7] ) + gpio-536 (36 [GPIOH_8] ) + gpio-549 ( |reset ) out hi ACTIVE LOW + gpio-559 ( |cd ) in lo ACTIVE LOW + gpio-560 (22 [GPIOC_7] ) + gpio-575 (3 [GPIOA_14] ) + gpio-583 ( |reset ) out hi ACTIVE LOW + gpio-585 (18 [GPIOX_8] ) + gpio-586 (12 [GPIOX_9] ) + gpio-587 (16 [GPIOX_10] ) + gpio-588 (13 [GPIOX_11] ) + gpio-594 ( |shutdown ) out hi + +gpiochip1: GPIOs 597-611, parent: platform/ff800000.bus:pinctrl@14, aobus-banks: + gpio-597 (8 [GPIOAO_0] ) + gpio-598 (10 [GPIOAO_1] ) + gpio-599 (11,28 [GPIOAO_2] ) + gpio-600 (7,27 [GPIOAO_3] ) + gpio-601 (32 [GPIOAO_4] ) + gpio-602 (5 [GPIOA_15] ) + gpio-605 (35 [GPIOAO_8] ) + gpio-606 (37 [GPIOAO_9] ) + gpio-608 (40 [GPIOAO_11] ) +''' + +def main(): + print(f"Testing GPIO pin {LINE_OFFSET} on {CHIP_NAME}") + + # Open GPIO chip + chip = gpiod.Chip(CHIP_NAME) + line = chip.get_line(LINE_OFFSET) + + # Request line as output + line.request( + consumer="gpiotest", + type=gpiod.LINE_REQ_DIR_OUT + ) + + try: + # Turn on GPIO pin 19 + print(f"Turning ON GPIO pin {LINE_OFFSET}") + line.set_value(1) + time.sleep(1) # Wait 1 second + + # Turn off GPIO pin 19 + print(f"Turning OFF GPIO pin {LINE_OFFSET}") + line.set_value(0) + time.sleep(1) # Wait 1 second + + print("GPIO test completed successfully") + finally: + # Release line and close chip + line.release() + chip.close() + print("GPIO closed") + +if __name__ == "__main__": + main() diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/led_blink_test_spi.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/led_blink_test_spi.py new file mode 100644 index 000000000..e1a97885c --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/led_blink_test_spi.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python3 +""" +SPI1 MOSI test for Radxa Zero + +This script tests SPI1 by sending 100,000 bytes of 0xFF followed by +100,000 bytes of 0x00 repeatedly. At 5MHz SPI clock, this should blink +an LED connected to MOSI at approximately 6.3 times per second. + +SPI1 MOSI is on GPIOH_4 (gpio-532, offset 20) - Pin 19 on the 40-pin header. + +To test this connect LED +ve to SPI PIN 19 and -ve to GND (pin 6) of the radxa zero amlogic board. +which is also labeled GPIO447 +""" + +import time +import spidev + +# SPI1 configuration +SPI_BUS = 1 # SPI1 +SPI_DEVICE = 0 # CS0 -> /dev/spidev1.0 +SPI_SPEED = 5000000 # 5 MHz +SPI_MODE = 0b00 # SPI mode 0 + +# Number of bytes to send per pattern +BYTES_PER_PATTERN = 100000 + +def main(): + print("SPI1 MOSI Test for Radxa Zero") + print("=" * 50) + print(f"SPI Device: /dev/spidev{SPI_BUS}.{SPI_DEVICE}") + print(f"Clock Speed: {SPI_SPEED / 1000000:.1f} MHz") + print(f"Bytes per pattern: {BYTES_PER_PATTERN:,}") + print("=" * 50) + + # Initialize SPI + spi = spidev.SpiDev() + + try: + # Open SPI device + print(f"\nOpening SPI bus {SPI_BUS}, device {SPI_DEVICE}...") + spi.open(SPI_BUS, SPI_DEVICE) + + # Configure SPI + spi.max_speed_hz = SPI_SPEED + spi.mode = SPI_MODE + spi.bits_per_word = 8 + + print(f"SPI configured: {SPI_SPEED} Hz, mode {SPI_MODE}") + print("\nStarting SPI transmission...") + print("Pattern: 100,000 bytes of 0xFF, then 100,000 bytes of 0x00") + print("Press Ctrl+C to stop\n") + + # Prepare data buffers + data_high = bytes([0xFF] * BYTES_PER_PATTERN) + data_low = bytes([0x00] * BYTES_PER_PATTERN) + + cycle_count = 0 + + try: + while True: + cycle_count += 1 + start_time = time.time() + + # Send 0xFF bytes + print(f"Cycle {cycle_count}: Sending {BYTES_PER_PATTERN:,} bytes of 0xFF...", end="", flush=True) + spi.writebytes2(data_high) + high_time = time.time() - start_time + + # Send 0x00 bytes + print(f" done ({high_time:.2f}s). Sending {BYTES_PER_PATTERN:,} bytes of 0x00...", end="", flush=True) + low_start = time.time() + spi.writebytes2(data_low) + low_time = time.time() - low_start + + total_time = time.time() - start_time + frequency = 1.0 / total_time + + print(f" done ({low_time:.2f}s). Total: {total_time:.2f}s ({frequency:.2f} Hz)") + + except KeyboardInterrupt: + print(f"\n\nStopped after {cycle_count} cycles") + + except Exception as e: + raise e + finally: + try: + spi.close() + print("\nSPI device closed.") + except: + pass + + return 0 + +if __name__ == '__main__': + exit(main()) diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/live_capture_framebuffer.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/live_capture_framebuffer.py new file mode 100644 index 000000000..d152e14ec --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/live_capture_framebuffer.py @@ -0,0 +1,68 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +import sys +import os +import logging +import time +import hashlib +from PIL import Image, ImageChops + +# --- Setup Paths --- +picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') +libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') +if os.path.exists(libdir): + sys.path.append(libdir) + +from waveshare_epd import epd4in2g + +# --- Configuration --- +FB_W, FB_H = 1024, 768 # Your detected Radxa resolution +EPD_W, EPD_H = 400, 300 # Your physical screen size + +logging.basicConfig(level=logging.INFO) + +def get_frame_hash(data): + return hashlib.md5(data).hexdigest() + +try: + epd = epd4in2g.EPD() + logging.info("Initializing E-ink...") + epd.init() + epd.init_fast(epd.Seconds_1_5S) # Your preferred fast mode + + last_hash = None + last_image = None + + while True: + # 1. Grab pixels from the system's hidden screen + with open("/dev/fb0", "rb") as f: + raw_data = f.read(FB_W * FB_H * 4) + + # Convert raw bytes to Image and crop to your pocket screen size immediately + full_img = Image.frombytes('RGB', (FB_W, FB_H), raw_data, 'raw', 'BGRX') + terminal_view = full_img.crop((0, 0, EPD_W, EPD_H)).convert('1') + + # Calculate hash based ONLY on the visible cropped area + curr_hash = get_frame_hash(terminal_view.tobytes()) + + # 2. Only update the e-ink if the visible area changed + if curr_hash != last_hash: + if last_image is not None: + diff = ImageChops.difference(last_image, terminal_view) + bbox = diff.getbbox() + if bbox: + logging.info(f"Change detected in region: {bbox}") + else: + logging.info("Hash changed but pixels identical? (Rare)") + + # 3. Push to physical screen + epd.display_Fast(epd.getbuffer(terminal_view)) + last_hash = curr_hash + last_image = terminal_view + logging.info("E-ink Updated.") + + time.sleep(0.2) + +except KeyboardInterrupt: + epd4in2g.epdconfig.module_exit() + exit() \ No newline at end of file diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/radxa_zero_gpio.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/radxa_zero_gpio.py new file mode 100644 index 000000000..1acdf365a --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/radxa_zero_gpio.py @@ -0,0 +1,26 @@ +import sys +import os +picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') +libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') +if os.path.exists(libdir): + sys.path.append(libdir) + +import RADXAZero.GPIO as GPIO +import time + +''' +This is a drop in replacement for Raspberry Pi style GPIO library for Radxa Zero Amlogic board. +previous versions include gpiodtest_hardcoded_pin_mapping.py and gpiotest_raw.py +To test this connect LED +ve to GPIO pin 19 and -ve to GND (pin 6) of the radxa zero amlogic board. +''' + +PIN_TO_TEST = 19 + +GPIO.setmode(GPIO.BOARD) + +GPIO.setup(PIN_TO_TEST, GPIO.OUT) +GPIO.output(PIN_TO_TEST, GPIO.HIGH) +time.sleep(1) +GPIO.output(PIN_TO_TEST, GPIO.LOW) + +GPIO.cleanup() diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/single_image_framebuffer.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/single_image_framebuffer.py new file mode 100644 index 000000000..05ec761e7 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/examples/single_image_framebuffer.py @@ -0,0 +1,35 @@ +import PIL.Image + +# Values from your fbset output +WIDTH = 1024 +HEIGHT = 768 +DEPTH = 32 # 4 bytes per pixel + +fb_device = "/dev/fb0" + +try: + with open(fb_device, "rb") as f: + # Read the full buffer: 1024 * 768 * 4 = 3,145,728 bytes + raw_data = f.read(WIDTH * HEIGHT * 4) + + # 'RGB' is our target. 'BGRX' matches your rgba 8/16,8/8,8/0 output. + img = PIL.Image.frombytes('RGB', (WIDTH, HEIGHT), raw_data, 'raw', 'BGRX') + + # POCKET COMPUTER EFFECT: + # 1. Convert to Grayscale ('L') + # 2. Convert to 1-bit Black and White ('1') + eink_style = img.convert('L').convert('1') + + # If you want the 400x300 "Pocket" look from the video, + # we crop the top-left corner where the terminal text usually is. + pocket_view = eink_style.crop((0, 0, 400, 300)) + + # Save files + img.save("full_color.png") + eink_style.save("full_eink.png") + pocket_view.save("pocket_computer.png") + + print("Success! Created full_color.png and pocket_computer.png") + +except Exception as e: + print(f"Capture failed: {e}") diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/RADXAZero/GPIO.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/RADXAZero/GPIO.py new file mode 100644 index 000000000..30464e41d --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/RADXAZero/GPIO.py @@ -0,0 +1,138 @@ +import gpiod + +# ----- Public constants (RPi.GPIO compatible) ----- +BOARD = 10 + +IN = 0 +OUT = 1 + +LOW = 0 +HIGH = 1 + +# ----- Internal state ----- +_mode = None +_lines = {} + +# ----- Voltage domains ----- +PIN_VOLTAGE = { + # 3.3V safe GPIO + 3: "3.3V", 5: "3.3V", + 7: "3.3V", 8: "3.3V", + 10: "3.3V", 11: "3.3V", + 19: "3.3V", 21: "3.3V", + 22: "3.3V", 23: "3.3V", + 24: "3.3V", 32: "3.3V", + 34: "3.3V", 36: "5V_OD", + 37: "3.3V", 38: "3.3V", + 40: "3.3V", + + # 1.8V logic + 12: "1.8V", + 13: "1.8V", + 16: "1.8V", + 18: "1.8V", +} + + +# ----- Radxa Zero physical pin map ----- +PINMAP = { + 3: ("gpiochip0", 63), + 5: ("gpiochip1", 5), # ⚠ USB related + 7: ("gpiochip1", 3), + 8: ("gpiochip1", 0), + 10: ("gpiochip1", 1), + 11: ("gpiochip1", 2), + 12: ("gpiochip0", 74), + 13: ("gpiochip0", 76), + 16: ("gpiochip0", 75), + 18: ("gpiochip0", 73), + 19: ("gpiochip0", 20), + 21: ("gpiochip0", 21), + 22: ("gpiochip0", 48), # open-drain + 23: ("gpiochip0", 23), + 24: ("gpiochip0", 22), + 27: ("gpiochip1", 3), + 28: ("gpiochip1", 2), + 32: ("gpiochip1", 4), + 34: ("gpiochip1", 8), + 36: ("gpiochip0", 24), # ⚠ 5V open-drain + 37: ("gpiochip1", 9), + 38: ("gpiochip1", 10), + 40: ("gpiochip1", 11), +} + +# ----- API ----- + +def setmode(mode): + global _mode + if mode != BOARD: + raise ValueError("Only GPIO.BOARD mode is supported") + _mode = mode + +def setup(pin, direction, initial=None): + if _mode != BOARD: + raise RuntimeError("Call GPIO.setmode(GPIO.BOARD) first") + + if pin not in PINMAP: + raise ValueError(f"Invalid pin: {pin}") + + voltage = PIN_VOLTAGE.get(pin, "unknown") + if voltage == "1.8V": + print( + f"⚠ WARNING: Pin {pin} is 1.8V logic. " + "Do NOT connect directly to 3.3V devices." + ) + elif voltage == "5V_OD": + print( + f"⚠ WARNING: Pin {pin} is open-drain / 5V tolerant. " + "External pull-up required." + ) + + chip_name, line_offset = PINMAP[pin] + chip = gpiod.Chip(chip_name) + line = chip.get_line(line_offset) + + if direction == OUT: + line.request( + consumer="RADXAZero.GPIO", + type=gpiod.LINE_REQ_DIR_OUT, + default_vals=[initial if initial is not None else 0], + ) + elif direction == IN: + line.request( + consumer="RADXAZero.GPIO", + type=gpiod.LINE_REQ_DIR_IN, + ) + else: + raise ValueError("Invalid direction") + + _lines[pin] = (chip, line) + + +def output(pin, value): + if pin not in _lines: + raise RuntimeError(f"Pin {pin} not set up") + + _, line = _lines[pin] + line.set_value(1 if value else 0) + + +def input(pin): + if pin not in _lines: + raise RuntimeError(f"Pin {pin} not set up") + + _, line = _lines[pin] + return line.get_value() + + +def cleanup(pin=None): + if pin is None: + pins = list(_lines.keys()) + else: + pins = [pin] + + for p in pins: + if p in _lines: + chip, line = _lines.pop(p) + line.release() + chip.close() diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/__init__.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/epd4in2g.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/epd4in2g.py new file mode 100644 index 000000000..1898c2936 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/epd4in2g.py @@ -0,0 +1,216 @@ +# ***************************************************************************** +# * | File : epd4in2g.py +# * | Author : Waveshare team +# * | Function : Electronic paper driver +# * | Info : +# *---------------- +# * | This version: V1.0 +# * | Date : 2024-08-07 +# # | Info : python demo +# ----------------------------------------------------------------------------- +# ******************************************************************************/ +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documnetation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +import logging +from . import epdconfig + +import PIL +from PIL import Image +import io +import RADXAZero.GPIO as GPIO +# Display resolution +EPD_WIDTH = 400 +EPD_HEIGHT = 300 + +logger = logging.getLogger(__name__) + +class EPD: + def __init__(self): + self.reset_pin = epdconfig.RST_PIN + self.dc_pin = epdconfig.DC_PIN + self.busy_pin = epdconfig.BUSY_PIN + self.cs_pin = epdconfig.CS_PIN + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + self.BLACK = 0x000000 # 00 BGR + self.WHITE = 0xffffff # 01 + self.YELLOW = 0x00ffff # 10 + self.RED = 0x0000ff # 11 + + + # Hardware reset + def reset(self): + epdconfig.digital_write(self.reset_pin, 1) + epdconfig.delay_ms(200) + epdconfig.digital_write(self.reset_pin, 0) # module reset + epdconfig.delay_ms(2) + epdconfig.digital_write(self.reset_pin, 1) + epdconfig.delay_ms(200) + + def send_command(self, command): + epdconfig.digital_write(self.dc_pin, 0) + epdconfig.digital_write(self.cs_pin, 0) + epdconfig.spi_writebyte([command]) + epdconfig.digital_write(self.cs_pin, 1) + + def send_data(self, data): + epdconfig.digital_write(self.dc_pin, 1) + epdconfig.digital_write(self.cs_pin, 0) + epdconfig.spi_writebyte([data]) + epdconfig.digital_write(self.cs_pin, 1) + + # send a lot of data + def send_data2(self, data): + epdconfig.digital_write(self.dc_pin, 1) + epdconfig.digital_write(self.cs_pin, 0) + epdconfig.spi_writebyte2(data) + epdconfig.digital_write(self.cs_pin, 1) + + def ReadBusy(self): + logger.debug("e-Paper busy H") + epdconfig.delay_ms(100) + while(epdconfig.digital_read(self.busy_pin) == 0): # 0: idle, 1: busy + epdconfig.delay_ms(5) + logger.debug("e-Paper busy release") + + def TurnOnDisplay(self): + self.send_command(0x12) # DISPLAY_REFRESH + self.send_data(0X00) + self.ReadBusy() + + def init(self): + if (epdconfig.module_init() != 0): + return -1 + # EPD hardware init start + + self.reset() + self.ReadBusy() + self.send_command(0x4D) + self.send_data(0x78) + + self.send_command(0x00) + self.send_data(0x0F) + self.send_data(0x29) + + self.send_command(0x06) + self.send_data(0x0d) + self.send_data(0x12) + self.send_data(0x24) + self.send_data(0x25) + self.send_data(0x12) + self.send_data(0x29) + self.send_data(0x10) + + self.send_command(0x30) + self.send_data(0x08) + + self.send_command(0x50) + self.send_data(0x37) + + self.send_command(0x61) + self.send_data(0x01) + self.send_data(0x90) + self.send_data(0x01) + self.send_data(0x2C) + + self.send_command(0xae) + self.send_data(0xcf) + + self.send_command(0xb0) + self.send_data(0x13) + + self.send_command(0xbd) + self.send_data(0x07) + + self.send_command(0xbe) + self.send_data(0xfe) + + self.send_command(0xE9) + self.send_data(0x01) + + self.send_command(0x04) + self.ReadBusy() + return 0 + + def getbuffer(self, image): + # Create a pallette with the 4 colors supported by the panel + pal_image = Image.new("P", (1,1)) + pal_image.putpalette( (0,0,0, 255,255,255, 255,255,0, 255,0,0) + (0,0,0)*252) + + # Check if we need to rotate the image + imwidth, imheight = image.size + if(imwidth == self.width and imheight == self.height): + image_temp = image + elif(imwidth == self.height and imheight == self.width): + image_temp = image.rotate(90, expand=True) + else: + logger.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height)) + + # Convert the soruce image to the 4 colors, dithering if needed + image_4color = image_temp.convert("RGB").quantize(palette=pal_image) + buf_4color = bytearray(image_4color.tobytes('raw')) + + # into a single byte to transfer to the panel + if self.width % 4 == 0 : + Width = self.width // 4 + else : + Width = self.width // 4 + 1 + Height = self.height + buf = [0x00] * int(Width * Height) + idx = 0 + for j in range(0, Height): + for i in range(0, Width): + buf[i + j * Width] = (buf_4color[idx] << 6) + (buf_4color[idx+1] << 4) + (buf_4color[idx+2] << 2) + buf_4color[idx+3] + idx = idx + 4 + return buf + + def display(self, image): + self.send_command(0x10) + self.send_data2(image) + + self.TurnOnDisplay() + + def Clear(self, color=0x55): + if self.width % 4 == 0: + Width = self.width // 4 + else: + Width = self.width // 4 + 1 + Height = self.height + + data = [color] * (Width * Height) + + self.send_command(0x10) + self.send_data2(data) + + self.TurnOnDisplay() + + def sleep(self): + self.send_command(0x02) # POWER_OFF + self.send_data(0X00) + self.ReadBusy() + epdconfig.delay_ms(100) + + self.send_command(0x07) # DEEP_SLEEP + self.send_data(0XA5) + + epdconfig.delay_ms(2000) + epdconfig.module_exit() +### END OF FILE ### + diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/epdconfig.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/epdconfig.py new file mode 100644 index 000000000..f94f4a6a9 --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/lib/waveshare_epd/epdconfig.py @@ -0,0 +1,152 @@ +# epdconfig.py +# Waveshare 4.2" G (B/W/R) for Radxa Zero +# Uses RADXAZero.GPIO + hardware SPI + +import os +import time +import logging +import spidev +import RADXAZero.GPIO as GPIO + +logger = logging.getLogger(__name__) + +# ============================================================================= +# SPI CONFIGURATION +# ============================================================================= +SPI_DEV = os.getenv("EPD_SPI_DEV", "/dev/spidev1.0") +SPI_HZ = int(os.getenv("EPD_SPI_HZ", "1000000")) + + +# ============================================================================= +# GPIO CONFIGURATION (BOARD numbering) +# ============================================================================= +PIN_CS = 32 +PIN_DC = 7 +PIN_RST = 11 +PIN_BUSY = 10 + +# these are connected but not sure if they are used +# DIN = 19 +# CLK = 23 + +BUSY_ACTIVE_LOW = os.getenv("EPD_BUSY_ACTIVE_LOW", "0") == "1" + +# Backward compatibility +DC_PIN = PIN_DC +RST_PIN = PIN_RST +BUSY_PIN = PIN_BUSY +PWR_PIN = -1 +CS_PIN = PIN_CS + +# ============================================================================= +# INTERNAL STATE +# ============================================================================= +_spi = None + +# ============================================================================= +# GPIO HELPERS (RPi.GPIO compatible) +# ============================================================================= +def digital_write(pin, value): + if pin < 0: + return + print(f"GPIO {pin} <- {'H' if value else 'L'}") + GPIO.output(pin, GPIO.HIGH if value else GPIO.LOW) + + +def digital_read(pin): + if pin < 0: + return 0 + + raw = GPIO.input(pin) + if pin == PIN_BUSY: + return 1 if raw else 0 + return raw + + +def delay_ms(ms): + time.sleep(ms / 1000.0) + +# ============================================================================= +# SPI HELPERS +# ============================================================================= +def _to_bytes(data): + if isinstance(data, (bytes, bytearray)): + return list(data) + return [int(x) & 0xFF for x in data] + +def spi_writebyte(data): + tx = _to_bytes(data) + for i in range(0, len(tx), 4096): + # first argument is data, second argument is speed in HZ, third argument is chunk-to-chunk delay in microseconds + _spi.xfer3(tx[i:i + 4096], 4000000, 0) + + + + + +def spi_writebyte2(data): + spi_writebyte(data) + + +# ============================================================================= +# EPD CONTROL +def epd_reset(): + digital_write(PIN_RST, 0) + delay_ms(200) + digital_write(PIN_RST, 1) + delay_ms(200) + +def wait_until_idle(timeout=30): + start = time.time() + while digital_read(PIN_BUSY) == 1: + if time.time() - start > timeout: + raise TimeoutError("EPD busy timeout") + time.sleep(0.05) + +# ============================================================================= +# INIT / EXIT +# ============================================================================= +def module_init(cleanup=False): + global _spi + + logger.info("Initializing Waveshare 4.2 G EPD") + + # GPIO setup + GPIO.setmode(GPIO.BOARD) + GPIO.setup(PIN_CS, GPIO.OUT) # <<< ADD THIS + GPIO.output(PIN_CS, GPIO.HIGH) # CS idle HIGH + GPIO.setup(PIN_DC, GPIO.OUT) + GPIO.setup(PIN_RST, GPIO.OUT) + GPIO.setup(PIN_BUSY, GPIO.IN) + + # if PIN_PWR >= 0: + # GPIO.setup(PIN_PWR, GPIO.OUT) + # GPIO.output(PIN_PWR, GPIO.HIGH) + # delay_ms(10) + + # SPI + _spi = spidev.SpiDev() + _spi.open(1, 0) # spidev1.0 → SPI1 CS0 + _spi.mode = 0 + _spi.max_speed_hz = SPI_HZ + _spi.bits_per_word = 8 + + + # Hardware reset + epd_reset() + wait_until_idle() + + logger.info("EPD initialized successfully") + return 0 + +def module_exit(cleanup=False): + global _spi + + logger.info("Cleaning up EPD") + + if _spi: + _spi.close() + _spi = None + + GPIO.cleanup() + logger.info("Cleanup complete") diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/100x100.bmp b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/100x100.bmp new file mode 100644 index 000000000..70f4584b2 Binary files /dev/null and b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/100x100.bmp differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/4.2inch_G-1.bmp b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/4.2inch_G-1.bmp new file mode 100644 index 000000000..337f4a5fc Binary files /dev/null and b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/4.2inch_G-1.bmp differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/Font.ttc b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/Font.ttc new file mode 100644 index 000000000..4cbb7c54c Binary files /dev/null and b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/pic/Font.ttc differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/setup.py b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/setup.py new file mode 100644 index 000000000..37d998efc --- /dev/null +++ b/E-paper_Separate_Program/4in2_e-Paper_G/RadxaZero/python/setup.py @@ -0,0 +1,21 @@ +import sys, os +from setuptools import setup + +dependencies = ['Pillow'] + +if os.path.exists('/sys/bus/platform/drivers/gpiomem-bcm2835'): + dependencies += ['RPi.GPIO', 'spidev'] +elif os.path.exists('/sys/bus/platform/drivers/gpio-x3'): + dependencies += ['Hobot.GPIO', 'spidev'] +else: + dependencies += ['Jetson.GPIO'] + +setup( + name='waveshare-epd', + description='Waveshare e-Paper Display', + author='Waveshare', + package_dir={'': 'lib'}, + packages=['waveshare_epd'], + install_requires=dependencies, +) + diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index 733f5963a..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2g.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2g.pyc deleted file mode 100644 index 501981d49..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2g.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc b/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index b0eeb4e04..000000000 Binary files a/E-paper_Separate_Program/4in2_e-Paper_G/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/4inch_e-Paper_E/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index 84479aa58..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5h.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5h.pyc deleted file mode 100644 index 8ada9d414..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5h.pyc and /dev/null differ diff --git a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc b/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index c7752da32..000000000 Binary files a/E-paper_Separate_Program/7in5_e-Paper_H/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ diff --git a/RadxaZero/python/examples/epd_4in2_V2_test.py b/RadxaZero/python/examples/epd_4in2_V2_test.py new file mode 100644 index 000000000..02b491ea0 --- /dev/null +++ b/RadxaZero/python/examples/epd_4in2_V2_test.py @@ -0,0 +1,183 @@ +#!/usr/bin/python +# -*- coding:utf-8 -*- +import sys +import os +picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') +libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') +if os.path.exists(libdir): + sys.path.append(libdir) + +import logging +from waveshare_epd import epd4in2_V2 +import time +from PIL import Image,ImageDraw,ImageFont +import traceback + +logging.basicConfig(level=logging.DEBUG) + +try: + logging.info("epd4in2 Demo") + + epd = epd4in2_V2.EPD() + logging.info("init and Clear") + epd.init() + epd.Clear() + + font24 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 24) + font18 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 18) + font35 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 35) + + if 0: + logging.info("E-paper refresh") + epd.init() + # Drawing on the Horizontal image + logging.info("1.Drawing on the Horizontal image...") + Himage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame + draw = ImageDraw.Draw(Himage) + draw.text((10, 0), 'hello world', font = font24, fill = 0) + draw.text((10, 20), '4.2inch V2 e-Paper', font = font24, fill = 0) + draw.text((150, 0), u'微雪电子', font = font24, fill = 0) + draw.line((20, 50, 70, 100), fill = 0) + draw.line((70, 50, 20, 100), fill = 0) + draw.rectangle((20, 50, 70, 100), outline = 0) + draw.line((165, 50, 165, 100), fill = 0) + draw.line((140, 75, 190, 75), fill = 0) + draw.arc((140, 50, 190, 100), 0, 360, fill = 0) + draw.rectangle((80, 50, 130, 100), fill = 0) + draw.chord((200, 50, 250, 100), 0, 360, fill = 0) + epd.display(epd.getbuffer(Himage)) + time.sleep(2) + + logging.info("2.read bmp file") + Himage = Image.open(os.path.join(picdir, '4in2.bmp')) + epd.display(epd.getbuffer(Himage)) + time.sleep(2) + + # Drawing on the Vertical image + logging.info("3.read bmp file on window") + Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame + bmp = Image.open(os.path.join(picdir, '100x100.bmp')) + Himage2.paste(bmp, (50,10)) + epd.display(epd.getbuffer(Himage2)) + time.sleep(2) + + logging.info("4.Drawing on the Vertical image...") + Limage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame + draw = ImageDraw.Draw(Limage) + draw.text((2, 0), 'hello world', font = font18, fill = 0) + draw.text((2, 20), '4.2inch V2 epd', font = font18, fill = 0) + draw.text((20, 50), u'微雪电子', font = font18, fill = 0) + draw.line((10, 90, 60, 140), fill = 0) + draw.line((60, 90, 10, 140), fill = 0) + draw.rectangle((10, 90, 60, 140), outline = 0) + draw.line((95, 90, 95, 140), fill = 0) + draw.line((70, 115, 120, 115), fill = 0) + draw.arc((70, 90, 120, 140), 0, 360, fill = 0) + draw.rectangle((10, 150, 60, 200), fill = 0) + draw.chord((70, 150, 120, 200), 0, 360, fill = 0) + epd.display(epd.getbuffer(Limage)) + time.sleep(1) + + else: + logging.info("E-paper refreshes quickly") + # Drawing on the Horizontal image + epd.init_fast(epd.Seconds_1_5S) + logging.info("1.Drawing on the Horizontal image...") + Himage = Image.new('1', (epd.width, epd.height), 255) # 255: clear the frame + draw = ImageDraw.Draw(Himage) + draw.text((10, 0), 'hello world', font = font24, fill = 0) + draw.text((10, 20), '4.2inch V2 e-Paper', font = font24, fill = 0) + draw.text((150, 0), u'微雪电子', font = font24, fill = 0) + draw.line((20, 50, 70, 100), fill = 0) + draw.line((70, 50, 20, 100), fill = 0) + draw.rectangle((20, 50, 70, 100), outline = 0) + draw.line((165, 50, 165, 100), fill = 0) + draw.line((140, 75, 190, 75), fill = 0) + draw.arc((140, 50, 190, 100), 0, 360, fill = 0) + draw.rectangle((80, 50, 130, 100), fill = 0) + draw.chord((200, 50, 250, 100), 0, 360, fill = 0) + epd.display_Fast(epd.getbuffer(Himage)) + time.sleep(2) + + logging.info("2.read bmp file") + Himage = Image.open(os.path.join(picdir, '4in2.bmp')) + epd.display_Fast(epd.getbuffer(Himage)) + time.sleep(2) + + # Drawing on the Vertical image + logging.info("3.read bmp file on window") + Himage2 = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame + bmp = Image.open(os.path.join(picdir, '100x100.bmp')) + Himage2.paste(bmp, (50,10)) + epd.display_Fast(epd.getbuffer(Himage2)) + time.sleep(2) + + logging.info("4.Drawing on the Vertical image...") + Limage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame + draw = ImageDraw.Draw(Limage) + draw.text((2, 0), 'hello world', font = font18, fill = 0) + draw.text((2, 20), '4.2inch V2 epd', font = font18, fill = 0) + draw.text((20, 50), u'微雪电子', font = font18, fill = 0) + draw.line((10, 90, 60, 140), fill = 0) + draw.line((60, 90, 10, 140), fill = 0) + draw.rectangle((10, 90, 60, 140), outline = 0) + draw.line((95, 90, 95, 140), fill = 0) + draw.line((70, 115, 120, 115), fill = 0) + draw.arc((70, 90, 120, 140), 0, 360, fill = 0) + draw.rectangle((10, 150, 60, 200), fill = 0) + draw.chord((70, 150, 120, 200), 0, 360, fill = 0) + epd.display_Fast(epd.getbuffer(Limage)) + time.sleep(1) + + + # partial update + logging.info("5.show time...") + num = 0 + while (True): + draw.rectangle((140, 80, 240, 105), fill = 255) + draw.text((140, 80), time.strftime('%H:%M:%S'), font = font24, fill = 0) + epd.display_Partial(epd.getbuffer(Limage)) + num = num + 1 + time.sleep(0.5) + if(num == 10): + break + + '''4Gray display''' + logging.info("6.4Gray display--------------------------------") + epd.Init_4Gray() + + Limage = Image.new('L', (epd.width, epd.height), 0) # 255: clear the frame + draw = ImageDraw.Draw(Limage) + draw.text((20, 0), u'微雪电子', font = font35, fill = epd.GRAY1) + draw.text((20, 35), u'微雪电子', font = font35, fill = epd.GRAY2) + draw.text((20, 70), u'微雪电子', font = font35, fill = epd.GRAY3) + draw.text((40, 110), 'hello world', font = font18, fill = epd.GRAY1) + draw.line((10, 140, 60, 190), fill = epd.GRAY1) + draw.line((60, 140, 10, 190), fill = epd.GRAY1) + draw.rectangle((10, 140, 60, 190), outline = epd.GRAY1) + draw.line((95, 140, 95, 190), fill = epd.GRAY1) + draw.line((70, 165, 120, 165), fill = epd.GRAY1) + draw.arc((70, 140, 120, 190), 0, 360, fill = epd.GRAY1) + draw.rectangle((10, 200, 60, 250), fill = epd.GRAY1) + draw.chord((70, 200, 120, 250), 0, 360, fill = epd.GRAY1) + epd.display_4Gray(epd.getbuffer_4Gray(Limage)) + time.sleep(3) + + #display 4Gra bmp + Himage = Image.open(os.path.join(picdir, '4in2_Scale_1.bmp')) + epd.display_4Gray(epd.getbuffer_4Gray(Himage)) + time.sleep(4) + + logging.info("Clear...") + epd.init() + epd.Clear() + logging.info("Goto Sleep...") + epd.sleep() + +except IOError as e: + logging.info(e) + +except KeyboardInterrupt: + logging.info("ctrl + c:") + epd4in2_V2.epdconfig.module_exit(cleanup=True) + exit() diff --git a/RadxaZero/python/lib/RADXAZero/GPIO.py b/RadxaZero/python/lib/RADXAZero/GPIO.py new file mode 100644 index 000000000..30464e41d --- /dev/null +++ b/RadxaZero/python/lib/RADXAZero/GPIO.py @@ -0,0 +1,138 @@ +import gpiod + +# ----- Public constants (RPi.GPIO compatible) ----- +BOARD = 10 + +IN = 0 +OUT = 1 + +LOW = 0 +HIGH = 1 + +# ----- Internal state ----- +_mode = None +_lines = {} + +# ----- Voltage domains ----- +PIN_VOLTAGE = { + # 3.3V safe GPIO + 3: "3.3V", 5: "3.3V", + 7: "3.3V", 8: "3.3V", + 10: "3.3V", 11: "3.3V", + 19: "3.3V", 21: "3.3V", + 22: "3.3V", 23: "3.3V", + 24: "3.3V", 32: "3.3V", + 34: "3.3V", 36: "5V_OD", + 37: "3.3V", 38: "3.3V", + 40: "3.3V", + + # 1.8V logic + 12: "1.8V", + 13: "1.8V", + 16: "1.8V", + 18: "1.8V", +} + + +# ----- Radxa Zero physical pin map ----- +PINMAP = { + 3: ("gpiochip0", 63), + 5: ("gpiochip1", 5), # ⚠ USB related + 7: ("gpiochip1", 3), + 8: ("gpiochip1", 0), + 10: ("gpiochip1", 1), + 11: ("gpiochip1", 2), + 12: ("gpiochip0", 74), + 13: ("gpiochip0", 76), + 16: ("gpiochip0", 75), + 18: ("gpiochip0", 73), + 19: ("gpiochip0", 20), + 21: ("gpiochip0", 21), + 22: ("gpiochip0", 48), # open-drain + 23: ("gpiochip0", 23), + 24: ("gpiochip0", 22), + 27: ("gpiochip1", 3), + 28: ("gpiochip1", 2), + 32: ("gpiochip1", 4), + 34: ("gpiochip1", 8), + 36: ("gpiochip0", 24), # ⚠ 5V open-drain + 37: ("gpiochip1", 9), + 38: ("gpiochip1", 10), + 40: ("gpiochip1", 11), +} + +# ----- API ----- + +def setmode(mode): + global _mode + if mode != BOARD: + raise ValueError("Only GPIO.BOARD mode is supported") + _mode = mode + +def setup(pin, direction, initial=None): + if _mode != BOARD: + raise RuntimeError("Call GPIO.setmode(GPIO.BOARD) first") + + if pin not in PINMAP: + raise ValueError(f"Invalid pin: {pin}") + + voltage = PIN_VOLTAGE.get(pin, "unknown") + if voltage == "1.8V": + print( + f"⚠ WARNING: Pin {pin} is 1.8V logic. " + "Do NOT connect directly to 3.3V devices." + ) + elif voltage == "5V_OD": + print( + f"⚠ WARNING: Pin {pin} is open-drain / 5V tolerant. " + "External pull-up required." + ) + + chip_name, line_offset = PINMAP[pin] + chip = gpiod.Chip(chip_name) + line = chip.get_line(line_offset) + + if direction == OUT: + line.request( + consumer="RADXAZero.GPIO", + type=gpiod.LINE_REQ_DIR_OUT, + default_vals=[initial if initial is not None else 0], + ) + elif direction == IN: + line.request( + consumer="RADXAZero.GPIO", + type=gpiod.LINE_REQ_DIR_IN, + ) + else: + raise ValueError("Invalid direction") + + _lines[pin] = (chip, line) + + +def output(pin, value): + if pin not in _lines: + raise RuntimeError(f"Pin {pin} not set up") + + _, line = _lines[pin] + line.set_value(1 if value else 0) + + +def input(pin): + if pin not in _lines: + raise RuntimeError(f"Pin {pin} not set up") + + _, line = _lines[pin] + return line.get_value() + + +def cleanup(pin=None): + if pin is None: + pins = list(_lines.keys()) + else: + pins = [pin] + + for p in pins: + if p in _lines: + chip, line = _lines.pop(p) + line.release() + chip.close() diff --git a/RadxaZero/python/lib/waveshare_epd/__init__.py b/RadxaZero/python/lib/waveshare_epd/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/RadxaZero/python/lib/waveshare_epd/epd4in2_V2.py b/RadxaZero/python/lib/waveshare_epd/epd4in2_V2.py new file mode 100644 index 000000000..61be7ec00 --- /dev/null +++ b/RadxaZero/python/lib/waveshare_epd/epd4in2_V2.py @@ -0,0 +1,530 @@ +# ***************************************************************************** +# * | File : epd4in2_V2.py +# * | Author : Waveshare team +# * | Function : Electronic paper driver +# * | Info : +# *---------------- +# * | This version: V1.0 +# * | Date : 2023-09-13 +# # | Info : python demo +# ----------------------------------------------------------------------------- +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documnetation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS OR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + + +import logging +from . import epdconfig +from PIL import Image +import RADXAZero.GPIO as GPIO + +# Display resolution +EPD_WIDTH = 400 +EPD_HEIGHT = 300 + +GRAY1 = 0xff # white +GRAY2 = 0xC0 +GRAY3 = 0x80 # gray +GRAY4 = 0x00 # Blackest + +logger = logging.getLogger(__name__) + + +class EPD: + def __init__(self): + self.reset_pin = epdconfig.RST_PIN + self.dc_pin = epdconfig.DC_PIN + self.busy_pin = epdconfig.BUSY_PIN + self.cs_pin = epdconfig.CS_PIN + self.width = EPD_WIDTH + self.height = EPD_HEIGHT + self.Seconds_1_5S = 0 + self.Seconds_1S = 1 + self.GRAY1 = GRAY1 # white + self.GRAY2 = GRAY2 + self.GRAY3 = GRAY3 # gray + self.GRAY4 = GRAY4 # Blackest + + + LUT_ALL=[ 0x01, 0x0A, 0x1B, 0x0F, 0x03, 0x01, 0x01, + 0x05, 0x0A, 0x01, 0x0A, 0x01, 0x01, 0x01, + 0x05, 0x08, 0x03, 0x02, 0x04, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x02, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x0A, 0x1B, 0x0F, 0x03, 0x01, 0x01, + 0x05, 0x4A, 0x01, 0x8A, 0x01, 0x01, 0x01, + 0x05, 0x48, 0x03, 0x82, 0x84, 0x01, 0x01, + 0x01, 0x84, 0x84, 0x82, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x0A, 0x1B, 0x8F, 0x03, 0x01, 0x01, + 0x05, 0x4A, 0x01, 0x8A, 0x01, 0x01, 0x01, + 0x05, 0x48, 0x83, 0x82, 0x04, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x02, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x8A, 0x1B, 0x8F, 0x03, 0x01, 0x01, + 0x05, 0x4A, 0x01, 0x8A, 0x01, 0x01, 0x01, + 0x05, 0x48, 0x83, 0x02, 0x04, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x02, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x8A, 0x9B, 0x8F, 0x03, 0x01, 0x01, + 0x05, 0x4A, 0x01, 0x8A, 0x01, 0x01, 0x01, + 0x05, 0x48, 0x03, 0x42, 0x04, 0x01, 0x01, + 0x01, 0x04, 0x04, 0x42, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x07, 0x17, 0x41, 0xA8, + 0x32, 0x30 ] + # Hardware reset + def reset(self): + epdconfig.digital_write(self.reset_pin, 1) + epdconfig.delay_ms(100) + epdconfig.digital_write(self.reset_pin, 0) + epdconfig.delay_ms(2) + epdconfig.digital_write(self.reset_pin, 1) + epdconfig.delay_ms(100) + + def send_command(self, command): + epdconfig.digital_write(self.dc_pin, 0) + epdconfig.digital_write(self.cs_pin, 0) + epdconfig.spi_writebyte([command]) + epdconfig.digital_write(self.cs_pin, 1) + + def send_data(self, data): + epdconfig.digital_write(self.dc_pin, 1) + epdconfig.digital_write(self.cs_pin, 0) + epdconfig.spi_writebyte([data]) + epdconfig.digital_write(self.cs_pin, 1) + + # send a lot of data + def send_data2(self, data): + epdconfig.digital_write(self.dc_pin, 1) + epdconfig.digital_write(self.cs_pin, 0) + epdconfig.spi_writebyte2(data) + epdconfig.digital_write(self.cs_pin, 1) + + def ReadBusy(self): + logger.debug("e-Paper busy") + while epdconfig.is_busy(): + epdconfig.delay_ms(20) + logger.debug("e-Paper busy release") + + def TurnOnDisplay(self): + self.send_command(0x22) #Display Update Control + self.send_data(0xF7) + self.send_command(0x20) #Activate Display Update Sequence + self.ReadBusy() + + def TurnOnDisplay_Fast(self): + self.send_command(0x22) #Display Update Control + self.send_data(0xC7) + self.send_command(0x20) #Activate Display Update Sequence + self.ReadBusy() + + def TurnOnDisplay_Partial(self): + self.send_command(0x22) #Display Update Control + self.send_data(0xFF) + self.send_command(0x20) #Activate Display Update Sequence + self.ReadBusy() + + def TurnOnDisplay_4GRAY(self): + self.send_command(0x22) #Display Update Control + self.send_data(0xCF) + self.send_command(0x20) #Activate Display Update Sequence + self.ReadBusy() + + def init(self): + if epdconfig.module_init() != 0: + return -1 + # EPD hardware init start + self.reset() + self.ReadBusy() + + self.send_command(0x12) #SWRESET + self.ReadBusy() + + self.send_command(0x21) # Display update control + self.send_data(0x40) + self.send_data(0x00) + + self.send_command(0x3C) # BorderWavefrom + self.send_data(0x05) + + self.send_command(0x11) # data entry mode + self.send_data(0x03) # X-mode + + self.send_command(0x44) + self.send_data(0x00) + self.send_data(0x31) + + self.send_command(0x45) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x2B) + self.send_data(0x01) + + self.send_command(0x4E) + self.send_data(0x00) + + self.send_command(0x4F) + self.send_data(0x00) + self.send_data(0x00) + self.ReadBusy() + + return 0 + + def init_fast(self, mode): + if epdconfig.module_init() != 0: + return -1 + # EPD hardware init start + self.reset() + self.ReadBusy() + + self.send_command(0x12) #SWRESET + self.ReadBusy() + + self.send_command(0x21) # Display update control + self.send_data(0x40) + self.send_data(0x00) + + self.send_command(0x3C) # BorderWavefrom + self.send_data(0x05) + + if mode == self.Seconds_1_5S: + self.send_command(0x1A) + self.send_data(0x6E) + else : + self.send_command(0x1A) + self.send_data(0x5A) + + self.send_command(0x22) # Load temperature value + self.send_data(0x91) + self.send_command(0x20) + self.ReadBusy() + + self.send_command(0x11) # data entry mode + self.send_data(0x03) # X-mode + + self.send_command(0x44) + self.send_data(0x00) + self.send_data(0x31) + + self.send_command(0x45) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x2B) + self.send_data(0x01) + + self.send_command(0x4E) + self.send_data(0x00) + + self.send_command(0x4F) + self.send_data(0x00) + self.send_data(0x00) + self.ReadBusy() + + return 0 + + def Lut(self): + self.send_command(0x32) + for i in range(227): + self.send_data(self.LUT_ALL[i]) + + self.send_command(0x3F) + self.send_data(self.LUT_ALL[227]) + + self.send_command(0x03) + self.send_data(self.LUT_ALL[228]) + + self.send_command(0x04) + self.send_data(self.LUT_ALL[229]) + self.send_data(self.LUT_ALL[230]) + self.send_data(self.LUT_ALL[231]) + + self.send_command(0x2c) + self.send_data(self.LUT_ALL[232]) + + + + def Init_4Gray(self): + if epdconfig.module_init() != 0: + return -1 + # EPD hardware init start + self.reset() + self.ReadBusy() + + self.send_command(0x12) #SWRESET + self.ReadBusy() + + self.send_command(0x21) # Display update control + self.send_data(0x00) + self.send_data(0x00) + + self.send_command(0x3C) # BorderWavefrom + self.send_data(0x03) + + self.send_command(0x0C) # BTST + self.send_data(0x8B) # 8B + self.send_data(0x9C) # 9C + self.send_data(0xA4) # 96 A4 + self.send_data(0x0F) # 0F + + self.Lut() + + self.send_command(0x11) # data entry mode + self.send_data(0x03) # X-mode + + self.send_command(0x44) + self.send_data(0x00) + self.send_data(0x31) + + self.send_command(0x45) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x2B) + self.send_data(0x01) + + self.send_command(0x4E) + self.send_data(0x00) + + self.send_command(0x4F) + self.send_data(0x00) + self.send_data(0x00) + self.ReadBusy() + + return 0 + + def getbuffer(self, image): + # logger.debug("bufsiz = ",int(self.width/8) * self.height) + buf = [0xFF] * (int(self.width / 8) * self.height) + image_monocolor = image.convert('1') + imwidth, imheight = image_monocolor.size + pixels = image_monocolor.load() + # logger.debug("imwidth = %d, imheight = %d",imwidth,imheight) + if imwidth == self.width and imheight == self.height: + logger.debug("Horizontal") + for y in range(imheight): + for x in range(imwidth): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] == 0: + buf[int((x + y * self.width) / 8)] &= ~(0x80 >> (x % 8)) + elif imwidth == self.height and imheight == self.width: + logger.debug("Vertical") + for y in range(imheight): + for x in range(imwidth): + newx = y + newy = self.height - x - 1 + if pixels[x, y] == 0: + buf[int((newx + newy * self.width) / 8)] &= ~(0x80 >> (y % 8)) + return buf + + def getbuffer_4Gray(self, image): + # logger.debug("bufsiz = ",int(self.width/8) * self.height) + buf = [0xFF] * (int(self.width / 4) * self.height) + image_monocolor = image.convert('L') + imwidth, imheight = image_monocolor.size + pixels = image_monocolor.load() + i = 0 + # logger.debug("imwidth = %d, imheight = %d",imwidth,imheight) + if imwidth == self.width and imheight == self.height: + logger.debug("Vertical") + for y in range(imheight): + for x in range(imwidth): + # Set the bits for the column of pixels at the current position. + if pixels[x, y] == 0xC0: + pixels[x, y] = 0x80 + elif pixels[x, y] == 0x80: + pixels[x, y] = 0x40 + i = i + 1 + if i % 4 == 0: + buf[int((x + (y * self.width)) / 4)] = ( + (pixels[x - 3, y] & 0xc0) | (pixels[x - 2, y] & 0xc0) >> 2 | ( + pixels[x - 1, y] & 0xc0) >> 4 | (pixels[x, y] & 0xc0) >> 6) + + elif imwidth == self.height and imheight == self.width: + logger.debug("Horizontal") + for x in range(imwidth): + for y in range(imheight): + newx = y + newy = x + if pixels[x, y] == 0xC0: + pixels[x, y] = 0x80 + elif pixels[x, y] == 0x80: + pixels[x, y] = 0x40 + i = i + 1 + if i % 4 == 0: + buf[int((newx + (newy * self.width)) / 4)] = ( + (pixels[x, y - 3] & 0xc0) | (pixels[x, y - 2] & 0xc0) >> 2 | ( + pixels[x, y - 1] & 0xc0) >> 4 | (pixels[x, y] & 0xc0) >> 6) + + return buf + + def Clear(self): + if self.width % 8 == 0: + linewidth = int(self.width / 8) + else: + linewidth = int(self.width / 8) + 1 + + self.send_command(0x24) + self.send_data2([0xff] * int(self.height * linewidth)) + + self.send_command(0x26) + self.send_data2([0xff] * int(self.height * linewidth)) + + self.TurnOnDisplay() + + def display(self, image): + self.send_command(0x24) + self.send_data2(image) + + self.send_command(0x26) + self.send_data2(image) + + self.TurnOnDisplay() + + def display_Fast(self, image): + self.send_command(0x24) + self.send_data2(image) + + self.send_command(0x26) + self.send_data2(image) + + self.TurnOnDisplay_Fast() + + def display_Partial(self, Image): + self.send_command(0x3C) # BorderWavefrom + self.send_data(0x80) + + self.send_command(0x21) # Display update control + self.send_data(0x00) + self.send_data(0x00) + + self.send_command(0x3C) # BorderWavefrom + self.send_data(0x80) + + self.send_command(0x44) + self.send_data(0x00) + self.send_data(0x31) + + self.send_command(0x45) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x2B) + self.send_data(0x01) + + self.send_command(0x4E) + self.send_data(0x00) + + self.send_command(0x4F) + self.send_data(0x00) + self.send_data(0x00) + + self.send_command(0x24) # WRITE_RAM + self.send_data2(Image) + self.TurnOnDisplay_Partial() + + def display_4Gray(self, image): + if self.width % 8 == 0: + linewidth = int(self.width / 8) + else: + linewidth = int(self.width / 8) + 1 + + buf = [0x00] * self.height * linewidth + + self.send_command(0x24) + for i in range(0, int(EPD_WIDTH * EPD_HEIGHT / 8)): # EPD_WIDTH * EPD_HEIGHT / 4 + temp3 = 0 + for j in range(0, 2): + temp1 = image[i * 2 + j] + for k in range(0, 2): + temp2 = temp1 & 0xC0 + if temp2 == 0xC0: + temp3 |= 0x01 # white + elif temp2 == 0x00: + temp3 |= 0x00 # black + elif temp2 == 0x80: + temp3 |= 0x00 # gray1 + else: # 0x40 + temp3 |= 0x01 # gray2 + temp3 <<= 1 + + temp1 <<= 2 + temp2 = temp1 & 0xC0 + if temp2 == 0xC0: # white + temp3 |= 0x01 + elif temp2 == 0x00: # black + temp3 |= 0x00 + elif temp2 == 0x80: + temp3 |= 0x00 # gray1 + else: # 0x40 + temp3 |= 0x01 # gray2 + if j != 1 or k != 1: + temp3 <<= 1 + temp1 <<= 2 + buf[i] = temp3 + self.send_data2(buf) + + self.send_command(0x26) + for i in range(0, int(EPD_WIDTH * EPD_HEIGHT / 8)): + temp3 = 0 + for j in range(0, 2): + temp1 = image[i * 2 + j] + for k in range(0, 2): + temp2 = temp1 & 0xC0 + if temp2 == 0xC0: + temp3 |= 0x01 # white + elif temp2 == 0x00: + temp3 |= 0x00 # black + elif temp2 == 0x80: + temp3 |= 0x01 # gray1 + else: # 0x40 + temp3 |= 0x00 # gray2 + temp3 <<= 1 + + temp1 <<= 2 + temp2 = temp1 & 0xC0 + if temp2 == 0xC0: # white + temp3 |= 0x01 + elif temp2 == 0x00: # black + temp3 |= 0x00 + elif temp2 == 0x80: + temp3 |= 0x01 # gray1 + else: # 0x40 + temp3 |= 0x00 # gray2 + if j != 1 or k != 1: + temp3 <<= 1 + temp1 <<= 2 + buf[i] = temp3 + self.send_data2(buf) + + self.TurnOnDisplay_4GRAY() + # pass + + def sleep(self): + self.send_command(0x10) # DEEP_SLEEP + self.send_data(0x01) + + epdconfig.delay_ms(2000) + epdconfig.module_exit() + +### END OF FILE ### diff --git a/RadxaZero/python/lib/waveshare_epd/epdconfig.py b/RadxaZero/python/lib/waveshare_epd/epdconfig.py new file mode 100644 index 000000000..ae4bfdf78 --- /dev/null +++ b/RadxaZero/python/lib/waveshare_epd/epdconfig.py @@ -0,0 +1,164 @@ +# epdconfig.py +# Waveshare 4.2" G (B/W/R) for Radxa Zero +# Uses RADXAZero.GPIO + hardware SPI + +import os +import time +import logging +import spidev +import RADXAZero.GPIO as GPIO + +logger = logging.getLogger(__name__) + +# ============================================================================= +# SPI CONFIGURATION +# ============================================================================= +SPI_DEV = os.getenv("EPD_SPI_DEV", "/dev/spidev1.0") +SPI_HZ = int(os.getenv("EPD_SPI_HZ", "1000000")) + + +# ============================================================================= +# GPIO CONFIGURATION (BOARD numbering) +# ============================================================================= +PIN_CS = 32 +PIN_DC = 7 +PIN_RST = 11 +PIN_BUSY = 10 + +# these are connected but not sure if they are used +# DIN = 19 +# CLK = 23 + +BUSY_ACTIVE_LOW = os.getenv("EPD_BUSY_ACTIVE_LOW", "0") == "1" + +# Backward compatibility +DC_PIN = PIN_DC +RST_PIN = PIN_RST +BUSY_PIN = PIN_BUSY +PWR_PIN = -1 +CS_PIN = PIN_CS + +# ============================================================================= +# INTERNAL STATE +# ============================================================================= +_spi = None +_is_setup = False + +# ============================================================================= +# GPIO HELPERS (RPi.GPIO compatible) +# ============================================================================= +def digital_write(pin, value): + if pin < 0: + return + print(f"GPIO {pin} <- {'H' if value else 'L'}") + GPIO.output(pin, GPIO.HIGH if value else GPIO.LOW) + + +def digital_read(pin): + if pin < 0: + return 0 + + return GPIO.input(pin) + + +def is_busy(): + if PIN_BUSY < 0: + return False + + raw = GPIO.input(PIN_BUSY) + if BUSY_ACTIVE_LOW: + return raw == GPIO.LOW + return raw == GPIO.HIGH + + +def delay_ms(ms): + time.sleep(ms / 1000.0) + +# ============================================================================= +# SPI HELPERS +# ============================================================================= +def _to_bytes(data): + if isinstance(data, (bytes, bytearray)): + return list(data) + return [int(x) & 0xFF for x in data] + +def spi_writebyte(data): + tx = _to_bytes(data) + for i in range(0, len(tx), 4096): + # first argument is data, second argument is speed in HZ, third argument is chunk-to-chunk delay in microseconds + _spi.xfer3(tx[i:i + 4096], 4000000, 0) + + + + +def spi_writebyte2(data): + spi_writebyte(data) + + +# ============================================================================= +# EPD CONTROL +def epd_reset(): + digital_write(PIN_RST, 0) + delay_ms(200) + digital_write(PIN_RST, 1) + delay_ms(200) + +def wait_until_idle(timeout=30): + start = time.time() + while is_busy(): + if time.time() - start > timeout: + raise TimeoutError("EPD busy timeout") + time.sleep(0.05) + +# ============================================================================= +# INIT / EXIT +# ============================================================================= +def module_init(cleanup=False): + global _spi, _is_setup + + if _is_setup: + return 0 + + logger.info("Initializing Waveshare 4.2 V2.2 Monochrome EPD") + + # GPIO setup + GPIO.setmode(GPIO.BOARD) + GPIO.setup(PIN_CS, GPIO.OUT) # <<< ADD THIS + GPIO.output(PIN_CS, GPIO.HIGH) # CS idle HIGH + GPIO.setup(PIN_DC, GPIO.OUT) + GPIO.setup(PIN_RST, GPIO.OUT) + GPIO.setup(PIN_BUSY, GPIO.IN) + + # if PIN_PWR >= 0: + # GPIO.setup(PIN_PWR, GPIO.OUT) + # GPIO.output(PIN_PWR, GPIO.HIGH) + # delay_ms(10) + + # SPI + _spi = spidev.SpiDev() + _spi.open(1, 0) # spidev1.0 → SPI1 CS0 + _spi.mode = 0 + _spi.max_speed_hz = SPI_HZ + _spi.bits_per_word = 8 + + + # Hardware reset + epd_reset() + wait_until_idle() + + _is_setup = True + logger.info("EPD initialized successfully") + return 0 + +def module_exit(cleanup=False): + global _spi, _is_setup + + logger.info("Cleaning up EPD") + + if _spi: + _spi.close() + _spi = None + + GPIO.cleanup() + _is_setup = False + logger.info("Cleanup complete") diff --git a/RadxaZero/python/pic/100x100.bmp b/RadxaZero/python/pic/100x100.bmp new file mode 100644 index 000000000..70f4584b2 Binary files /dev/null and b/RadxaZero/python/pic/100x100.bmp differ diff --git a/RadxaZero/python/pic/4in2.bmp b/RadxaZero/python/pic/4in2.bmp new file mode 100644 index 000000000..b380a1cbf Binary files /dev/null and b/RadxaZero/python/pic/4in2.bmp differ diff --git a/RadxaZero/python/pic/4in2_Scale_1.bmp b/RadxaZero/python/pic/4in2_Scale_1.bmp new file mode 100644 index 000000000..8a9555db5 Binary files /dev/null and b/RadxaZero/python/pic/4in2_Scale_1.bmp differ diff --git a/RadxaZero/python/pic/Font.ttc b/RadxaZero/python/pic/Font.ttc new file mode 100644 index 000000000..4cbb7c54c Binary files /dev/null and b/RadxaZero/python/pic/Font.ttc differ diff --git a/RadxaZero/python/setup.py b/RadxaZero/python/setup.py new file mode 100644 index 000000000..37d998efc --- /dev/null +++ b/RadxaZero/python/setup.py @@ -0,0 +1,21 @@ +import sys, os +from setuptools import setup + +dependencies = ['Pillow'] + +if os.path.exists('/sys/bus/platform/drivers/gpiomem-bcm2835'): + dependencies += ['RPi.GPIO', 'spidev'] +elif os.path.exists('/sys/bus/platform/drivers/gpio-x3'): + dependencies += ['Hobot.GPIO', 'spidev'] +else: + dependencies += ['Jetson.GPIO'] + +setup( + name='waveshare-epd', + description='Waveshare e-Paper Display', + author='Waveshare', + package_dir={'': 'lib'}, + packages=['waveshare_epd'], + install_requires=dependencies, +) + diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc deleted file mode 100644 index f7d5914f7..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__init__.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 724ca739f..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-311.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-312.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 797231f61..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-312.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 5ca67a38b..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/__init__.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc deleted file mode 100644 index 28dec0899..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd13in3k.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc deleted file mode 100644 index 577202a32..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V3.cpython-311.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc deleted file mode 100644 index 439057cae..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in13_V4.cpython-311.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in7.cpython-312.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in7.cpython-312.pyc deleted file mode 100644 index d4bf7e9a4..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd2in7.cpython-312.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc deleted file mode 100644 index 96056fae1..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd4in2b_V2.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc deleted file mode 100644 index 3058cf2b3..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79b.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc deleted file mode 100644 index 6ae979661..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in79g.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc deleted file mode 100644 index 15f984a2c..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd5in83b_V2.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc deleted file mode 100644 index 017b934fd..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in3e.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc deleted file mode 100644 index ef19f4099..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5_V2.cpython-311.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc deleted file mode 100644 index c3deb7396..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epd7in5b_V2.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc deleted file mode 100644 index 0cc2cf054..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-311.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-312.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-312.pyc deleted file mode 100644 index 7e1c1085c..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-312.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc deleted file mode 100644 index 4d0111dc0..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/__pycache__/epdconfig.cpython-37.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2b_V2.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2b_V2.pyc deleted file mode 100644 index 7152bbb74..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2b_V2.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2b_V2_old.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2b_V2_old.pyc deleted file mode 100644 index 565e5be38..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2b_V2_old.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3e.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3e.pyc deleted file mode 100644 index 589639b30..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3e.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3f.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3f.pyc deleted file mode 100644 index 76f7c31e3..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in3f.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.pyc deleted file mode 100644 index 15b87c6df..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.pyc and /dev/null differ diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc deleted file mode 100644 index be4996baf..000000000 Binary files a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epdconfig.pyc and /dev/null differ