adafruit / Adafruit_Blinka

Add CircuitPython hardware API and libraries to MicroPython & CPython devices
https://learn.adafruit.com/circuitpython-on-raspberrypi-linux
MIT License
438 stars 328 forks source link

Jetson Nano resulting in AttributeError: module 'adafruit_platformdetect.constants.chips' has no attribute 'JH71x0' #798

Open anthonyisadulting opened 3 months ago

anthonyisadulting commented 3 months ago

Hello all! I am working with this library with a Jetson Nano, and I was wondering how to fix:

AttributeError: module 'adafruit_platformdetect.constants.chips' has no attribute 'JH71x0'

I looked at the chips.py file and saw that there is an attribute there but the 'x' in that file is capitalized

Is that the reason why it is not reading properly? Thank you so much for any help, it is much appreciated.

-Ony

makermelissa commented 3 months ago

Hi. Do you have any line numbers/files in your error message? Like you mentioned, it appears to be a case sensitivity thing, but knowing where to look makes it easier. :)

anthonyisadulting commented 3 months ago

Hi Melissa! Thank you for the quick response. This is the error message it its entirety:

Traceback (most recent call last): File "testdrive.py", line 28, in lightShow() File "testdrive.py", line 23, in lightShow pixels = neopixel_spi.NeoPixel_SPI(board.SPI(), 45) File "/home/ony/.local/lib/python3.6/site-packages/board.py", line 289, in SPI return busio.SPI(SCLK, MOSI, MISO) File "/home/ony/.local/lib/python3.6/site-packages/busio.py", line 278, in init from microcontroller.pin import spiPorts File "/home/ony/.local/lib/python3.6/site-packages/microcontroller/init.py", line 65, in elif chip_id == ap_chip.JH71x0: AttributeError: module 'adafruit_platformdetect.constants.chips' has no attribute 'JH71x0'

Also I'm still a bit new to this kind of stuff!

makermelissa commented 3 months ago

Ok cool. Looks like the issue is in Blinka. I'm going to move the issue there.

anthonyisadulting commented 3 months ago

Thank you!

makermelissa commented 3 months ago

Please make sure your version of Blinka has been updated. This was fixed on September 8, 2023 in https://github.com/adafruit/Adafruit_Blinka/commit/1530cf9cbfb008ff6a7e54e695dcb5a34f95d5a4#diff-9fca1fe7549121157e443209ee47d75044bc44e6c0297a9596f4eb147f089b07.

You can upgrade by running pip install --upgrade adafruit-blinka.

anthonyisadulting commented 3 months ago

Just updated my adafruit blinka (used pip3 is that okay?) and I'm still receiving the same error message. D:

I installed the library adafruit-circuitpython-neopixel-spi and adafruit-circuitpython-neopixel. Could there be a conflict here that messes it up?

makermelissa commented 3 months ago

pip3 is fine. It doesn't sound like a conflict. Just out of curiosity, do you know which version of Python you're running? I suspect it is 3.6. If so, please try updating to 3.7 using this guide and the try upgrading again: https://learn.adafruit.com/circuitpython-libraries-on-linux-and-the-nvidia-jetson-nano/initial-setup#install-python-3-dot-7-and-make-default-3114929

anthonyisadulting commented 3 months ago

Ohhhh, yeah I'm using 3.6.9. I'll update my python when I get off of work today and I'll let you know!!!! Thank you so much for the fast responses Melissa, do you have any social media by chance? I appreciate your help so much !! 😭

makermelissa commented 3 months ago

You're welcome. Social links are in my GitHub profile.

makermelissa commented 3 months ago

Closing for now. We can always re-open.

makermelissa commented 3 months ago

It looks like 3.8 was available, so I updated the guide for that.

anthonyisadulting commented 3 months ago

Hi! Just wanted to make sure, does adafruit-blinka come with its own board library/module or would I have to install it on my own? I updated my python to 3.8 and now my VSCode isn't reading getting some modules.

anthonyisadulting commented 3 months ago

Okay ^ ignore this one, I fixed it (I believe.) I got it running, and now I am getting this 😭😭 😭 if you could please help me I'd appreciate it very much 😭

