epdlib


Nameepdlib JSON
Version 0.6.5.1 PyPI version JSON
download
home_pagehttps://github.com/txoof/epdlib
Summarylibrary for creating dynamic layouts for frame-buffered devices
upload_time2024-03-25 19:56:48
maintainerNone
docs_urlNone
authorAaron ciuffo
requires_python>=3.7
licenseNone
keywords graphics e-paper display waveshare
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # epdlib v0.6

EpdLib provides an interface for creating and displaying scalable layouts that work with most of WaveShare's EPaper displays (EPD). The `Layout` module can also be used for generating layouts for any screen-buffered display that does not require fast updates. 

EpdLib provides classes for interfacing with the screen (`Screen`), building layouts that will work at any resolution (`Layout`), and blocks that are used to assemble layouts (`Block`). EpdLib makes it trivial to build a project that will work on almost any WaveShare display without worrying about the resolution or recoding the display functions.

![3x2 Sample](./docs/weather_3x2.png)

![5x5 Sample](./docs/weather_5x5.png)

EpdLib supports almost all of WaveShare's EPD screens. See the [Supported Screens](#supported-screens) below.

* 7-Color screens are supported in full color
* HD Screens are supported in 8 bit gray and support partial refresh (~1 second)
* All 2 and 3 color screens are supported in 1 bit (black and white) only

## Changes

See the [ChangeLog](./changes.md) for details

### v0.6

* Add support for 8-Color WaveShare screens to Block, Screen and Layout
* All Blocks and Layouts now support "RGB" content
* Layouts and blocks can now be dynamically updated during runtime
* `Layout.layout` dictionaries must contain key `type` that matches the block type
* Layouts support HTML standard color names and map [RED, ORANGE, YELLOW, GREEN, BLUE, BLACK, WHITE] to proper WaveShare Values

## Dependencies

Python Modules:
* Pillow: System dependencies for Pillow:
    * libopenjp2-7
    * libtiff5
