Giter Club home page Giter Club logo

adafruit_circuitpython_amg88xx's People

Contributors

brennen avatar brentru-2 avatar caternuson avatar deanm1278 avatar dhalbert avatar evaherrada avatar foamyguy avatar jepler avatar jerryneedell avatar kattni avatar ladyada avatar makermelissa avatar peterhinch avatar sanderch avatar siddacious avatar siqueira-ec avatar sommersoft avatar tammymakesthings avatar tannewt avatar tekktrik avatar tg-techie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

adafruit_circuitpython_amg88xx's Issues

Missing Type Annotations

There are missing type annotations for some functions in this library.

The typing module does not exist on CircuitPython devices so the import needs to be wrapped in try/except to catch the error for missing import. There is an example of how that is done here:

try:
    from typing import List, Tuple
except ImportError:
    pass

Once imported the typing annotations for the argument type(s), and return type(s) can be added to the function signature. Here is an example of a function that has had this done already:

def wrap_text_to_pixels(
    string: str, max_width: int, font=None, indent0: str = "", indent1: str = ""
) -> List[str]:

If you are new to Git or Github we have a guide about contributing to our projects here: https://learn.adafruit.com/contribute-to-circuitpython-with-git-and-github

There is also a guide that covers our CI utilities and how to run them locally to ensure they will pass in Github Actions here: https://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/check-your-code In particular the pages: Sharing docs on ReadTheDocs and Check your code with pre-commit contain the tools to install and commands to run locally to run the checks.

If you are attempting to resolve this issue and need help, you can post a comment on this issue and tag both @FoamyGuy and @kattni or reach out to us on Discord: https://adafru.it/discord in the #circuitpython-dev channel.

The following locations are reported by mypy to be missing type annotations:

  • adafruit_amg88xx.py:67
  • adafruit_amg88xx.py:75
  • adafruit_amg88xx.py:113

Handling of negative pixel temperature values is incorrect

The _signed_12bit_to_float function is correct for thermistor temperature readings which are in sign bit/absolute data format (datasheet page 13).

However datasheet page 14 indicates that pixel values are in two's complement format. This requires different handling.

I have no hardware (yet) so am not in a position to offer a tested PR.

OSError: [Errno 5] Input/output error

HI
had this working fine a day ago, now I am getting an error when calling amg.pixels:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "adafruit_amg88xx.py", line 164, in pixels
  File "adafruit_amg88xx.py", line 160, in pixels
  File "adafruit_bus_device/i2c_device.py", line 115, in write
OSError: [Errno 5] Input/output error

Any advice on debugging?

Latest Version unknown with circup

circup has issues finding the installed version of Adafruit_AMG88xx

>circup list

Module            Version  Latest   Update Reason
----------------- -------- -------- --------------
adafruit_amg88xx  1.2.15   unknown  Major Version

Using CircUp Version 1.1.0
adafruit_amg88xx installed and works fine, only an issue with circup list
circup works fine with many other packages. This may be related to issue #34

Install error with pipenv on RPi4

Environment

pi@pi-01:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 11 (bullseye)
Release:        11
Codename:       bullseye
pi@pi-01:~ $ pipenv --version
pipenv, version 2022.1.8
pi@pi-01:~ $ 
pi@pi-01:~ $ pip --version
pip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.9)
pi@pi-01:~ $ 

Problem

pipenv install failed.

I can see following message in -v mode.

This is likely caused by a bug in adafruit-circuitpython-amg88xx. Report this to its maintainers.

other

  • I can install this with pip successfully as below
$ pip3 install adafruit-circuitpython-amg88xx==1.2.9 -v
error log
pi@pi-01:~/boat-thermometer $ pipenv install adafruit-circuitpython-amg88xx -v
Installing adafruit-circuitpython-amg88xx...
Installing package: adafruit-circuitpython-amg88xx
Writing supplied requirement line to temporary file: 'adafruit-circuitpython-amg88xx'
Installing 'adafruit-circuitpython-amg88xx'
⠴ Installing adafruit-circuitpython-amg88xx...$ /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/bin/python -m pip install --verbose --upgrade --exists-action=i -r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt -i https://pypi.org/simple
Using source directory: '/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/src'
Error:  An error occurred while installing adafruit-circuitpython-amg88xx!
Error text: Using pip 21.3.1 from /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting adafruit-circuitpython-amg88xx
  Using cached https://www.piwheels.org/simple/adafruit-circuitpython-amg88xx/adafruit_circuitpython_amg88xx-1.2.9-py3-none-any.whl (6.9 kB)
