#circuitpython-dev

1 messages · Page 335 of 1

indigo wedge
#

@tulip sleet it works! 🙂

#

i'm having a bit of out of ram issues, need to freeze the ble module in but i can see the device and connect to it in nrf connect 🙂

tulip sleet
#

@indigo wedge fantastic! I just did a demo on Show and Tell that talks to the Matrix Portal (which has an ESP32) over BLE UART. Glad it's working on the i.MX!

indigo wedge
#

yep after freezeing in the ble lib i can do advertising and uart 🙂

lone axle
#

@idle owl testing out the monster mask mpy file from the bundle I do think something is amiss actually. The mpy file that comes out of the bundle seems to be on an older revision of the lib from before the buttons property existed. Poking around a little bit I think the issue may be related to to main vs. master branch. My account is set to create repos with main as the default. I noticed that the repo does now have a master branch though and in that branch the buttons property does not exist yet. So I am thinking that the master branch code is ending up in the bundle.

#

I can PR to bring it in-line, but I think the default branch will need to get changed or else it may have to be for every change?

manic glacierBOT
tulip sleet
#

@slender iron should I PR the matrixportal pin fix to 6.0.x instead of main?

slender iron
#

yup! then we'll merge it over into main

idle owl
#

@lone axle PR it, file an issue, tag me and I'll look into it next time I'm working. Should work with main. We'll sort it.

lone axle
#

@idle owl Ah, actually I figured it out I think. The branches were a red herring. It just hasn't had a release made that includes the most recent PRs. I can take care of that and I bet tomorrow's bundle will be all good.

wise shard
#

@tulip sleet Woah the bluetooth with circuitpython is great thank you 🙂

tulip sleet
#

yw! the ESP32 port is only peripheral mode for now, but that's enough for good communication

wise shard
#

So cool!

manic glacierBOT
lone sandalBOT
thorny jay
#

@indigo wedge fantastic! I just did a demo on Show and Tell that talks to the Matrix Portal (which has an ESP32) over BLE UART. Glad it's working on the i.MX!
@tulip sleet Great. What is much needed is a BLE version of the score board. That could be usefull for competition.

lone axle
#

@idle owl just confirmed the monster_m3sk.py file in todays bundle is good to go. Sorry for the false alarm. I had gotten the timeline on this mixed up in my mind, for some reason I was thinking I had gotten everything in before the first release. But there were actually a couple PRs that got merged after and needed to have a new release made.

ionic elk
#

I'm having a funny issue with SPI on the Feather M4 express - I find that it seems to be pulling down the MISO line to the point that the slave/peripheral can't actually send data. I don't see any pulldowns on MISO on either feather schematic, but I know it's on the M4 Express end because when I unplug the wire from that feather but still monitor it with a Saleae, the MISO line works fine...

#

Is there some step that I'm missing?

manic glacierBOT
#

This PR adds SPI Peripheral/Slave APIs to shared-bindings, and implements a SPI Peripheral implementation in the STM32 port. Most of the setup and objects in the common-hal implementation are borrowed from the SPI class, since the two implementations are extremely close.

The primary means of accessing SPI Peripheral is wait_for_transaction(), which will wait in an interrupt-able state until CS is brought low, and then begin a non-blocking SPI transaction. Users can check whether the tra...

fossil lily
#

I'm looking to speed up a game of life implementation but I ran into a problem trying to represent a row as an integer.

print(random.randint(0, 2**30))
819270885
print(random.randint(0, 2**31))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: overflow converting long int to machine word

Is there a way to represent a big number in circuitpython where I'd still be able to do bitwise operations? I don't even need that much bigger - 2**32 would work.

slender iron
manic glacierBOT
slender iron
#

@gilded cradle any luck?

gilded cradle
#

Yes, I seem to be past the RuntimeError: Expected 01 but got 00 but am working on various things to get past the RuntimeError: Failed to send 3 bytes (sent 0) error

slender iron
#

what is the backtrace for that error? is it with io as well?

gilded cradle
#

yeah, same url.

Traceback (most recent call last):
  File "code.py", line 48, in <module>
  File "/lib/adafruit_pyportal.py", line 1078, in fetch
  File "/lib/adafruit_pyportal.py", line 1075, in fetch
  File "/lib/adafruit_pyportal.py", line 1049, in fetch
  File "/lib/adafruit_pyportal.py", line 758, in wget
  File "/lib/adafruit_requests.py", line 639, in get
  File "/lib/adafruit_requests.py", line 541, in request
  File "/lib/adafruit_requests.py", line 538, in request
  File "/lib/adafruit_requests.py", line 459, in _send_request
  File "/lib/adafruit_requests.py", line 450, in _send
  File "/lib/adafruit_esp32spi/adafruit_esp32spi_socket.py", line 82, in send
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 711, in socket_write
RuntimeError: Failed to send 3 bytes (sent 0)
idle owl
#

@lone axle Yeah releases will get you. I almost asked about the release, but made a bad assumption. I should have asked. Now you'll know for next time where to start 🙂

slender iron
#

@gilded cradle is it trying to send to an io socket that was already used once?

gilded cradle
#

I'm not sure

#

probably

slender iron
#

that would be my guess

gilded cradle
#

Just got a new error:

Traceback (most recent call last):
  File "code.py", line 32, in <module>
  File "/lib/adafruit_pyportal.py", line 347, in __init__
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 489, in ip_address
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 482, in network_data
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 324, in _send_command_get_response
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 307, in _wait_response_cmd
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 290, in _wait_response_cmd
  File "/lib/adafruit_esp32spi/adafruit_esp32spi.py", line 269, in _wait_spi_char
RuntimeError: Timed out waiting for SPI char
slender iron
#

that can happen when nina gets in a funny state

gilded cradle
#

ah, normal error handling would probably deal with that

slender iron
#

ya, I think so

gilded cradle
#

Also @slender iron for first error, raising a memory error was causing issues, so I just have it returning False/True and setting the ok variable to that, which seemed to do the trick.

slender iron
#

weird! I'd expect the memory error to work. maybe a nesting issue

gilded cradle
#

It just is not being caught when it is dealt with. Maybe it's something simple.

#

By caught, I mean removed from the raised exceptions

slender iron
#

I'm not sure what you mean. the bool should be ok as long as the memory error will work too

gilded cradle
#

When I raise the memory error, it goes into the except code but then raises it anyways for some reason

slender iron
#

hrm

manic glacierBOT
#

The true changes are only in locale/. Ever since we changed weblate to merge instead of rebase, the github UI has confusingly listed changes on the main branch subsequent to the initial creation of the PR as being a part of the PR. I verify locally that the changes are correct:

jepler@babs:~/src/circuitpython$ git fetch origin refs/pull/3613/head:pr3613 main:main
From https://github.com/adafruit/circuitpython
 * [new ref]             refs/pull/3613/head -> pr3613
   c5d8c12e3.....
tidal kiln
#

hmmm....is this a bug?

Adafruit CircuitPython 5.3.1 on 2020-07-13; Adafruit ItsyBitsy M4 Express with samd51g19
>>> import random
>>> random.randrange(2**30)
772083067
>>> random.randrange(2**31)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: overflow converting long int to machine word
>>> random.randint(0, 2**31)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: overflow converting long int to machine word
>>> random.randint(0, 2**30)
457351761
>>> 
fossil lily
#

I didn't think to check before, but just calculating the big numbers works fine: that is, 2**40 is 1099511627776. so it's when it is passed as an argument we run into trourble

onyx hinge
#

2**31 is outside the range of a platform signed integer (mp_int_t), which is the type that randrange uses in the core implementation.

fossil lily
#

thanks

tidal kiln
#

so it's a feature?

fossil lily
#

I wonder if there's a timing hit to bitwise operations on numbers larger than that, that python is having to store with a different integer implementation. I guess I'll find out 🙂

tidal kiln
#
>>> import math
>>> math.sqrt(2**31)
46340.9
>>> foo = range(2**31)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: overflow converting long int to machine word
>>> 
onyx hinge
#

can I get an esptool on raspberry pi that knows esp32s2? the one from pip3 install doesn't seem to 😦

#

esptool.py v2.8 - ESP8266 ROM Bootloader Utility

crimson ferry
fossil lily
#

to close the above loop, I did a loop of 10000ish bitwise operations on an integer < 2^31 and an integer > 2^31. The smaller one was slightly faster in this very unscientific comparison. 1.87 seconds vs 2.15 seconds. Interestingly, only .24 seconds for an integer < 2*15. So somewhere in there they may be switching representations.

onyx hinge
#

this seems to have worked: pip3 install --user https://github.com/espressif/esptool/archive/master.zip

#

surprisingly(?) you can get bigger random numbers this way: ```>>> random.getrandbits(32)
4195846815

#

though you can't go past 32 apparently

fossil lily
#

same limitation I guess, just without having to sign it

#

nice to know, though, thanks

onyx hinge
#
7039520916339603446423152741381928262896557240251842323767347022576617894942816980969072111013198643271283066694447011165886866920040375966788009562238255
``` this variation lets you get truly unreasonable sized integers
fossil lily
#

haha

onyx hinge
#

in this case, 8*64 = 512 bits

fossil lily
#

interesting

#

that's a cool workaround

onyx hinge
#

fwiw I am also experiencing the regular REPL disconnects on my esp32s2 😦 I don't know if an issue has been filed about this.

solar whale
#

@onyx hinge How often does it disconnect? Do you have be doing something for it to disconnect?

onyx hinge
#

it disconnected a few times while I was playing with random numbers earlier

#

looks like it's been happening every few minutes while idle for the last hour

#

