Adafruit_Learning_System_Guides icon indicating copy to clipboard operation
Adafruit_Learning_System_Guides copied to clipboard

PyPortal' object has no attribute 'root_group

Open pjockey opened this issue 5 months ago • 4 comments

Pulled out the hurricane tracker and updated the PyPortal to Curcuitpython 9.2.8 and downloaded the libraries data 25-06-06 and installed all of the new files. Using the updated code and settings.toml. The tracker shows the screen briefly and then the following errors show up:

Retrieving data...Traceback (most recent call last):
  File "code.py", line 171, in <module>
  File "code.py", line 76, in update_display
  File "adafruit_portalbase/network.py", line 557, in fetch
  File "adafruit_requests.py", line 711, in get
  File "adafruit_requests.py", line 639, in request
  File "adafruit_connection_manager.py", line 337, in get_socket
  File "adafruit_connection_manager.py", line 249, in _get_connected_socket
  File "adafruit_connection_manager.py", line 61, in connect
  File "adafruit_esp32spi/adafruit_esp32spi_socketpool.py", line 114, in connect
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 922, in socket_connect
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 818, in socket_open
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 431, in _send_command_get_response
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 401, in _wait_response_cmd
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 383, in _check_data
BrokenPipeError: Expected 01 but got 00

Any suggestions on how to fix this?

pjockey avatar Jun 08 '25 20:06 pjockey

Downloaded the Libraries for 25-06-18. This seem to stop the above errors, but produce a couple of new ones.

Traceback (most recent call last):
  File "code.py", line 32, in <module>
  File "adafruit_pyportal/__init__.py", line 181, in __init__
AttributeError: 'PyPortal' object has no attribute 'root_group'

line code 32 is status_neopixel=board.NEOPIXEL,default_bg="/map.bmp",

Any suggestions are greatly appreciated.

pjockey avatar Jun 19 '25 21:06 pjockey

@pjockey I think that is due to a mismatch is the current version of adafruit_pyportal and the version of adafruit_portalbase that is frozen in to CircuitPython 9.x.

Try using CircuitPython 10.0.0-alpha.7, you'll need to get the libs for 10.x from the bundle that was downloaded as well.

Or alternatively you could keep 9.2.8 and try moving adafruit_portalbase/ from inside of lib/ on your device to the root of CIRCUITPY. Putting libraries in the root of the drive will make them take precedent over the frozen in versions.

FoamyGuy avatar Jun 19 '25 21:06 FoamyGuy

Thanks for the reply @FoamyGuy . Tried the 2nd suggestion first and it produce lots of errors, similar to the original post. So, I installed the CircuitPython 10.0.0-alpha.7 and loaded all of the libraries from 10.x. Get the following output:

Retrieving data...Traceback (most recent call last):
  File "code.py", line 170, in <module>
  File "code.py", line 75, in update_display
  File "adafruit_portalbase/network.py", line 557, in fetch
  File "adafruit_requests.py", line 721, in get
  File "adafruit_requests.py", line 649, in request
  File "adafruit_connection_manager.py", line 331, in get_socket
  File "adafruit_connection_manager.py", line 248, in _get_connected_socket
  File "adafruit_connection_manager.py", line 61, in connect
  File "adafruit_esp32spi/adafruit_esp32spi_socketpool.py", line 114, in connect
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 899, in socket_connect
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 801, in socket_open
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 422, in _send_command_get_response
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 392, in _wait_response_cmd
  File "adafruit_esp32spi/adafruit_esp32spi.py", line 374, in _check_data
BrokenPipeError: Expected 01 but got 00

Below is a image of the /lib on the CircuitPython drive

Image

pjockey avatar Jun 24 '25 02:06 pjockey

As a heads up to anyone else

Or alternatively you could keep 9.2.8 and try moving adafruit_portalbase/ from inside of lib/ on your device to the root of CIRCUITPY. Putting libraries in the root of the drive will make them take precedent over the frozen in versions.

This works for V10 beta 0

cguess avatar Jul 27 '25 19:07 cguess