Traceback (most recent call last): File "testdrive.py", line 28, in lightShow() File "testdrive.py", line 23, in lightShow pixels = neopixel_spi.NeoPixel_SPI(board.SPI(), 45, auto_write = False) File "/home/ony/.local/lib/python3.8/site-packages/board.py", line 150, in SPI return busio.SPI(SCLK, MOSI, MISO) File "/home/ony/.local/lib/python3.8/site-packages/busio.py", line 112, in init from microcontroller.pin import spiPorts File "/home/ony/.local/lib/python3.8/site-packages/microcontroller/init.py", line 29, in elif chip_id == ap_chip.STM32: AttributeError: module 'adafruit_platformdetect.constants.chips' has no attribute 'STM32' Exiting... Cleaning up pins

makermelissa commented 3 months ago

It sounds like you got a bit further. I'll try it out. I have the StarFive board as well and was the one who added it.

anthonyisadulting commented 3 months ago

Oh, I'm using a Jetson Nano! I'm not sure if it's the same problem?

makermelissa commented 3 months ago

Hmm, ok. I have that too and am working on it. Mine is not having the same issue.

makermelissa commented 3 months ago

What is the code you are trying to run?

makermelissa commented 3 months ago

Actually, I wonder if you are running an old version of PlatformDetect. Try running pip install --upgrade Adafruit-PlatformDetect.

anthonyisadulting commented 3 months ago

I tried updating Platform Detect to my 3.8 Python environment using

python -m pip install Adafruit-PlatformDetect==3.8.0

And I'm running into the same error code. (im unsure if the pip install that you said works on applying it to 3.8 even though i thinkkk i made it my default environment (checked python version and it said it was 3.8) so i did that just to make sure.)

This is my code that I am trying to run.

import RPi.GPIO import time import serial import board import neopixel_spi

def lightshow(): pixels = neo[ixel_spi.NeoPixel_SPI(board.SPI(), 45, auto_write = False) pixels.fill(0x0000FF) pixels.show

lightshow()

makermelissa commented 3 months ago

Try updating to 3.62.0. 3.8.0 is a very old version. See: https://github.com/adafruit/Adafruit_Python_PlatformDetect/releases

makermelissa commented 3 months ago

Also, why are you importing RPi.GPIO? That's for the Raspberry Pi.

anthonyisadulting commented 3 months ago

3.62.0 or 3.6.2? And I'm importing RPi.GPIO because apparently it can be used for Jetson Nano as well? I'm unsure I have no lines in my code for that right now, I'm just using serial for motor control in my other functions (I've tried those and they worked before I implimented the stuff for neopixel)

makermelissa commented 3 months ago

3.62.0

Screenshot 2024-03-22 at 10 26 39 AM

Yeah, I just learned that about RPi.GPIO while trying to add PWM support.

anthonyisadulting commented 3 months ago

And just to confirm, this would be okay with python 3.8 right? Yeah, sorry I thought you meant python version!

anthonyisadulting commented 3 months ago

Also I just updated my PlatformDetect to 3.62.0 and checked the version with pip3list and its the version you told me, unfortunately its still giving the same error :((

makermelissa commented 3 months ago

It should be fine with 3.8. I just tested it. :) I'll try running your code and see if I run into the same thing.

makermelissa commented 3 months ago

Based on the line numbers in your error message, I think you're still running an old version of Blinka. Please try running python -m pip install --upgrade adafruit-blinka.

anthonyisadulting commented 3 months ago

Okay, that made some progress I think!

Now I'm getting OSError: /dev/spidev0.0 does not exist

I'm gonna look at the sudo /opt/nvidia/jetson-io/jetson-io.py again to make sure I didn't miss anything in those steps but if you have seen this issue before let me know!

anthonyisadulting commented 3 months ago

Actually I just realized even though I enabled the spi1 through the script, nothing comes up with ls /dev/spi*

I'm gonna try and redo those changes, maybe I didn't reboot properly so it didn't write the file that the guide talks about.

anthonyisadulting commented 3 months ago

Hi, I'm still having an issue with this. I currently have HDMI connected to the jetson nano, do you think that this is causing the problem?

makermelissa commented 3 weeks ago

My understanding of the issue is it is caused by a combination of 2 things.

  1. Blinka currently requires Python 3.7 or later and Jetson Nano comes with Python 3.6 by default (this can be upgraded to 3.8 by following the guide.
  2. There was a typo in the release back when Python 3.6 was supported, which is what is installed when Python 3.6 is the installed version.

The way to fix it is to first upgrade python and then update Blinka.