#circuitpython-dev

1 messages · Page 293 of 1

fallen anvil
#

Imxrt core functionality looks pretty solid now. Plenty more to do, but it's certainly usable.

timber mango
#

@mubes Does that include the Teensy 4.0?

gaunt glade
#

I'm trying out the ads1015 tonight but none of the examples from github seem to work. The module is incorrectly capitalized but once that's fixed I get an attribute error: module 'adafruit_ads1x15' has no attribute 'ads1015'. Can someone help me get these examples working?

#

Oh I was looking at the deprecated examples, never mind

#

How do I get continuous readings from the ads 1015? I've looked at the examples but I'm having trouble understanding how to get updated values from a pot without reading the current value every few seconds

crimson ferry
#

@gaunt glade You can set up your main loop to be as fast as practical and read .value or .voltage often. There's not an interrupt facility for changes. There seem to be a couple of modes where the ALRT pin will trigger... maybe you could catch that like a gamepad button press (not an interrupt, but it would buffer until next check). It's in the datasheet but I don't see it explicitly in the library.

gaunt glade
#

Reading . value ended up working out ty

#

Now I'm trying to run the neopixel_rpi_simpletest but I get an import error: no module named board. But I'm able to import board in the ads1015 programs so I'm confused. Is there something that I can do to fix this?

lone axle
gaunt glade
#

Should I be using the spi approach instead?

lone axle
#

No, sorry I misread your first message

#

I thought it said spi instead of rpi 😩 . Time for bed soon

#

My only thought would be to make sure you have installed / updated blinka. I don't have much experience with the pi and circuitpython though sorry.

#

very odd if import board works in other scripts but not that one.

fallen anvil
#

@timber mango it should, but afaik noone has actively tested on that yet. I have a couple here if any issues are reported, but I wouldn't expect there to be any problems with core functions, uart, rs485, spi or i2c (famous last words!)

timber mango
#

@mubes I would love to help test the Teensy 4.0 with CircuitPython. 😀😉

fallen anvil
#

Go knock yourself out :-) your efforts would be appreciated. Knowing what doesn't work makes it easier for everyone because then we don't waste time on the stuff that is already good. I don't have that much time spare and @indigo wedge is already campaigning for 48 hour days and the abolition of sleeping.

indigo wedge
#

Truth

#

tbh abolition of my dayjob would be enough 😛

torn dust
#

Greetings, anyone know of useless box program written in circuitpython?

main meteor
#

If not, it shouldn't be too tough to write one: it's a fairly simple program.

simple pulsar
#

Returning to https://github.com/adafruit/circuitpython/issues/2667 - is that "just the way things are" if one is using displayio ? I'm wondering if it's problematic to introduce these long pauses between any python statements if that's how it's working? I put a comment in there about i2c code in python. I'd assume that the previous "background" tasks like GC introduced delays in the 1-10ms range? Hundreds of ms sounds trickier. Is there a way of slicing that up or letting the application programmer choose where it can happen?

GitHub

Trouble at mill: Adafruit CircuitPython 5.0.0-beta.5 on 2020-02-05; Adafruit CLUE nRF52840 Express with nRF52840 >>> from adafruit_clue import clue >>> imp...

tulip sleet
#

@slender iron ^^ any comment on the above?

manic glacierBOT
#

the LSM6DS makes some sense but since we wont be getting the WiFi working, we don't know that the ATECC/binascii makes sense to include, there's not a lot of space on these SAMD21 chips :)

Hello @ladyada, not sure if it's the best way to do multiple firmware is the best, but it's the simplest I found.

ATECC is a cryptochip, it can be use for others things that securing WiFi, like.. a cryptokey :-)

solar whale
#

@idle owl @slender iron Sorry - I have to miss the meeting today -- group hug and nothing special to report.

idle owl
#

@solar whale Thanks for letting us know. Hope all is well!

solar whale
#

Thanks -- all well - just some last minute "life"

upbeat vigil
#

I have the Circuit Playground. Where can I find documentation for everything that i can use from 'cp' in 'from adafruit_circuitplayground import cp'? It's hard to find where everything is in one place that isnt a drawn-out tutorial

crimson ferry
upbeat vigil
#

Thanks!

slender iron
#

@fallen anvil I'm hoping to look into WFI this week.

fallen anvil
#

@slender iron Would be very interested in this. I'm going to try to bring up a nrf52840 which is really only too useful to me if I can get it to be properly low power 🙂 I'm at the office so don't have too much time available but will try to help where/when I can

slender iron
#

cool cool. ya, I'll be starting on the nrf

#

Just a reminder: the CircuitPython Weekly meeting is just under an hour away here on Discord in #circuitpython-dev and the voice channel. <@&356864093652516868>

idle owl
#

Here is the notes doc. Please add your notes even if you'll be attending - it's super helpful! Thanks! https://docs.google.com/document/d/1Lw_aT4nXU4RpuuiQophR502XjFh7n-YcI9xUG6JFY_o/edit

fallen anvil
#

@slender iron won't make the meeting but will look to see if I can bring the nrf up in my hotel room this evening 🙂

marble hornet
#

@slender iron I will be text only while in class until 2:20ish

timber mango
#

Good morning everyone!

#

Could somebody give me a voice check??

inland tusk
#

I keep seeing references to uLab, just wondering what that was.

onyx hinge
#

@meager fog considered a prop-maker update with i2s? it would work better with nrf feathers... (but is a pretty big compatibility break vs dac)

lapis hemlock
#

Could somebody give me a voice check??
@timber mango I would like to have that, too.

inland tusk
#

@lapis hemlock Thats great. I could use something like that

onyx hinge
#

@lapis hemlock hop in the voice chat, there are already a couple of us here

lapis hemlock
#

@lapis hemlock Thats great. I could use something like that
@inland tusk Charles, I have to go off-sound for the next ten minutes.

tiny oriole
#

@timber mango I would like to have that, too.
@lapis hemlock i'll be needing that too 😛

lapis hemlock
#

I can't hear you at the moment.

inland tusk
#

@lapis hemlock Ok that's cool

idle owl
#

@slender iron It looks like the entire notes doc got tabbed over somehow.

modern wing
#

Happily lurking today 🙂

turbid radish
#

lurking

simple pulsar
#

lurking sporadically

tidal kiln
#

lurking

manic glacierBOT
#

My comment from discord:

Returning to [this issue]- is that "just the way things are" if one is using displayio ? I'm wondering if it's problematic to introduce these long pauses between any python statements if that's how it's working? I put a comment in there about i2c code in python. I'd assume that the previous "background" tasks like GC introduced delays in the 1-10ms range? Hundreds of ms sounds trickier. Is there a way of slicing that up or letting the application programmer c...

raven canopy
#

lurking. recursively
😁

timber mango
#

lurking today

wraith tiger
#

Just kurking

timber mango
#

I am voice for the first time, using my tablet.

river quest
#

With the CircuitPython 5.0.0 Release Candidate there are also some new boards (116+ total) in circuitpython.org/downloads, including:
NANO 33 IoT.
CircuitBrains Basic.
CircuitBrains Deluxe.
Feather M7 1011.
SAMD51 Thing Plus.

lone sandalBOT
onyx hinge
#

those green ones will be collectable, y'all

river quest
#

IoT Design Week with Microchip's "Wizard of Make" Bob Martin and Adafruit. We'll be on 3pm to 4pm ET on Tuesday March 10th, 2020 (lots of CircuitPython):
https://events.microchip.com/website/7565/home/
https://youtu.be/fu37Uf-CXNE

Day 2 - Machine Learning and Artificial Intelligence – Afternoon with Guests from Adafruit

Register for IoT Design Week at www.microchip.com/IoT-Design-Week

Join us for a special afternoon session to talk about artificial intelligence with Adafruit.

Cloud
https://io.adaf...

▶ Play video
#

Thank you Morgan Stanley Makerspace Program for your work with Women in Need (CircuitPython workshops and more):
https://blog.adafruit.com/2020/03/01/thank-you-morgan-stanley-makerspace-program-for-your-work-with-women-in-need-win-morganstanley-winnyc_org-msgivesback/

Adafruit Industries - Makers, hackers, artists, designers and engineers!

The Morgan Stanley Technology team recently hosted teens from Women In Need to teach them coding fundamentals using the Adafruit Circuit Playground Express. Participants created light sensors, acce…

#
Adafruit Industries - Makers, hackers, artists, designers and engineers!

YAY! Discord’s server Discovery has a bunch of requirements and our community got there together! The Adafruit’s community Discord server is now in server Discovery! Let’s put ada…

onyx hinge
#

almost time to retire the 4.x.x bug fixes milestone

raven canopy
#

Doesn't work...

#

😁

tulip sleet
#

i fixed the weirdo indentations in the notes

slender iron
#

🙂

#

thanks dan

#

looks like blinka authors aren't included in the overall

raven canopy
#

looks like blinka authors aren't included in the overall
Hmm. I'll look into that... 👀

slender iron
#

thanks!

onyx hinge
#

@tiny oriole your audio level is a tad low, bump it if you can

tiny oriole
#

was there much noise or just quiet? (im on a weird boom mic thing)

onyx hinge
#

just quiet

tiny oriole
#

gotcha, thanks 🙂

half sedge
#

txt only

tiny oriole
onyx hinge
#

it's a tribble?

turbid radish
#

It's a hamster

meager fog
#

tribbly

marble hornet
#

Normal status, can talk

modern wing
#

I hear there's trouble with tribbles.

tiny oriole
#

hehe

turbid radish
#

No problem, any time

idle owl
#

@timber mango Are you lurking for status updates as well or will you have a status update? (Updating the notes)

wraith tiger
#

You're safe as long as there's only one tribble.

raven canopy
#

I miss the Rockies. 🥺

wraith tiger
#

Circuit python powered ho tub time machine in the works?

timber mango
#

@kattni I am in for status updates. Cannot update doc.

idle owl
#

@timber mango Got it. Not sure why you can't edit it though.

timber mango
#

I am using my tablet.

gilded cradle
tulip sleet
#

@timber mango installing free google doc app will allow editing (prob not worth it at the moment)

onyx hinge
#

(ah we're all saying it wrong, it's micro-lab 🙂 )

idle owl
#

I wasn't saying it wrong 😄

timber mango
#

Will do that later.

idle owl
#

@onyx hinge Though I assumed I was the one who was saying it wrong. 🙂

half sedge
#

There was a lightening simulator...

#

Short range.

wraith tiger
#

Tesla coil...

idle owl
#

@tiny oriole If you want to turn it into a CP lib, please let me know. We have a community bundle that you could add it to.

tiny oriole
#

so the immediate idea i had was using a grill igniter and it turns out the SwitchDoc Labs AS3935 board is somehow smart enough to distinguish between a "Strike" and a "disturber" which seems to be its term for noise

