adafruit-circuitpython-qualia 2.0.0__tar.gz → 2.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- adafruit_circuitpython_qualia-2.0.1/.gitattributes +11 -0
- adafruit_circuitpython_qualia-2.0.1/.pre-commit-config.yaml +21 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/PKG-INFO +6 -5
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/README.rst +3 -3
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_circuitpython_qualia.egg-info/PKG-INFO +6 -5
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_circuitpython_qualia.egg-info/SOURCES.txt +2 -1
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/__init__.py +6 -5
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/displays/__init__.py +8 -6
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/bar240x960.py +97 -0
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/bar320x820.py +102 -0
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/bar320x960.py +91 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/displays/round21.py +1 -1
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/round28.py +94 -0
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/round40.py +209 -0
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/square34.py +94 -0
- adafruit_circuitpython_qualia-2.0.1/adafruit_qualia/displays/square40_480x480.py +89 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/graphics.py +5 -6
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/network.py +12 -20
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/peripherals.py +2 -2
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/api.rst +3 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/conf.py +2 -6
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/examples/qualia_paint.py +5 -8
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/examples/qualia_qrcode_generation.py +2 -1
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/examples/qualia_quotes.py +1 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/pyproject.toml +1 -1
- adafruit_circuitpython_qualia-2.0.1/ruff.toml +108 -0
- adafruit_circuitpython_qualia-2.0.0/.pre-commit-config.yaml +0 -42
- adafruit_circuitpython_qualia-2.0.0/.pylintrc +0 -399
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/bar240x960.py +0 -99
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/bar320x820.py +0 -104
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/bar320x960.py +0 -93
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/round28.py +0 -96
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/round40.py +0 -211
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/square34.py +0 -96
- adafruit_circuitpython_qualia-2.0.0/adafruit_qualia/displays/square40_480x480.py +0 -91
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.github/PULL_REQUEST_TEMPLATE/adafruit_circuitpython_pr.md +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.github/workflows/build.yml +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.github/workflows/failure-help-text.yml +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.github/workflows/release_gh.yml +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.github/workflows/release_pypi.yml +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.gitignore +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/.readthedocs.yaml +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/CODE_OF_CONDUCT.md +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/LICENSE +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/LICENSES/CC-BY-4.0.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/LICENSES/MIT.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/LICENSES/Unlicense.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/README.rst.license +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_circuitpython_qualia.egg-info/dependency_links.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_circuitpython_qualia.egg-info/requires.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_circuitpython_qualia.egg-info/top_level.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/adafruit_qualia/displays/square40.py +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/_static/favicon.ico +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/_static/favicon.ico.license +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/api.rst.license +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/examples.rst +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/examples.rst.license +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/index.rst +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/index.rst.license +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/docs/requirements.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/examples/qualia_simpletest.py +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/optional_requirements.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/requirements.txt +0 -0
- {adafruit_circuitpython_qualia-2.0.0 → adafruit_circuitpython_qualia-2.0.1}/setup.cfg +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2024 Justin Myers for Adafruit Industries
|
|
2
|
+
#
|
|
3
|
+
# SPDX-License-Identifier: Unlicense
|
|
4
|
+
|
|
5
|
+
repos:
|
|
6
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
7
|
+
rev: v4.5.0
|
|
8
|
+
hooks:
|
|
9
|
+
- id: check-yaml
|
|
10
|
+
- id: end-of-file-fixer
|
|
11
|
+
- id: trailing-whitespace
|
|
12
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
13
|
+
rev: v0.3.4
|
|
14
|
+
hooks:
|
|
15
|
+
- id: ruff-format
|
|
16
|
+
- id: ruff
|
|
17
|
+
args: ["--fix"]
|
|
18
|
+
- repo: https://github.com/fsfe/reuse-tool
|
|
19
|
+
rev: v3.0.1
|
|
20
|
+
hooks:
|
|
21
|
+
- id: reuse
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: adafruit-circuitpython-qualia
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Portal Style Library for the Adafruit Qualia ESP32-S3
|
|
5
5
|
Author-email: Adafruit Industries <circuitpython@adafruit.com>
|
|
6
6
|
License: MIT
|
|
@@ -24,6 +24,7 @@ Requires-Dist: adafruit-circuitpython-pca9554
|
|
|
24
24
|
Requires-Dist: adafruit-circuitpython-cst8xx
|
|
25
25
|
Requires-Dist: adafruit-circuitpython-focaltouch
|
|
26
26
|
Provides-Extra: optional
|
|
27
|
+
Dynamic: license-file
|
|
27
28
|
|
|
28
29
|
Introduction
|
|
29
30
|
============
|
|
@@ -44,9 +45,9 @@ Introduction
|
|
|
44
45
|
:alt: Build Status
|
|
45
46
|
|
|
46
47
|
|
|
47
|
-
.. image:: https://img.shields.io/badge/
|
|
48
|
-
:target: https://github.com/
|
|
49
|
-
:alt: Code Style:
|
|
48
|
+
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
|
|
49
|
+
:target: https://github.com/astral-sh/ruff
|
|
50
|
+
:alt: Code Style: Ruff
|
|
50
51
|
|
|
51
52
|
Portal Style Library for the Adafruit Qualia ESP32-S3
|
|
52
53
|
|
|
@@ -17,9 +17,9 @@ Introduction
|
|
|
17
17
|
:alt: Build Status
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
.. image:: https://img.shields.io/badge/
|
|
21
|
-
:target: https://github.com/
|
|
22
|
-
:alt: Code Style:
|
|
20
|
+
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
|
|
21
|
+
:target: https://github.com/astral-sh/ruff
|
|
22
|
+
:alt: Code Style: Ruff
|
|
23
23
|
|
|
24
24
|
Portal Style Library for the Adafruit Qualia ESP32-S3
|
|
25
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: adafruit-circuitpython-qualia
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Portal Style Library for the Adafruit Qualia ESP32-S3
|
|
5
5
|
Author-email: Adafruit Industries <circuitpython@adafruit.com>
|
|
6
6
|
License: MIT
|
|
@@ -24,6 +24,7 @@ Requires-Dist: adafruit-circuitpython-pca9554
|
|
|
24
24
|
Requires-Dist: adafruit-circuitpython-cst8xx
|
|
25
25
|
Requires-Dist: adafruit-circuitpython-focaltouch
|
|
26
26
|
Provides-Extra: optional
|
|
27
|
+
Dynamic: license-file
|
|
27
28
|
|
|
28
29
|
Introduction
|
|
29
30
|
============
|
|
@@ -44,9 +45,9 @@ Introduction
|
|
|
44
45
|
:alt: Build Status
|
|
45
46
|
|
|
46
47
|
|
|
47
|
-
.. image:: https://img.shields.io/badge/
|
|
48
|
-
:target: https://github.com/
|
|
49
|
-
:alt: Code Style:
|
|
48
|
+
.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
|
|
49
|
+
:target: https://github.com/astral-sh/ruff
|
|
50
|
+
:alt: Code Style: Ruff
|
|
50
51
|
|
|
51
52
|
Portal Style Library for the Adafruit Qualia ESP32-S3
|
|
52
53
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
.gitattributes
|
|
1
2
|
.gitignore
|
|
2
3
|
.pre-commit-config.yaml
|
|
3
|
-
.pylintrc
|
|
4
4
|
.readthedocs.yaml
|
|
5
5
|
CODE_OF_CONDUCT.md
|
|
6
6
|
LICENSE
|
|
@@ -9,6 +9,7 @@ README.rst.license
|
|
|
9
9
|
optional_requirements.txt
|
|
10
10
|
pyproject.toml
|
|
11
11
|
requirements.txt
|
|
12
|
+
ruff.toml
|
|
12
13
|
.github/PULL_REQUEST_TEMPLATE/adafruit_circuitpython_pr.md
|
|
13
14
|
.github/workflows/build.yml
|
|
14
15
|
.github/workflows/failure-help-text.yml
|
|
@@ -28,17 +28,19 @@ Implementation Notes
|
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
30
|
import gc
|
|
31
|
+
|
|
31
32
|
from adafruit_portalbase import PortalBase
|
|
32
|
-
|
|
33
|
+
|
|
33
34
|
from .graphics import Graphics
|
|
35
|
+
from .network import Network
|
|
34
36
|
from .peripherals import Peripherals
|
|
35
37
|
|
|
36
38
|
try:
|
|
37
|
-
from typing import
|
|
39
|
+
from typing import Callable, Dict, List, Optional, Sequence, Union
|
|
38
40
|
except ImportError:
|
|
39
41
|
pass
|
|
40
42
|
|
|
41
|
-
__version__ = "2.0.
|
|
43
|
+
__version__ = "2.0.1"
|
|
42
44
|
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Qualia.git"
|
|
43
45
|
|
|
44
46
|
|
|
@@ -67,7 +69,6 @@ class Qualia(PortalBase):
|
|
|
67
69
|
|
|
68
70
|
"""
|
|
69
71
|
|
|
70
|
-
# pylint: disable=too-few-public-methods
|
|
71
72
|
def __init__(
|
|
72
73
|
self,
|
|
73
74
|
display_type: str,
|
|
@@ -81,7 +82,7 @@ class Qualia(PortalBase):
|
|
|
81
82
|
rotation: int = 0,
|
|
82
83
|
scale: int = 1,
|
|
83
84
|
debug: bool = False,
|
|
84
|
-
use_network: bool = True
|
|
85
|
+
use_network: bool = True,
|
|
85
86
|
) -> None:
|
|
86
87
|
if use_network:
|
|
87
88
|
network = Network(
|
|
@@ -13,15 +13,17 @@ DotClock Display Base Class
|
|
|
13
13
|
* Author(s): Melissa LeBlanc-Williams
|
|
14
14
|
|
|
15
15
|
"""
|
|
16
|
+
|
|
16
17
|
import time
|
|
17
|
-
|
|
18
|
+
|
|
18
19
|
import board
|
|
19
|
-
import
|
|
20
|
+
import busio
|
|
20
21
|
import dotclockframebuffer
|
|
21
|
-
|
|
22
|
-
from displayio import release_displays
|
|
23
|
-
from adafruit_focaltouch import Adafruit_FocalTouch
|
|
22
|
+
import espidf
|
|
24
23
|
from adafruit_cst8xx import Adafruit_CST8XX
|
|
24
|
+
from adafruit_focaltouch import Adafruit_FocalTouch
|
|
25
|
+
from displayio import release_displays
|
|
26
|
+
from framebufferio import FramebufferDisplay
|
|
25
27
|
|
|
26
28
|
TOUCH_FOCALTOUCH = Adafruit_FocalTouch
|
|
27
29
|
TOUCH_CST826 = Adafruit_CST8XX
|
|
@@ -35,7 +37,7 @@ class DotClockDisplay:
|
|
|
35
37
|
def __init__(self):
|
|
36
38
|
release_displays()
|
|
37
39
|
board.I2C().deinit()
|
|
38
|
-
self._init_sequence =
|
|
40
|
+
self._init_sequence = b""
|
|
39
41
|
self._timings = {}
|
|
40
42
|
self._bus_frequency = 100_000
|
|
41
43
|
self._touch_driver = TOUCH_FOCALTOUCH
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
|
|
2
|
+
# SPDX-FileCopyrightText: Copyright (c) 2023 Melissa LeBlanc-Williams for Adafruit Industries
|
|
3
|
+
#
|
|
4
|
+
# SPDX-License-Identifier: MIT
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
`adafruit_qualia.displays.bar240x960`
|
|
8
|
+
================================================================================
|
|
9
|
+
|
|
10
|
+
3.71" 240x960 Bar DotClock Display Class
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
* Author(s): Melissa LeBlanc-Williams
|
|
14
|
+
|
|
15
|
+
Implementation Notes
|
|
16
|
+
--------------------
|
|
17
|
+
|
|
18
|
+
**Hardware:**
|
|
19
|
+
|
|
20
|
+
* `Rectangle Bar RGB TTL TFT Display - 3.7" 240x960 No Touchscreen
|
|
21
|
+
<https://www.adafruit.com/product/5799>`_
|
|
22
|
+
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from . import DotClockDisplay
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Bar240x960(DotClockDisplay):
|
|
29
|
+
"""HD371001C40 display driver"""
|
|
30
|
+
|
|
31
|
+
def __init__(self):
|
|
32
|
+
super().__init__()
|
|
33
|
+
self._init_sequence = bytes(
|
|
34
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
35
|
+
b"\xef\x01\x08"
|
|
36
|
+
b"\xff\x05w\x01\x00\x00\x10"
|
|
37
|
+
b"\xc0\x02w\x00"
|
|
38
|
+
b"\xc1\x02\x11\x0c"
|
|
39
|
+
b"\xc2\x02\x07\x02"
|
|
40
|
+
b"\xcc\x010"
|
|
41
|
+
b"\xb0\x10\x06\xcf\x14\x0c\x0f\x03\x00\n\x07\x1b\x03\x12\x10%6\x1e"
|
|
42
|
+
b"\xb1\x10\x0c\xd4\x18\x0c\x0e\x06\x03\x06\x08#\x06\x12\x100/\x1f"
|
|
43
|
+
b"\xff\x05w\x01\x00\x00\x11"
|
|
44
|
+
b"\xb0\x01s"
|
|
45
|
+
b"\xb1\x01|"
|
|
46
|
+
b"\xb2\x01\x83"
|
|
47
|
+
b"\xb3\x01\x80"
|
|
48
|
+
b"\xb5\x01I"
|
|
49
|
+
b"\xb7\x01\x87"
|
|
50
|
+
b"\xb8\x013"
|
|
51
|
+
b"\xb9\x02\x10\x1f"
|
|
52
|
+
b"\xbb\x01\x03"
|
|
53
|
+
b"\xc1\x01\x08"
|
|
54
|
+
b"\xc2\x01\x08"
|
|
55
|
+
b"\xd0\x01\x88"
|
|
56
|
+
b"\xe0\x06\x00\x00\x02\x00\x00\x0c"
|
|
57
|
+
b"\xe1\x0b\x05\x96\x07\x96\x06\x96\x08\x96\x00DD"
|
|
58
|
+
b"\xe2\x0c\x00\x00\x03\x03\x00\x00\x02\x00\x00\x00\x02\x00"
|
|
59
|
+
b"\xe3\x04\x00\x0033"
|
|
60
|
+
b"\xe4\x02DD"
|
|
61
|
+
b"\xe5\x10\r\xd4(\x8c\x0f\xd6(\x8c\t\xd0(\x8c\x0b\xd2(\x8c"
|
|
62
|
+
b"\xe6\x04\x00\x0033"
|
|
63
|
+
b"\xe7\x02DD"
|
|
64
|
+
b"\xe8\x10\x0e\xd5(\x8c\x10\xd7(\x8c\n\xd1(\x8c\x0c\xd3(\x8c"
|
|
65
|
+
b"\xeb\x06\x00\x01\xe4\xe4D\x00"
|
|
66
|
+
b"\xed\x10\xf3\xc1\xba\x0ffwDUUDwf\xf0\xab\x1c?"
|
|
67
|
+
b"\xef\x06\x10\r\x04\x08?\x1f"
|
|
68
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
69
|
+
b"\xe8\x02\x00\x0e"
|
|
70
|
+
b"\x11\x80x"
|
|
71
|
+
b"\xe8\x82\x00\x0c\n"
|
|
72
|
+
b"\xe8\x02@\x00"
|
|
73
|
+
b"\xff\x05w\x01\x00\x00\x00"
|
|
74
|
+
b"6\x01\x00"
|
|
75
|
+
b":\x01f"
|
|
76
|
+
b")\x80\x14"
|
|
77
|
+
b"\xff\x05w\x01\x00\x00\x10"
|
|
78
|
+
b"\xe5\x02\x00\x00"
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
self._timings = {
|
|
82
|
+
"frequency": 16000000,
|
|
83
|
+
"width": 240,
|
|
84
|
+
"height": 960,
|
|
85
|
+
"overscan_left": 120,
|
|
86
|
+
"hsync_pulse_width": 8,
|
|
87
|
+
"hsync_back_porch": 20,
|
|
88
|
+
"hsync_front_porch": 20,
|
|
89
|
+
"hsync_idle_low": False,
|
|
90
|
+
"vsync_pulse_width": 8,
|
|
91
|
+
"vsync_back_porch": 20,
|
|
92
|
+
"vsync_front_porch": 20,
|
|
93
|
+
"vsync_idle_low": False,
|
|
94
|
+
"pclk_active_high": True,
|
|
95
|
+
"pclk_idle_high": False,
|
|
96
|
+
"de_idle_high": False,
|
|
97
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
|
|
2
|
+
# SPDX-FileCopyrightText: Copyright (c) 2023 Melissa LeBlanc-Williams for Adafruit Industries
|
|
3
|
+
#
|
|
4
|
+
# SPDX-License-Identifier: MIT
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
`adafruit_qualia.displays.bar320x820`
|
|
8
|
+
================================================================================
|
|
9
|
+
|
|
10
|
+
3.2" 320x820 Bar DotClock Display Class
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
* Author(s): Melissa LeBlanc-Williams
|
|
14
|
+
|
|
15
|
+
Implementation Notes
|
|
16
|
+
--------------------
|
|
17
|
+
|
|
18
|
+
**Hardware:**
|
|
19
|
+
|
|
20
|
+
* `Rectangle Bar RGB TTL TFT Display - 3.2" 320x820 with Cap Touch
|
|
21
|
+
<https://www.adafruit.com/product/5797>`_
|
|
22
|
+
* `Rectangle RGB TTL TFT Display - 3.2" 320x820 No Touchscreen
|
|
23
|
+
<https://www.adafruit.com/product/5828>`_
|
|
24
|
+
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
from . import DotClockDisplay
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class Bar320x820(DotClockDisplay):
|
|
31
|
+
"""TL032FWV01 display driver"""
|
|
32
|
+
|
|
33
|
+
def __init__(self):
|
|
34
|
+
super().__init__()
|
|
35
|
+
self._bus_frequency = 400_000
|
|
36
|
+
self._init_sequence = bytes(
|
|
37
|
+
b"\x11\x80d"
|
|
38
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
39
|
+
b"\xef\x01\x08"
|
|
40
|
+
b"\xff\x05w\x01\x00\x00\x10"
|
|
41
|
+
b"\xc0\x02\xe5\x02"
|
|
42
|
+
b"\xc1\x02\x0c\n"
|
|
43
|
+
b"\xc2\x02\x07\x0f"
|
|
44
|
+
b"\xc3\x01\x02"
|
|
45
|
+
b"\xcc\x01\x10"
|
|
46
|
+
b"\xcd\x01\x08"
|
|
47
|
+
b"\xb0\x10\x00\x08Q\r\xce\x06\x00\x08\x08\x1d\x02\xd0\x0fo6?"
|
|
48
|
+
b"\xb1\x10\x00\x10O\x0c\x11\x05\x00\x07\x07\x1f\x05\xd3\x11n4?"
|
|
49
|
+
b"\xff\x05w\x01\x00\x00\x11"
|
|
50
|
+
b"\xb0\x01M"
|
|
51
|
+
b"\xb1\x01\x1c"
|
|
52
|
+
b"\xb2\x01\x87"
|
|
53
|
+
b"\xb3\x01\x80"
|
|
54
|
+
b"\xb5\x01G"
|
|
55
|
+
b"\xb7\x01\x85"
|
|
56
|
+
b"\xb8\x01!"
|
|
57
|
+
b"\xb9\x01\x10"
|
|
58
|
+
b"\xc1\x01x"
|
|
59
|
+
b"\xc2\x01x"
|
|
60
|
+
b"\xd0\x81\x88d"
|
|
61
|
+
b"\xe0\x03\x80\x00\x02"
|
|
62
|
+
b"\xe1\x0b\x04\xa0\x00\x00\x05\xa0\x00\x00\x00``"
|
|
63
|
+
b"\xe2\r00``<\xa0\x00\x00=\xa0\x00\x00\x00"
|
|
64
|
+
b"\xe3\x04\x00\x0033"
|
|
65
|
+
b"\xe4\x02DD"
|
|
66
|
+
b"\xe5\x10\x06>\xa0\xa0\x08@\xa0\xa0\nB\xa0\xa0\x0cD\xa0\xa0"
|
|
67
|
+
b"\xe6\x04\x00\x0033"
|
|
68
|
+
b"\xe7\x02DD"
|
|
69
|
+
b"\xe8\x10\x07?\xa0\xa0\tA\xa0\xa0\x0bC\xa0\xa0\rE\xa0\xa0"
|
|
70
|
+
b"\xeb\x07\x00\x01NN\xeeD\x00"
|
|
71
|
+
b"\xed\x10\xff\xff\x04Vr\xff\xff\xff\xff\xff\xff'e@\xff\xff"
|
|
72
|
+
b"\xef\x06\x10\r\x04\x08?\x1f"
|
|
73
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
74
|
+
b"\xe8\x02\x00\x0e"
|
|
75
|
+
b"\xff\x05w\x01\x00\x00\x00"
|
|
76
|
+
b"\x11\x80x"
|
|
77
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
78
|
+
b"\xe8\x82\x00\x0c\n"
|
|
79
|
+
b"\xe8\x02\x00\x00"
|
|
80
|
+
b"\xff\x05w\x01\x00\x00\x00"
|
|
81
|
+
b"6\x01\x00"
|
|
82
|
+
b":\x01f"
|
|
83
|
+
b"\x11\x80x"
|
|
84
|
+
b")\x80x"
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
self._timings = {
|
|
88
|
+
"frequency": 16000000,
|
|
89
|
+
"width": 320,
|
|
90
|
+
"height": 820,
|
|
91
|
+
"hsync_pulse_width": 3,
|
|
92
|
+
"hsync_back_porch": 251,
|
|
93
|
+
"hsync_front_porch": 150,
|
|
94
|
+
"hsync_idle_low": False,
|
|
95
|
+
"vsync_pulse_width": 6,
|
|
96
|
+
"vsync_back_porch": 90,
|
|
97
|
+
"vsync_front_porch": 100,
|
|
98
|
+
"vsync_idle_low": False,
|
|
99
|
+
"pclk_active_high": False,
|
|
100
|
+
"pclk_idle_high": False,
|
|
101
|
+
"de_idle_high": False,
|
|
102
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
|
|
2
|
+
# SPDX-FileCopyrightText: Copyright (c) 2023 Melissa LeBlanc-Williams for Adafruit Industries
|
|
3
|
+
#
|
|
4
|
+
# SPDX-License-Identifier: MIT
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
`adafruit_qualia.displays.bar320x960`
|
|
8
|
+
================================================================================
|
|
9
|
+
|
|
10
|
+
4.58" 320x960 Bar DotClock Display Class
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
* Author(s): Melissa LeBlanc-Williams
|
|
14
|
+
|
|
15
|
+
Implementation Notes
|
|
16
|
+
--------------------
|
|
17
|
+
|
|
18
|
+
**Hardware:**
|
|
19
|
+
|
|
20
|
+
* `Rectangle Bar RGB TTL TFT Display - 4.58" 320x960 No Touchscreen
|
|
21
|
+
<https://www.adafruit.com/product/5805>`_
|
|
22
|
+
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from . import DotClockDisplay
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Bar320x960(DotClockDisplay):
|
|
29
|
+
"""HD458002C40 display driver"""
|
|
30
|
+
|
|
31
|
+
def __init__(self):
|
|
32
|
+
super().__init__()
|
|
33
|
+
self._init_sequence = bytes(
|
|
34
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
35
|
+
b"\xef\x01\x08"
|
|
36
|
+
b"\xff\x05w\x01\x00\x00\x10"
|
|
37
|
+
b"\xc0\x02w\x00"
|
|
38
|
+
b"\xc1\x02\t\x08"
|
|
39
|
+
b"\xc2\x02\x01\x02"
|
|
40
|
+
b"\xc3\x01\x02"
|
|
41
|
+
b"\xcc\x01\x10"
|
|
42
|
+
b"\xb0\x10@\x14Y\x10\x12\x08\x03\t\x05\x1e\x05\x14\x10h3\x15"
|
|
43
|
+
b"\xb1\x10@\x08S\t\x11\t\x02\x07\t\x1a\x04\x12\x12d))"
|
|
44
|
+
b"\xff\x05w\x01\x00\x00\x11"
|
|
45
|
+
b"\xb0\x01m"
|
|
46
|
+
b"\xb1\x01\x1d"
|
|
47
|
+
b"\xb2\x01\x87"
|
|
48
|
+
b"\xb3\x01\x80"
|
|
49
|
+
b"\xb5\x01I"
|
|
50
|
+
b"\xb7\x01\x85"
|
|
51
|
+
b"\xb8\x01 "
|
|
52
|
+
b"\xc1\x01x"
|
|
53
|
+
b"\xc2\x01x"
|
|
54
|
+
b"\xd0\x01\x88"
|
|
55
|
+
b"\xe0\x03\x00\x00\x02"
|
|
56
|
+
b"\xe1\x0b\x02\x8c\x00\x00\x03\x8c\x00\x00\x0033"
|
|
57
|
+
b"\xe2\r3333\xc9<\x00\x00\xca<\x00\x00\x00"
|
|
58
|
+
b"\xe3\x04\x00\x0033"
|
|
59
|
+
b"\xe4\x02DD"
|
|
60
|
+
b"\xe5\x10\x05\xcd\x82\x82\x01\xc9\x82\x82\x07\xcf\x82\x82\x03\xcb\x82\x82"
|
|
61
|
+
b"\xe6\x04\x00\x0033"
|
|
62
|
+
b"\xe7\x02DD"
|
|
63
|
+
b"\xe8\x10\x06\xce\x82\x82\x02\xca\x82\x82\x08\xd0\x82\x82\x04\xcc\x82\x82"
|
|
64
|
+
b"\xeb\x07\x08\x01\xe4\xe4\x88\x00@"
|
|
65
|
+
b"\xec\x03\x00\x00\x00"
|
|
66
|
+
b"\xed\x10\xff\xf0\x07eO\xfc\xc2/\xf2,\xcf\xf4Vp\x0f\xff"
|
|
67
|
+
b"\xef\x06\x10\r\x04\x08?\x1f"
|
|
68
|
+
b"\xff\x05w\x01\x00\x00\x00"
|
|
69
|
+
b"\x11\x80x"
|
|
70
|
+
b"5\x01\x00"
|
|
71
|
+
b":\x81fd"
|
|
72
|
+
b")\x00"
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
self._timings = {
|
|
76
|
+
"frequency": 16000000,
|
|
77
|
+
"width": 320,
|
|
78
|
+
"height": 960,
|
|
79
|
+
"overscan_left": 80,
|
|
80
|
+
"hsync_pulse_width": 10,
|
|
81
|
+
"hsync_front_porch": 30,
|
|
82
|
+
"hsync_back_porch": 50,
|
|
83
|
+
"hsync_idle_low": False,
|
|
84
|
+
"vsync_pulse_width": 2,
|
|
85
|
+
"vsync_front_porch": 15,
|
|
86
|
+
"vsync_back_porch": 17,
|
|
87
|
+
"vsync_idle_low": False,
|
|
88
|
+
"pclk_active_high": False,
|
|
89
|
+
"pclk_idle_high": False,
|
|
90
|
+
"de_idle_high": False,
|
|
91
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# SPDX-FileCopyrightText: 2017 Scott Shawcroft, written for Adafruit Industries
|
|
2
|
+
# SPDX-FileCopyrightText: Copyright (c) 2023 Melissa LeBlanc-Williams for Adafruit Industries
|
|
3
|
+
#
|
|
4
|
+
# SPDX-License-Identifier: MIT
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
`adafruit_qualia.displays.round28`
|
|
8
|
+
================================================================================
|
|
9
|
+
|
|
10
|
+
2.8" 480x480 Round DotClock Display Class
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
* Author(s): Melissa LeBlanc-Williams
|
|
14
|
+
|
|
15
|
+
Implementation Notes
|
|
16
|
+
--------------------
|
|
17
|
+
|
|
18
|
+
**Hardware:**
|
|
19
|
+
|
|
20
|
+
* `Round RGB 666 TTL TFT Display - 2.8" 480x480 - No Touch
|
|
21
|
+
<https://www.adafruit.com/product/5852>`_
|
|
22
|
+
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
from . import DotClockDisplay
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Round28(DotClockDisplay):
|
|
29
|
+
"""TL028WVC01 display driver"""
|
|
30
|
+
|
|
31
|
+
def __init__(self):
|
|
32
|
+
super().__init__()
|
|
33
|
+
self._init_sequence = bytes(
|
|
34
|
+
b"\xff\x05w\x01\x00\x00\x13"
|
|
35
|
+
b"\xef\x01\x08"
|
|
36
|
+
b"\xff\x05w\x01\x00\x00\x10"
|
|
37
|
+
b"\xc0\x02;\x00"
|
|
38
|
+
b"\xc1\x02\x10\x0c"
|
|
39
|
+
b"\xc2\x02\x07\n"
|
|
40
|
+
b"\xc7\x01\x00"
|
|
41
|
+
b"\xcc\x01\x10"
|
|
42
|
+
b"\xcd\x01\x08"
|
|
43
|
+
b"\xb0\x10\x05\x12\x98\x0e\x0f\x07\x07\t\t#\x05R\x0fg,\x11"
|
|
44
|
+
b'\xb1\x10\x0b\x11\x97\x0c\x12\x06\x06\x08\x08"\x03Q\x11f+\x0f'
|
|
45
|
+
b"\xff\x05w\x01\x00\x00\x11"
|
|
46
|
+
b"\xb0\x01]"
|
|
47
|
+
b"\xb1\x01-"
|
|
48
|
+
b"\xb2\x01\x81"
|
|
49
|
+
b"\xb3\x01\x80"
|
|
50
|
+
b"\xb5\x01N"
|
|
51
|
+
b"\xb7\x01\x85"
|
|
52
|
+
b"\xb8\x01 "
|
|
53
|
+
b"\xc1\x01x"
|
|
54
|
+
b"\xc2\x01x"
|
|
55
|
+
b"\xd0\x01\x88"
|
|
56
|
+
b"\xe0\x03\x00\x00\x02"
|
|
57
|
+
b"\xe1\x0b\x060\x080\x050\x070\x0033"
|
|
58
|
+
b"\xe2\x0c\x11\x1133\xf4\x00\x00\x00\xf4\x00\x00\x00"
|
|
59
|
+
b"\xe3\x04\x00\x00\x11\x11"
|
|
60
|
+
b"\xe4\x02DD"
|
|
61
|
+
b"\xe5\x10\r\xf50\xf0\x0f\xf70\xf0\t\xf10\xf0\x0b\xf30\xf0"
|
|
62
|
+
b"\xe6\x04\x00\x00\x11\x11"
|
|
63
|
+
b"\xe7\x02DD"
|
|
64
|
+
b"\xe8\x10\x0c\xf40\xf0\x0e\xf60\xf0\x08\xf00\xf0\n\xf20\xf0"
|
|
65
|
+
b"\xe9\x026\x01"
|
|
66
|
+
b"\xeb\x07\x00\x01\xe4\xe4D\x88@"
|
|
67
|
+
b"\xed\x10\xff\x10\xafvT+\xcf\xff\xff\xfc\xb2Eg\xfa\x01\xff"
|
|
68
|
+
b"\xef\x06\x08\x08\x08E?T"
|
|
69
|
+
b"\xff\x05w\x01\x00\x00\x00"
|
|
70
|
+
b"\x11\x80x"
|
|
71
|
+
b":\x01f"
|
|
72
|
+
b"6\x01\x00"
|
|
73
|
+
b"5\x01\x00"
|
|
74
|
+
b")\x802"
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
self._timings = {
|
|
78
|
+
"frequency": 15_000_000,
|
|
79
|
+
"width": 480,
|
|
80
|
+
"height": 480,
|
|
81
|
+
"hsync_pulse_width": 2,
|
|
82
|
+
"hsync_back_porch": 10,
|
|
83
|
+
"hsync_front_porch": 10,
|
|
84
|
+
"hsync_idle_low": False,
|
|
85
|
+
"vsync_pulse_width": 6,
|
|
86
|
+
"vsync_back_porch": 10,
|
|
87
|
+
"vsync_front_porch": 10,
|
|
88
|
+
"vsync_idle_low": False,
|
|
89
|
+
"pclk_active_high": True,
|
|
90
|
+
"pclk_idle_high": False,
|
|
91
|
+
"de_idle_high": False,
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
self._round = True
|