39 times in the last hour based on looking in dmesg, while idle at the repl (I think) with a terminal (tio) open. no intentional disk access.

#

host is a pi zero

solar whale
#

hmmm -- not seeing anything like that on Linux box.

#

using screen , not tio

#

I have one of your pizero/USB configurations -- I'll dust it off and give it a try

trim elm
onyx hinge
#

I suppose it could be the pi, except I swear someone else reported it as well

trim elm
#

@onyx hinge Yeah, I also remember someone reporting having those issues with the esp32s2, although I can't remember where it was they reported it

onyx hinge
#
adabot/update_cp_org_libraries.py:        "repo_infrastructure_errors": sorted_repos_by_error,
``` these grep matches could help answer your question @trim elm but I'm not 100% sure
trim elm
#

Thanks. I'll give that a go

karmic notch
#

ValueError: Error connection to Adafruit IO. The response was: {"error":"request failed - failed to generate strftime with given format"}

tidal kiln
solar whale
#

hmm -- right now I can't get the pi ZeroW to even see the esp32s2 --- it works on my Pi 4 but not on the Zero ....

tidal kiln
#

@solar whale did you ever learn anything new about linux USB lockups? i think i saw you doing some additional sleuthing maybe?

solar whale
#

No-- they seemed to go away for awhile, but I'be had several recently with esp32s2 and with a metro_m4 -- just causes my Linux box to reboot. The frequency is much less that it was awhile ago. Only happens on RESET or disconnect of the MCU board.

tidal kiln
#

yep. same here. except i get hardlock, not a reset.

#

thanks. guess will just continue to live with it.

solar whale
#

ah -- Linux -- what flavor?

tidal kiln
#

ubuntu 18

solar whale
#

Mine is 20.04

tidal kiln
#

hmm. i have another box i upgraded. maybe i'll try that.

#

saw some quirks with 20, so was holding off for a bit on this box

#

ui quirks etc., nothing related to this issue

solar whale
#

quirks on Linux?? Never...

#

@onyx hinge I must have done something to my USB proxy system -- It does not see anything on the USB ports right now.....

#

ah -- helps to power it from the correct port -- got it mounted

#

I have both a umfeather32s2 and a saola_wrover connected to the PiZero -- will let them run awhile and see if there are any disconnects.

onyx hinge
#

cool. this is an esp32s2 metro

manic glacierBOT
solar whale
#

no -- my metro s2 will be here on Saturday...

#

No disconnects after 20 + minmutes

#

I'll let it run -- have to go AFK --- probably for the evening -- I'll let you know how they do.

thorny jay
#

@tulip sleet I really appreciate your BLE learn guide. It is educative, especialy the "don't do 'sudo pip3' " with reference. I tested all the example I could with my Pi4 = when I have the hardware (heartbeat and UART) and I seems to be able to crash the code when turning off the device my Pi is connecting to. Not sure where to report (for what library). Here is my various crash dump: https://gist.github.com/dglaude/abe66e8156bc0853a2877793eafacb8f

Gist

Crashing _bleio on Pi4 with hearth rate monitor. GitHub Gist: instantly share code, notes, and snippets.

tulip sleet
#

@thorny jay Thanks for the report. I saw similar, but chalked it up to not-so-great error handling. Could you turn that gist into an issue on https://github.com/adafruit/Adafruit_Blinka_bleio ?

I believe these crashes may not occur or Windows and/or MacOS.

manic glacierBOT
solar whale
#

@onyx hinge 75 minutes -- no disconnects

thorny jay
onyx hinge
#

I must just be special then

solar whale
#

Most certainly -- you are special...

manic glacierBOT
manic glacierBOT
manic glacierBOT
#

This cleanup is part of #2041 - cleaning up warnings from make stubs and make check-stubs. Adding more detailed type information and fixing a few types.

I worked on this as part of #hacktoberfest (https://hacktoberfest.digitalocean.com/), so if the PR looks OK would you mind adding the label hacktoberfest-accepted?

Note that several of the warnings/errors are coming from the ulab package, so I'll try and make a PR there as well.

solar whale
#

@onyx hinge 5 Hours -- no disconnects.

slender iron
#

if anyone wants to test it

#

still needs a bit of cleanup

tulip sleet
#

will it go in 6.0.0?

slender iron
#

I don't think so

#

folks on -s2 should continue to use the prerelease

brittle hornet
#

I don’t have any experience with circuitpython...what’s the easiest thing I can start with on the adabox016?

manic glacierBOT
solar whale
solar whale
#

@onyx hinge final update -- I ran the two boards overnight with no disconnects. Sorry I was not able to reproduce the issue. Both running the same build Adafruit CircuitPython 6.1.0-alpha.0-141-g05d663b18 on 2020-10-29; Saola 1 w/Wrover with ESP32S2 Adafruit CircuitPython 6.1.0-alpha.0-141-g05d663b18 on 2020-10-29; FeatherS2 with ESP32S2

solar whale
#

@slender iron I have your fix_recv build on a soala_wrover Adafruit CircuitPython 6.0.0-rc.0-19-gd4e5e9320 on 2020-10-30; Saola 1 w/Wrover with ESP32S2-- it seems to be working fine but I was not really sure how to "stress" test it. Is there a specific thing to try? FYI, It returns this request much more quickly than before (now takes 5-7 seconds) ```response = requests.get("https://api.github.com/repos/adafruit/circuitpython")
print(response.status_code)
print("circuitpython open issues", response.json()["open_issues_count"])
print("circuitpython stars", response.json()["stargazers_count"])

cursive condor
#

hello. I'm discovering microcontroler.nvm and I was wondering what are the limitations of that ? how much can I store there ? where is it stored physically ?

solar whale
#

@cursive condor If I recall correctly, the size is board dependent - you can check the size ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 6.0.0-rc.0-99-g3f529855d on 2020-10-26; Adafruit Feather M4 Express with samd51j19

import microcontroller
len(microcontroller.nvm)
8192

stuck elbow
#

the size varies between boards

cursive condor
#

ok. Thanks a lot !

cursive condor
#

and it never get writed over or moved ? in case of CP upgrading for example ?

onyx hinge
#

installing arduino would likely erase it. I don't know if updating CP would, I don't think so though. If upgrading CP wipes it, we really should note it in the docs.

cursive condor
#

ok thats great. I'll test that further someday

manic glacierBOT
onyx hinge
#

@gilded cradle @slender iron I just happened to notice this in adafruit_requests: sent = socket.send(data[total_sent:]) if sent is None: sent = len(data) https://github.com/adafruit/Adafruit_CircuitPython_Requests/blob/master/adafruit_requests.py#L451 Ithink the length calculation is wrong, though possibly in an an insignificant way, because it can only make total_sent be greater than len(data) which will terminate the loop. sent = len(data) - total_sent

gilded cradle
#

@onyx hinge are you using the latest requests and esp32spi that got released last night?

onyx hinge
#

I wasn't using anything, just looking at the source from current master of adafruit_circuitpython_requests for no real reason

#

I think my concern is probably a big nothingburger though, sorry to bother you

manic glacierBOT
#

I am able to reproduce this problem, without waiting a long time, by putting the host computer into sleep mode.
Simple test program:

# Prints elapsed number of seconds, every 10 seconds.
import time
while True:
    print (int(time.monotonic()))
    time.sleep(10)

Example with 6.0.0-rc.0:

$ repl  # an alias I have to use picocom
82
92
102
[--here, I put the host computer to sleep, and then waited a bit to wake it up]
172
[--typed ctrl-c here]
Traceback (mo...
slender iron
#

@onyx hinge I think that's for the esp32spi socket impl that doesn't return how much was sent

onyx hinge
#

and it's not like it'll return 16 once and then return None

#

everything's fine, I'm jumping at shadows

slender iron
#

right, the esp32spi version would return None always I think

#

@solar whale it should be faster because it no longer waits for a timeout

solar whale
#

definitely improved.

slender iron
#

great!

tulip sleet
onyx hinge
#

@tulip sleet OK, let me refresh my memory a bit

#

this is causing the UART to get lost? or that's the working theory?

#

my testing was done using a cable with a switch to turn on/off the data lines, I didn't think of testing a laptop suspend mode.

tulip sleet
#

yes, _serial_connected is still false after the host computer wakes up from sleep. the tud_cdc_line_state_cb() is not called when it wakes up from sleep

#

I could set _serial_connected = true in tud_resume_cb(), but that makes some assumptions that CDC is back in shape when it might not be, I think.

#

tud_cdc_connected() seems to be true if it was ever connected, right? That's what you're trying to overcome and make more accurate.

onyx hinge
#

tud suspend/resume refer to the whole USB connection too

tulip sleet
#

Maybe this is more of a TinyUSB issue

onyx hinge
#

USB could be connected but if the terminal program isn't open we want to say we're not "connected"

tulip sleet
#

i wonder if it's not possible to know if the terminal program is open or not. There has to be a dynamic check in TinyUSB for CDC actually operational

onyx hinge
#

maybe we have to track two things

#

the first being the DTR state, the second being the suspend/resume state of usb

tulip sleet
#

I could do _serial_connected = tud_cdc_connected() in tud_resume_cb(), but I'm not sure that will give accurate info: either tud_cdc_connected() is optimistic,, or it's too soon.

#

But I think the issue is that it's optimstic. I can test calling tud_cdc_connected() with the terminal program running or not

#

maybe I can test the dtr state manually in the resume callback

onyx hinge
#
    return _cdc_dtr && !_usb_suspended;
}
``` and track _cdc_dtr in tud_cdc_line_state_cb and _usb_suspended in tud_resume_cb and tud_suspend_cb
tulip sleet
#

since the line_state callback is never called

#

ah, I see, so if the terminal program is shut down when not sleeping _cdc_dtr will go false

onyx hinge
#

this depends on the terminal software setting the dtr flag but yes

tulip sleet
#

there is no _usb_suspended, right now, right, that is your proposal to flip that in the supend/resume callbacks? Maybe there's just a call for that, as well

#

i'll look at tinyusb api

onyx hinge
#

yeah _usb_suspended was a hypothetical new variable in circuitpython

tulip sleet
#

ok, good, thanks, you spend a lot more time on this than I did, so good to know your thinking. Either it's fixable or we'll revert to the old behavior for now to avoid the regression while we figure out a better solution, but I think we can be more precise as you proposed.

onyx hinge
#

reverting is fine as a fallback

#

I can do testing if that would be helpful to you, but it sounds like you can trigger it easly

#

if you have one of those charge/data switch cables that's how I tested

tulip sleet
#

yes, the sleep mode is easy; I just have it connected to a second computer and am doing debugging on the first, and I have that kind of cable too

#

ok, off to test and code. thank you!

#

board is USB to a Windows box, and I have the J-Link connected on my Linux box

onyx hinge
#

does linux work for demonstrating the suspend problem? it's about all I have, without inconvenience.

tulip sleet
#

yes, it doesn't matter the OS. I just have two spare windows boxes on my desk for windows debugging + my Linux box. The windows boxes are the Dell micro format size, and I connect to them with RDP on the Linux box, so it's really convenient to use multiple machines. I even connect to my Mac laptop with Nomachine (which is like RDP) so I don't have to switch monitors or keyboards.

manic glacierBOT
tulip sleet
#

there are a bazillion computers in this house 🙂

manic glacierBOT
spare prawn
#

we are having an issue where we have multiple same devices and app code running...sporadically...after several hours of heavy use and unclear how to reproduce an event occurs where the internal flash erases completely. we wipe and install the circuit python
and application code and it works again. the flash is fairly full but not completely full (saw some mention of this being and issue in CP4). The internal memory is also close to being full, but we poweron reset the device after each use (2-3 minutes). Another symptom is that over time, power on reset seems to stop working reliably and we have to do a manual reset to get the boards working. this is nrf52 feather express. any suggestions on how to test / reproduce and what the issue may be would be greatly appreciated.

tulip sleet
#

@spare prawn what version of CPy are you using?

spare prawn
#

adafruit-circuitpython-feather_nrf52840_express-en_US-5.3.0.uf2

tulip sleet
#

have you tested with 6.0.0-rc.0?

spare prawn
#

no, i am supporting folks doing a lot of experiments in time constrained manner so swap out is hard

#

but i can in a day or two

tulip sleet
#

I would recommend that; we did fix various bugs, though having the internal flash erased completely is not something I have seen. There might have been some issues when the internal flash was used partly as a filesystem. Are you using microcontroller.nvm, or are you doing BLE bonding?

#

those are the only two things that would write to internal flash

spare prawn
#

BLE

tulip sleet
#

so you're doing pairing/bonding, as opposed to just simple connection?

spare prawn
#

no, simple connection using ble.uart

tulip sleet
#

that would not write bonding data into flash

#

when you say "internal flash erase completely", you mean the chip flash, not CIRCUITPY?

spare prawn
#

the end state is the CIRCUITPY folder apps and the lib folder are empty.

tulip sleet
#

ok, I would not call that internal flash, but external flash (CIRCUITPY is on the separate flash chip).

#

there were some bugs fixed related to that, I think. I'd need to look it up

#

is the host computer writing to CIRCUITPY during this testing?

spare prawn
#

ok, that clears up one of my questions about the flash on board the feather. apologies. files remaining, boot_out.txt, code.py, empty lib folder.

tulip sleet
#

What are the host computers, are they Windows, MacOS, or Linux?

spare prawn
#

mac os

#

but devices are running stand alone when this happens

tulip sleet
#

That writes quickly to CIRCUITPY, unlike Windows and Linux.

#

is this battery power?

spare prawn
#

the disk does look in a different state after this happens...invisible files gone, no trashes etc

#

yes its battery power

#

but not the li po seperate 9v downregulated to 5v...legacy thingg

#

and it could be possible this happens on power on...i have not really looked closely at what its doing...this could be messy and could also be part of the power on reset issue.

tulip sleet
#

so, what might be happening is that there's a power dip, and when the board comes back up, the external flash chip (used for CIRCUITPY) appears to be unformatted (because it's not ready due to low voltage), and so CircuitPython will reformat it, which wipes anything that's there. The voltages involved should not be an issue: the external flash chip should operate down to 2.6 or so, but this sounds like a similar problem we've seen on other boards where the battery gets too low and either the microcontroller chip or the external flash are not working well at too low a voltage

#

or if there's a lot of voltage jitter on power-up, could be similar

spare prawn
#

ok, thats a great clue.

lone axle
#

I have seen instances of a CLUE running on battery power format itself similarly when the battery power gets too low. as an extra data point perhaps

spare prawn
#

thanks!

tulip sleet
#

The nRF52 will do brownout detection at 2.7V and will turn off at that voltage and then restart. So if the battery is marginal then it might be running at below 2.7V, the chip cuts off, and then the battery recovers slightly enough for it to come back, but then the increased drain drags the battery down again and the external flash chip can't function.

#

Yes, this sounds like a battery voltage issue. I'm not sure if the brownout voltage can be raised above a fixed value or not (say to 3V)

spare prawn
#

ok, i will profile on the bench, thank you for that feedback. super helpful

tulip sleet
#

sure, glad to help ... looks like the nRF52 only does a fixed-level brownout detection, not changeable.

#

good luck!

#

@spare prawn I am wrong, hard brown-out detct is 1.6V. That's way below the operating range of the external flash chip

#

but we are checking for soft brownout at 2.7v. at that point we do a brownout reset and CircuitPython would restart, but if there's sag after that, could affect the CIRCUITPY chip

spare prawn
#

ok, great thank you.

lapis hemlock
#

Was there a github blackout two weeks ago? Here is a screenshot of the insights tab in ulab:

#

It is a bit hard to believe the straight zeros at the beginning of the curve...

onyx hinge
#

github has plenty of funny little outages, I wouldn't read too much into it.

manic glacierBOT
ionic elk
#

@slender iron wrapped up the Arduino Neopixel thing today so I'm ready for whatever project you'd like next on the priority queue.

#

will probably try and fix up the F1 port in the meantime

lapis hemlock
#

github has plenty of funny little outages, I wouldn't read too much into it.
@onyx hinge I didn't. I was just a bit surprised.

lapis hemlock
#

@onyx hinge @slender iron @tulip sleet I have just released 1.0.0 of ulab What a relief! 😌

onyx hinge
#

@lapis hemlock nice! Since 6.0 is branched from main, I think it will be no problem to pull request ulab 1.0 into circuitpython's main branch

lapis hemlock
#

I think it might be a bit more complicated, because first we would have to figure out, which features you want to have, how many dimensions and so on. I also have an idea as to how Scott's requirement of "circuitpython experience" could be reconciled with scalable ulab features. I can outline everything on Monday night.

manic glacierBOT
lapis hemlock
manic glacierBOT
#
  • Fixing a few remaining mypy complaints so that make check-stubs now passes
  • Calling make check-stubs instead of make stubs in CI actions.
    • make check-stubs builds the stubs + runs mypy against them (returning a non-zero error code if errors pop up)

This is a follow-on PR from: #3621

I worked on this as part of #hacktoberfest (https://hacktoberfest.digitalocean.com/), so if the PR looks OK would you mind adding the label hacktoberfest-accepted?

slender iron
#

@slender iron wrapped up the Arduino Neopixel thing today so I'm ready for whatever project you'd like next on the priority queue.
@ionic elk how about the countio and rotaryio reviews for microdev. you can pick up UDP for me too. that'd be awesome

silent glen
#

My github account is broken, is here an ok place to report a bug?

slender iron
#

sure

silent glen
#

using the 6.0.0-rc.0 for the unexpected maker board featherS2 board it appears that wifi.radio.ping("192.168.1.1") raises "ValueError: Only IPv4 addresses supported", and running it passing it ipaddress.IPv4Address("192.168.1.1") takes out the serial port at the very least.

tulip sleet
#

@lapis hemlock Félicitations!

bronze shadow
#

Is the code that exposes the CIRCUITPY drive less stable on NRF devices than the M4? I'm getting corrupt files on large writes to disk on all of my NRF devices, but absolutely perfect on my M4 chips.

tulip sleet
#

@bronze shadow some bugs were fixed a while ago; have you tried the 6.0.0-rc.0 release candidate to see if it's better?

bronze shadow
#

I've tested on rc-0 as well as testing with pulling and building the latest from git as well.

tulip sleet
#

Could you file an issue then, with an example? Thanks. We are very interested in reproducible test cases for this. Include info about your host OS.

bronze shadow
#

Can do, though it's been tested on several OS's with the same result. Thanks. Glad to hear that I'm not alone.

manic glacierBOT
#

On large disk writes, filesystem corruption seems to be an issue on the disk. It reports as working properly to the host OS, even after a reboot of the controller. This has been tested on several devices, but is most problematic on the nice_nano, which has almost identical specs to the itsybitsyNRF, and Particle Xenon also has shown this issue as well. Tested using several Cpy versions including 6 rc.0. Steps to reproduce
https://github.com/KMKfw/kmk_firmware

  1. copy KMK folder to the roo...
#

Fixes #3588.

Check for DTR by querying tud_cdc_get_line_state(), and check for tud_usb_ready(). One doesn't need to save state in callbacks this way.

Tested two ways:

  • By putting the host computer to sleep, and then waking it up. When sleeping, supervisor.runtime.serial_available becomes falase. After wakeup, the serial connection is restored, and supervisor.runtime.serial_available is True. Interrupting the running program with ctrl-c works properly, and one can get to the ...
crimson ferry
manic glacierBOT
#

Watching delayed Deep Dive... on the issue of adjusting RTC, what's the reason not to allow setting time back? Might execute some event twice? Setting forward risks losing an event. Why not leave it to the user?

BTW, don't know about ESP32-S2, but M4 RTC calibration often does not have the range to effectively calibrate, the drifts on some chips are way outside the range (e.g., my PyPortal is off by about one second every minute).

manic glacierBOT
lone axle
#

sphinx builds the pages from files in the repo, but I mean actually getting those built pages into readthedocs.

onyx hinge
crimson ferry
#

Nice, thanks Jeff. A semicolon is a really hard thing to web search for.

onyx hinge
#

I think a chunk extension line would look like 6;foo=something;bar=somethingelse\r\n but the code would only read up to the ";" and so the foo=something would be erroneously treated as content

crimson ferry
#

Doesn't that line of code look for the semicolon then read to the \r\n ?

onyx hinge
#

my method of finding the answer was to find the right part of the RFC from wikipedia, then it was right in front of me 🙂

#

I think _readto reads to the first of two delimiters, when both are given

#

and it cuts off the delimeter (I think) so you can't check which you got

crimson ferry
#

and generally I assume we'd just ignore chunk extensions (not supported)

#

honestly I get pretty baffled reading that code, but trying to get a clue why chunked is having issues, also not sure if it drains the end of the last chunk or whether it matters

onyx hinge
#

If you have an example of a chunked http request with extensions it would be a good test case to add

crimson ferry
#

I haven't encountered one in the wild afaik

onyx hinge
#

6;progress=33\r\n

#

no idea if that's used in practice

crimson ferry
#

same, cool idea though

onyx hinge
#
         "Transfer-Encoding: chunked\r\n"
         "\r\n"
         "5; ilovew3;whattheluck=aretheseparametersfor\r\nhello\r\n"
         "6; blahblah; blah\r\n world\r\n"
         "0\r\n"
         "\r\n"```