#

I live in Kansas though, and we are approaching spring so... i figure soon enough i should have all the lightning i could want

lapis hemlock
#

(ah we're all saying it wrong, it's micro-lab 🙂 )
@onyx hinge Well, I am not certain at all... What the heck, I don't care! 😀

half sedge
#

Thank you, and thank you for the reading.

slender iron
#

@timber mango have anything?

#

@half sedge no problem

cursive condor
#

@idle owl I searched for it the other day, do you have a link ?

idle owl
#

@slender iron Geekguy has a status update, yes.

slender iron
#

kk

idle owl
#

@cursive condor The community bundle?

cursive condor
#

yes

idle owl
cursive condor
#

thank you very much

idle owl
#

You're welcome!

main meteor
#

There's a pronunciation difference between "microlab" and "micro-lab"?

tulip sleet
#

'you lab'

onyx hinge
#

@main meteor I was saying "ewe-lab"

tulip sleet
#

or mu-lab

main meteor
#

Ah, like the µDuino issue. Got it. 🙂

onyx hinge
#

or "ooooh lab"

wraith tiger
#

Not to be confused with moo-lab which is for dairy research...

lapis hemlock
#

or "ooooh lab"
@onyx hinge that doesn't sound good.

onyx hinge
#

👻lab

lapis hemlock
#

That's much better.

turbid radish
#

ew-lab 🤢

lapis hemlock
#

@onyx hinge The slicing fix was actually awesome, thanks!

simple pulsar
#

How does changing the wav file help?

inland tusk
#

Use NumPy directly?

ionic elk
#

I use glu-lab to fix my sink sometimes

onyx hinge
#

@simple pulsar it's a looping sample. circuitpython pulls 512 samples at a time from a wave file, and the size of this particular wave file was 1 more than a multiple of 512. This meant that there wasn't enough time (1 sample-playing-time) for the first block to be read on repeat.

#

so we just corrected it to be an exact multiple of 512

simple pulsar
#

Ah, I see, is that a workaround or a fix then?

lapis hemlock
#

@onyx hinge @slender iron we should move fft.spectrum to extra.spectrum, so that the core (everything except for extra)would be numpy-compatible.

simple pulsar
#

That sounds like a lot of CLUEs to hand out

onyx hinge
#

@simple pulsar tomato-tomato. I'd prefer that it work in any case but it was not super-trivial. It's a use case I'll keep in mind. (and this affects only wavefiles that loop, not rawsamples or non-looping samples)

tiny oriole
#

my Feather nRF Sense is still somewhere in the mail

#

😛

idle owl
#

Mine arrived this morning.

#

@simple pulsar It is many indeed!

crimson ferry
#

@idle owl Do you have a link to the ESP8266 Feather issue?

tiny oriole
#

mine should be arriving tomorrow i think

idle owl
#

@crimson ferry Somewhere. It's simply that the schematic is a previous rev. And I need to update what's posted online. It's already been fixed on the hardware. I think it's on the forums that it came up. I can find that post for you if you're still interested.

crimson ferry
#

@idle owl I have a bunch bought over a period of time... just wanting to know if it affects some. I can search the forums. Thx.

meager fog
#

around but no voice - text only

manic glacierBOT
idle owl
#

@crimson ferry ah fair enough. I'll find you the link.

crimson ferry
#

Thank you!

idle owl
#

You're welcome!

sullen hare
#

Does CLUE support C ++?

turbid radish
#

In the Arduino IDE, yes

sullen hare
#

Thanks.

simple pulsar
crimson ferry
half sedge
#

There use to be a zip file for Gemma M0 and Trinket M0 with updated example to new version.

idle owl
#

@crimson ferry Hmm fair enough. Dan was involved, so that would indicate if it's the right one.

half sedge
#

Long ago, I requested to be able to reset a Trinket M0 back to factory default (with demo).

onyx hinge
#

stepping away for a moment

simple pulsar
#

@onyx hinge you are not muted, btw.

half sedge
#

And then, when a new version come, I would loved to have a new zip that match the new version.

#

But it is work to do that.

#

Tony had a new demo for the Circuit Playground Express. It was never fully release, but having something to "show off" is great.

simple pulsar
#

As another anlge on this is there also an mpy compatibility issue there between major revisions of CP?

raven canopy
crimson ferry
#

Question then is... are there examples that fail once CP & libraries are updated?

#

Those should be issued/PR'd

half sedge
#

Maybe that relate to the ZIP with important library you would like to have on your board.

lone axle
#

it's the example code that comes pre-loaded and it's also linked on the Downloads page.

crimson ferry
#

@lone axle Got it, so when we recommend to update CP (and libraries), pull updated examples as well?

slender iron
half sedge
#

Sometime the demo code is Arduino, where it would be greater to have it CP. 😉

lone axle
#

Oh, neat. Had no idea about that repo 🙂

#

@crimson ferry yep, once we have a link for it we would be able to recommend that. As of now I don't think the updated one exists yet, so it's kind of a "work through each issue one at a time" to get it back to working. Based on whatever APIs changed.

simple pulsar
#

@half sedge Yes, most of mine have had compiled code on them, PyPortal is the most obvious one that came with CP

half sedge
#

Trinket M0 and Gema M0 were native CP.

crimson ferry
#

@lone axle If examples don't work with the libraries they are shipped with, then that points to needing more robust regression testing when merging PRs?

half sedge
#

Maybe my topic can be skiped as I have no microphone...

onyx hinge
#

@tulip sleet @slender iron did you want to talk about 5.0.0 schedule during in the weeds?

lone axle
#

@crimson ferry sorry, the examples in the libraries do work fine. This is the example code that get shipped on the devices. Like if you buy a Metro M0 it will have a pre-loaded code.py file that demos a bunch of the functionality

onyx hinge
#

dan did it, yay

lone axle
#

Users update their version of CP and even many times they do get the libraries updated properly but the next issue is that there are API changes in some of the functionality so it might expect an extra paraemter, or get imported slightly differently now.

half sedge
#

Blinka will only work with Raspberry Pi.

marble hornet
#

Even students at my college are using blinka for their senior capstones

lone axle
#

So the code.py starts crashing, and at that point it's up to them / us helping them to get each issue resolved one at a time by updating the relevant lines to use the newer APIs

half sedge
#

Ok. Talk 5.0.0

lone axle
#

If we had a ready made current version we could point them to the new one and they could get it all at once along with new CP version and new libraries, then they wouldn't have to worry about fixing each thing individually (or just give up on the demo script or downgrade back to 3.x to get it back to working)

crimson ferry
#

@lone axle Suspect there will always be some API breakage over time in user code. Best we can do probably is: ship self-consistent CP+lib+examples, and make sure Guides are showing consistent set of assets?

half sedge
#

@crimson ferry In some guide, there was a link to a ZIP. The factory content, and then the updated content.

lone axle
#

I think if an updated version of that demo script were linked on the Downloads page (same page where the original one is already linked) it would help out.

idle owl
#

@crimson ferry @lone axle That repo we posted earlier can have the original example content and then updated versions that work currently. All can be linked from the Downloads page on the guide.

tiny oriole
#

ive noticed this lag as well. ive seen the mag sensor get stuck once also

half sedge
#

So maybe for 5.0.0 there is some review work needed on "old" board to see if original demo work and fix them if needed.

#

Dunno where is my Trinked, but my Gema is near me.

timber mango
#

When I get home I will write something up about my robot and link to it.

raven canopy
#

Gotta drop off. 👋

idle owl
#

@raven canopy later

turbid radish
#

I do too, later

half sedge
#

I used a lot the previous alpha. But I am late on the RC.

slender iron
solar whale
#

😬

tiny oriole
#

heh

simple pulsar
#

For those refresh displayio delays I was surprised that rc0 was quicker than beta5...

half sedge
#

There was an SPI speedup on the CLUE if I remember well.

#

And now there is a long term calendar somewhere.

tulip sleet
#

4x speedup

idle owl
#

We're still working on the calendar.

simple pulsar
#

Vrooooooooooommm

onyx hinge
#

@half sedge I tossed in a PR about a long term calendar, but it's up for discussion

modern wing
#

Thanks y'all

half sedge
#

Bye

gilded cradle
#

thanks

tiny oriole
#

thanks all 🙂

marble hornet
simple pulsar
#

What's this about a calendar? Is this a CP roadmap?

tiny oriole
half sedge
#

It's interesting how many of your holiday are on Monday...

onyx hinge
#

@half sedge if you're looking at that icalendar file, it only shows holidays that potentially displace meetings

idle owl
#

Alright dropping off. Thanks all!

manic glacierBOT
marble hornet
onyx hinge
#

thanks @marble hornet

ionic elk
#

@half sedge we also like our long weekends 😉

marble hornet
#

My pleasure Jeff E.

#

And have a great day all

solar whale
#

👋

half sedge
#

@lone axle Is there a place where you want to discuss the Patchwork? Issue? DM? Here?

lone axle
#

@half sedge Thank you for looking into it 🙂 make an issue for now please. Won't be able to chat much more here until this evening.

timber mango
#

I am on my way home from the hospital now!! 😁😁

slender iron
#

@tulip sleet are you releasing now? we should update tomorrow's newsletter if so 🙂

tulip sleet
#

i was soldering headers (just got UPS), but was going to get to it in a few minutes

slender iron
#

kk

tulip sleet
#

def put in the newsletter, and we'll remove it if some stumbling block arises

slender iron
#

the lead story was rc.1 instead

#

🙂

#

@tulip sleet do you have draft 5.0.0 release notes? They should be relative to 4.1.2 ideally

tulip sleet
#

@slender iron take a look at the draft. I merged the thanks list. We can't compare 4.1.2 directly in github. I didn't consolidate the change lists or new boards lists or like that. I looked at the 4.0.0 notes for guidance.

slender iron
#

kk, I may tweak later. need to eat lunch now

#

51 new boards 🙂

meager fog
tulip sleet
#

@slender iron ping me when you're back. I can merge the new boards lists now

#

@slender iron if you have the new boards list generated automatically, that's better than me pasting from each pre-release and sorting

onyx hinge
#

is there a uf2 bootloader for stm32f405 feather yet?

tulip sleet
#

@slender iron hunh, readthedocs has been failing all builds for a month. I reset the build env, but it didn't help. Also, we don't have a 5.x tag or branch, so I activate 5.0.x (which I think is more precise than 5.x anyway). Adding 5.x branch will just cause confusion, like it did for 4.x. People didn't know what to PR against.

ionic elk
#

@onyx hinge yes UF2 is ready, though you need to flash it since it's not included by default

slender iron
#

@tulip sleet back

tulip sleet
#

@slender iron let me know when you're done with the notes or if you want me to add something

slender iron
#

I can get you the new board list. I have files.json loaded in python

tulip sleet
#