Collecting Adafruit-Blinka
  Using cached https://www.piwheels.org/simple/adafruit-blinka/Adafruit_Blinka-6.20.1-py3-none-any.whl (194 kB)
Collecting adafruit-circuitpython-register
  Using cached https://www.piwheels.org/simple/adafruit-circuitpython-register/adafruit_circuitpython_register-1.9.7-py3-none-any.whl (17 kB)
Collecting adafruit-circuitpython-busdevice
  Using cached https://www.piwheels.org/simple/adafruit-circuitpython-busdevice/adafruit_circuitpython_busdevice-5.1.1-py3-none-any.whl (8.4 kB)
Collecting RPi.GPIO
  Using cached RPi.GPIO-0.7.0.tar.gz (30 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: rpi-ws281x>=4.0.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (4.3.1)
Collecting pyftdi>=0.40.0
  Using cached https://www.piwheels.org/simple/pyftdi/pyftdi-0.53.3-py3-none-any.whl (141 kB)
Requirement already satisfied: sysv-ipc>=1.1.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (1.1.0)
Collecting Adafruit-PlatformDetect>=3.13.0
  Using cached https://www.piwheels.org/simple/adafruit-platformdetect/Adafruit_PlatformDetect-3.19.4-py3-none-any.whl (18 kB)
Collecting Adafruit-PureIO>=1.1.7
  Using cached https://www.piwheels.org/simple/adafruit-pureio/Adafruit_PureIO-1.1.9-py3-none-any.whl (12 kB)
Requirement already satisfied: pyusb!=1.2.0,>=1.0.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from pyftdi>=0.40.0->Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (1.2.1)
Requirement already satisfied: pyserial>=3.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from pyftdi>=0.40.0->Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (3.5)
Building wheels for collected packages: RPi.GPIO
  Building wheel for RPi.GPIO (setup.py): started
  Building wheel for RPi.GPIO (setup.py): finished with status 'error'
  Running setup.py clean for RPi.GPIO
Failed to build RPi.GPIO
Installing collected packages: RPi.GPIO, pyftdi, Adafruit-PureIO, Adafruit-PlatformDetect, Adafruit-Blinka, adafruit-circuitpython-register, adafruit-circuitpython-busdevice, adafruit-circuitpython-amg88xx
    Running setup.py install for RPi.GPIO: started
    Running setup.py install for RPi.GPIO: finished with status 'error'

  Running command python setup.py egg_info
  running egg_info
  creating /tmp/pip-pip-egg-info-0a0aehes/RPi.GPIO.egg-info
  writing manifest file '/tmp/pip-pip-egg-info-0a0aehes/RPi.GPIO.egg-info/SOURCES.txt'
  writing manifest file '/tmp/pip-pip-egg-info-0a0aehes/RPi.GPIO.egg-info/SOURCES.txt'
  Running command /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-3t75ipes
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv7l-3.9
  creating build/lib.linux-armv7l-3.9/RPi
  copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
  creating build/lib.linux-armv7l-3.9/RPi/GPIO
  copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
  warning: build_py: byte-compiling is disabled, skipping.

  running build_ext
  creating build/temp.linux-armv7l-3.9
  creating build/temp.linux-armv7l-3.9/source
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
  source/py_gpio.c: In function ‘PyInit__GPIO’:
  source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated [-Wdeprecated-declarations]
   1046 |    if (!PyEval_ThreadsInitialized())
        |    ^~
  In file included from /usr/include/python3.9/Python.h:145,
                   from source/py_gpio.c:23:
  /usr/include/python3.9/ceval.h:129:36: note: declared here
    129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
        |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
  source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated [-Wdeprecated-declarations]
   1047 |       PyEval_InitThreads();
        |       ^~~~~~~~~~~~~~~~~~
  In file included from /usr/include/python3.9/Python.h:145,
                   from source/py_gpio.c:23:
  /usr/include/python3.9/ceval.h:130:37: note: declared here
    130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
        |                                     ^~~~~~~~~~~~~~~~~~
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
  arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
  arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -L/usr/lib -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:42: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:41: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:40: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:39: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:38: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:37: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:36: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:35: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:34: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:33: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:32: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:31: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:30: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:29: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:28: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:27: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:26: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/py_pwm.h:23: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: first defined here
  /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/event_gpio.c:60: first defined here
  collect2: error: ld returned 1 exit status
  error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
  ERROR: Failed building wheel for RPi.GPIO
  Running command /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --all
  running clean
  removing 'build/temp.linux-armv7l-3.9' (and everything under it)
  removing 'build/lib.linux-armv7l-3.9' (and everything under it)
  'build/bdist.linux-armv7l' does not exist -- can't clean it
  'build/scripts-3.9' does not exist -- can't clean it
    Running command /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-qz70tsk9/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include/site/python3.9/RPi.GPIO
    running install
    /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      warnings.warn(
    running build
    running build_py
    creating build
    creating build/lib.linux-armv7l-3.9
    creating build/lib.linux-armv7l-3.9/RPi
    copying RPi/__init__.py -> build/lib.linux-armv7l-3.9/RPi
    creating build/lib.linux-armv7l-3.9/RPi/GPIO
    copying RPi/GPIO/__init__.py -> build/lib.linux-armv7l-3.9/RPi/GPIO
    warning: build_py: byte-compiling is disabled, skipping.

    running build_ext
    creating build/temp.linux-armv7l-3.9
    creating build/temp.linux-armv7l-3.9/source
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/c_gpio.c -o build/temp.linux-armv7l-3.9/source/c_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/common.c -o build/temp.linux-armv7l-3.9/source/common.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/constants.c -o build/temp.linux-armv7l-3.9/source/constants.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/cpuinfo.c -o build/temp.linux-armv7l-3.9/source/cpuinfo.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/event_gpio.c -o build/temp.linux-armv7l-3.9/source/event_gpio.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/py_gpio.c -o build/temp.linux-armv7l-3.9/source/py_gpio.o
    source/py_gpio.c: In function ‘PyInit__GPIO’:
    source/py_gpio.c:1046:4: warning: ‘PyEval_ThreadsInitialized’ is deprecated [-Wdeprecated-declarations]
     1046 |    if (!PyEval_ThreadsInitialized())
          |    ^~
    In file included from /usr/include/python3.9/Python.h:145,
                     from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:129:36: note: declared here
      129 | Py_DEPRECATED(3.9) PyAPI_FUNC(int) PyEval_ThreadsInitialized(void);
          |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
    source/py_gpio.c:1047:7: warning: ‘PyEval_InitThreads’ is deprecated [-Wdeprecated-declarations]
     1047 |       PyEval_InitThreads();
          |       ^~~~~~~~~~~~~~~~~~
    In file included from /usr/include/python3.9/Python.h:145,
                     from source/py_gpio.c:23:
    /usr/include/python3.9/ceval.h:130:37: note: declared here
      130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
          |                                     ^~~~~~~~~~~~~~~~~~
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/py_pwm.c -o build/temp.linux-armv7l-3.9/source/py_pwm.o
    arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -I/home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include -I/usr/include/python3.9 -c source/soft_pwm.c -o build/temp.linux-armv7l-3.9/source/soft_pwm.o
    arm-linux-gnueabihf-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 build/temp.linux-armv7l-3.9/source/c_gpio.o build/temp.linux-armv7l-3.9/source/common.o build/temp.linux-armv7l-3.9/source/constants.o build/temp.linux-armv7l-3.9/source/cpuinfo.o build/temp.linux-armv7l-3.9/source/event_gpio.o build/temp.linux-armv7l-3.9/source/py_gpio.o build/temp.linux-armv7l-3.9/source/py_pwm.o build/temp.linux-armv7l-3.9/source/soft_pwm.o -L/usr/lib -o build/lib.linux-armv7l-3.9/RPi/_GPIO.cpython-39-arm-linux-gnueabihf.so
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:42: multiple definition of `both_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:42: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:41: multiple definition of `falling_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:40: multiple definition of `rising_edge'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:39: multiple definition of `pud_down'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:38: multiple definition of `pud_up'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:37: multiple definition of `pud_off'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:36: multiple definition of `bcm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:35: multiple definition of `board'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:34: multiple definition of `unknown'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:33: multiple definition of `spi'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:32: multiple definition of `i2c'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:32: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:31: multiple definition of `serial'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:31: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:30: multiple definition of `pwm'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:30: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:29: multiple definition of `output'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:29: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:28: multiple definition of `input'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:28: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:27: multiple definition of `low'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:27: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:26: multiple definition of `high'; build/temp.linux-armv7l-3.9/source/constants.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/constants.h:26: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: multiple definition of `gpio_direction'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:38: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/py_pwm.h:23: multiple definition of `PWMType'; build/temp.linux-armv7l-3.9/source/py_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/py_pwm.h:23: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: multiple definition of `module_setup'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:41: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: multiple definition of `setup_error'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:40: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: multiple definition of `rpiinfo'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:39: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: multiple definition of `pin_to_gpio'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:37: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: multiple definition of `pin_to_gpio_rev3'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:36: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: multiple definition of `pin_to_gpio_rev2'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:35: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: multiple definition of `pin_to_gpio_rev1'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:34: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/py_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: multiple definition of `gpio_mode'; build/temp.linux-armv7l-3.9/source/common.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/common.h:33: first defined here
    /usr/bin/ld: build/temp.linux-armv7l-3.9/source/soft_pwm.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/soft_pwm.c:28: multiple definition of `threads'; build/temp.linux-armv7l-3.9/source/event_gpio.o:/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/source/event_gpio.c:60: first defined here
    collect2: error: ld returned 1 exit status
    error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
ERROR: Command errored out with exit status 1: /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-66uflmoj/rpi-gpio_42559d356b25473095fc0e0cb7b229c2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-qz70tsk9/install-record.txt --single-version-externally-managed --compile --install-headers /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/include/site/python3.9/RPi.GPIO Check the logs for full command output.

Using pip 21.3.1 from /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages/pip (python 3.9)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting adafruit-circuitpython-amg88xx
  Using cached https://www.piwheels.org/simple/adafruit-circuitpython-amg88xx/adafruit_circuitpython_amg88xx-1.2.9-py3-none-any.whl (6.9 kB)
Collecting Adafruit-Blinka
  Using cached https://www.piwheels.org/simple/adafruit-blinka/Adafruit_Blinka-6.20.1-py3-none-any.whl (194 kB)
Collecting adafruit-circuitpython-register
  Using cached https://www.piwheels.org/simple/adafruit-circuitpython-register/adafruit_circuitpython_register-1.9.7-py3-none-any.whl (17 kB)
Collecting adafruit-circuitpython-busdevice
  Using cached https://www.piwheels.org/simple/adafruit-circuitpython-busdevice/adafruit_circuitpython_busdevice-5.1.1-py3-none-any.whl (8.4 kB)
Collecting RPi.GPIO
  Using cached RPi.GPIO-0.7.0.tar.gz (30 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: rpi-ws281x>=4.0.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (4.3.1)
Collecting pyftdi>=0.40.0
  Using cached https://www.piwheels.org/simple/pyftdi/pyftdi-0.53.3-py3-none-any.whl (141 kB)
Requirement already satisfied: sysv-ipc>=1.1.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (1.1.0)
Collecting Adafruit-PlatformDetect>=3.13.0
  Using cached https://www.piwheels.org/simple/adafruit-platformdetect/Adafruit_PlatformDetect-3.19.4-py3-none-any.whl (18 kB)
Collecting Adafruit-PureIO>=1.1.7
  Using cached https://www.piwheels.org/simple/adafruit-pureio/Adafruit_PureIO-1.1.9-py3-none-any.whl (12 kB)
Requirement already satisfied: pyusb!=1.2.0,>=1.0.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from pyftdi>=0.40.0->Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (1.2.1)
Requirement already satisfied: pyserial>=3.0 in /home/pi/.local/share/virtualenvs/boat-thermometer-YlIrBdoV/lib/python3.9/site-packages (from pyftdi>=0.40.0->Adafruit-Blinka->adafruit-circuitpython-amg88xx->-r /tmp/pipenv-7z3b9n3y-requirements/pipenv-rtbhpatw-requirement.txt (line 1)) (3.5)
Building wheels for collected packages: RPi.GPIO
  Building wheel for RPi.GPIO (setup.py): started
  Building wheel for RPi.GPIO (setup.py): finished with status 'error'
  Running setup.py clean for RPi.GPIO
Failed to build RPi.GPIO
Installing collected packages: RPi.GPIO, pyftdi, Adafruit-PureIO, Adafruit-PlatformDetect, Adafruit-Blinka, adafruit-circuitpython-register, adafruit-circuitpython-busdevice, adafruit-circuitpython-amg88xx
    Running setup.py install for RPi.GPIO: started
    Running setup.py install for RPi.GPIO: finished with status 'error'

This is likely caused by a bug in adafruit-circuitpython-amg88xx. Report this to its maintainers.
✘ Installation Failed 
pi@pi-01:~/boat-thermometer $

Example needs renaming to match lib name

One example begins with amg8xx_. It should begin with amg88x_ to match the lib name.

The lines including this file name in the docs/examples.rst file must also be updated to reflect the name change, e.g.:

.. literalinclude:: ../examples/current_file_name.py
    :caption: examples/current_file_name.py
    :linenos:

would be updated to:

.. literalinclude:: ../examples/current_file_name_changed.py
    :caption: examples/current_file_name_changed.py
    :linenos:

error when run the camera example.

Hi, thanks by the great git and sharing. Im getting this error with camera example but the terminal example works ok. I had a difficult installation of pygame , Raspberry 4 with ubuntu 18.04 maybe that help to debug:

` python3 rpi_thermal_cam.py
pygame 2.0.0 (SDL 2.0.8, python 3.6.9)
Hello from the pygame community. https://www.pygame.org/contribute.html
dbus[12339]: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../../dbus/dbus-message.c line 1362.
This is normally a bug in some application using the D-Bus library.

D-Bus not built with -rdynamic so unable to print a backtrace
Aborted
EDIT, IT WORKED FINALLY WITH SUDO BUT IT WILL CLOSE AND SEND A ERROR OR NEED REBOOT, It sends this msgTraceback (most recent call last):
File "./rpi_thermal.py", line 80, in
for row in SENSOR.pixels:
File "/home/ubuntu/.local/lib/python3.6/site-packages/adafruit_amg88xx.py", line 167, in pixels
i2c.write_then_readinto(buf, buf, out_end=1, in_start=1)
File "/home/ubuntu/.local/lib/python3.6/site-packages/adafruit_bus_device/i2c_device.py", line 149, in write_then_readinto
in_end=in_end,
File "/home/ubuntu/.local/lib/python3.6/site-packages/busio.py", line 141, in writeto_then_readfrom
stop=stop,
File "/home/ubuntu/.local/lib/python3.6/site-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 88, in writeto_then_readfrom
address, buffer_out[out_start:out_end], in_end - in_start
File "/home/ubuntu/.local/lib/python3.6/site-packages/Adafruit_PureIO/smbus.py", line 273, in read_i2c_block_data
ioctl(self._device.fileno(), I2C_RDWR, request)
OSError: [Errno 5] Input/output error
`

Strange values from simpletest.py

I've just tried the simpletest.py example on my GridEye + R-Pi and I'm getting some very odd temperature readings:

['0.0', '0.0', '0.0', '511.2', '510.5', '510.8', '509.8', '506.5']

['1.5', '0.2', '511.5', '510.8', '510.0', '510.0', '509.8', '506.8']

['0.8', '0.0', '511.2', '510.8', '510.0', '509.8', '508.8', '506.2']

['511.8', '511.0', '510.8', '509.8', '510.2', '509.5', '508.8', '507.0']

['511.0', '510.8', '510.8', '510.2', '510.2', '509.2', '509.0', '506.0']

['510.8', '511.0', '510.8', '511.0', '510.2', '510.8', '509.5', '506.5']

['510.5', '510.8', '510.5', '511.0', '510.5', '509.8', '509.2', '505.0']

['508.8', '510.8', '511.2', '510.0', '511.8', '510.8', '509.0', '503.5']

It is unseasonably warm here but 500+°c seems a little excessive.

Update: The thermistor is reading 44.6

Any ideas?

Project dependencies may have API risk issues

Hi, In Adafruit_CircuitPython_AMG88xx, inappropriate dependency versioning constraints can cause risks.

Below are the dependencies and version constraints that the project is using

Adafruit-Blinka
adafruit-circuitpython-register
adafruit-circuitpython-busdevice

The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict.
The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.

After further analysis, in this project,
The version constraint of dependency Adafruit-Blinka can be changed to >=0.1.5,<=8.0.2.

The above modification suggestions can reduce the dependency conflicts as much as possible,
and introduce the latest version as much as possible without calling Error in the projects.

The invocation of the current project includes all the following methods.

The calling methods from the Adafruit-Blinka
micropython.const
The calling methods from the all methods
pygame.display.set_mode.fill
sphinx_rtd_theme.get_html_theme_path
float
pygame.init
enumerate
colour.Color.range_to
pygame.draw.rect
adafruit_register.i2c_bits.RWBits
time.sleep
bytearray
round
adafruit_amg88xx.AMG88XX
int
pygame.display.update
adafruit_bus_device.i2c_device.I2CDevice
datetime.datetime.now
constrain
busio.I2C
pygame.mouse.set_visible
math.floor
map_value
adafruit_register.i2c_bit.RWBit
sys.path.insert
_twos_comp_to_float
os.path.abspath
pygame.display.set_mode
min
i2c.write_then_readinto
range
os.environ.get
sys.stdout.write
max
colour.Color
scipy.interpolate.griddata
list
os.putenv
print_there
str
len
sys.stdout.flush
micropython.const
_signed_12bit_to_float

@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.