#

though I guess that's the request side not the response

manic glacierBOT
#

The new lightsleep feature might be causing issues with delays of a variety of types. Today was helping to debug a user's issue when he presented the following.

USER at 3:59 AM
I've noticed that using play_tone() with the Circuit Playground Express (see example below), CircuitPython 6.0.0_rc.0 adds a significant pause after each note compared to 5.3.1. Has anyone else experienced this?

from adafruit_circuitplayground.express import cpx
scale = [587, 659, 740, 880, 987, 1174]
whil...
lone axle
manic glacierBOT
manic glacierBOT
manic glacierBOT
tulip sleet
#

@onyx hinge The latest merge to main failed due to this line in build.yml:

zip -9 circuitpython-stubs.CP_VERSION }}.zip stubs
onyx hinge
#

interesting, why didn't we see it fail until now?

#

clearly that's wrong!

tulip sleet
#

looks like an editing typo, the ${{ part is missing

#

weird that it wasn't caught on the original PR

onyx hinge
#

it's affecting main only?

tulip sleet
#

yes, it only happened when I merged your 6.0.x fixes-into-main PR, and then I got an email that the build failed

onyx hinge
#
+        zip -9 circuitpython-stubs.${{ env.CP_VERSION }}.zip stubs
``` ?
tulip sleet
#

where is that diff from?

onyx hinge
#

is what I'm proposing

tulip sleet
#

change looks good to me

onyx hinge
#

these things that can't be tested before they're actually merged are frustrating. sorry about this.

tulip sleet
#

np, that was weird

#

I will approve and merge when it's done, and then we'll see what happens on the PR merge

onyx hinge
#

thank you

manic glacierBOT
#

This seems to have to do with audio playing. The basic sleep delays are still accurate in 5.3.1 or 6.0.0-rc.2. But the audio play intervals on the SAMD21 are wildly off, and need further investigation.

Test program:

from adafruit_circuitplayground import cp
import time

for test in ("sleep", "tone"):
    for length in (0.05, 0.1, 0.25, 0.5, 1):
        start = time.monotonic()
        if test == "sleep":
            time.sleep(length)
        else:
            cp.play_...
#

Is this a possible or likely fix for #2686 too?

If the host computer went to sleep during the long interval mentioned in #2686, then yes, this should fix that too.

I take that back. #2686 talks about loss of output. In the test above, output is not lost. When the sleeping computer wakes up, output continues to the terminal program. The issue was that CircuitPython didn't realize that the computer reconnected, so it did not go back to the REPL after a ctrl-C.

#
[adafruit/circuitpython] New branch created: stubs\-dir\-name
solar whale
#

@tulip sleet I just received a metro esp32s2 and updated it to main -- When it boots the Drive shows ups a "983 kB Volume" not CIRCUITPY.... is that expected? THis is on Linux (it was the same with the as delivered version of CP .

#

on MacOs it comes up as NO NAME

tulip sleet
#

mine shows as CIRCUITPY, but I am trying rc.0 on it. haven't tried main yhet

solar whale
#

Ah -- I did a storage.erase_filesystem() and it now comes up as CIRCUITPY

#

also before that, it did not generate the lib folder or code.py. Now all are there..

solar whale
#

odd -- I just updated to hte latest adafruit_requests and now the same test I have been running on esp32s2s is failing ```Adafruit CircuitPython 6.1.0-alpha.0-175-gaca53cf41 on 2020-10-31; Metro ESP32S2 with ESP32S2

import wifi_test
cp mem free 2034288
idf total mem 165384
idf mem free 51348
idf largest block 47012
<Network> Needell Airport -43 1
<Network> WYZE_FBAB62DE71811B38 -64 11
<Network> central2.4 -78 8
<Network> 31A -79 8
<Network> Expelliarmus2 -85 10
None
ip 10.0.0.30
8.8.4.4
ping 0.038
200
This is a test of Adafruit WiFi!
If you can read this, its working :)

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "wifi_test.py", line 39, in <module>
File "adafruit_requests.py", line 555, in get
File "adafruit_requests.py", line 535, in request
File "adafruit_requests.py", line 429, in _get_socket
File "adafruit_requests.py", line 425, in _get_socket
OSError: Failed SSL handshake

this si the request that failsresponse = requests.get("https://httpbin.org/get")
print(response.status_code)
print(response.json())

#

if I revert back to teh adafruit_requests from the 20201016 bundle , it works....

solar whale
#

Opened an issue on the library repo.

manic glacierBOT
#

Change in IDF memory behavior from Requests 1.7.2 to 1.7.3/1.7.4...

This is maybe better as a Requests issue, perhaps related to https://github.com/adafruit/Adafruit_CircuitPython_Requests/issues/47

But perhaps also an indication that we are near the edge on IDF memory.

Saola 1 w/Wrover with ESP32S2
6.0.0-rc.0 on 2020-10-16
adafruit-circuitpython-bundle-6.x-mpy-20201031
Requests 1.7.4 or Requests 1.7.3 (Re...
marble hornet
#

is it a known behavior that printing a dict that contains itself does not use the {...} syntax but instead prints recursively?

manic glacierBOT
manic glacierBOT
#

Finally looks like a correct stubs file has been uploaded to s3:
https://adafruit-circuit-python.s3.amazonaws.com/bin/stubs/circuitpython-stubs-6.1.0-alpha.0-177-g3845db4bb.zip
turns out that when the branch is made in adafruit/circuitpython instead of jepler/circuitpython the upload steps can be tested. Nice, I didn't realize that.

That was completely unintentional on my part, but good to know!

manic glacierBOT
#

That is a good question - I matched what's in the C code, so the bigger question is does it make sense for the C header values to be the same?

network/__init__.h

#define MOD_NETWORK_AF_INET (2)
#define MOD_NETWORK_AF_INET6 (10)

#define MOD_NETWORK_SOCK_STREAM (1)
#define MOD_NETWORK_SOCK_DGRAM (2)
#define MOD_NETWORK_SOCK_RAW (3)

socketpool/SocketPool.h

typedef enum {
    SOCKETPOOL_SOCK_STREAM,
    SOCKETPOOL_SOCK_DGRAM,
    SOCKETPOOL_SOCK_RAW
} socke...
manic glacierBOT
manic glacierBOT
#
manic glacierBOT
lone axle
#

How do the PyPi version packages get their versions? I found use_scm_version=True, in setup.py. When I build the tar.gz I see that the version is getting generated from a vew values concatenated together like [library]-0.1.dev16+g73b291d but when I try to upload this to PyPi with twine I get an error: 400 '0.1.dev16+g73b291d' is an invalid value for Version. Error: Can't use PEP 440 local versions.

tulip sleet
#

@lone axle the pypi uploads happen (by GitHub Action) when we make a new release in GitHub, which involves specifying a version tag.

#

we don't upload non-tagged libraries

lone axle
#

I there a resource somewhere that would show me how to set this up on one my own libraries?

#

I created one and have shared it in the community bundle. Working on getting it uploaded to PyPi, but not sure how to get it up to there correctly.

#

I used cookiecutter to create it, so much of the actions config stuff is already in place. I'm guessing I just need to fill in some of my account info somewhere maybe?

tulip sleet
#

the username and password are specified as env vars in the github action setup

#

there are "secrets" that github actions keeps

lone axle
#

Ah, I think I found how to add them in the project settings. Thank you!

manic glacierBOT
onyx hinge
#

Among other things, I had to add a PYPI_TOKEN to the secrets page of my github repo

#

I also had this change in actions ``` env:

  •    TWINE_USERNAME: ${{ secrets.pypi_username }}
    
  •    TWINE_PASSWORD: ${{ secrets.pypi_password }}
    
  •    TWINE_USERNAME: __token__
    
  •    TWINE_PASSWORD: ${{ secrets.pypi_token }}
    
lone axle
#

Ah, I will have to look into upgrading to a token. I ended up with username and pass and I did get it working. This was my first time publishing a library to PyPi and getting readthedocs set up for it 🎉

onyx hinge
#

cool!

#

cookiecutter could clearly use some tweaks for independent or community-bundle-targeted packages

lone axle
#

Ooh that would be neat if it had an "adafruit mode" and "community mode" or similar

onyx hinge
#

I think there's an issue that says as much

lone axle
#

I will say though finding and changing all of the things required has taught me a ton about the Actions and CI infrastructure.

onyx hinge
#

for sure

manic glacierBOT
tulip sleet
#

@slender iron @onyx hinge I did draft release notes for 6.0.0-rc.1. Barring anything else we could release tomorrow.

manic glacierBOT
manic glacierBOT
manic glacierBOT
#

Hi and thanks for your question. The circuitpython issue tracker is not the best place for questions, please consider using our forums or discord chat for asking questions.

If you need to send a 40-bit message on the SPI bus, the way to do it is to prepare a 5-byte piece of data to send. Assuming that you are using a board with "long int" support (most boards except those with M0 microcontrollers), you can make such an array of...

manic glacierBOT
#

Update pad assignments for better resource allocations and ensure that the default I2C is is present on a high-speed capable pair of pads to be fully compliant with I2C spec. Ensure all Dx pins are on TCCx within the same IOSET and non-overlapping so all can be used simultaneously. Ensure all intended SERCOM peripherals are on the same IOSET. Remove second clock source pins for I2S since we can't get them all on the same IOSET and still maintain QSPI - defer to QSPI over the second clock sour...

onyx hinge
#

If you plan to speak in the meeting, please take a moment to add your name in alphabetical order to hug reports and status updates. Adding your notes at the same time is super helpful! If you have notes but won't be speaking during the meeting for whatever reason, just say (no mic), (missing meeting) etc and we'll read them off during the meeting for you. https://docs.google.com/document/d/1P6H-XeIR68ckTJ6Qh26_rQR-8jjx2X4vtz4-OaripvY/edit

manic glacierBOT
solar whale
#

on the metro_esp32s2 I am seeing a File system of approx 1Mbyte and for memory ```
Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 6.1.0-alpha.0-181-gb468bb6b9 on 2020-11-02; Metro ESP32S2 with ESP32S2

import gc
gc.mem_free()
2048784

#

It is the same as the Saola_wrover so I guess that makes sense

#

teh unexpectedmaker feathers2 has 16Mbyts of flash (MByte Files system) but it also has an 8Mbyte PSRAM and shows ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 6.1.0-alpha.0-141-g05d663b18 on 2020-10-29; FeatherS2 with ESP32S2

import gc
gc.mem_free()
8196176

#

ah -Wrover only has 2Mbyte PSRAM

ornate breach
#

I’ll be submitting a PR eventually for my CP Sapling to be added 🥳 probably late this week or early next

solar whale
#

I think there is a typo on circuitpython .org page for the metro_esp32s2

ornate breach
#

Just have to fix some things, test, and whatnot

solar whale
tulip sleet
#

@solar whale makes sense to me, but I am a novice at these modules

solar whale
#

I'll make the change since it is a Wrover Module.

orchid basinBOT
manic glacierBOT
orchid basinBOT
odd warren
#

Hi, I was wondering if I could get some clarification on what portions of the flash are used by the Adafruit nRF52 Bootloader? https://github.com/adafruit/Adafruit_nRF52_Bootloader

I know with softdevice 6 on the 52840 up to 0x26000 is reserved, but what else is reserved? I'm currently running into some troubles neat the end of the flash range. It would be nice to have this documented.

tulip sleet
#

the bootloader is placed in high flash, and there's also a config region there

#

this is because the SD comes first, and then the user program

#
/** Flash start address for the bootloader. This setting will also be stored in UICR to allow the
   *  MBR to init the bootloader when starting the system. This value must correspond to 
   *  BOOTLOADER_REGION_START found in dfu_types.h. The system is prevented from starting up if 
   *  those values do not match. The check is performed in main.c, see
   *  APP_ERROR_CHECK_BOOL(*((uint32_t *)NRF_UICR_BOOT_START_ADDRESS) == BOOTLOADER_REGION_START);
   */
  FLASH (rx) : ORIGIN = 0xF4000, LENGTH = 0xFE000-0xF4000-2048 /* 38 KB */

  BOOTLOADER_CONFIG (r): ORIGIN = 0xFE000 - 2048, LENGTH = 2048

  /** Location of mbr params page in flash. */
  MBR_PARAMS_PAGE (rw) : ORIGIN = 0xFE000, LENGTH = 0x1000
  
  /** Location of bootloader setting in flash. */
  BOOTLOADER_SETTINGS (rw) : ORIGIN = 0xFF000, LENGTH = 0x1000
odd warren
#

Thanks very much @tulip sleet. Also I was curious if there were plans for another release anytime soon? It's been quite a while since the last with many changes.

#

So to summarize this. On the nrf52840, 0xF4000 and onward is for the bootloader?

tulip sleet
#

yes

odd warren
#

Thanks for the quick response and explanation. Much appreciated.

tulip sleet
#

feel free to ask about another release in an issue; however we're working on a cross-platform UF2 bootloader based on tinyusb, and that may be taking precedence.

odd warren
#

Is there a public repo for that I could follow?

tulip sleet
#

i am not sure where that is right now, can't find it in any obvious places

thorny jay
#

BelgiumOk, I am one hour too early... I knew that, I just forgot.

inland tusk
#

@idle owl I was wondering if there was a skeleton for a standard LEARN guide?

idle owl
#

@inland tusk How do you mean?

inland tusk
#

Something that I could just fill in the various sections until I felt that the guide was complete (EI. cookie cutter for creating the initial library skelleton).

#

BTW is the meeting on for today.

idle owl
#

@inland tusk We are meeting today, yes.

supple gale
odd warren
#

Thanks!

idle owl
#

@inland tusk There's not a cookiecutter per se, but we sort of follow a way of doing them. Are you talking about a project type guide or a product type guide?

inland tusk
#

@idle owl Project type

idle owl
#

We don't start with a form. Creating the guide involves titling, description, guide image and categories. Then we are provided a blank slate. We always start with an Overview page, and from there it's basically up to the author how to lay it out. Often there's Wiring, Software Setup, and then Code usage, and sometimes Hardware usage depending on how complicated it is to use.

#

@inland tusk So I think the answer to your question is no. We're kind of taught how to get it going and then we do what makes the most sense the more often we do it.

tulip sleet
inland tusk
#

@idle owl Thanks for the infoblinka

idle owl
#

@inland tusk Anytime!

odd warren
#

@tulip sleet that's great. Is nrf52 planned to be a part of that? I see stm, esp, and iMXRT so far.

opal crystal
#

Could anyone invite me to the circuitpythonistas, please?

tulip sleet
#

not sure about nrf, but i'll ask (developer is asleep right now)

idle owl
#

@opal crystal Done!

odd warren
#

appreciate it.

idle owl
#

Was in the process of asking if you wanted it 😄

opal crystal
#

Thanks!

modern wing
#

Good afternoon all you wonderful folks -- happily lurking today, notes guide updated as such.

idle owl
#

@modern wing Thank you!

trim elm
#

lurking

idle owl
#

@tulip sleet Side note - let me know if you have questions about deprecating the lib and Limor's not around - I've done a bunch of them.

onyx hinge
#

We just finished up our internal meeting, I'm getting a glass of water and then we'll get the meeting started! Thanks for everyone's patience.

tulip sleet
#

sure -thanks

inland tusk
#

@tulip sleet Which lib

tulip sleet
#

old host bluefruit python library, replaced by adafruit-blinka-bleio

inland tusk
#

Oh okay

tidal kiln
#

lurking

errant grail
#

Just listening today.

idle owl
#

@errant grail Please mute

lone axle
errant grail
#

Sorry.

lone axle
crimson ferry
#

Timex Sinclair 1000 😉

lone axle
slender iron
#

@grim dagger @analog bridge lurking?

analog bridge
#

Yup!

grim dagger
#

Lurking

slender iron
#

thanks

manic glacierBOT
#

Looking over the build process, it looks like the certificates are being updated as part of the build process
so I'm to sure this is the actual cause of the SSL handshake errors

If you look in the board build folder after completing a build, this is a file named x509_crt_bundle.S generated and I think this contain the certificate updates from the process noted above. It is run for every build.

modern wing
#

100% this

lapis hemlock
#

link?

lapis hemlock
#

@lone axle Thanks!

lone axle
#

🐱

tidal kiln
#

😺

solar whale
#

👍

errant grail
#

Tried it Saturday, but still had delay issues. I'll try the latest.

slender iron
#

what version was it?

#

latest is 1.7.4

errant grail
#

7.1.4 if I recall. Didn't hang on to the folder.

slender iron
#

kk

errant grail
#

Yeah, that's it.

slender iron
#

was it just slower?

#

or did it not work at all?

errant grail
#

Yes, because I had already trimmed out the direct plotting function. Didn't try recreating the memory conflict.

#

^ just slower

slender iron
#

kk. were you doing json parsing?

errant grail
#

No json parsing in this implementation. Just using PyPortal feed push_to_io() and localtime update.

thorny jay
#

Belgium

slender iron
#

kk, thanks @errant grail

thorny jay
#

DisplayIO on the Pi ? Wait, that is actually great! cc: @lone axle (I saw the PR, but did not understand that it was that).

idle owl
#

@lone axle I just figured out why the MONSTERM4SK library is still on the "Not in the bundle" list on circuitpython.org. I only renamed the repo. There are references to it in setup.py and possibly other places that are still referencing the original case name. Can you go through the repo and fix those references?

lone axle
#

Yep, will do.

idle owl
#

@lone axle Thank you!

lone axle
#

@thorny jay yep! It turned out to be fairly straightforward to "hook up" what Blinka_Displayio was already doing into a PyGame window instead of a hardware display.

slender iron
#

@lone axle was it cool to have displayio on HDMI? I still want to do bare metal CP on rpi

lone axle
#

definitely! I'm excited about being able to test displayio widgets on my PC during development. But I think there are many other great uses for showing data on large format screens

thorny jay
#

Gameduino 3X Dazzler will be fun...

lapis hemlock
#

np.__version__ 

>>> 1.2.0-2D-cpy

add a number specifying the rank in the feature hierarchy


np.__version__ 

>>> 1.2.0-2D-cpy-11

then


if(int(np.__version__.split('-')[-1])) > 10:
    print('OK')
else:
    raise ImportError('sorry, you are toast')

onyx hinge
#

from ulab import fft or if "fft" in dir(ulab):

lapis hemlock
#
import ulab as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

try:
    print(a ** b)
except Exception as e:
    print('operator is not supported: ', e)```
thorny jay
#

Are there already a few learn guide that use ulab, those will be the function used more.

#

FFT for the sound analyse on CLUE was one thing.

#

What would you do with ulab on an M0?

#

The support matrix would need to have a way to see if this is ulab Full or ulab partial.

solar whale
#

breaking up for me as well.

balmy stirrup
#

Are you thinking of a specific NP application or did I miss that? Why NP in particular? Are there other options if not NP or is this for a future ML app? Sorry if you discussed that already.

thorny jay
#

Yeah version number will be confusing.

balmy stirrup
#

Would a bytearray work as well?

thorny jay
#

@lone axle was it cool to have displayio on HDMI? I still want to do bare metal CP on rpi
@slender iron Still interested in VGA output this way:

errant grail
#

Thank you!

thorny jay
#

That is Maximite 2 Color

#

Bye

onyx hinge
#

@tulip sleet I wanted to add a summary of translations to the release notes. Something like:

CircuitPython 6.0's error and control messages are translated into various languages. Besides English, ten other languages' translations are at least 50% complete: locale/pt_BR.po : 100% translated locale/es.po : 99% translated locale/sv.po : 99% translated locale/zh_Latn_pinyin.po : 99% translated locale/nl.po : 93% translated locale/fr.po : 91% translated locale/de_DE.po : 84% translated locale/pl.po : 71% translated locale/ja.po : 70% translated locale/fil.po : 51% translated
(those numbers are accurate, I think)

idle owl
#

@onyx hinge The Hacktoberfest numbers are indeed inaccurate. The label's not on the repos anymore, so not sure why the results are borked. The important thing is that the label was removed, so shrug I suppose.

tulip sleet
#

@onyx hinge Sure, you can edit the draft release notes and add a table or just "locale/pt_BR.po: 100%" (don't have to make it look incredibly pretty. ... Or, can you just provide a link to the weblate translation table? That's more interesting to someone who wants to add translations, since the percentages are going to become stale.

slender iron
tulip sleet
#

@slender iron I would actually like to change the makefiles so they don't use python, but always use python3. I ran into exactly the same problem myself over the weekend when I trying to get the esp32-s2 build setup right

slender iron
#

kk

manic glacierBOT
onyx hinge
#

@tulip sleet shall I write the newsletter blurb as though rc1 will be out?

lapis hemlock
#

@onyx hinge Jeff, do you happen to know, which version of isort you need in extract_pyi.py? I end up with an AttributeError: module 'isort' has no attribute 'code' error in 4.3.21.

onyx hinge
#

@lapis hemlock it looks like I have isort 5.4.2.

lapis hemlock
#

@onyx hinge Thanks! I have updated the library, and it works now.

onyx hinge
#

@lapis hemlock often it's useful to find out what happens in the actions on github ... Collecting isort Downloading isort-5.6.4-py3-none-any.whl (98 kB) in a random recent actions build of circuitpython

#

so I'm behind the times now too but it's good enough

lapis hemlock
#

Nifty trick!

tulip sleet
#

@onyx hinge 👍 Yes, I'll do it after merging the Feather CAN pin changes

blissful pollen
#

I literally ran into the isort thing yesterday so can confirm version 4 does not work and version 5 does

idle owl
slender iron
#

yup

idle owl
#

Thanks

slender iron
#

there is a technical reference as well

idle owl
#

oh hmm. ok.

slender iron
#

and also a datasheet for the module

#

want me to link you?

idle owl
#

Yes please

slender iron
#

kk, looking now

idle owl
#

I found something but what you have is more accurate.

idle owl
#

Thank you

idle owl
#

Ahhh ok. Thank you

slender iron
#

np

idle owl
#

I'll put all three in the guide.

slender iron
#

perfect

#

🌮

crimson ferry
#

@idle owl I was confused when setting up my MetroS2 (maybe in part b/c I've never had that form factor before and so was ignorant of the pin norms), but the silk doesn't match pins.c, so maybe we need more (even redundant) pin defs?

idle owl
#

What doesn't match?

#

I guess a better question might be, is this a known issue or is this the first time it's been mentioned?

crimson ferry
#

well, the numbered pins... some are D*, some are ESP32-S2 GPIO numbers, so it's inconsistent

idle owl
#

Hmm.

crimson ferry
#

usually, you can look at a board and know what to call the pins in CircuitPython board.

idle owl
#

Right. Ok. And that's not the case?

#

Apologies for simple questions, I'm making sure I'm on the same page.

crimson ferry
#

no, like pins with silk 14, 15, 16

#

I haven't tested, but I think maybe those are GPIO numbers

idle owl
#

Ahh ok. I see.

crimson ferry
#

actually, I don't think they are... GPIO15 is D10 (presumably silk="10", so then what's silk="15"?

idle owl
#

Hold on I have the schematic open now.

crimson ferry
#

pins.c allows many-to-one, so we can overload microcontroller numbers

#

ah, totes, didn't think to look there o_O

idle owl
#

Which pins.c, I'm not seeing it. Can you send me a link please?

idle owl
#

@crimson ferry Yeah I often forget the schematic.

#

Oh, I keep looking at master and getting confused. Thank you for the link.

#

That's not right.

#

At least if I'm reading the schematic properly, which is dubious, the pin def doesn't match.

crimson ferry
#

oh, duh, just went to the product page to get to the schematic, but there's no learn guide :p

idle owl
#

Perhaps it hasn't been updated?

#

I'm working on the guide right now 😄

crimson ferry
#

right! I just realized that

#

GAH

#

anyway, just wanted to flag that issue

idle owl
#

See they look like they match for the most part. 😕

crimson ferry
#

oh, so theyre D14 etc, OK

idle owl
crimson ferry
#

but those aren't in pins, so you'd have to use microcontroller.pin.

idle owl
#

@crimson ferry I'll look into it now since I'm working on the guide. May be that it was changed and not updated or something. I'm not certain.

#

Because you are correct. There are, if nothing else, things missing.

crimson ferry
#

also, silk says 21 and 42, those I'm pretty sure are ESP32-S2 GPIO numbers

#

42 is LED, which is D13

tulip sleet
#

the pin names are all the QSTR_xx names. The the GPIOxx names are the internal names, not seen in circuitpython

idle owl
#

Fairly certain the LED got pulled off of D13 for this board. Maybe I'm misremembering.

#

@tulip sleet But not all the board.Dx pins are in there...

#

At least it doesn't look like it, am I missing something?

#

15/16 for example?

tulip sleet
#

i think the silk is "wrong", not consistent with other Metros. Should be D0, D1, etc, not 5, 6,7

idle owl
#

Hmm. Ok.

tulip sleet
#

i'd ask limor about the silk being not typical\

idle owl
#

Ok. I'll do that.

crimson ferry
#

just verified in REPL: D13 == microcontroller.pin.GPIO42 == Red LED

idle owl
#

Ok good to know.

#

@crimson ferry I'm going to be updating the pin def and submitting a PR. Thank you for bringing this to our attention.

crimson ferry
#

same as pins.c basically, but sometimes easier to visually parse

idle owl
#

@tulip sleet Ok, so I have a circuitpython dev environment set up. I did a fetch/merge on main. Create a branch, change the pin.c, then I'll need to build to test it, yes? Is that where the submodule updates come in? Or do I need to do that first? or not at all?

#

@crimson ferry Nice thanks.

tulip sleet
#

git submodule sync --quiet --recursive && git submodule update --init

idle owl
#

when do I do that

#

before starting?

tulip sleet
#

before you build

idle owl
#

ah ok

#

That's what I needed to know. Thank you.

#

Have you dealt with the Metro ESP32-S2 yet? I figure it makes more sense for someone else to test my build than for me to learn how to install it yet.

tulip sleet
#

BUT, the regular dev environment doesn't build this, it's much more painful to set up. Maybe just pass me the pins.c and I'll build it for you

idle owl
#

I will do that.

#

That sounds perfect.

slender iron
#

what is the issue?

#

I was thinking the primary name for a pin would be IO## and the backup would be D#

#

the IO## would match the silkscreen and ESP numbering

#

but the D# would match other metros

idle owl
#

Limor asked me to update it to match the silk.

slender iron
#

so that the D#s match?

tulip sleet
#

the silk could show both numbers

#

I like that, maybe bring it up with her. It would make much more sense for wiring/shields, etc

idle owl
#

That was my understanding, but I will clarify?

slender iron
#

seems like it's limited by arduino

tulip sleet
#

did you see the discussion in slack?

slender iron
#

ya, just caught up on it

idle owl
#

What are your thoughts now, then?

slender iron
#

not nice things about arduino 😛

idle owl
#

Hah!

#

Should I include both IO and D in the pin def?

slender iron
#

where does the D come from in arduino

#

@idle owl that's what I did for the feather s2

#

is have both D and IO names

idle owl
#

@slender iron Alright, then I can do that. They match the silk.

tulip sleet
#

and the D names will work for code that uses those

#

should i hold rc.1 for this?

#

or is esp32s2 too alpha to worry about it?

slender iron
#

right, anything -s2 I'd just do in 6.1

#

and we should release a 6.1 pre-release once 6.0.0 is stable

tulip sleet
#

excellent point

slender iron
#

there are other fixes in 6.1 for s2 already I think

tulip sleet
#

@slender iron @idle owl should i propose this compromise over in slack?

idle owl
#

Which compromise?

#

Including both?

tulip sleet
#

IO/D names.

idle owl
#

I think it's fine. More options isn't a bad thing.

tulip sleet
#

IO5 == D0, etc.

slender iron
#

with different numbers right?

idle owl
#

oh

#

that

crimson ferry
#

FeatherS2 pins.c is really nice, includes A*, D*, GPIO#, any named pins, e.g., microcontroller.pin.GPIO13 == board.A2 board.D16 board.IO13 board.LED

idle owl
#

You'd be better to pose it than me. I tried typing it out and realised I was out of my element.

slender iron
#

the problem is that arduino will call it D5

tulip sleet
#

Arduino calls it 5, not D5

slender iron
#

ah

tulip sleet
#

I think

slender iron
#

¯_(ツ)_/¯

idle owl
#

That's what started this.

#

I really think it should match the silk.

tulip sleet
#

I think the silk should be revised to have both numbers

idle owl
#

Ah.

tulip sleet
#

it is a BETA board

idle owl
#

Ask Limor about that one obviously.

slender iron
#

the silk just has numbers for most pins

tulip sleet
#

otherwise there's terrible code incompatibility

slender iron
#

so the question is what prefix do you use

tulip sleet
#

right, I'm saying it has to be redrawn. I'd use no prefix for Arduino numbers, and D for CircuitPython

idle owl
#

IO should be available as well, I agree with that.

slender iron
#

I like the IO prefix for the esp numbering

tulip sleet
#

otherwise it's a support nightmare to write guides with interchangeable code

slender iron
#

(which is why they are different)

#

the D#s wouldn't match the silk screen

tulip sleet
#

I'm saying they will. FOr instance the corner pin will be labeled "D0 - 5"

#

the current silk is not sacred

idle owl
#

@slender iron TX and RX are listed as D0 and D1 in the pin def, but they're not separate from the debug pins in the schematic. Am I missing something or are the debug pins both UART and UART debugging?

tulip sleet
#

that I don't know, I"ll look at the schematic

idle owl
#

Schematic only shows them once as TXD0 and RXD0.

tulip sleet
#

what is pin IO 5?

idle owl
#

D5

tulip sleet
#

is it RX

slender iron
#

I thought the pins on the inside headers were different from the TX and RX broken out

idle owl
#

@tulip sleet No.

slender iron
#

the D0 in TXD0 is not D0

#

heh

ionic elk
#

@slender iron is there a reason that we don't currently use gpio_reset_pin in the Microcontroller Pin reset functions for ESP32S2? Thinking about adding that in there, since the RMT not releasing pins automatically makes me suspect most other peripherals probably don't either.

idle owl
#

I figured that much

slender iron
#

whose on first?

idle owl
#

right?

tulip sleet
#

the schematic says D0, but I think all the "D"s in the schematic could be chnaged to "IO"

idle owl
tulip sleet
#

ok, then it's se[arate

slender iron
#

@ionic elk I'm not sure what the reason is. maybe check the history just to see if I didn't switch away from it?

tulip sleet
#

ok, should i write this up in slack?

slender iron
#

sure

#

I skeptical you'll convince limor to change the silk

manic glacierBOT
crimson ferry
#

(I'm glad I'm not the only one who was confused about the pins 😉 )

idle owl
#

You are certainly not.

slender iron
#

at some point we'll stop caring what the microcontrollers number is

#

@atomic summit why is IO5 in the feather S2 pins.c also labeled D19?

atomic summit
#

@slender iron Why can't it be labelled D19 ?

#

It's a digital pin, like the others.

tulip sleet
#

where does the 19 come from?

atomic summit
#

after 18 and before 20? 😉

#

if you look at my point I have D14, D15... D18 next to each other, and the next pin is IO5, so I made it D19

slender iron
tulip sleet
#

there is no arduino mapping, is that right?

atomic summit
#

Every other pin has a Dx assignment, so why not IO5 ?

idle owl
#

The question is why 19, not why does it have a Dx assignment. e.g. Why doesn't it match the IO#. I believe you have answered that.

slender iron
#

all of the numbers on the feather s2 silkscreen are the gpio number from the esp chip right?

atomic summit
#

None of the D assignments match the IO number

#

Yes

slender iron
#

ok, and the D#s I'd expect to match other feather pinouts

idle owl
#

This is coming out of a discussion regarding the Metro, for some context @atomic summit

atomic summit
#

You did the original Dx assignments @slender iron

#

@idle owl Ahh, ok... context helps.

slender iron
#

I think I snagged them from the schematic

atomic summit
#

Not the Dx assignments.. they were "made up" from what i can tell, from you.

#

They never matched the IO or cpu pin numbers

slender iron
#

(we're also trying to rectify arduinos numbering from cps)

atomic summit
#

sorry, made up is not right..

slender iron
atomic summit
#

I mean, they were assigned based on whatever you matched them to.

tulip sleet
#

i think we may have the first arduino-shaped ESP32S2 board, is that right? We could not do our own BSP, too much to support

slender iron
#

I think the crux of the problem is that in ESP land the gpio numbers are usually used on all boards

atomic summit
#

The whole D/A assignments in the Arduino ecosystem really sucks btw 😉 Very "not ESP32 like" 😉

slender iron
#

and in other platforms you have a level of indirection between micro numbering and arduino A/D numbering

atomic summit
#

but adding D19 for IO5 is easy enough in pins_arduino.c

#

but I honestly, only chose 19 because it wasn't used and has nice numbering flow for the pins around it

#

it was sequentially the next Dx number

tulip sleet
#

@idle owl I think the way to document the Dx pins (if we have them) is to annotate a board photo with the Dx pin numbers right next to the silk numbers (on the inside or outside)

idle owl
#

But you want them to match the previous Metro layout? So not match the silk?

tulip sleet
#

I would NOT have a D0 that's in a different place than all the other Metro D0's. I would have IO5, and maybe also have D0 as an alias for it.

slender iron
#

ok, so D19 == A5 on the feather m4 as well

#

I must have started with that

atomic summit
#

I've honestly never bothered with Dx and Ax numbering on my boards for Arduino before. From my experience (very possibly a different target market to Adafruit) most ESp32 users use GPIO numbers, not Dx and Ax.

idle owl
#

Not matching the silk seems like a terrible idea, tbh. I'd rather ditch the Dx pins altogether and document that than to not match the silk.

#

People won't read the guide.

#

They'll wire something up instead.

#

and get it wrong.

#

And create a support nightmare where, yes, we documented it, but Carter's stuck pointing folks to the page on a regular basis.

tulip sleet
#

that would be fine. But if anyone wanted to adapt an existing program to an existing shield (like say a motor driver), then we would just let them figure it out?

slender iron
#

the only reason to have D# in pins.c is so you move code from another metro

tulip sleet
#

exacto

idle owl
#

If we add them, we have to document them.

#

Bleh.

#

There's no good solution here.

slender iron
#

looks at the feather m4 guide

idle owl
#

I'm obviously on board with cross compatibility but folks won't read the guide.

atomic summit
#

Folks never read instructions 😉

tulip sleet
#

do you agree that IOxx is better than Dx that are in different places?

slender iron
#

I think we should have them in pins.c but not document them in the guide

atomic summit
#

I know it's not normally something you do, but I get around all of this by providing pinout sheets with each board. Then they have a pin reference on hand.

idle owl
#

@slender iron And have them match the previous Metro pinout for the Dx pins?

slender iron
atomic summit
#

No need to hunt down a guide or read anything

idle owl
#

We kind of do have to document it, because how do we explain why the code from the other Metros works?

#

"Use board.IO5 but hey, this other code works without editing it."

tulip sleet
#

the problem is if someone gets a Metro ESP32S2, with no doc, and then tries to toggle D5 (instead of IO5)

idle owl
#

Yes.

slender iron
#

right

tulip sleet
#

so i think having both D0 and IO5 makes for potential disaster

slender iron
#

this is why it's stupid to number on the board based on the micro's numbering

#

the board pinout is an api

idle owl
#

Welp.

#

I guess we broke the API. Time for a version bump.

tulip sleet
#

so it could be D5 is the corner pin (which makes for confusion in the software, not the board), or IO5 is the corner pin, which makes the the software nonstandard but safer

#

If the pins are IOxx only, no Dx, then no chance for error, assuming they have the board in hand,

idle owl
#

Correct.

tulip sleet
#

it's all varying degress of bad

idle owl
#

Agreed.

#

But using IO only would mean we're creating a new API in a sense, for a new chip.

#

So I guess what's better - other Metro code just working, or pins matching the silk for all future use.

#

We already have code where it's got multiple boards in it

#

and code for each board.

#

That's not new.

tulip sleet
#

yah, whole new kind of pins. Limor thinks the silk is ground truth

#

so go with that

#

there are some non-Adafuirt CPY boards with pin names like GPIOxx or Pxx or other non-typical prefix

idle owl
#

There's already three warnings in the CircuitPython Writing Code page about the LED being o a different pin. None of this breakage is new. Just not on this level yet.

slender iron
#

I'd definitely do them as IO#

idle owl
#

Alright, we're agreed. IO only. Document it. New API.

tulip sleet
#

i think that's the safest, at the expense of incompatible code

idle owl
#

Avoid the A0-A5 as well then?

tulip sleet
#

no, those are fine, because they're on the silk

idle owl
#

Or keep because they're the same

#

alright

tulip sleet
#

the silk is ground truth

idle owl
#

Ah right they are labeled as such.

tulip sleet
#

the only reason for "IO" is that pins can't be integers

idle owl
#

Adding the IO for those too though.

tulip sleet
#

no, then there's A5 and IO5

#

just A0-A5

idle owl
#

Actually it doesn't match.

#
    { MP_OBJ_NEW_QSTR(MP_QSTR_IO17), MP_ROM_PTR(&pin_GPIO17) },

    { MP_OBJ_NEW_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO18) },
    { MP_OBJ_NEW_QSTR(MP_QSTR_IO18), MP_ROM_PTR(&pin_GPIO18) },

    { MP_OBJ_NEW_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO1) },
    { MP_OBJ_NEW_QSTR(MP_QSTR_IO1), MP_ROM_PTR(&pin_GPIO1) },

    { MP_OBJ_NEW_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO2) },
    { MP_OBJ_NEW_QSTR(MP_QSTR_IO2), MP_ROM_PTR(&pin_GPIO2) },

    { MP_OBJ_NEW_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO3) },
    { MP_OBJ_NEW_QSTR(MP_QSTR_IO3), MP_ROM_PTR(&pin_GPIO3) },

    { MP_OBJ_NEW_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO4) },
    { MP_OBJ_NEW_QSTR(MP_QSTR_IO4), MP_ROM_PTR(&pin_GPIO4) },```
#

Is what I have right now.

tulip sleet
#

I'm not sure you need those, it doesn't add value to CircuitPython

idle owl
#

Scott mentioned ESP folks use them. Wasn't sure if it was worth being consistent on that then.

tulip sleet
#

i don't know if certain GPIOx are special, or whether they're largely interchangeable

idle owl
#

ESP folks use the IOx numbers I mean.

#

Not sure.

tulip sleet
#

yeah, but they use that when they're writing Arduino or straight C code

atomic summit
#

Arduino

idle owl
#

Ok

#

I'll remove.

tulip sleet
#

@atomic summit are certain GPIOxx pins special in some way, or is there a crossbar?

atomic summit
#

GPIO is the way folks work with ESP32. Only folks that don't are maybe newbies to the ESP32 that are used to using Dx/Ax.

#

@tulip sleet both. Some are strapping pins

#

which trips new folks up

#

most IO can be used via the crossbar - but not all peripherals can be re-assigned, but most can.

#

IO0 is the only pin on my FeatherS2 that is an exposed strapping pin.

idle owl
#

@tulip sleet Would you include the IOx pins for SDA/SCL/SCK/MOSI/MISO?

tulip sleet
#

@idle owl yeah I guess so, so maybe for A0-A5 too. in case someone is translating an existing C program to CircuitPython.

atomic summit
tulip sleet
#

I think if we stay away from the Dx, that's the main thing

idle owl
#

OK. I need to head out for a bit to pick up brakes for my car. I'll continue when I return.

atomic summit
#

as it decides the flash voltage, and can cause havok.

tulip sleet
#

oy, well, I'll look at our schematic

meager fog
#

it used as an output

atomic summit
#

IO46 is input only, but not on an ADC and no Touch, so generally not a useful pin anyway

tulip sleet
#

IO45 is connected to the NeoPixel

atomic summit
#

That's ok. I use that for my APA102 as well.

#

IO45 and IO0 are free to use once the device has booted

meager fog
#

@atomic summit whats the core question you've got regarding the ESP32S2 metro?

tulip sleet
#

we were just trying to decide whether to expose the IO names for A0-A5 and for SCL/SDA< etc.

atomic summit
#

@meager fog Oh, Dan asked if there were any problem IO, and I just pointed the 3 strapping pins out and asked if IO45 was used by the MetroESP32S2

meager fog
#

@tulip sleet yes expose the IO names for those pins

ornate breach
#

lurking and taking notes

meager fog
#

@tulip sleet since kattni is out, scott is thinking about it - lets table til tomorrow?

tulip sleet
#

we decided not to expose any Dx names for now: too confusing; just IO

meager fog
#

great

#

do that 🙂

#

if you do a PR tag me and i will check against schem to approve

tulip sleet
#

okee dokee, Kattni will do an edit and I'll build for her to test in real life

#

gah - it's all about other people's standards (so many standards to choose from)

#

🙂

idle owl
#

I'll finish it up tomorrow and send you the file @tulip sleet

atomic summit
#

standardises everything by adding an extra standard

idle owl
#

It's mostly done. Once tested I'll put in the PR and tag Limor.

slender iron
#

@atomic summit I feel like I'm pushing ESP32 arduino to match samd arduino

atomic summit
#

@slender iron but you can in the pins_arduino.h by just adding them in the board variant... or am I missing something?

#

Or are you asking Espressif about a standardised default pin mapping?

meager fog
#

you cannot remap pin IO '0' to '5' unless i am seriously missing something

atomic summit
#

Oh, no, you can't remap an IO, but you can make "aliases" for them.

slender iron
#

in .h you have to use variables like D5

meager fog
#

thats not how it works in other bsp's like samd or nrf where pin 0 can be 'any pin' you like, there's a reindexing array

atomic summit
#

But isn't that done in the "bootloader" level for the MCU? not at the higher Arduino level ?

meager fog
#

?? no

atomic summit
#

Ok, I never knew that was possible - very cool!

meager fog
atomic summit
#

wait, isn't that just assigning what the IO is (peripheral wise)? not what number it is?

#

Or does the initialisation order change the numbering?

slender iron
#

I think the number is the index in that array

meager fog
#

yeah

#

digitalwrite and such always index into that array

#

0 is the first entry, etc

atomic summit
#

Ok, yeah, that's very cool 🙂

slender iron
#

@meager fog is there a way to have an empty entry?

meager fog
#

yes!

#

umm let me find one

atomic summit
#

Nothing like that is available for ESP32 that I have ever seen.

slender iron
#

k, that's what I filed an issue for

#

I'd much prefer to have it for all the boards I expect to see

#

my head already exploded having it different on the metro

atomic summit
#

You might want to add the link to that example to the issue so it's clear what you are after.

meager fog
slender iron
#

thank you

manic glacierBOT
#

I have a question about the import equivalency of moving this to the core (I2CDevice and SPIDevice are equivalent to their python originals).

In the python library a user may use:
import adafruit_bus_device.spi_device as spi_device self._spi = spi_device.SPIDevice(spi, cs, baudrate=baudrate)

To call it now they would use:

import busdevice self._spi = busdevice.SPIDevice(spi, cs, baudrate=baudrate)

As the spi_device (and i2c_device) .py files no longer exist is there any pro...

manic glacierBOT
manic glacierBOT
lone sandalBOT
onyx hinge
solar whale
#

It works with I2C. Tried it today.

#

Agree. That example is confusing

manic glacierBOT
#
[adafruit/circuitpython] New tag created: 6\.0\.0\-rc\.1
orchid basinBOT
manic glacierBOT
manic glacierBOT
#

Having issues w/ the Matrix Portal and the internet demos. The only internet demo that works is the Quote board matrix display.

It takes a very long time (~30seconds-1minute) to get a wifi connection and grab quotes even with this. Serial shows these types of errors while connecting -
Socket missing recv_into. Using more memory to be compatible
An error occurred, retrying! 1 - Failed to send 3 bytes (sent 0)

Again, the quotes demo is the only one that worked. Getting errors in both ...

manic glacierBOT
onyx hinge
#

Here is the notes document for Monday’s CircuitPython Weekly meeting. It is at the normal time of 11am Pacific / 2pm Eastern here on Discord. Everyone is encouraged to attend! Please add your hug reports and status updates even if you’ll be attending the meeting - it’s super helpful! If you are unable to attend but would still like to include updates, feel free to include them in the notes and we’ll read them off during the meeting. Hope to see you there! <@&356864093652516868> https://docs.google.com/document/d/16su5imU6eg-sZaXiISO-vXuzjJSQpimzePCc5NDfD-E/edit?usp=sharing

idle owl
#

@slender iron Can we delete master on circuitpython? At least twice in as many weeks, I've ended up on master and been confused about things missing.

tulip sleet
#

i agree

idle owl
#

@tulip sleet You up for another discussion? I imagine this one will be much faster than yesterday's. 😄

tulip sleet
#

sure

idle owl
#

I need assistance naming the page in the guide where I document yesterday's decision.

#

I have "CircuitPython Pins" right now.

#

Eh?

#

Doesn't seem quite descriptive enough but it also shouldn't be a super long title.

tulip sleet
#

CircuitPython Pin Names ?

idle owl
#

Considered that too

#

You think that would work?

#

Wasn't sure if that was an accurate statement or not