then I'll tag and do the blog post and forum post

slender iron
#

kk, going into the draft release notes

old smelt
#

Hi All - we have our USB VID now and are ready to assign our first PID for a new board. It will be the first time we have contrived our own USB PIDs. Something of a milestone, I guess. 🙂

Adafruit clearly has a method to the assignment process, and I am curious if that is based on some general best practices or if it's born out of experience. Either way, I am open to guidance and your wisdom here. Thanks!

onyx hinge
#

@ionic elk excellent! I went with a .bin build for simplicity and it's up and running

ionic elk
#

@onyx hinge I don't recommend it for anything other than the F405 and other Foundation boards, though. Since all the F4's have a dfu bootloader built in already, it's kind of a waste of flash, and is especially problematic on boards that use an internal filesystem.

onyx hinge
#

what I like most about uf2 is the double click to enter bootloader. The jumper's a drag.

#

I read enough to understand that some people successfully enter the dfu bootloader via software means (support in the running firmware) but not enough to understand how to achieve it.

tulip sleet
#

@old smelt we reserve 3 PID's for each: arduino, uf2 bootloader and circuitpython. Having multiple PIDs is a bit of a nuisance on Windows because each one gets its own COM port, but the advantage is that you can tell what mode it's in. And some OS's can get confused if a device with different capabilities has the same PID.

#

We have a numbering scheme but it's historical. It doesn't matter much what you choose.

old smelt
#

Thanks @tulip sleet

tulip sleet
#

like, we have 0x0nnn, 0x8nnn+1, etc.

old smelt
#

Right.

#

I saw that pattern in the GitHub requests

#

Didn't know if that ended up working well for a specific reason.

#

...or if it was somewhat arbitrary.

#

( Somewhat Arbitrary would make an excellent name for a rock band. )

tulip sleet
#

it doesn't mean anything except that we're consistent. We have an internal file with assignments. It was a little irregular for a while, and now it's regular enough that I wrote a script to generate new numbers 🙂

manic glacierBOT
old smelt
#

Got it. Thanks!

onyx hinge
#

@old smelt arbitrary solo

slender iron
#

@tulip sleet ok, I think notes should be set

#

let me know what you think

tulip sleet
#

@slender iron good list! I copy-edited that a teeny bit and bolded the main things. Only other change I made is "Spresence" -> "Spresense".

#

I have no idea why some of the @ names are links and some are not

#

maybe there's an upper limit

slender iron
#

np, thanks!

tulip sleet
#

ok, I think this is it! shall I click Publish?

slender iron
#

sure!

manic glacierBOT
#
[adafruit/circuitpython] New tag created: 5\.0\.0
marble hornet
#

@tulip sleet great job!

tulip sleet
#

it's all of us!

orchid basinBOT
tulip sleet
#

i'll wait on the circuitpython-org PR until the builds are finished. Will now copy/paste and convert this to forum and blog

idle owl
#

🎉

#

(which I typed as :data: at least four times before getting tada correct.)

marble hornet
simple pulsar
#

For terminalio.FONT, what's easiest way to see all the glyphs?

idle owl
#

@raven canopy Where are we with making the build.yml include the versioning and installs?

raven canopy
#

oh. that was on me? i though you said Dylan was starting. lol 😄

idle owl
#

Dylan's updating the libraries to use the new version of Pylint and implement Black. Not make the change to the build.yml. Apologies for being unclear.

raven canopy
#

all good. i'll toss it on my short list!

idle owl
#

@raven canopy Thanks much! The update has begun so the sooner we can get a simple way to change the version being used on an individual library, the better.

raven canopy
#

is Dylan also updating the build.ymls, or just the lib files?

idle owl
#

@raven canopy I can have him hold off so we can patch across the board.

#

@raven canopy Nevermind, PR just came in, build.yml not changed.

raven canopy
idle owl
#

Which is better for you?

raven canopy
#

just looked.

Which is better for you?
Well, if we patch everything with Black from the jump, it will start failing on whichever PR is submitted next...

idle owl
#

Right.

#

Which is not how we want to do it.

#

So, hmm.

#

Ok, here's my thought.

#

@raven canopy We patch it so the Sphinx and Pylint installs and versions are in build.yml, and then have Dylan add Black properly as we go.

torn dust
#

@madbbodger Easy for you to say, lol. I'm painfully studing Python, till then it's cut and paste. I want to add sound effects to the useless box but don't see that option on the Ardunio boards used. I figure the mechnics will be easy with CPX and Crickit, but ohhhh the programming.

raven canopy
#

@idle owl sounds good to me. let me wrap up my current debug, run my lib updater/cloner, and I'll start working the patch. I'll start with TestRepo and PR there for everyone's review. Once that is clear, I'll update cookie, and then patch the rest.

idle owl
#

Perfect, thank you.

slender iron
#

Hi all, next week's CircuitPython Weekly meeting is the normal day and time, Monday the 9th at 11am Pacific / 2 pm Eastern, here on Discord. Everyone is encouraged to attend and participate. The notes doc is here: https://docs.google.com/document/d/1kB6iS2NCVJH3PPK1s7JlGY7L57boeBb2KYHyZr4-aaY/edit?usp=sharing <@&356864093652516868>

tulip sleet
slender iron
#

looks

#

@timber mango I had the wrong account

#

for the doc

#

sit tight

slender iron
#

got distracted

timber mango
#

Why does Google docs need access to my contacts??

slender iron
#

it doesn't. I accidentally made the copy of the doc with my adafruit.com account

idle owl
#

I always make the notes doc with my adafruit.com account... I've never had an issue.

tulip sleet
#

i think @timber mango is installing the google docs app on their tablet

slender iron
tulip sleet
#

you can get a sharable link, and use the dropdown to share with anyone instead of just in adafruit

idle owl
#

^^

timber mango
#

Yes, I am

slender iron
#

ah, under more

idle owl
#

I set sharing on the template, then when I create the copy, I "share with the same people" and never have to deal with it again.

slender iron
#

stupid

#

ah, I always start from the previous week's...

tulip sleet
idle owl
#

I created a template file and work from that.

slender iron
#

@timber mango notes doc link should work now

tulip sleet
#

blog post is sked for 7pm ET

timber mango
#

I have it now.

#

Does Adafruit have any USB-A (male) that have heavier gauge wires??

#

s/) /) cables

lone axle
#

- Mixer moved to audiomixer and now supports per-voice volume 🤩

raven canopy
#

🎉 2️⃣ 0️⃣ 0️⃣ 🎉

rosiepi_node_server.local:nnn n.n.n.n - - [02/Mar/2020:18:05:32 -0600] "POST /run-test HTTP/1.1" 200 266 "-" "python-requests/2.23.0"

first successfull push notification from Azure to RosiePi. 😅

#

i really should update the user-agent. haha

idle owl
#

@raven canopy nice!

raven canopy
#

now to figure out why it told github that it wasn't accepted. but that's later... library updater script is running in prep for real work. 😄

#

lol

208 Updated Forks
15 New Forks

things around here move soooo fast! 🚴

timber mango
#

My Android tablet recognizes a Feather M4 Express as a USB device, but not for mass storage.

#

Correction. It says the mass storage drive is corrupt.

lone axle
#

@timber mango I think it's due to the format of the storage. Most Android builds don't support the type of drive that CircuitPython represents itself as to the host.

timber mango
#

Why does CircuitPython use a drive format that can not be recognized??

lone axle
#

I end up using the the REPL macros much more than editing actual code.py.

#

I'm not sure, the small amount of space required, and/or the ease of implementation vs. newer alternatives would be my guesses. But it's all a bit over my head to be honest.

#

I have run across a few Android devices that support it, but they've been weirder no-name type devices rather than phones or tablets.

timber mango
#

My tablet is Android 7.0, but my phone is Android 9.x.

tulip sleet
#

@timber mango It is not a choice. The drive is only 2MB, and only FAT12 supports such small drives. Android doesn't support FAT12 directly.

raven canopy
#

@idle owl i realized something to correct from my previous statement. we can go ahead and install black on each repo. it will only fail if we add the black --check step to build.yml. so, i'll go ahead and add black to the install portion. mini-🤦-moment. hehe

idle owl
#

@raven canopy Sounds great.

half sedge
#

