Closed PinkFreud closed 11 months ago
I think frozen libraries are only updated on major and minor updates rather than bug fix updates and I think the fix for this came out after 8.2.0 was released.
I don't think the webrepl is going to work on this board, because it doesn't have native wifi in CircuitPython itself. The wifi is handled by the ESP32SPI library. You would need to use a board whose primary processor is Espressif or use the Pico W.
Nevertheless the original question still stands.
Should we do an 8.3 with updated frozen? Could be 8.2.8 too.
I don't think the webrepl is going to work on this board, because it doesn't have native wifi in CircuitPython itself. The wifi is handled by the ESP32SPI library. You would need to use a board whose primary processor is Espressif or use the Pico W.
Nevertheless the original question still stands.
I was afraid that might be the case - unfortunately, this board predates the newer Matrix Portal S3, with native wifi. Still, if it's possible to get this working with SPI-connected wifi, that'd be amazing!
You just can't use the web workflow, but you could use secrets.py or settings.toml, whichever works.
You just can't use the web workflow, but you could use secrets.py or settings.toml, whichever works.
It looks like settings.toml's variables are added to the env, so I guess that works - but it's pointless if secrets.py still has to exist and contain wifi credentials.
Should we do an 8.3 with updated frozen? Could be 8.2.8 too.
Maybe 8.2.8 is OK, because there aren't any API updates to core modules.
You just can't use the web workflow, but you could use secrets.py or settings.toml, whichever works.
Yeah, that's the main thing updating the libs would fix.
I've taken to using settings.toml AND secrets.py in such cases, where the latter is like:
import os
class Secrets:
def __getitem__(self,name):
return os.getenv(name)
def get(self, name, fallback=None):
return os.getenv(name) or fallback
secrets = Secrets()
I've taken to using settings.toml AND secrets.py in such cases, where the latter is like:
import os class Secrets: def __getitem__(self,name): return os.getenv(name) def get(self, name, fallback=None): return os.getenv(name) or fallback secrets = Secrets()
That's not a bad idea. Thanks @rimwolf-redux!
I think I am not going to update the frozen modules in the next 8.2.x release, because it's a lot of churn that could cause breakage in what is supposed to be a stable release.
If anyone has a specific frozen module they think should be updated in 8.2.x, could you open an issue for that? I will update frozen modules in main
, though.
CircuitPython version
Code/REPL
Behavior
Description
I decided to try CircuitPython 8's webrepl, so following the instructions at https://learn.adafruit.com/circuitpython-with-esp32-quick-start/setting-up-web-workflow and https://docs.circuitpython.org/en/latest/docs/workflows.html#web, I configured settings.toml:
Since I'm not using Adafruit IO (the example code I'm currently using isn't using the network at all, but I will be adding network functionality to it!), I decided to remove the now-unnecessary secrets.py. That's where the above behavior occurred. Even if secrets.py exists w/o wifi credentials, I still see the above error.
Additional information
Oddly, I'm having trouble pinning down the source of the error in question:
WiFi settings are kept in secrets.py, please add them there!
Running a combination of grep and strings on the compiled libs on the matrixportal:
I've also checked the lib bundle source, to no avail (this is the latest bundle, as of yesterday, and the same bundle I have installed on the matrixportal m4):
Close, but nothing quite matching the error in question.
Interestingly, I do find something in the uf2 image, of all places:
... but I haven't been able to track it down in the circuitpython source repo.
Also, I apologize for the terrible joke in the example code above. I was trying to write a custom joke scroller, and while testing the scrolling code, that one happened to have my kids cracking up. :)