* RPi.GPIO
* spidev: ensure SPI is enabled on the pi
* waveshare-epd (Non IT8951 based panels): see [notes](#notes) below for installation instructions
    * this is for interacting with waveshare epaper displays and is not strictly needed to use the Block and Layout objects.
* IT8951 (IT8951 based panels): see [notes](#notes) below for installation instructions


## Modules:

* [Block](./docs/Block.md) - image and text blocks that can be used to create a layout
* [Layout](./docs/Layout.md) - create layouts from Blocks that will work on nearly any WaveShare screen automagically
* [Screen](./docs/Screen.md) - simple interface for writing to WaveShare EPD devices

## Supported Screens


|Screen            |Supported      |Mode          |
|:-----------------|:--------------|:-------------|
|00. epd13in3k     |True           |"1" 1 bit     |
|01. epd1in02      |True           |"1" 1 bit     |
|02. epd1in54      |True           |"1" 1 bit     |
|03. epd1in54_V2   |True           |"1" 1 bit     |
|04. epd1in54b     |True           |"1" 1 bit     |
|05. epd1in54b_V2  |True           |"1" 1 bit     |
|06. epd1in54c     |True           |"1" 1 bit     |
|07. epd1in64g     |True           |"1" 1 bit     |
|08. epd2in13      |True           |"1" 1 bit     |
|09. epd2in13_V2   |True           |"1" 1 bit     |
|10. epd2in13_V3   |True           |"1" 1 bit     |
|11. epd2in13_V4   |True           |"1" 1 bit     |
|12. epd2in13b_V3  |True           |"1" 1 bit     |
|13. epd2in13b_V4  |True           |"1" 1 bit     |
|14. epd2in13bc    |True           |"1" 1 bit     |
|15. epd2in13d     |False          |Unsupported   |
|16. epd2in13g     |True           |"1" 1 bit     |
|17. epd2in36g     |True           |"1" 1 bit     |
|18. epd2in66      |True           |"1" 1 bit     |
|19. epd2in66b     |True           |"1" 1 bit     |
|20. epd2in66g     |True           |"1" 1 bit     |
|21. epd2in7       |True           |"1" 1 bit     |
|22. epd2in7_V2    |True           |"1" 1 bit     |
|23. epd2in7b      |True           |"1" 1 bit     |
|24. epd2in7b_V2   |True           |"1" 1 bit     |
|25. epd2in9       |True           |"1" 1 bit     |
|26. epd2in9_V2    |True           |"1" 1 bit     |
|27. epd2in9b_V3   |True           |"1" 1 bit     |
|28. epd2in9b_V4   |True           |"1" 1 bit     |
|29. epd2in9bc     |True           |"1" 1 bit     |
|30. epd2in9d      |False          |Unsupported   |
|31. epd3in0g      |True           |"1" 1 bit     |
|32. epd3in52      |True           |"1" 1 bit     |
|33. epd3in7       |False          |Unsupported   |
|34. epd4in01f     |True           |"RGB" 7 Color |
|35. epd4in2       |False          |Unsupported   |
|36. epd4in26      |True           |"1" 1 bit     |
|37. epd4in2_V2    |False          |Unsupported   |
|38. epd4in2b_V2   |True           |"1" 1 bit     |
|39. epd4in2bc     |True           |"1" 1 bit     |
|40. epd4in37g     |True           |"1" 1 bit     |
|41. epd5in65f     |True           |"RGB" 7 Color |
|42. epd5in83      |True           |"1" 1 bit     |
|43. epd5in83_V2   |True           |"1" 1 bit     |
|44. epd5in83b_V2  |True           |"1" 1 bit     |
|45. epd5in83bc    |True           |"1" 1 bit     |
|46. epd7in3f      |True           |"RGB" 7 Color |
|47. epd7in3g      |True           |"1" 1 bit     |
|48. epd7in5       |True           |"1" 1 bit     |
|49. epd7in5_HD    |True           |"1" 1 bit     |
|50. epd7in5_V2    |True           |"1" 1 bit     |
|51. epd7in5_V2_old|True           |"1" 1 bit     |
|52. epd7in5b_HD   |True           |"1" 1 bit     |
|53. epd7in5b_V2   |True           |"1" 1 bit     |
|54. epd7in5bc     |True           |"1" 1 bit     |
|55. All HD IT8951 |True           |"L" 8 bit     |

Add your enthusiasm to standardize the `epd1in02` screen to [this Pull Request](https://github.com/waveshare/e-Paper/pull/283). 

The `epd3in7` is an oddball that has several issues:

* 'Non-standard, unsupported `EPD.Clear()` function',
* 'AttributeError: module does not support standard `EPD.display()` function

## Notes

### WaveShare non-IT8951 Screens

The waveshare-epd library is required for non-IT8951 screens and can be installed from the Git repo:

```Shell
pip install -e "git+https://github.com/waveshare/e-Paper.git#egg=waveshare_epd&subdirectory=RaspberryPi_JetsonNano/python"
```

### IT8951 basee Screens

[Greg D Meyer's IT8951 library](https://github.com/GregDMeyer/IT8951) is required and can be installed from the Git repo:

```Shell
pip install -e "git+https://github.com/GregDMeyer/IT8951#egg=IT8951"
```


getting ready for pypi:
https://medium.com/@joel.barmettler/how-to-upload-your-python-package-to-pypi-65edc5fe9c56



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/txoof/epdlib",
    "name": "epdlib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "graphics e-paper display waveshare",
    "author": "Aaron ciuffo",
    "author_email": "aaron.ciuffo@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a2/b2/757a7cbfd6a7885919121e7f14e7c6590c2e9b72e3de9c8f28fc02547378/epdlib-0.6.5.1.tar.gz",
    "platform": null,
    "description": "# epdlib v0.6\n\nEpdLib provides an interface for creating and displaying scalable layouts that work with most of WaveShare's EPaper displays (EPD). The `Layout` module can also be used for generating layouts for any screen-buffered display that does not require fast updates. \n\nEpdLib provides classes for interfacing with the screen (`Screen`), building layouts that will work at any resolution (`Layout`), and blocks that are used to assemble layouts (`Block`). EpdLib makes it trivial to build a project that will work on almost any WaveShare display without worrying about the resolution or recoding the display functions.\n\n![3x2 Sample](./docs/weather_3x2.png)\n\n![5x5 Sample](./docs/weather_5x5.png)\n\nEpdLib supports almost all of WaveShare's EPD screens. See the [Supported Screens](#supported-screens) below.\n\n* 7-Color screens are supported in full color\n* HD Screens are supported in 8 bit gray and support partial refresh (~1 second)\n* All 2 and 3 color screens are supported in 1 bit (black and white) only\n\n## Changes\n\nSee the [ChangeLog](./changes.md) for details\n\n### v0.6\n\n* Add support for 8-Color WaveShare screens to Block, Screen and Layout\n* All Blocks and Layouts now support \"RGB\" content\n* Layouts and blocks can now be dynamically updated during runtime\n* `Layout.layout` dictionaries must contain key `type` that matches the block type\n* Layouts support HTML standard color names and map [RED, ORANGE, YELLOW, GREEN, BLUE, BLACK, WHITE] to proper WaveShare Values\n\n## Dependencies\n\nPython Modules:\n* Pillow: System dependencies for Pillow:\n    * libopenjp2-7\n    * libtiff5\n* RPi.GPIO\n* spidev: ensure SPI is enabled on the pi\n* waveshare-epd (Non IT8951 based panels): see [notes](#notes) below for installation instructions\n    * this is for interacting with waveshare epaper displays and is not strictly needed to use the Block and Layout objects.\n* IT8951 (IT8951 based panels): see [notes](#notes) below for installation instructions\n\n\n## Modules:\n\n* [Block](./docs/Block.md) - image and text blocks that can be used to create a layout\n* [Layout](./docs/Layout.md) - create layouts from Blocks that will work on nearly any WaveShare screen automagically\n* [Screen](./docs/Screen.md) - simple interface for writing to WaveShare EPD devices\n\n## Supported Screens\n\n\n|Screen            |Supported      |Mode          |\n|:-----------------|:--------------|:-------------|\n|00. epd13in3k     |True           |\"1\" 1 bit     |\n|01. epd1in02      |True           |\"1\" 1 bit     |\n|02. epd1in54      |True           |\"1\" 1 bit     |\n|03. epd1in54_V2   |True           |\"1\" 1 bit     |\n|04. epd1in54b     |True           |\"1\" 1 bit     |\n|05. epd1in54b_V2  |True           |\"1\" 1 bit     |\n|06. epd1in54c     |True           |\"1\" 1 bit     |\n|07. epd1in64g     |True           |\"1\" 1 bit     |\n|08. epd2in13      |True           |\"1\" 1 bit     |\n|09. epd2in13_V2   |True           |\"1\" 1 bit     |\n|10. epd2in13_V3   |True           |\"1\" 1 bit     |\n|11. epd2in13_V4   |True           |\"1\" 1 bit     |\n|12. epd2in13b_V3  |True           |\"1\" 1 bit     |\n|13. epd2in13b_V4  |True           |\"1\" 1 bit     |\n|14. epd2in13bc    |True           |\"1\" 1 bit     |\n|15. epd2in13d     |False          |Unsupported   |\n|16. epd2in13g     |True           |\"1\" 1 bit     |\n|17. epd2in36g     |True           |\"1\" 1 bit     |\n|18. epd2in66      |True           |\"1\" 1 bit     |\n|19. epd2in66b     |True           |\"1\" 1 bit     |\n|20. epd2in66g     |True           |\"1\" 1 bit     |\n|21. epd2in7       |True           |\"1\" 1 bit     |\n|22. epd2in7_V2    |True           |\"1\" 1 bit     |\n|23. epd2in7b      |True           |\"1\" 1 bit     |\n|24. epd2in7b_V2   |True           |\"1\" 1 bit     |\n|25. epd2in9       |True           |\"1\" 1 bit     |\n|26. epd2in9_V2    |True           |\"1\" 1 bit     |\n|27. epd2in9b_V3   |True           |\"1\" 1 bit     |\n|28. epd2in9b_V4   |True           |\"1\" 1 bit     |\n|29. epd2in9bc     |True           |\"1\" 1 bit     |\n|30. epd2in9d      |False          |Unsupported   |\n|31. epd3in0g      |True           |\"1\" 1 bit     |\n|32. epd3in52      |True           |\"1\" 1 bit     |\n|33. epd3in7       |False          |Unsupported   |\n|34. epd4in01f     |True           |\"RGB\" 7 Color |\n|35. epd4in2       |False          |Unsupported   |\n|36. epd4in26      |True           |\"1\" 1 bit     |\n|37. epd4in2_V2    |False          |Unsupported   |\n|38. epd4in2b_V2   |True           |\"1\" 1 bit     |\n|39. epd4in2bc     |True           |\"1\" 1 bit     |\n|40. epd4in37g     |True           |\"1\" 1 bit     |\n|41. epd5in65f     |True           |\"RGB\" 7 Color |\n|42. epd5in83      |True           |\"1\" 1 bit     |\n|43. epd5in83_V2   |True           |\"1\" 1 bit     |\n|44. epd5in83b_V2  |True           |\"1\" 1 bit     |\n|45. epd5in83bc    |True           |\"1\" 1 bit     |\n|46. epd7in3f      |True           |\"RGB\" 7 Color |\n|47. epd7in3g      |True           |\"1\" 1 bit     |\n|48. epd7in5       |True           |\"1\" 1 bit     |\n|49. epd7in5_HD    |True           |\"1\" 1 bit     |\n|50. epd7in5_V2    |True           |\"1\" 1 bit     |\n|51. epd7in5_V2_old|True           |\"1\" 1 bit     |\n|52. epd7in5b_HD   |True           |\"1\" 1 bit     |\n|53. epd7in5b_V2   |True           |\"1\" 1 bit     |\n|54. epd7in5bc     |True           |\"1\" 1 bit     |\n|55. All HD IT8951 |True           |\"L\" 8 bit     |\n\nAdd your enthusiasm to standardize the `epd1in02` screen to [this Pull Request](https://github.com/waveshare/e-Paper/pull/283). \n\nThe `epd3in7` is an oddball that has several issues:\n\n* 'Non-standard, unsupported `EPD.Clear()` function',\n* 'AttributeError: module does not support standard `EPD.display()` function\n\n## Notes\n\n### WaveShare non-IT8951 Screens\n\nThe waveshare-epd library is required for non-IT8951 screens and can be installed from the Git repo:\n\n```Shell\npip install -e \"git+https://github.com/waveshare/e-Paper.git#egg=waveshare_epd&subdirectory=RaspberryPi_JetsonNano/python\"\n```\n\n### IT8951 basee Screens\n\n[Greg D Meyer's IT8951 library](https://github.com/GregDMeyer/IT8951) is required and can be installed from the Git repo:\n\n```Shell\npip install -e \"git+https://github.com/GregDMeyer/IT8951#egg=IT8951\"\n```\n\n\ngetting ready for pypi:\nhttps://medium.com/@joel.barmettler/how-to-upload-your-python-package-to-pypi-65edc5fe9c56\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "library for creating dynamic layouts for frame-buffered devices",
    "version": "0.6.5.1",
    "project_urls": {
        "Homepage": "https://github.com/txoof/epdlib",
        "Source": "https://github.com/txoof/epdlib"
    },
    "split_keywords": [
        "graphics",
        "e-paper",
        "display",
        "waveshare"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "46bea11c6858e5d58f4c8ba45d49cd0b2a2cd09b63713e5866c2bf79c069d4a2",
                "md5": "68d34f2ab671e9eb59504ce2612f7ba4",
                "sha256": "59d2dbd0be190b4d40b027e6f28a76bc3192f8ca35cbd91c6fb8d1e216e9f16c"
            },
            "downloads": -1,
            "filename": "epdlib-0.6.5.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "68d34f2ab671e9eb59504ce2612f7ba4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 44051,
            "upload_time": "2024-03-25T19:56:45",
            "upload_time_iso_8601": "2024-03-25T19:56:45.750040Z",
            "url": "https://files.pythonhosted.org/packages/46/be/a11c6858e5d58f4c8ba45d49cd0b2a2cd09b63713e5866c2bf79c069d4a2/epdlib-0.6.5.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a2b2757a7cbfd6a7885919121e7f14e7c6590c2e9b72e3de9c8f28fc02547378",
                "md5": "5ec5021e5b80e8ee56e212ccfee89dcb",
                "sha256": "b08b9cd711074236459434ebb492a99cddbf3d743246972d6767bf717d74d1d1"
            },
            "downloads": -1,
            "filename": "epdlib-0.6.5.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5ec5021e5b80e8ee56e212ccfee89dcb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 44372,
            "upload_time": "2024-03-25T19:56:48",
            "upload_time_iso_8601": "2024-03-25T19:56:48.069843Z",
            "url": "https://files.pythonhosted.org/packages/a2/b2/757a7cbfd6a7885919121e7f14e7c6590c2e9b72e3de9c8f28fc02547378/epdlib-0.6.5.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-25 19:56:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "txoof",
    "github_project": "epdlib",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "epdlib"
}
        
Elapsed time: 0.22320s