If I forget, next week hug report will be to @tulip sleet for the 5.0.0 release work (and it's BLE content). Also that explanation on why it fail on Android had been a mystery for me since so long... Thank you!

#

@danh did you do undo the buffer size fix in BLE heart rate sensor? It was waiting for 5.0.0.

timber mango
#

@danh Ah, OK. That does make sense.

tulip sleet
meager fog
#

@simple pulsar ping

manic glacierBOT
#

We'd like to be able to do real time audio filtering with CircuitPython. Example: Read from mic, perform FIR filtering with ulab, output on speaker.

We would also like to process all data from the mic without interruption. Example: Waterfall FFT demo

One option to enable this is to allow Python classes to be samples, to allow Python code to retrieve sample data, and to make microphones into audio samples.

Either M4 or nrf52840 would get the initial (PDM)AudioIn DMA work, as this is...

prime flower
solar whale
#

@prime flower It won't hurt, but I was frustrated by that users refusal to think about what the code was doing ... Similarly, the use of the D13 LED should be noted as not being meant for the RPi.

#

would it be better to have a separate bonnet/RPi simpletest.

prime flower
#

I feel it would, instead of explaining "comment out, add in" for the hardware.

#

We'd want to add some display code too, if it's specifically for the bonnet

prime flower
#

nope

solar whale
#

it's a bit snarky 😉

prime flower
#

tbh I should've named tinylora -> tinylorawan

solar whale
#

yeah, might have been clearer.

#

I have not tried this, but is it possible to set up an RFM9x to use FSK and then if so, could it talk to an rfm69?

main meteor
#

I remember talking with someone about trying to use an RFM9x for OOK and deciding it just didn't want to play ball. It may well not care to implement FSK either.

solar whale
#

interesting,, the datasheet covers all the register settings, but there may be something about the board implementation that gets in the way...

#

I'll take a closer look when I get bored with other projects....

main meteor
#

It could be the chip is capable of it and the libraries never bothered to implement non-LoRa functionality. I too haven't had time to take a closer look.

solar whale
#

The libraries definitely don't do it, but "it's only software" 😉

main meteor
#

I was unsure if there was a hardware reason too, but your mention of the datasheet implies there's at least register support for other modulation modes.

timber mango
orchid basinBOT
obsidian compass
#

Interesting newsletter this week! Really excited for ESP32-s2 chip tinyUSB support

slender iron
gilded cradle
#

Sure. They probably don't have SPI enabled.

onyx hinge
#

feeling nostalgic this morning, here's the 2018 adafruit order that started me with circuitpython ...

#

.. I wonder whether I actually did anything with the teensy 😬 I sure used the trinkets though

obsidian compass
#

The first board I ran CP on was Gemma M0

#

NodeMCU for micropython

idle owl
#

@onyx hinge My first CircuitPython board was Circuit Playground Express. (What a surprise.) First order was that and stuff for my RPi0W. It's on someone else's account though so I can't join in the screenshot fun.

#

You've heard that story though 😄

onyx hinge
#

yes I have.

#

ooh I should go 🌮

tiny oriole
obsidian compass
#

iirc, I got 1 extra Gemma and a perma proto board free with this order

gilded cradle
obsidian compass
#

I was really a huge fan of Tony DiCola's show, especially the MP series

slender iron
#

thanks for the reply @gilded cradle

gilded cradle
#

yw

lone axle
#

From summer 2013. Dug it out not long ago to test with Pi + Blinka

manic glacierBOT
half sedge
#

Is this time for exchanging first encounter with CP? I rarely order from Adafruit because of transport+import, so Pimoroni is my dealer. Exceptions are my CPX and CLUE.

orchid basinBOT
half sedge
#

I started MicroPython because of Tony Di on ESP8266 on Pimoroni IoT board for the Raspberry Pi. Then I tried CP when it started to exist(???).

gilded cradle
#

I was late in the game to CircuitPython myself and only started using it at the end of 2018 and now I use it all the time. I like to say it was my gateway to learning Python even though I tinkered with python (combined existing examples) a few months before that.

ionic elk
#

@meager fog now that the release is out, should we mention that circuitpython support is enabled on the various STM32 boards on the store? Meowbit, Espruino, etc.

manic glacierBOT
#

@tannewt sure ok! Mind you, it looks like some of the translated sentences with English and Arabic content written together don't retain the right order of wording for some reaon. I think I will need to figure out a solution for that as well. I am stoked that we took a nice big leap in the right direction though, so yay!!

Could you describe the issue? I don't trust my own computer to render your notes correctly. Here is a screenshot of VS Code, Sublime Text and the CircuitPython build in...

solar whale
#

2018 ?? wasn't that yesterday 😉

crimson ferry
#

This was my first order (2014), must've been gearing up for something. Didn't order any micros until 9 months later though. No CP until late-'18, early '19.

orchid basinBOT
manic glacierBOT
#

PulseOut is currently implemented with the internal basic timer T7, which is not present on ST's low end "Access Line" chips such as the F401 and F411. These chips will be forced to use a pin-tied timer, which will require communication with the PWMOut module so the peripheral can be properly reserved. They will also require a different register implementation to reflect the differences between the Basic timer register set and the General Purpose timers.

#

@tannewt sure ok! Mind you, it looks like some of the translated sentences with English and Arabic content written together don't retain the right order of wording for some reaon. I think I will need to figure out a solution for that as well. I am stoked that we took a nice big leap in the right direction though, so yay!!

Could you describe the issue? I don't trust my own computer to render your notes correctly. Here is a screenshot of VS Code, Sublime Text and the CircuitPython bu...

manic glacierBOT
timber mango
#

I remember when the original Circuit Playground Express was flying off Adafruit's shelves as fast as the new Blufruit version, and I could not get one.

lapis hemlock
#

@onyx hinge Jeff, if you have a bit of time, could you, please, cast a glance at the static-ndim branch? https://github.com/v923z/micropython-ulab/tree/static-ndim . Binary operators won't yet work, but I believe, I have figured out the subscription, iteration, views, and vectorised functions; these should be functional for arrays of ndim < 5. (It is not trivial, if you want to get rid of recursion.) I am not sure the stuff is circuitpython compatible at the moment (properties might be missing, if needed, could be called as functions). I think the binary operators can be implemented almost exactly as the subscription, but you might have better ideas. I can finish that tomorrow.

solar whale
#

@tulip sleet WHen I build the current master is shows up as 5.0.0-rc.0 -- same thing with builds from the released 5.0 yesterday -- is that correct?

#

when I checkout 5.0.0 I get ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 5.0.0 on 2020-03-03; Adafruit Feather M0 Express with samd21g18

but with current master I getPress any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 5.0.0-rc.0-14-g2fea811c3 on 2020-03-03; Adafruit Feather M0 Express with samd21g18

solar whale
#

hmm -- the commit on my master build does not make sense either ...

onyx hinge
#

@lapis hemlock modest recursion of 5 levels I would think would be okay .. gut check only. I'll try to take a look at the branch, but it may be tomorrow.

solar whale
#

just re-cloned the repository and did a build of master ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 5.0.0-rc.0-19-g6468ca04a on 2020-03-03; Adafruit Feather M0 Express with samd21g18

#

does anyone understand the tag? I'm confused.

slender iron
#

@solar whale the rc.1 and 5.0.0 tags aren't on the master branch

#

(they are on the 5.0.x branch)

solar whale
#

OK -- so I am confused -- is master the current "bleeding edge" ? are the changes from rc.1 incorporated into master ? I never understood this...

slender iron
#

looks

#

it doesn't look like changes from rc.1 have been merged back

#

makes a PR

manic glacierBOT
#

I have been testing out 5.0.0 on an STM32F407 Discovery board and noticed I was unable to set any of the LED pins as OUTPUT. After setting the pin direction, it would always read back as INPUT.

I was looking through the source and noticed within the stm32f4_peripherals_gpio_init() function that only ports A,B and C are enabled.

ports/stm32f4/peripherals/stm32f4/stm32f407xx/gpio.c

void stm32f4_peripherals_gpio_init(void) {
//Enable all GPIO for now
__HAL_RCC_GPIOC_CLK_ENABL...

solar whale
#

in general I just stick to master unless I want a specific build -- assuming it usually has the last relase + new stuff -- it that correct?

slender iron
#

ya, that is best

solar whale
#

ok - thanks

#

@slender iron with pr 2678 applied I get this from a build ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 5.0.0 on 2020-03-03; Adafruit Feather M0 Express with samd21g18

slender iron
#

hrm, I wouldn't expect it to be exactly 5.0.0

solar whale
#

me either ...

#

hmm git diff 5.0.0 says they are identical

slender iron
#

what is the commit hash?

#

or git log

solar whale
#
Merge: 752881461 898f67ac2
Author: Dan Halbert <halbert@adafruit.com>
Date:   Sun Mar 1 15:39:26 2020 -0500

    Merge pull request #2671 from dhalbert/merge-for-5.0.0-rc.1
    
    Merge for 5.0.0 rc.1

commit 898f67ac2eb5fa895cb93bb81ec86999593e524a
Merge: 752881461 29e44721d
Author: Dan Halbert <halbert@halwitz.org>
Date:   Sun Mar 1 12:22:18 2020 -0500

    Merge branch 'master' into merge-for-5.0.0-rc.1

commit 752881461733263cae77db8c33a2da142a046f7e
Merge: 1b33cd11f 98a03fc93
Author: Dan Halbert <halbert@adafruit.com>
Date:   Sun Mar 1 11:43:55 2020 -0500

    Merge pull request #2664 from dhalbert/downloads-from-s3
    
    Download links from S3; Do not upload release assets to GitHub

commit 98a03fc93534a22d11c0a6a50f9982c397232ad3
Author: Dan Halbert <halbert@halwitz.org>
Date:   Fri Feb 28 21:18:48 2020 -0500

    upload bin and uf2 for arduino boards; remove unneeded build steps

slender iron
#

doesn't look there is another merge commit (which the pr will create when merged)

solar whale
#

ok -- I'l let you and dan sort it out -- I'm not sure why I had to re-clone to get the latest master commit correct, but it looks OK now. Thanks -- sorry for any confusion...

manic glacierBOT
simple pulsar
#

@meager fog pong

meager fog
#

@simple pulsar hi

#

you can check out my plotter code here

simple pulsar
#

The arduino one, yep i spotted that on blog and PT mentioned in email too.

meager fog
#

yah

simple pulsar
#

I hadn't seen it before I started coding. It's funny how similar they are in places

meager fog
#

ya 😄

simple pulsar
#

I've not yet looked to see if displayio has built in line drawing

meager fog
#

you dont need it

#

cause the lines are always horizontal

#

(or rather, 1 pixel wide so you can split the diff)

#

horizontal might be ok tho

simple pulsar
#
meager fog
#

@simple pulsar you dont need to use line

#

its always 1 pixel wide

#

so draw a row of pixels

simple pulsar
#

Sure, I thought I'd check if there was something implemented in C that would be faster.

#

I've not used any of the LCD screens before. I'd seen some notes on how it was challenging to do video (animated gifs) on them but hadn't realised how limited they are in terms of updates rates.

meager fog
#

@simple pulsar ok please submit the draft PR once your code is ready to be tested 🙂

simple pulsar
#

Ok, is that to adafruit/Adafruit_Learning_System_Guides ?

meager fog
#

@simple pulsar yep

timber mango
manic glacierBOT
half sedge
#

Hi, before I open an issue, is it normal/ok that the uGame10 appear as TRINKETBOOT? No big deal, but it could be UGAMEBOOT or anything else.

slender iron
#

that is a bootloader issue. not circuitpython

half sedge
#

So it would be an issue, but on another repository?

tulip sleet
#

was it shipped to you as TRINKETBOOT? Then that's just what was put on it. You could open an issue on adafruit/uf2-samdx1 if there's a ugame10 board there.

half sedge
#

Maybe it has always been TRINKETBOOT and the that bootloader was just borrowed. I can live with it. I don't believe there are many uGame10 in circulation. I did not knew it was separate software.

tulip sleet
half sedge
#

Don't you think the download page start to be "hard" to navigate? There are so many supported board... Maybe having some button to filter "M0" "M4" "NRF" or any other idea?

tulip sleet
#

has the search box been useful for you? it narrows things quickly and dynamically as you type

#

just type "m0" without even an "enter", to see what I mean

half sedge
#

There are filter, sorry I did not see it.

#

It's actually great, you can say the form factor such as feather. Thank you.

tulip sleet
#

and the actual search box is dynamic too, even faster than the filter page

#

the filters actually don't seem to work that well, many show too few boards or none

#

i take that back, I must have had something extra checked. It's fine.

half sedge
#

my CLUE bootname is FTHR840BOOT. (guess what, I am making an upgrade of all my board)

simple pulsar
#

I just powered on a CLUE. Pressed reset about 2 mins after it running. Connected to serial console and got this: ```Adafruit CircuitPython 5.0.0-rc.0 on 2020-02-26; Adafruit CLUE nRF52840 Express with nRF52840

import board
from adafruit_clue import clue
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "adafruit_clue.py", line 886, in <module>
File "adafruit_clue.py", line 172, in init
RuntimeError: SDA or SCL needs a pull up

tulip sleet
#

sometimes an onboard i2c device gets stuck and pulls down the data line. power cycling

simple pulsar
#

I did a control-D and the soft reboot immediately said the same ```>>>
soft reboot

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:
Traceback (most recent call last):
File "code.py", line 46, in <module>
File "adafruit_clue.py", line 886, in <module>
File "adafruit_clue.py", line 172, in init
RuntimeError: SDA or SCL needs a pull up

Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 5.0.0-rc.0 on 2020-02-26; Adafruit CLUE nRF52840 Express with nRF52840

tulip sleet
#

We have an issue open to add some code to attempt to fix this (you toggle the SCL line 9 times or so)

#

it will remain stuck until you power cycle

simple pulsar
#

Yep, it fits that pattern!

tulip sleet
#

the makecode people found this happened very occasionally on the the CPX with the LIS3DH and they added code to makecode to unstick it. We'll do something similar.

simple pulsar
#

Power cycle has restored it to good health

manic glacierBOT
#

I just got this by pressing reset button on a CLUE (alpha) then trying to load clue object:

Adafruit CircuitPython 5.0.0-rc.0 on 2020-02-26; Adafruit CLUE nRF52840 Express                                                    with nRF52840
>>>
>>>
>>>
>>> import board
>>> from adafruit_clue import clue
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "adafruit_clue.py", line 886, in <module>
  File "adafruit_clue.py", line 172, in __init__
Runti...
manic glacierBOT
#

Refreshing the screen in the background even though it is slow is a trade-off I'm willing to make because it makes things easier. We don't make any promises about the speed of the Python execution because of background work. I don't know of any code that assumes that Python is fast and breaks when it is slow.

We can address any specific cases where we need more speed separately. This case isn't an issue because it is expected.

tidal kiln
#

@slender iron ok with you if i merge and release radio?

slender iron
#

yup!

stuck elbow
#

@tulip sleet indeed, I re-used the trinket bootloader

tulip sleet
#

@stuck elbow i see no problem with that, unless you want your board to be uniquely id'd for some reason

stuck elbow
#

it's out of production by now anyways, and the pewpew m4 has a custom bootloader

robust coral
#

How should I control a servo from CP5 on a TrinketM0? I can't find adafruit_motor in the bundle so I'm guessing there's a different library now?

tulip sleet
#

@robust coral adafruit_motor should be in the bundle. It will be a directory with several files.

robust coral
#

oh I forgot about directories.

#

thx

tulip sleet
#

yw

spice crypt
simple pulsar
#

@spice crypt how much text are you doing and what is the font? Btw, I've noticed it's happy to take more text that fits on the screen horizontally. Depending on how that's clipped it could be both pointless and wasteful in terms of processing time to give it more text that fits on screen. If you look in the comments in 2667 it shows how to turn off the screen refresh and then manually do a refresh which allows accurate measurement of the time.

solar whale
#

Is the feather bluefruit sense an "express" board -- the product page does not mention an external Flash, but it presents a 2Mbyte CirCUITPY drive.

#

Reading the product page, I was afraid the external flash had been removed -- nice to see it.

slender iron
#

@solar whale it is, we're planning on phasing out the express part of the name because all new boards should have the external flash

solar whale
#

makes sense -- I was just surprised it was not listed on the product page.

timber mango
#

@slender iron How will you distinguish the two Circuit Playground boards?

#

The original and the M0 version.

#

Circuit Playground and Circuit Playground M0?

main meteor
#

I think the original one is Circuit Playground Classic now?

slender iron
#

@timber mango any existing products will still have the same name

#

I just meant new products will skip the "express" designation

#

"Feather M7 1011" for example does have spi flash

solar whale
#

@meager fog just aheads up - when I try the CircuitStonks program I keep getting ```Adafruit CircuitPython 5.0.0-15-ge98991fd7 on 2020-03-03; Adafruit Feather Bluefruit Sense with nRF52840

import stonks2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "stonks2.py", line 25, in <module>
ValueError: SCK in use

``` It works fine if I use board.SPI() instead of busio.SPI(board.SCK, board.MOSI, board.MISO) Dies it work as written for you? I am not running it as code.py buy from the REPL as import stonks.py does taht matter. I am using a feather_bluefruit_sense with and airlift featherwing and mini-tft featherewing,

meager fog
#

i just run it directly

#

could be a change is needed for using board.SPI ()?

#

submit a PR if so 🙂

solar whale
#

ok -- will try a few more tests then pu in a PR if I don't resove it

manic glacierBOT
#

I've gotten this working (although I just grabbed USB VID/PIDs, so don't ask for the binary :) ). The UF2 portion is painless - just copy over a board_config.h from the Feather M0, change LED_PIN to PB_30 (and keep in mind it's inverted, so it'll be opposite whatever the Feather's does), change CHIP_VARIANT to SAMD21J18A, and build it.

The CircuitPython part requires fixes in the asf4 repository (this has an open pull request to fix it, should be merged soon I imagine) and the samd-periphe...

lapis hemlock
#

@lapis hemlock modest recursion of 5 levels I would think would be okay .. gut check only. I'll try to take a look at the branch, but it may be tomorrow.
@onyx hinge If we take recursion, then it is no longer scalable. We would also lose time/RAM on having to dispatch the function.

spice crypt
#

@spice crypt how much text are you doing and what is the font?
@simple pulsar The labels were ~14 characters in length. Font was "Arial-12.bdf" I found on another AdaFruit repo.

Is there a way to turn off the REPL to SPI display so I can factor out if that has an impact on the slowness? I thought disabling import of terminalio would do the trick but I was wrong.

ionic elk
#

@slender iron what's the smallest internal flash size we can reasonably support?

prime flower
#

@solar whale Do you have time to test an ethernet lib today?

cursive condor
#

I've got strange behavior lasts days. when I save the lib I worked in, the CPB + TFT gizmo reboot (normal) and give me this error :

  File "adafruit_gizmo/tft_gizmo.py", line 48, in __init__
ValueError: A4 in use

If I hit reset, everything come back ok. If I save code.py, everything works as expected. it's only when I save my lib...

#

if I was playing with the REPL, I can save my lib and then hit CTRL-D to soft-reboot without a glitch...

#

so it's not a blocking issue, but I don't understand what can trigger this each time.

idle owl
#

@cursive condor If you're initialising something on A4 in two different places, it will do that when it tries to access it. So if you're using another lib that also uses that pin for something, you may only notice it when that particular feature gets used.

simple pulsar
#

A4 is also SCL (i.e. i2c and the like)

cursive condor
#

my code :

import time
import board
import displayio
import gc
from random import randint
from adafruit_gizmo import tft_gizmo
from marius_turtle_french import Color, turtle_fr
#

is board conflicting with tft_gizmo ?

#

it's not each reboot, only if I save marius_turtle.py

simple pulsar
#

There's no reason for board to interfere. Do you mean marius_turtle_french.py ?

cursive condor
#

the french one call the generic one

lone axle
#

marius_turtle_french.py is after tft_gizmo also. In the error above it looks to me like it's not making it to the the import marius_turtle_french.py line. It's crashing on the line before.

cursive condor
#

yes ... my code is not even called...

simple pulsar
#

What version of CircuitPython are you running? Worth trying the latest rc1 to see what that does if you're not using that.

cursive condor
#

it's the latest.

#

I think it's related to the file size

simple pulsar
#

There's latest prod version and latest "unstable release". It does sound like a bug in CircuitPython the way you describe it possibly related to pins not being free'd on a restart under some circumstances.

tidal kiln
#

should a soft reset release an i2c lock?

Adafruit CircuitPython 5.0.0 on 2020-03-02; Adafruit Feather Bluefruit Sense with nRF52840
>>> import board
>>> i2c = board.I2C()
>>> i2c.try_lock()
False
>>> 
simple pulsar
#

@cursive condor Slightly random question, do you have anything weird in boot.py ?

cursive condor
#

I can reproduce with an unused file. if I save a 40Ko file, next reboot will do this error. and only a reset can get it back ok

simple pulsar
#

Oh, i'm behind on versions, official 5.0.0 came out!

cursive condor
#

and the latest version do it : Adafruit CircuitPython 5.0.0-15-ge98991fd7

#

(from last night build)

#

@tidal kiln :

>>> import board
>>> i2c = board.I2C()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: A5 in use
#

(when the error occur, of course)

#

so ... when I save a (text?) file bigger than 35 748 Bytes, It trigger the error

tidal kiln
#

@cursive condor sry for interjecting into your discussion, my question was general

cursive condor
#

np. I tryed to see...

#

well ... 35 308 Bytes crashes, 34 932 Bytes don't crash

#

35 001 crash 35 000 don't...

#

there is an arbitrary limit somewhere 😛

#

when I mean crash, I mean I get this error on reboot.
so "when saving a more than 35000Bytes file, the SCL pin is not released" is a good description of the problem ?

#

must be something with timing / sync ... with the soft reboot in the REPL there is no problem, whatever the size I saved

#

browsing the issues to see if something similar has been reported yet

tulip sleet
#

@ionic elk what's the smallest internal flash size we can reasonably support? 192kB for the firmware + bootloader + 64kB for a filesystem is what we have on Trinket and Gemma M0

simple pulsar
cursive condor
#

it's kind of the inverse problem...

#

if I reset it's ok. his problem occur only when he reset.

timber mango
#

@solar whale I am cutting antennas for all my RFM69 modules. I have enough to set up a five node network. One of those is a Raspberry Pi 0 with the RFM69 bonnet.

solar whale
#

@timber mango cool! Good luck! I am still struggling with the "reliable datagram mode" -- it's not very reliable 😦 I'lll be interested to hear how you make out with missed packets. I was also planning some changes to make it easier to set the node addresses but that is bogged down in the other stuff for now. Let me know if you have any problems with it.

#

One suggestion I have is that if you have a node responding to a message received, put in a small delay ( say 200 ms) before sending the response. Otherwise the originating node is likely to miss the response. Especially the RPi

simple pulsar
#

@cursive condor I think that one occurs only or more often with particular i2c devices, but not too sure, as per comments I've seen it on CLUE

timber mango
#

@solar whale I will! I need to get two RFM69 FeatherWings and two ESP32-SPI WiFi FeatherWings. I need two of each so I can add wireless to my robot and my PyGamer.

#

Ah, OK.

cursive condor
#

reading more I'm not so sure it's related...

manic glacierBOT
#

I didn't look at the code (add me as a reviewer or @ me when ready) but I think validate_pin_is_free would read better.

The old assert_pin_free() did not actually check that the object was a pin, so I was trying to make that clearer. But I agree the name was a bit awkward. I think maybe validate_obj_is_pin() and validate_obj_is_free_pin() would be more grammatical and clearer.

timber mango
#

@dhalbert How about isobject(object, Pin) like the isinstance() functions??

manic glacierBOT
wild juniper
#

Hi i've been looking through circuitpython sourcecode for PDMin module and traced back to https://github.com/adafruit/circuitpython/blob/master/ports/nrf/common-hal/audiobusio/PDMIn.c . I'm still not exactly sure how it's able to sample 16kHz when there's only 1 multiplex ADC and analogRead on android takes 100 micro sec = 10kHz. I'm trying to just sample an analog pin (A0) at 30kHz, 16kHz is ok too but I can't figure that out either. I tried using the PDMin record function just to see what it picks up but it's a constant 32760. If i assign A0 to analogio.Analogin i can see that the analog microphone data coming into A0 is normal.

GitHub

CircuitPython - a Python implementation for teaching coding with microcontrollers - adafruit/circuitpython

#

Using board nrf52840 adafruit feather express. I searched for sampling library, fastADC, and timing libraries but none worked for me.

#

I can't use SPI because i have an Adalogger attached which writes the data sampled from A0 into SD while values are being recorded/buffered

#

i also don'tunderstand why the C code for pdmin is also fixed at 16kHz and 16bit-depth

tulip sleet
#

@timber mango that PR is for some C functions that validate args; it's not for Python use

tidal kiln
#

what am i doing wrong here?

>>> struct.calcsize("B")
1
>>> struct.calcsize("f")
4
>>> struct.calcsize("fB")
5
>>> struct.calcsize("Bf")
8
>>> 

why not 5 for the last line?

meager fog
#

no idea

#

funny

#

oh maybe because all data must be /4 aligned

#

so second float, it cant be 1 byte packed against the B?

tidal kiln
#

ok, yah, i think that's it

#
The ordering of format characters may have an impact on size since the padding needed to satisfy alignment requirements is different
#

(from struct docs)

tidal kiln
#

thanks. yep. that's totally what's going on.

#

so will have to split this into multiple packs/unpacks

solar whale
#

a "trailing" B is not padded

#

kinda defeats the purpose of "packing"....

meager fog
#

yeah ive never had to unpack floats

manic glacierBOT
solar whale
#

same behavior with different size ints ```>>> struct.calcsize("HHB")
5

struct.calcsize("HBH")
6```

tidal kiln
#

could happen with small ints also

>>> struct.calcsize("BI")
8
>>> struct.calcsize("IB")
5
simple pulsar
#
9
``` is 9 what you're hoping for?
solar whale
#

always put the small ones at the end ...

tidal kiln
#

@simple pulsar interesting. yes.

simple pulsar
#

From the big python, ```>>> struct.calcsize("=fBf")
9

#

What's the purpose of your pack/unpack?

wild juniper
#

is there someone/forum i can get help with understanding the c level implementatino of circuit python?

solar whale
#

@wild juniper this is probably the best place to ask. Responses may depend on who is around.

tidal kiln
#

unpacking a data bytestring that has an int (1 byte unsigned) in the middle of several floats @simple pulsar

simple pulsar
#

Where's the data coming from?

wild juniper
#

ah ok 🙏

tidal kiln
#

from me, concat'd from several sensors

#

so i could totally change the pack struct if i wanted

simple pulsar
#

Ok, I was just curious if it had a well defined endianess and/or was being stored or passed around with obvious consequences if another endian processor one day picked that up.

tidal kiln
#
>>> data = b'd\x06\xf5\xbd\xd0NH?\x1c\xbc\x1dA\xb8\x85\x19\xc2\xd4\xb5\xaa\xc0p\xb3\xa2\xc2\x00@\xda\xceA`\xa3\xadA\xec\xff}D \xf5\xb5\xc1\xcc\xe4\xa5A'
>>> struct.unpack("<6fB5f", data)
(-0.119641, 0.782453, 9.85843, -38.3806, -5.3347, -81.3505, 0, 25.8566, 21.7048, 1016.0, -22.7447, 20.7367)
>>> 
simple pulsar
#

I wonder why CP doesn't support = prefix, presumably that's inherited from micropython?

ionic elk
#

@tulip sleet re: flash size, that's too bad. I've been looking at the H7 and F7 chips, and unfortunately the 100p LQFP size is the smallest layout they have if you don't use the "value" lines, which have very very small flash sizes (64-128kb)

#

The i.mx relies on external flash as well, right?

#

100p would be a challenge to fit on a feather layout, it's pretty big

slender iron
#

@ionic elk the imx has no internal flash and runs from an external spi flash

raven canopy
#

@wild juniper i briefly flirted with writing the nRF PDMIn code, but stalled on it and someone else implemented it (better than i would have, too!).

i also don'tunderstand why the C code for pdmin is also fixed at 16kHz and 16bit-depth

the 16kHz/16-bit is fixed by the nRF52480 PDM peripheral on the chip itself. i can't speak for Nordic's decisions, but i imagine they didn't target higher-fidelity uses when making the design decisions for how to implement all of the Cortex-M4 peripherals.

I'm trying to just sample an analog pin (A0) .... I tried using the PDMin record function just to see what it picks up but it's a constant 32760.
have you tried another pin (say, A1) by chance? also, does the "simple example" code from the API docs give the same result? just trying to narrow down if its a code or documentation issue...
https://circuitpython.readthedocs.io/en/latest/shared-bindings/audiobusio/PDMIn.html

ionic elk
#

@slender iron do you think there'd be any interest in an H7 feather that does something similar? Thinking of the STM32H750 in particular - 480MHz, 1MB RAM, Camera and LCD driver

slender iron
#

how small do the packages get?

ionic elk
#

64 pin on the 750

slender iron
#

it is similar capability to the imx

#

but the imx has high speed usb

ionic elk
#

but it only has 128kb flash

slender iron
#

I assume it can do xip from flash

ionic elk
#

this has HS

slender iron
#

HS phy?

#

usually it requires a separate ULPI

ionic elk
#

"USB regulator to supply the embedded physical layer (PHY)." is that an indication?

#

Oh darn it that one caps out at 100. But I guess if it didn't there'd have been nothing for NXP to one-up

#

The H743 has a TFBGA option that's 8x8mm

#

"A USB OTG full-speed and a USB OTG high-speed interface with full-speed capability (with the ULPI)" on the H743.

slender iron
#

the only one I've found is the F723

ionic elk
#

@slender iron what do you mean

slender iron
#

the only st part with a built in usb hs phy I've found is stm32f723

#

last I looked

ionic elk
#

Well that sentence I posted above is right from the STM32H743 datasheet.

#

"with the ULPI" seems like what you mentioned earlier - is there something else that's needed too?

#

STM32H7A3 also has it - that one has the 64kb package but cuts to 280MHz

slender iron
#

right ULPI is an external phy chip

ionic elk
#

Oh I see so they're implying that you need to have an ULPI, not that it has one - didn't realize ULPI meant an external thing by definition

slender iron
#

I don't know actually

#

I think it can be on the die

ionic elk
#

It's kinda vague wording then I guess. Does "with the ULPI" mean the ULPI they provide or the one you have to install 😆

slender iron
#

see the last sentence

#

from the h743 data sheet

ionic elk
#

I'm just surprised they didn't fit one on any of the H7 series.

crimson ferry
#

Looks like the NINA firmware sends an ICMP packet to servers it's doing HTTP with. I don't think that's in the ESP32SPI library. Not sure why it would do this... does behavior change if (ping) fails? It shouldn't, it's quite plausibe for a server to ignore pings or other ICMP types, and still serve HTTP[S] content.

#

LOL, oops, n/m, it's my code (a connection check I put in ages ago)

simple pulsar
#

@crimson ferry HTTP Load balancers are often determining icmp response by their setup nowadays too. Plus firewall rules on top of that.

prime flower
#

@crimson ferry are you taking a look at the NTP delay by chance?

crimson ferry
#

I was just noticing the traffic in my router (and forgot it me)

prime flower
#

ha

crimson ferry
#

Do you mean the startup 15 seconds?

prime flower
#

@crimson ferry do you have an ethernet featherwing by chance

#

yeah

crimson ferry
#

I set my router to always send NTP on the fastest (lowest latency) link, don't have much trouble with that. A lot of DNS failures though I haven't tracked down yet... that's buried pretty deep in NINA.

#

I do have an Ethernet FeatherWing, haven't done much with it since some Arduino testing long ago, but I'd love to test with CP... do you want me to look at something?

prime flower
#

@crimson ferry PERFECT

#

Ladyada tested it today, she has a different network from me, it failed. Revised it since then.

#

You'll want a SAMD51 board for it since it uses longints and takes up a bunch of space

crimson ferry
#

Feather M4... is DNS still manual?

prime flower
#

Nopeeee

crimson ferry
#

cooool

#

I'll hook it up and do some poking and prodding

prime flower
#

thanks! You may want to comment on the issue if its working/broken, I'll be off discord later tn

pastel panther
#

heya @slender iron is there a way to change the backlight pin polarity in a board definition? for the OHS2020 badge I currently have to set board.DISPLAY.brightness to 0.0 for it to be full bright

slender iron
#

not yet @pastel panther

prime flower
#

@crimson ferry Could you set debug to true in simpletest

#

In the initialization, so, eth = WIZNET5K(spi_bus, cs, debug=True)

crimson ferry
#

yup, where do you want the output?

prime flower
#

On the issue please

crimson ferry
#

comment updated

prime flower
#

you can append to what you have, it's odd that's happening b/c the PR didnt touch that method.

crimson ferry
#

Do I have all the right pieces?

prime flower
#

Yeah, the router's offer message seems large

#

but throwing your response into my code, doesnt seem to throw the same error you got

#

@crimson ferry weird, your router's response also doesn't seem to end in 0xff...

crimson ferry
#

Is there a quick way to do a best-effort decode of that data?

prime flower
#

@crimson ferry I just comitted a small tweak and some more debugging info

crimson ferry
#

OK, I'll check after I finish eating 🙂

prime flower
#

@crimson ferry I gotta eat too, fwiw you can use a python tool called dpkt to decode the buffer into a buffer-like object: import dpkt dpkt.dhcp.DHCP(buffer)

slender iron
#

@onyx hinge I'm redoing internal tick timekeeping and think I'll change ticks_ms to 1024 ticks per second

#

since most RTCs are 32.768khz

onyx hinge
#

OK, that might produce some shallow bugs but I don't immediately have another concern

slender iron
#

any idea what I should call it?

#

I can leave supervisor_ticks_ms64 and 32

onyx hinge
#

_mis because it changes from si to powers of 2? (joke)

slender iron
#

I was considering it 🙂

#

but ya, basically that

#

or I could go all the way and just track at the 32768 per second rate

#

which 30us resolution or so

onyx hinge
#

does that help carry more resolution to user calls like monotonic_ns()?

#

though I think Dan improved that situation recently, yay

slender iron
#

it could

#

looks

onyx hinge
#

ticks_raw or something like that?

slender iron
#

it could also be worse since we're no longer using the cpu clock

#

ya, looks it'll be worse since current_tick is currently used by _ns

#

but that's the tradeoff for sleeping

onyx hinge
#

it's a fair tradeoff

#

but if so, users will feel happier with 1/32768 as the fraction instead of 1/1024

slender iron
#

ticks_raw sounds good

#

yup, we can call raw ticks as 1/32768 of a second

onyx hinge
#

fbofw everybody (including me, when I "know better") gives into the temptation to try to do precision timing from python code.

#

on average you can do nicely

slender iron
#

🙂

#

I should add a random sleep into the vm so people don't 😛

onyx hinge
#

🤢

slender iron
#

haha

onyx hinge
#

I ran across my antenna and receiver/amplifier for WWVB (1 symbol per second modulation), should make good on my stated goal of writing circuitpython code for it

#

but the stuff Limor has me working on, ulab, sensors & soon LEDs, is fun too so I feel satisfied at the end of a day

slender iron
#

should I store raw ticks as two 32 bit ints?

onyx hinge
#

good question. I chose volatile uint64_t but 2 ints maybe gives you better control over updating it

slender iron
#

I'm thinking for the API

onyx hinge
#

our hw doesn't all support atomic accesses for any types, let alone wide 64-bit types; too bad

slender iron
#

adding tick stuff to supervisor/port.h

onyx hinge
#

I somewhat like the unix style { tv_sec; tv_usec } style but that might also be stockholm syndrome

#

I also don't know how much 64 bit types affect ABI, code size, etc..

#

(old unix did tv_sec; tv_usec because there were no 64 bit types yet, among other reasons)

slender iron
#

uint64 everywhere is probably easiest to maintain

onyx hinge
#

64 bit return values go in r0+r1; passed in values can go in r0+r1 or r2+r3, so that's relatively efficient (no stack addresses required)

#

on arm eabi I mean

slender iron
#

👍

#
// Get the raw tick count since start up. A tick is 1/32768 of a second, a common low frequency
// clock rate.
uint64_t port_get_raw_ticks(void);

// Enable 1/1024 second tick.
void port_enable_tick();

// Disable 1/1024 second tick.
void port_disable_tick();
#

so that is all a port needs to expose

#

and call supervisor_tick every 1/1024 when enabled

onyx hinge
#

changing supervisor_tick from 1/1000 to 1/1024 is nothing anybody will notice

slender iron
#

ya, that's my thinking too. it's all coarse timing anyway

onyx hinge
#

and we know we should revisit it

slender iron
#

this is me revisiting it 🙂

onyx hinge
#

I mean, background tasks, you said supervisor_tick

slender iron
#

ah, ya

onyx hinge
#

I jumped to the former topic because that was on my mind when I introduced supervisor_tick

slender iron
#

I guess background_tasks may need to enable ticks as well

onyx hinge
#

if playing audio still works when you're done it's fine. If not, we'll fix it.

slender iron
#

I need to know if we can sleep for the whole time.sleep duration or whether we need to wake up

#
  • every 1/1024 seconds
onyx hinge
#

is entering these kind of sleep states while playing back audio something that makes sense? Or is playing audio "more awake" than sleep mode is for?

slender iron
#

audio uses interrupts anyways right?

onyx hinge
#

mmmmm not exactly

slender iron
#

it does in addition to the background task right?

onyx hinge
#

there is an interrupt register, but it ends up polled

slender iron
#

ah

onyx hinge
#

so background task -> check interrupt pending register. if set, clear it and load some audio up

slender iron
#

so it wouldn't wake us because the interrupt doesn't reach the cpu

onyx hinge
#

right, the interrupt is masked

#

changing that is part of what I think we should move toward

slender iron
#

kk

onyx hinge
#

effectively, background tasks for audio would become the "bottom half" of the interrupt, if I have my terminology right

#

interrupt sets a bit/byte/word somewhere as a side effect, but also it would awake the CPU from sleep state

slender iron
#

right

onyx hinge
#

then you get to "background tasks" and actually do the stuff. that's what the top / bottom interrupt distinction is, right?

slender iron
#
void mp_hal_delay_ms(mp_uint_t delay) {
    uint64_t start_tick = supervisor_ticks_ms64();
    uint64_t duration = 0;
    while (duration < delay) {
        RUN_BACKGROUND_TASKS;
        // Check to see if we've been CTRL-Ced by autoreload or the user.
        if(MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_kbd_exception)) ||
           MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
            break;
        }
        duration = (supervisor_ticks_ms64() - start_tick);
        // Sleep until an interrupt happens.
        // Clear the FPU interrupt because it can prevent us from sleeping.
        NVIC_ClearPendingIRQ(FPU_IRQn);
        if (NVIC_GetPendingIRQ(FPU_IRQn)) {
            __set_FPSCR(__get_FPSCR()  & ~(0x9f));
            (void) __get_FPSCR();
            NVIC_ClearPendingIRQ(FPU_IRQn);
        }
        sd_app_evt_wait();
    }
}
#

where evt_wait waits for any interrupt

#

I'd rather not wake every tick if I don't need to

#

but I can

onyx hinge
#

"it shouldn't be hard" to re-work nrf audio to actually be interrupt based so that sd_app_evt_wait would work.

slender iron
#

ya, changing it from polling the interrupt bit to a flag set in the interrupt wouldn't be bad

onyx hinge
#

at a high level that's all I'm imagining. But I .. don't know how to actally write / hook up interrupt handlers for arm yet 🙃

slender iron
#

it's not too bad you just add a Foo_Handler function that the boiler plate defines as weak

#

and then enable it in the NVIC which controls what the CPU pays attention to

#

which the sleep actually ignores so that you can sleep when interrupts are disabled

onyx hinge
#

Is NVIC arm-general or nRF-specific?

slender iron
#

arm general

#

though each vendor can control the number of bits

prime flower
#

@crimson ferry We also may want to break for the pad opt. in addition to the end opt.

slender iron
#

each peripheral also has interrupt control out to the nvic usually to

onyx hinge
#

I am excited to see this, I know you proposed me to work on it at one moment a few months ago but I demurred due to other stuff on my plate. Thanks for picking it up!

slender iron
#

np, it's new for me and about time we supported lower power

raven canopy
#

which sleep mode is the (initial) target?

slender iron
#

just "wait for interrupt" on the CPU

#

preserving all ram

raven canopy
#

i wish i remembered which mode that equated to in the SAMD sheet. seems like soooo long ago when HappyDay was working on it. 😄

slender iron
#

it's the least power saving

raven canopy
#

i don't think we have any OnDemand clocks, which should be a good thing.

slender iron
#

opens the data sheet

#

ya, we're good about starting just the things we're using

#

(I think)

raven canopy
#

18.6.1.2 (in 51)

slender iron
#

I shooting for Idle

raven canopy
#

lol. just need to scroll a bit more:

18.6.3.3.1
Entering Idle mode: The Idle mode is entered by executing the WFI instruction
slender iron
#

standby could be ok too

#

I think it'd be tougher though

raven canopy
#

i'm still thinking USB is going to be unhappy...

slender iron
#

looks like idle is 1/6 the running power

#

for the samd51 core

raven canopy
#

1/6 is better than 0️⃣ ! hehe

slender iron
#

yup yup. I'm just trying to do the basics for now

#

kk, time to cook and watch aae

#

👋

raven canopy
#

👋

crimson ferry
#

@prime flower I haven't gotten too deep into the code, cursory understanding only atm, but let me know what else I can do... any time

#

LOL, Ethernet FeatherWing MAC address is DEADBEEFFEED

crimson ferry
#

@prime flower Wiznet5k looking good! I'll keep exercising it and let you know if anything interesting shows up.

prime flower
#

@crimson ferry that fixed it?

#

sweet.

crimson ferry
#

@prime flower Now trying to get eth & esp working simultaneously, having some hurdles (maybe due to eth CS pin 10 is the esp GPIO0??)

prime flower
#

now u're playing with something I havent tried 🙂

#

good luck!

#

oo yeah there's probably a pin collision with ESP/ETH. You can rewire the CS pin on the Featherwing, it's broken out on the bottom

crimson ferry
#

I'll desolder esp pin 10, I've soldered all of my wings so I can keep NINA updated 🙂

#

Oh, yeah, I'll do on the eth. What are the Mode jumpers for?

#

ah... 10/100, duplex, & negotiation - that's nice to talk to some old 10baseT hardware that will not auto-negotiate

crimson ferry
#

@prime flower That did the trick, GPIO0 on esp needs to be available for resets, so either it needs to be moved off of D10 or the eth CS does. So... WIZNET5K and ESP32SPI can both be working simultaneously (stacked Feather M4 + Airlift FeatherWing + Ethernet FeatherWing) with their own sockets. Nice! 📶 (gist: https://gist.github.com/anecdata/cc4f091cb50fdb665bfe6586dd079999)

fallen anvil
#

@slender iron does 'ticks' generate an interrupt each time or is it just counted in a register? Sorry, don't know your architecture well enough yet...

#

If the former then we may be storing up a problem for later when we want to support low speed low power operation, cos a lot of those implementations run from the rtc xtal....which means potentially all the CPU would be doing is servicing the interrupt (unless we implement tickles operation, which would be the best solution I guess)

#

Granularity isn't the same as resulution though, so for the low speed case we could make the per tick interval longer...

manic glacierBOT
grim jetty
#

So excited to see ulab make it into circuitpython master. How hard would it be to wire it into the teensy40 port (asking selfishly because that is the physical hardware I have here) 🙂 Thanks!

prime flower
#

@solar whale do you want to impl. the last_rssi attr. in rfm9x, too?

wild juniper
#

@raven canopy the mic im using is electret so analog, the data is not in pdm so it probably decoded the signal into some constant value of 32760. As i said, im trying to sample the pin and just thought maybe pdmin library might be a hack for it but didnt work.

raven canopy
#

@wild juniper ahh. yeah, that would need something new. i don't think a polling loop on the Python side will be quick enough. would likely need something on the C side, akin to PulseIn.

wild juniper
solar whale
#

@prime flower it behaves a bit differently. I’ll look more closely at it to see if it is needed.

obsidian compass
#

Guess my PyCon plans and CircuitPython interactive poster plans needs to be cancelled, got visa rejection 😦 I was excited to PyCon

prime flower
#

@obsidian compass 😦 sorry to hear that

solar whale
#

@prime flower in any case it should be consistent. I’ll look at later today

prime flower
#

@solar whale Sounds good - dya have time to test an ethernet lib (need to soak it across diff. networks to crop up bugs) today?

solar whale
#

sure -- is it in the latest PR?

solar whale
#

I'll give it a shot.

#

@prime flower is the simpletest sufficient for testing it or is there something else you want me to try

prime flower
#

Simpletest is good

raven canopy
#

PSA: library patches are about to pushed. patch only affects .github/workflows/build.yml, so shouldn't cause any conflicts on open PRs (maybe a couple). apologies if any email boxes get flooded. adabot

solar whale
#

@prime floweru ```Press any key to enter the REPL. Use CTRL-D to reload.
Adafruit CircuitPython 5.0.0-15-ge98991fd7 on 2020-03-03; Adafruit Feather nRF52840 Express with nRF52840

import wiznet5k_simpletest
Wiznet5k WebClient Test
Chip Version: w5500
MAC Address: ['0xde', '0xad', '0xbe', '0xef', '0xfe', '0xed']
My IP address is: 192.168.2.32
IP lookup adafruit.com: 104.20.39.240
Fetching text from http://wifitest.adafruit.com/testwifi/index.html
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "wiznet5k_simpletest.py", line 30, in <module>
File "adafruit_requests.py", line 280, in get
File "adafruit_requests.py", line 242, in request
File "adafruit_requests.py", line 194, in request
File "adafruit_wiznet5k/adafruit_wiznet5k_socket.py", line 149, in connect
File "adafruit_wiznet5k/adafruit_wiznet5k.py", line 520, in socket_connect
RuntimeError: Failed to establish connection.

prime flower
#

@solar whale Requests should work as-is

#

@solar whale Could you enable debugging eth(...,debug=True) and post the output into a GIST for me to look at it?

solar whale
#

sure -- just a few mintes

#

i'll put this in the PR

prime flower
#

That's odd, it can resolve/connect but fails on the 2nd IP...

lunar crown
#

I have an NXP iMXRT1020 EVK, and I have have the CircuitPython 5.0.0 “.hex” for it. How do I get the CP software loaded on the EVK board? It has an OpenSDA drive window. If I try to drop the binary on either the EVK mode or Maintenance mode drive window, I get

error: The interface firmware FAILED to reset/halt the target MCU
type: target

Do I need some application to talk to the OpenSDA programmer on the board to load CircuitPython?

wild juniper
#

@raven canopy wdym PulseIn, like you can modify that code to achieve high frequency sampling of analog pin?

fallen anvil
lunar crown
#

@fallen anvil Will do. Thanks

fallen anvil
#

I'm not sure if there are pre-built images around for the 1020, perhaps @indigo wedge can point you in the right direction...

#

You're in luck, I've got one here, I'll PM it to you. This is the first stage loader that will give you a drive that you drag/drop the uf2 onto

prime flower
#

@solar whale Does ctrl+d /reloading establish the connection or same thing?

solar whale
#

same thing

prime flower
#

There's no reason why I shouldnt be able to replicate this...hrm

#

got it.

indigo wedge
#

no official tinyuf2 releases yet

fallen anvil
#

No worries, I've PM'ed him one :-)

raven canopy
#

@wild juniper like PulseIn where an interrupt is created to handle the AnalogIn voltage reading and stores it in a buffer. its likely not a trivial solution...

prime flower
#

@solar whale it seems that server is throwing a RST flag back to the device...

crimson ferry
#

@prime flower Probably unrelated, but my router doesn't show the MAC address of this device in its active clients listing (just blank), haven't seen that before. I could do HTTP, I can ping it, so not sure why that is.

prime flower
#

Mine shows it in the DHCP server?

raven canopy
#

patches completed... thanks adabot !

crimson ferry
#

@prime flower I see it in DHCP logging, and in active sessions, but just not in an active clients list. Doesn't seem to affect operation, but it's different than other devices for some reason.

prime flower
#

@solar whale figured it out, pushed a commit

solar whale
#

@prime flower is there something I should do differently

prime flower
#

We were reusing well-known ports, which caused the server to RST. I switched to dynamic port numbers, randomly assigned and I'm running a test against it rn.

solar whale
#

same result for me 😦

prime flower
#

@solar whale Could I have a trace?

solar whale
#

with debug?

prime flower
#

Yes please!

solar whale
prime flower
#

@solar whale pushed a commit, just to see what the SNCR register is up to... I'm . unable to replicate this problem anymore.

solar whale
#

ok -- will grab and rerun

prime flower
#

@solar whale weird, it sent the SYN but didn't rx the syn/ack from the server. then it timed out.

#

Can you connect to that IP from your computer?

solar whale
#

@prime flower I need to go walk the dog.... whwn I get back, I can try another MCU if you want -- what are you using?

prime flower
#

Feather M4 + Ethernet Wing

solar whale
#

I cn try taht right now

#

@prime flower same result on feather_m4 -- tried you latest comit -- same -- just a lot more ```SN_SR: 21
SN_SR: 21
SN_SR: 21
SN_SR: 21
SN_SR: 21
SN_SR: 21
SN_SR: 21
SN_SR: 0
*** Closing socket #0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "wiznet5k_simpletest.py", line 30, in <module>
File "adafruit_requests.py", line 283, in get
File "adafruit_requests.py", line 245, in request
File "adafruit_requests.py", line 194, in request
File "adafruit_wiznet5k/adafruit_wiznet5k_socket.py", line 149, in connect
File "adafruit_wiznet5k/adafruit_wiznet5k.py", line 522, in socket_connect
RuntimeError: Failed to establish connection.

#

dog is pacing --- be bak in an hour or so...

prime flower
#

I'm timing out and need to head to lecture, will look at this more when I get back.

idle owl
#

@obsidian compass I'm sorry to hear that.

#

@raven canopy Thank you!

slender iron
#

@grim jetty I believe ulab is enabled on the imx port

#

@fallen anvil my goal is to not require an interrupt every tick unless something is "active" in the background. in that case I'll interrupt every 1/1024 of a second

#

every 32 "ticks"

#

@onyx hinge one thing I saw on SAMD was that with the RTC ticking at 32.768 it can't adjust itself for accuracy

fallen anvil
#

Thats cool, so it's resolution rather than accuracy. No prob with that

onyx hinge
#

@slender iron @grim jetty I think ulab is not enabled yet on the ports besides atmel-samd and nrf

#

it should be trivial to do, we would love to see a pull request. It is also probably not enabled on stm32 at this point.

grim jetty
#

Ok, yes just one line addition to ports/mimxrt10xx/mpconfigport.mk: MICROPY_PY_ULAB = 1
I tucked that at the end of the file, but I suspect someone somewhere has rules for how best to organize the contents of this file so maybe that person should insert this in the appropriate location? Anyway, ulab seems to be running on my teensy40 with that one line change (and make clean) Thanks!

crimson ferry
#

For stable 5.0.0, os.uname() reports (sysname='samd51', nodename='samd51', release='5.0.0', version='5.0.0 on 2020-03-02', machine='Adafruit Feather M4 Express with samd51j19')but boot_out.txt has Adafruit CircuitPython 5.0.0-beta.5 on 2020-02-05; Adafruit Feather M4 Express with samd51j19. Is this a known thing, or local-to-me?

timber mango
#

@slender iron I did a little write up about my Little Red Rover with a few pictures. It is on my tech blog at https://hybotics.tech/.

slender iron
#

@timber mango awesome!

#

@crimson ferry I think we have logic to prevent writing boot_out.txt everytime that may be failing

lone axle
#

As another data point I just flashed 5.0.0 onto an Itsy Bitsy M0 that was previously on 4.1.2 and I am seeing the correct version in bootout:

Adafruit CircuitPython 5.0.0 on 2020-03-02; Adafruit ItsyBitsy M0 Express with samd21g18
onyx hinge
#

@grim jetty I don't know about best organization either. If you're on github, send us a PR for sure!

slender iron
#

I don't think we have a standard organization. I'd just mimic the other port location

ionic elk
#

is switching from bash to zsh likely to screw anything up regarding my circuitpython development?

slender iron
#

no, I use fish

#

the one thing I've found is that inline environment variables are different

ionic elk
#

hmmm

#

I will add this to my list of learnings

manic glacierBOT
#

Hello @tannewt, I completely agree with you, I don't like the concept as it's the same board.
But CircuitPython lacks a way to generate "flavors" of one board.

Why I need it for the Nano IoT is because its RAM and Flash limitations.

Not possible to import all the libs needed to use LSM6DS in RAM, we need them as frozen modules.

But frozen module take place in the flash with few space left for user code, so LSM6DS + ATECC libs could not be the best thing for everybody.

My "vision"...

timber mango
#

@lone axle I just flashed two Feather M4 Express, an ItsyBitsy M4, a Feather M0 Express, and a Circuit Playground Express with 5.0.0 and the 0305 libraries. They all show the correct version, board, and chip in the REPL.

manic glacierBOT
#

Hello @tannewt, I completely agree with you, I don't like the concept as it's the same board.
But CircuitPython lacks a way to generate "flavors" of one board.

It lacks flavors because we don't want to have different flavors for a single board. (The only one we do is the CircuitPlayground Express and it is hopefully the last one.)

Not possible to import all the libs needed to use LSM6DS in RAM, we need them as frozen modules.

But frozen module take place in the flash with ...

timber mango
#

@slender iron @idle owl What is the easiest way to get into working on the lower level stuff in Circuitpython? I have this itch... 🙂

#

I do not have much hardware, so am not able to test much code. I will only work on what I can test.

tidal kiln
manic glacierBOT
slender iron
#

the building circuitpython guide is the best place to start

manic glacierBOT
ionic elk
#

ugh yeah fish borks virtualenvwrapper by default

#

bummer

manic glacierBOT
slender iron
#

@ionic elk what do you mean by msp?

ionic elk
#

an ST acronym, sorry. microcontroller support package? Basically the default setup function they provide for every peripheral

#

we don't use them since they aren't very configurable

#

But yeah you can't use pins for any peripheral unless you turn on the port clock.

slender iron
#

ok, looks like the GPIO manages functions

#

I think in some cases the mux is separate

ionic elk
#

Yeah that's why I need a GPIO setup function in every module

slender iron
#

👍

ionic elk
#

You have to set the mode to one of the ALTFN options.

manic glacierBOT
ionic elk
#

@slender iron want me to make an issue for this GPIO thing? It's a simple fix but I'd want to test it thoroughly.

slender iron
#

we can worry about sleep later

#

so either way

#

maybe we need a low power label

ivory yew
#

"we can worry about sleep later" sleep is important, @slender iron

ionic elk
#

I'm still pretty hype for low power so I can port my alarm clock to the NRF52 on circuitpython

manic glacierBOT
#

Ok, I've taken a glance this and I agree we need to freeze some of these libraries in. The SAMD21 is just too small to fit both ATECC and LSM6DS in memory.

I still don't want multiple versions for a single board. Multiple versions are a long term support burden that I'm not willing to commit to. So, my preference would be to always freeze these two libraries and bus device in because both chips are on the board.

There is no need to freeze the binascii library in because the built in ver...

slender iron
#

@ionic elk I think "lower power" is a better term. it still won't be as low as it can go