#circuitpython-dev

1 messages · Page 286 of 1

onyx hinge
#

@tulip sleet if I try those specific optimizer flags on a different m4 board would that satify your request? I don't have a pewpew_m4 (who does)

errant grail
#

text only today

inland tusk
#

Just lurking

marble hornet
#

lurking for now

tulip sleet
#

@onyx hinge that would be a fine test, yes

modern wing
#

🐱

serene warren
#

Lurking

obsidian compass
#

🐈

serene warren
#

Could be worse

marble hornet
#

sorry about that, it was my digital logic course for a minute

#

we're learning about gray codes! 😉

#

you were in cs right?

modern wing
#

Is this a college course or a self-placed online course @marble hornet ?

obsidian compass
#

On the Metal podcast, highly recommend 🔥

marble hornet
#

it is a lecture

turbid radish
#

lurking

tidal kiln
#

lurking

manic glacierBOT
half sedge
#

Maybe we should try reverse round-robin, as it's always the same first and the same last...

#

Not this week.

river quest
#

CircuitPython and Feather power wheelchair as an Xbox controller: Great example of the community, open-source, Feather and CircuitPython, all coming together:
https://youtu.be/FgKNWc-EpHQ
https://blog.adafruit.com/2020/01/31/freedom-wing-adapter-adapter-allows-power-wheelchairs-to-control-an-xbox-ablegamers-at_makers-soeveryonecangame-feather/

Introducing The Freedom Wing Adapter!

In partnership with @at_makers, together we've created the first of its kind adapter to enable a player using a power wheelchair to control an Xbox.

And we're going to release it to the world for free.

AbleGamers can share these storie...

▶ Play video
Adafruit Industries - Makers, hackers, artists, designers and engineers!

Freedom Wing Adapter – Adapter allows power wheelchairs to control Xbox (video) – Introducing The Freedom Wing Adapter! In partnership with AT Makers, together we’ve created the f…

onyx hinge
#

so cute!

obsidian compass
#

cute 😄

lone axle
#

awesome!

river quest
#

MariaJose Molina-Contreras has a talk at PyCon about how CircuitPython can help your plants, and how to build an indoor garden with microcontrollers and IoT:
https://twitter.com/MJ_BIO/status/1222055833787412480

I am so happy and proud to be talking at the next @pycon US about how @CircuitPython /#python can help your plants, and specifically how to build an indoor garden 🌿🌱🍀 with microcontrollers and IoT.

Likes

115

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

After we posted up a recent article about communities moving to Discord from Slack, I wanted to get a playlist of sorts for folks who wanted to check out the communities on Discord that have someth…

#

And server is leveled up...

obsidian compass
#

Awesome, thanks @pt

timber mango
#

I am also hybotics. 😃

marble hornet
#

Unlurking

timber mango
#

Text only

slender iron
#

👍

timber mango
#

That was my first PR to Adafruit stuff. 🙂 Hopefully there will be many more to come as I learn more.

onyx hinge
#

it says 29 at the top

half sedge
#

Let's say I see something I believe I can fix... should I create an issue, then make the pull request? Or just the pull request?

idle owl
#

@half sedge File an issue if it's something you want to discuss before filing the PR. Otherwise, feel free to put in the PR and any feedback and discussion can occur on the PR.

half sedge
#

Just make sure that statistically that is positive.

timber mango
#

Is there a tool that can edit font5x8.bin?

main meteor
#

FontForge and probably many others?

timber mango
#

lurking today

manic glacierBOT
turbid radish
#

Any time I can help, just ask

errant grail
#

😀

onyx hinge
#

they should get a jeweler's loupe in the shop

stuck elbow
#

sorry, mike problems

marble hornet
#

can you post that?

stuck elbow
idle owl
#

@timber mango If you have hug reports or status updates, you can type them in anytime.

slender iron
#

@timber mango go ahead and post your text and I'll read it

timber mango
#

OK.

onyx hinge
#

@timber mango you can drop your text here in the text channel or into the notes doc https://docs.google.com/document/d/16ssd4xtTLyBV_5dmoOSjXIWLtJrESWVIxJ5BIfoUfYA/edit#

#

hug report to whoever is coming up as "anonymous goose" in the google doc because geese are funny

lone axle
#

@onyx hinge Cool! I love the spiral look, definitely gonna get one of those printed this week.

idle owl
#

@half sedge If you could wait to rearrange the notes until after the meeting, I would appreciate it. It moves around the rest of the document when you do it which makes it difficult to take/read notes.

half sedge
#

Ok

obsidian compass
timber mango
#

There is no section in the notes doc to just add questions.

obsidian compass
idle owl
#

@timber mango You can add it to your status update, or add it to In The Weeds at the end.

timber mango
#

OK

obsidian compass
marble hornet
idle owl
#

@timber mango Please include @geekguy before it if you add it to In The Weed so we know who posted it. Thanks!

marble hornet
#

@tulip sleet will that work also benefit in the busio module?

timber mango
#

@idle owl I just added to my status update.

idle owl
#

I see that. Thank you!

tulip sleet
#

@marble hornet it will be in busio.SPI in general, so if you are not using a display or are using an off-board display, yes, you'll get the high-speed peripheral. I may have to add some extra args to the constructor so you can specify which one to use

obsidian compass
#

@stuck elbow wow sounds great having a quemu for cp testing

stuck elbow
#

I'm not promising anything

obsidian compass
#

Either way it's gonna be a fun experiment

onyx hinge
#

@lone axle should be possible to make a special build of circuitpython that starts time.monotonic at a few thousand or million seconds...

marble hornet
#

Can’t wait! I’d love to test. i have a st7789 display always ready to go w/ an nrf52840 so just say the word

onyx hinge
#

@timber mango I suspect that it is converted from the X Windows bitmap font 5x8, which would be in that same bdf format that @slender iron mentioned

timber mango
#

@slender iron font5x8.bin is used in the Charlieplex libraries. Should this be converted to what everything else uses?

slender iron
#

that would be my preference since bdf files support a larger variety of fonts

obsidian compass
#

Time for bed 😴 cya folks

slender iron
#

sleep well @obsidian compass !

half sedge
#

Timezone?

obsidian compass
#

IST 🙂

half sedge
#

Yeah, I love that this demo is introduced and pictured in the guide.

manic glacierBOT
half sedge
#

Will the CLUE and the CPB+Gizmo be equivalent from a displayio point of view? Would be great that code from one work with the other. Both are 240x240 right? @idle owl @gilded cradle

tulip sleet
#

CLUE has its output rotated 90 degrees from Gizmo

half sedge
#

I can rotate the Gizmo... it is round.

manic glacierBOT
gilded cradle
#

I believe so, except with the CLUE board you don't need to worry about initializing the display.

tulip sleet
#

@summer duneGlaude it is not a problem, it's just that you might see some transient differences when painting on the CLUE compared with the Gizmo. Static appearance should be the same.

manic glacierBOT
marble hornet
#

In the weeds: exposing displayio blit? (In a noise y place please call on last)

half sedge
#

I think game can attract people to CP.

timber mango
#

I am so distracted today! 😦

idle owl
#

@stuck elbow I could also create a repo on the Adafruit GitHub where people could PR examples.

half sedge
#

Like I discovered that maze because I am here... otherwise I might not have notice that.

slender iron
half sedge
#

Maybe propose a GameJam I have seen a lot on pico8.

manic glacierBOT
onyx hinge
tidal kiln
half sedge
#

That is a frequently used techique in old console game.

tidal kiln
#

@onyx hinge thanks. i'm going to un-assign myself for now from that issue. will keep an eye on it though.

manic glacierBOT
marble hornet
#

No longer in noisy place

errant grail
#

Would also be handy if Displayio could capture a screen as a bit map for SD card capture or re-use as a background. Is there a way to do that?

onyx hinge
#

yes there is a thing

half sedge
#

How to do the capture?

onyx hinge
#

there's a guide and a library that will help you get a .bmp file or something

errant grail
#

Ah. Would be handy to build a display algorithmically, send to the background, and just update changing display elements.

half sedge
#

Can we "pause" displayIO and then capture?

onyx hinge
#

adafruit_bitmapsaver

errant grail
#

Perfect! Thanks!

manic glacierBOT
turbid radish
#

Thanks all

modern wing
#

Thanks!

gilded cradle
#

thanks

tidal kiln
serene warren
#

see ya next week

errant grail
#

Thanks everyone!

slender iron
idle owl
#
    clue_data[1].text = "Gyro: {%.2f} {%.2f} {%.2f}" % clue.gyro
    clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic)```
slender iron
#

clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(clue.magnetic[0], clue.magnetic[1], clue.magnetic[2])

half sedge
#

I will be happy to copy and past whatever you decide to use...

onyx hinge
#
clue_data[2].text = "Magnetic: ....".format(mag_x, mag_y, mag_z)```
errant grail
#

From a near neophyte point of view, jepler's example is the clearest to me.

half sedge
#

Terminal size... 80 column...

turbid radish
#

punched cards 80 chars

errant grail
#

It helped me. I just learned about unpacking.

#

Yikes!

onyx hinge
#
>>> cc = C(1,2,3)
>>> "{0.x:.3f} {0.y:.3f} {0.z:.3f}".format(cc)
'1.000 2.000 3.000'
tulip sleet
#
>>> t = (500000, 500, 5)
>>> print("First item: {0[0]:d}, second item: {0[1]:d} and third item: {0[2]:d}.".format(t))
First item: 500000, second item: 500 and third item: 5.
#

that's from stackoverflow

#

not easier to read, though

turbid radish
#

Use a huge hammer to drive a tiny nail\

marble hornet
#

Nob?

#

Meaning?

idle owl
#

Knob. As in feature.

turbid radish
#

noob is a new person, a novice

marble hornet
#

Thanks

turbid radish
#

Ah, knob

#

Yes, like turning knobs on something like an old radio or tv

onyx hinge
#

newbs turning knobs

turbid radish
#

EXACTLY

tulip sleet
#

def rgb(r, g, b): ...

marble hornet
#

I totally agree!

turbid radish
#

Long code can be more simple than a short bit of code

errant grail
#

I've reached saturation. Happy to have learned something new. Thank you!

marble hornet
#

Fstrings remind me of swift \()

timber mango
#

I need some clarification on fonts. Is font5x8.bin only used in the CharliePlex libraries and everything else in Circuitpython uses a different font format?

onyx hinge
#

obj.h:#define mp_const_float_e MP_ROM_PTR((mp_obj_t)(((0x402df854 & ~3) | 2) + 0x80800000))

gilded cradle
#

I'm gonna drop too

fierce girder
#

@slender iron had to drop from the call, but status,
on the OHSummit wrist badge (nRF52840), Michael Welling has working sensors with CircuitPython:

  • BME680 Temperature, Pressure, and Humidity sensor
  • APDS-9960 Gesture Sensor
  • LSM9DS1 9DoF IMU
    We are still trying to figure out how to get the Microphone working in CircuitPython:
  • SPH0645LM4H-B Microphone

I'm waiting for Adafruit 1.54" LCD and a j-link to arrive in Berlin so then I can start helping with bring-up as well.

Project page:
https://hackaday.io/project/168483-open-hardware-summit-2020-badge

Open Hardware Summit 2020 will be on March 13th in New York City. Quantity 300 badges need to be produced. These will be given to attendees.

It is going to be in a wrist watch form factor with several awesome features.

  • Rigado BMD340 (Nordic nRF52840)
  • 1.54” LCD
  • 4 us...
slender iron
#

@fierce girder thanks! Will add to the notes doc

fierce girder
#

I've added status to the google doc

slender iron
fierce girder
#

ok thanks

tulip sleet
#

@timber mango font5x8.bin was used for framebuf, an older way of writing to displays which was superceded by displayio and dropped.

onyx hinge
#

@fierce girder i think I only did i2s out on nRF. Pdm in. So it may need core driver code.

#

Drat, this digraph compression seems to make de_DE bigger, I'd only checked zh_Latn_pinyin

tulip sleet
#

@timber mango pewpew_m4 has many native modules turned off, but not CIRCUITPY_ANALOGIO. Do you need analogio?

#

we're lookin' for space. pewpew_m4 zh_Latn_pinyin has 16 bytes free

slender iron
#

Hi all! Next week's meeting is just under a week away at its normal time, Monday 11am Pacific / 2pm Eastern. All are welcome to attend. Notes doc is here: https://docs.google.com/document/d/1CTN9esAIa35AYV7EVIBUsa9nZsf_vzcJTJIvZqtiPgc/edit?usp=sharing <@&356864093652516868>

slender iron
tidal kiln
#

what's the general approach for doing a manual screen refresh with displayio?

trim elm
#

@tidal kiln I think it's board.DISPLAY.refresh() but I'm not entirely sure

#

Although that's technically not through displayio

tidal kiln
#

yep. that's displayio.

#

i'm trying:

display.auto_refresh = False
# and then later
display.refresh()
#

works once, but then on second call getting:

RuntimeError: Below minimum frame rate
#

it's in a loop that has a several second delay

slender iron
#

refresh takes a minimum target frame rate

#

I think it you set it to 0 then it is disabled

#

looks

#

its meant to alert you if you expect your game to go at 15 fps for example

tidal kiln
#

ok. that's what i was thinking.

#

so i should set it to match the slowness of my loop?

#

this is a case of very slow updates - just every couple of secs

slender iron
#

I'm not sure it can go that low

#

ya, 0 disables it

#

minimum_frames_per_second = 0

#

target fps will slow you down if you go too fast

tidal kiln
#

thanks. that fixed it.

#

or not...not crashing, but display is not updating

slender iron
#

hrm

tidal kiln
#

more info - i'm updating some text labels, both text and position, and trying to prevent the redraw until done with all that

slender iron
#

ah, you'll want to set the target frame rate really low too

#

if you are behind the target then it'll skip the update

#

it may crash if it is less than 1

tidal kiln
#

needs to be an int, set to 0. didn't crash, but didn't update.

slender iron
#

0 will divide 1000 by zero

stuck elbow
#

could there be a special case added for 0?

slender iron
#

ya, of course

#

just don't have it now

tidal kiln
#
display.auto_refresh = False
while True:
    label_1.text = some_new_text
    label_1.anchored_position = some_new_position
    #
    # do the same for several more labels
    #
    # and then manually refresh
    display.refresh()
    # and sleep
    time.sleep(5)
#

that's the gist of it

slender iron
#

can you run it faster?

#

you could set target frame rate to 1 and it'll slow it down for you

#

no need for the sleep

tidal kiln
#

and just let it update the screen that fast? and update the other things at the slower rate?

slender iron
#

just let it update everything at that rate

tidal kiln
#

but don't want to have the label updates be that fast

#

it works without setting auto_refresh = False

#

but then you see all the labels get moved, and it's not a smooth screen update

slender iron
#

well auto_refresh off can't do multi-second frames

#

it assumed auto-refresh would work for that

#

so we can add support for 0 fps

tidal kiln
#

what @stuck elbow was suggesting?

onyx hinge
#

What if you set auto_refresh False while you're moving things around, and True when you're done and ready to sleep? That's sort of generally what I did in JEplayer when I wanted a bunch of UI elements to update at the same time.

#

(I didn't read back everything, apologies if I'm retreading something)

slender iron
#

@tidal kiln ya. @onyx hinge's suggestion could work too

tidal kiln
#

@onyx hinge awesome. yep. that works. thanks!

onyx hinge
#

@slender iron do you think that we're computing the huffman codes for ALL the strings in the message file, or JUST for the ones actually used in this board?

tidal kiln
#
while True:
    display.auto_refresh = False
    label_1.text = some_new_text
    label_1.anchored_position = some_new_position
    #
    # do the same for several more labels
    #
    # and then manually refresh
    display.auto_refresh = True
    # and sleep
    time.sleep(5)
onyx hinge
#

it looks like it happens via the QSTR machinery which is based on what's actually enabled at the preprocessor level .. right?

slender iron
#

I think it is preprocessor based

#

👍

#

flu shot time and then errands bbl

manic glacierBOT
serene warren
#

Hmmm. I took the "try:" from line 12 in the Weatherstation code.py file, which makes the new line 12 "from secrets import secrets" and the errors about line 8 and the pyportal stopped showing. But now the error for line 13 and the secrets.py has changed to line 13 in code.py which now reads "except ImportError:"

idle owl
#

I don't think you can have an except without a try.

serene warren
#

Thank you @idle owl , I tried commenting out the except and it went back to the old long list of errors.

tulip sleet
#

@stuck elbow pewpew_m4 has many native modules turned off, but not CIRCUITPY_ANALOGIO. Do you need analogio?
we're lookin' for space. pewpew_m4 zh_Latn_pinyin has 16 bytes free

stuck elbow
#

@tulip sleet I don't need it for games, but if someone wanted to connect a pot as an additional controller or something like that, they would need it. I know it's disproportionally large. I'm working on making the frozen modules smaller by not including the graphics in them for the final release.

tulip sleet
#

de_DE has 24 bytes free

#

i'm trying to decide what to do in the short run. Maybe I'll turn it off temporarily if you are going to continue to squeeze the library. The filesystem size could also be adjusted but you might want that as large as possible.

stuck elbow
#

@tulip sleet if you run out of space, turn CIRCUITPY_ANALOGIO off, and we can enable it if space becomes available

#

by the way, I asked at my fab if they would like to ship it also with Chinese firmware when the order is from China, and they told me that even children learning to program should know enough English to understand the error messages

tulip sleet
#

pl has 804 free; en has 1660 free. Yes I will do that for now so we can get the displayio color tuples pr in. thank you very much

#

FYI, saved 1420 bytes

stuck elbow
#

yeah, no idea why analogio is so huge

manic glacierBOT
lone axle
#

@cursive condor Memory Errors on CPX with both the maze, and etch-a-sketch unfortunately.

cursive condor
#

ohhh 😦 ok

#

thanks a lot for testing

manic glacierBOT
tulip sleet
#

afk for a while

idle owl
#

Ok, because I keep running into this ISSUE, and tried searching here and found no answer to it, though I've brought it up multiple times, I figured out the solution, so I'm posting here for posterity, which is to say, so when I search for it again, I find it. Sphinx warning: toctree contains reference to document 'api' that doesn't have a title: no link will be generated is related to automock, and apparently is resolved when the autodoc_mock_imports are accurate.

#

(╯°□°)╯︵ ┻━┻

raven canopy
#

hehe. you could've pinged me. i've hit it sooo many times. 😄

strange cargo
#

I just got a CLUE today (!) I loaded CircuitPython 5.0 beta4, but it doesn't seem to be working. I see the blinka snake in the upper left, but nothing else on the screen. am I too much on the bleeding edge? (is this expected to work?)

idle owl
#

@raven canopy I should have. I found a conversation between us from 2018 where you said it was tickling something in your brain about automock, so I tried that. It worked.

#

@strange cargo It should work. Are you not getting the CIRCUITPY drive? because there was a bug causing that.

raven canopy
#

good candidate to add to the library guide's checklist?

idle owl
#

@raven canopy Ugh probably.

#

But I have my wholly inefficient search results here now 😄

raven canopy
#

hehe. that guide needs love anyway. Travis isn't the best place to test with anymore. 😄

strange cargo
#

@idle owl if I double-click reset, I get /media/pi/FTHR840BOOT , so I can load a uf2, but with 50-beta4 running I don't see a drive in /media/pi ... also I don't see the REPL connection. normally I would have /dev/ttyACM0 but I don't see that

lone sandalBOT
idle owl
#

@strange cargo Load that onto the FTHR840BOOT drive.

#

Should resolve it if you're having the issue I think you are.

strange cargo
#

@idle owl thanks! I'll try that. I'm chatting on a different machine than I use for CP, so I'll need to transfer that file over (will take a bit). is that something that will show up as a fix in "beta 5"?

idle owl
#

Beta5 will be released tonight or tomorrow, and will have this fix in it. So when the next beta is released, download it from CircuitPython.org/downloads and use that instead. But this should get you going now.

#

Yes

strange cargo
#

great. thanks!

idle owl
#

You're welcome!

manic glacierBOT
#

maybe we can call it STM32F407 Discovery although its official name is only STM32F4 Discovery . TinyUSB does support f407, in fact this is one of the first board I used to tested with STM32 port, here is its BSP
https://github.com/hathach/tinyusb/tree/master/hw/bsp/stm32f407disco

My preference is to follow the official name even though it is ambiguous.

@hierophect Please add the new board to the board list to fix the test.

slender iron
#

@idle owl is your clue code posted anywhere? would love to build a ble sensor node based on it

manic glacierBOT
#

We'd like to be able to call a c++ function from CircuitPython through a C wrapper. Here's a directory with the .cpp file and the .h file that we'd like to integrate into our CircuitPython build. We've also tried adding the files to our MakeFile on the port level through including them on the -INC call, which hasn't worked either. Fundamentally, our code also depends on the use of Eigen, which is a C++ header-only library. Any other ideas for how we could integrate this? We've tried shared li...

lone axle
#

Is it expected for the reset button on the pybadge (or anything with built-in neopixels really) to keep the neopixels on showing whatever color was last set when the reset button is pressed?

manic glacierBOT
slender iron
#

@lone axle what are you resetting into? they don't actually reset themselves with the button

#

but circuitpython should clear them for you

lone axle
#

I was in bootloader mode and they were green. I pressed reset and went back to normal and they stayed green

#

and stay green through subsequent reset presses

slender iron
#

try the latest build. I think dan improved it on circuitpython recently

#

the reset button doesn't reset the neopixels directly

manic glacierBOT
lone axle
#

Ah, yep with the newest build they do get turned back off

slender iron
#

great!

manic glacierBOT
#

Smoke test for the built module:

import array

from eveL import EVEL

class Dumper(EVEL):
    def write(self, b):
        f.bb += b

f = Dumper()
f.register(f)
f.bb = b''
f.ClearColorRGB(0x12, 0x34, 0x56)
f.flush()
assert list(array.array("I", f.bb)) == [0x02123456], "Unexpected output %r" % f.bb
print("eveL smoke test passed")

Also at https://github.com/jamesbowman/py-bteve/blob/master/examples/smoke_eveL.py

orchid basinBOT
timber mango
#

I have hit a new problem where I want to detect a switch press right now so it does not have to be held down. I know this yells "Use an interrupt," but Circuitpython does not have external interrupts. Is there another way I can handle this?

slender iron
#

have you tried polling? it can be pretty fast

timber mango
#

@slender iron I am not sure that is what I need. If that would that mean to check the switch every time through the loop, I do not think that is what I need. Is there something else that refers to?

slender iron
#

ya, that is what I mean

#

what are you doing in the loop?

timber mango
#

@slender iron That is not what I need then. I am doing a bunch of sensor stuff in my loop but want to add a switch to allow toggling the display on/off. As I see it, polling would still require the switch to be held down.

idle owl
#

@slender iron It's posted to a wip branch on my fork. I'll send you a link. Other than documentation and changing how the default colors are handled in the data display, it's pretty much what I'm going to PR.

slender iron
#

cool! thank you!

vapid shell
timber mango
#

Also, when writing to the display, I can not poll the switch. I do not know if interrupts would work here either though.

tulip sleet
#

it polls buttons in the background and remembers their state

timber mango
#

@tulip sleet Ah, OK, I will try that, thanks!

#

I am off to a nap, so will check out the gamepad module later.

pastel panther
#

@trim elm @slender iron I just put the most recent build of CP on my CLUE (pirate) and am now trying to test Dylan's code. It's just plugged in via micro USB, I It's show some strange behavior:

  • Dylan's code exits because I don't have all the libs
  • I get the
    Press any key to enter REPL. Use CTRL-D to reload.

a bit after it adds
Auto-reload be on. Put er files on USB to weigh anchor, er' bring'er about t' the REPL t' scuttle
After 30 seconds it repeats the "Press any key to enter the REPL use CTRL-D to reload.

  • without any input from me it goes into the REPL after approximately 30 seconds.
    , and I see the following (transcribed, may be some minor typos)
    "
Adafruit CircuitPython 4.0.0-beta.4-1-27-g67440acd3 on 2020-02-03; Adafruit CLUE nRF52840 Express with nRF52840
>>>
raw REPL; CTRL-B to exit
>
#

@slender iron @trim elm I've tried a few more times and sometimes the timing or order is different, but the end result is always that I end up in the raw REPL.. The big issue is that writing to the drive by saving an edit to code.py does not reload

#

@tulip sleet any insight you have would be useful as well

trim elm
#

Hmm. Have you tried using the uf2 that @tulip sleet made a few days ago. That’s what I’ve been working off of

pastel panther
#

@trim elm I don't think this is your doing, just keeping you in the loop

#

I have not

#

is it titled clue-PR-2571.uf2?

trim elm
#

Yup

pastel panther
#

I'll try it. Is/was master not working?

trim elm
#

It wasn’t. I wasn’t even able to get it to show up as a usb device although I haven’t tested the most recent build

pastel panther
#

ok, I'll try testing with that one.

#

hmm looks like the same behavior. I'm guessing by the name of that UF2 it was from a PR that has since been merged

#

I'll add the libs and keep testing

trim elm
#

Ok

#

And yeah, I think that’s the case. Based on the date of that uf2 from the website, it’s probably a very similar version if not almost exactly the same.

#

@pastel panther are you testing with a heart rate monitor?

pastel panther
#

no

#

I was testing "what happens when they try to use it with no BLE sensors"

raven canopy
#

that sure does look my pirate translation...

pastel panther
#

❤️ ☠️

raven canopy
#

severely unfinished pirate translation* 😄

pastel panther
#

dude, I spent way too long looking at pirate dictionaries trying to come up with more

raven canopy
#

hehe. same!

#

it gets very repetitious...

pastel panther
#

I feel like I need to consult a linguist

tulip sleet
#

@pastel panther thanks, I will look at the CLUE problem in a bit.

manic glacierBOT
#

This is very similar to #2574, which allowed displayio.Palette to take tuples for color values. This PR allows tuples or lists, to match _pixelbuf.

@jepler: It turns out there wasn't really a good way to share code with _pixelbuf: it's pretty different, and this code is quite small.

To fix the pewpew_m4 build overflow issues, I consulted with @deshipu, and we're removing analogio from that build temporarily. @deshipu expects to be able to reduce the size of the frozen module e...

tulip sleet
#

@pastel panther @trim elm I am not having trouble with a CLUE build from the tip of master. I don't see all the raw mode stuff and everything. What's your host computer?

pastel panther
#

@tulip sleet A pre-catalina macbook pro 13

tulip sleet
#

what editor are you using and was it open?

#

do you have some other computer to try?

pastel panther
#

I wasn't using an editor, I was just copying files over from dylan's repo and libs from the bundle.

orchid basinBOT
#

Perfect, thank you. I wasn’t aware of what the best place to engage the community was.

Chase

Sent from my iPhone

On Feb 3, 2020, at 8:36 PM, phillip torrone notifications@github.com wrote:

thanks, please post up in the adafruit forums for this as we release the board!


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

tulip sleet
#

were you copying with cp -X, etc?

raven canopy
#

def has a terminal/hid control character vibe to it...

tulip sleet
#

yeah

pastel panther
#

I don't have another computer to try easily. I can pull the PC out of the closet if need be however, and I have an up to date ipad pro I might be able to test with if I have the right cable

tulip sleet
#

that is worse; it gets really confused by the .Trashes file

pastel panther
#

@tulip sleet cp -R

tulip sleet
#

cp -X will suppress copying the ._* files

pastel panther
#

that's good to know

raven canopy
#

has cp -R ever caused this before, though @pastel panther?

pastel panther
#

@tulip sleet possibly also relevant, one of the last times before I put the rest of the libs on the drive to get dylans code to run, it looked like I was getting phantom typing

#

@raven canopy no, I use it exclusively

tulip sleet
raven canopy
#

👻 ⌨️

pastel panther
#

I can remove some stuff to try to reproduce it again

tulip sleet
#

eek, is there anything else plugged in, or do you have a wireless keyboard?

raven canopy
#

haha. how ironic would it be that the BLE is so good, that it picked up a wireless keyboard. 😄

pastel panther
#

there is a metro running some non-HID driver test code but otherwise the only input is my keyboard and mouse as well as the trackpad and keyboard on the laptop itself

#

@tulip sleet I have to go to pick up 🌮 . I can test more later

tulip sleet
#

i am pretty baffled. you could try another board and see if similar things happen

manic glacierBOT
#

I'm not seeing this on MacOS with two random CPB's. diskutil info -all shows different UUIDs for the two volumes.

On Linux the SerialNumber that shows up in /var/log/syslog is different for the two boards. If you plug the same boards into Linux, are the SerialNumber values the same?

<img width="165" alt="Screen Shot 2020-02-03 at 10 55 37 PM" src="https://user-images.githubusercontent.com/2847802/73712839-5b30e500-46d9-11ea-8ffb-a30ffc2ea431.png">

manic glacierBOT
manic glacierBOT
orchid basinBOT
timber mango
#

hi, I jus got my adafruit circuit express, the firts steps went fine but then when I tried to save the circuit python on the board I couldn't see the icon, is it because the cable

#

?

manic glacierBOT
onyx hinge
#

@velvet idol hi! Ladyada has asked me to add FFTs to CircuitPython, and DanH proposed to do it by getting ulab incorporated. I am reading up on your ulab-in-circuitpython work. What do I need to know? How can I help?

onyx hinge
#
>>> import ulab
>>> ulab.ones(16)
array([1.0, 1.0, 1.0, ..., 1.0, 1.0, 1.0], dtype=float)
>>> ulab.fft(_)
(array([16.0, 0.0, 0.0, ..., 0.0, 0.0, 0.0], dtype=float), array([0.0, 0.0, 0.0, ..., 0.0, 0.0, 0.0], dtype=float))
>>> ulab.ifft(*_)
(array([1.0, 1.0, 1.0, ..., 1.0, 1.0, 1.0], dtype=float), array([0.0, 0.0, 0.0, ..., 0.0, 0.0, 0.0], dtype=float))
``` good progress so far ! @velvet idol @meager fog
meager fog
#

@tidal kiln hi can u give me the mask bmp for hearts project

#

gmail got terribly confused 😄

tidal kiln
slender iron
#

@prime flower have you looked into sharing sockets in adafruit_requests?

#

so we don't need to create a new one every time

prime flower
#

@slender iron I havent

slender iron
#

k, I'm going to look into that today. seemed like most of the issues I'm having are with slow starting of the socket

tidal kiln
#

@meager fog also added in basecamp if you want to grab from there

meager fog
#

got it! thanks 🙂

manic glacierBOT
idle owl
#

@tulip sleet Should I merge the tuple PR?

onyx hinge
#

pdmin can't record to a ulab.array, I wonder why

#

no error, just .. no values filled. Doesn't "implement buffer protocol"?

pastel panther
#

@tulip sleet an update regarding the CLUE strangeness yesterday: I believe I reproduced it on a CP BLE though it's less certain because it doesn't have a screen to send REPL output to. I have pictures of the phantom typing I'm getting on the CLUE though I imagine I should probably open an issue

tulip sleet
#

@idle owl sure please do

tulip sleet
#

@pastel panther yes an issue would be great

manic glacierBOT
#

My test program prints the peak audio frequency detected:

import audiobusio
import board
import ulab
import time

audioin = audiobusio.PDMIn(board.MICROPHONE_CLOCK, board.MICROPHONE_DATA, bit_depth=16, sample_rate=16000)

b = array.array("H", [0]) * 512

def maxel(values):
    return max(enumerate(values), key=lambda x: x[1])

t0 = time.monotonic_ns()
while True:
    audioin.record(b, len(b))
    u = ulab.array(b)
    f = ulab.fft(u)[0] # Take real part
  ...
manic glacierBOT
onyx hinge
main meteor
#

Looks like a waterfall display of drift+noise

onyx hinge
#

I played a frequency sweep with audacity and spectrum-analyzed it on clue

main meteor
#

Cool!

tulip sleet
#

@onyx hinge terrific fast job on ulab. we could enable it on a bunch of boards (all nrf, maybe all m4?) How big is it?

onyx hinge
#

@tulip sleet about 35kB on clue I think

tulip sleet
#

REALLY, I thought it would like 100kB

#

I'd say let's enable it for m4 and nrf. this is a huge thing. I could include it in the beta

onyx hinge
#

let me double check

tulip sleet
#

"Huge" as in great

onyx hinge
#

My pull request: 499692 bytes free in flash firmware space out of 839680 bytes (820.0kB).
Latest(?) master: 535800 bytes free in flash firmware space out of 839680 bytes (820.0kB).

#

I will work on enabling it in m4 and nrf. I think SOME m4 boards will be close enough to capacity we'll have to back it out, but let's see.

tulip sleet
#

should be ok on anything with external SPI/QSPI, I think

#

did you get in touch with Andrew Gatherer?

#

Also could add to the boards he is targeting (kicksat and whatever the other one is); i think they do not have external qspi

onyx hinge
#

no, I pinged him here on discord but didn't do anything more than that yet.

trim elm
#

@pastel panther Soaked the usb port end of my clue in acetone and the usb port is now working again

pastel panther
#

that's good

idle owl
#

@trim elm When you said debacle, you meant it.

trim elm
#

ooohhh yeah. I got superglue and then acetone all over my desk

pastel panther
#

@trim elm ya, you're rivaling my ability to create problems that can only be solved by acetone or other similar strong solvents

trim elm
#

lol

#

I do what I can

pastel panther
#

lesson learned: putting acetone on a problem always fixes it

idle owl
#

@trim elm It was good timing on your part, I considered using super glue to fix my CLUE display.

#

At the moment there's a piece of twist tie tucked under the cable in the back that kind of shims the display down.

trim elm
#

I think that the gel super glue might actually work. The super glue I tried had turned completely liquid for whatever reason

#

Also, a bit of hot glue that is then filed down would probably work too

#

just on the edge

idle owl
#

Ah fair enough. There are super glues that are entirely liquid too.

#

I think it comes up enough for doublesided tape but I wasn't sure whether that would affect the functionality or not.

#

mine I mean, comes up enough for that.

#

Doublesided tape is mostly clear?

trim elm
#

hmm. I might try some on my pyportal that's having the same problem

onyx hinge
#

to affix the screen to the pcb? why would it be important to use a clear doublesided tape?

trim elm
#

To attach the screen to the metal part

onyx hinge
#

@tulip sleet metro m4 express 192148 bytes free -> 157124

tulip sleet
#

that's still very fine

idle owl
#

Isn't the backlight separate from the display? It was confusing to me when I peeled it up

#

I thought putting something not clear in there would block the backlight

#

but it's so bright with it on, I couldn't tell what was where

onyx hinge
#

if it's between the backlight and the lcd, for sure

trim elm
#

I can't open the screen on my clue, but on my pyportal pynt, it looks like you should be fine to put anything back there. I'm gonna test with just single sided tape

idle owl
#

I have a role of scotch doublesided tape somewhere around here.

manic glacierBOT
trim elm
#

@idle owl Yeah, I think that if you tape the white part to the metal part it should be fine

onyx hinge
#

@tulip sleet there are ".rst" docs in ulab. any idea if/how we can slurp those in ?

idle owl
#

Fair enough @trim elm

trim elm
#

I think the issues happen when it gets in-between the white part and the rest of the screen

manic glacierBOT
onyx hinge
#

oh should have used ulab.spectrum directly, not fft

#

@tulip sleet sadly, it doesn't fit on kicksat. /usr/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: region `FLASH_FIRMWARE' overflowed by 16556 bytes

manic glacierBOT
#

My CLUE board is experiencing some phantom input and is going into the REPL when a program is done running without input from me. I suspect the two are related.

Test setup:
MacBook Pro 13" w/ touchbar running Mojave 10.14.6 (18G87)
Micro USB cable from adafruit: https://www.adafruit.com/product/4148
CalDigit TS3 Plus Thunderbolt 3 Dock

I was testing Dylan's code by copying over files using cp -R from his repo, as well as some libs from the bundle. When it first occurred I hadn'...

tulip sleet
#

@onyx hinge they can do some squeezing 🙂 but i'm really happy it's on most everything else

manic glacierBOT
tulip sleet
#

@onyx hinge I'll approve after the build is fixed

onyx hinge
#

@tulip sleet OK, I'm also trying to incorporate the docs

ruby lake
#

circuitpython libraries now used in our media players for lighting control. BLE is next

onyx hinge
#

though they are not particularly well aligned with circuitpython's style

#

eventually the waterfall demo gets an exception because fft resulted in a NaN. huh.

slender iron
#

@tulip sleet @onyx hinge how much room is left in most builds?

tulip sleet
#

the lib is about 35kB

onyx hinge
#

metro m4 express and airlift both have about 150kB flash left with this PR

manic glacierBOT
onyx hinge
#

(for en_US)

tulip sleet
#

i'm checking pinyin

onyx hinge
#

141kB pinyin on pygamer

slender iron
#

I was thinking we need an adafruit.io dashboard of build sizes

onyx hinge
#

yes!

slender iron
#

why is kicksat full?

#

is it internal flash?

onyx hinge
#

internal filesystem

tulip sleet
#

it doesn't have spi flash

slender iron
#

ah

slender iron
#

is ulab meant to be a subset of numpy?

tulip sleet
#

functionally, yes, a tiny subset, i don't know how the API differs, but it tries to be roughly the s ame

onyx hinge
#

"conforms to numpy as much as possible"; I don't have enough numpy experience to really say

slender iron
#

I think it's worth shared-bindings it

#

otherwise no one will have docs for it

meager fog
#

@onyx hinge can ya give me a CLUE uf2

onyx hinge
#

@meager fog yeah!

meager fog
#

ill try it out!

#

thanx 🙂

tulip sleet
#

it's a lot of work to shared-binding it, and we'd break pulling from upstream. I think that's a good long-term goal, and it can be done invisibly later

slender iron
#

documentation is important

#

and you can verify it is a subset of numpy then too

tulip sleet
slender iron
#

just move the __init__.c across and document it

#

you don't need to worry about splitting the implementation

onyx hinge
#

I gotta go 🌮 but I'll be back

manic glacierBOT
tulip sleet
#

@slender iron @onyx hinge it will be no worse than json and re are in their current form

slender iron
#

they should be improved too

#

I don't think its more than a days work to move everything around

tulip sleet
#

sure i agree with that

meager fog
#

@onyx hinge oh right, i forgot to check artifacts

#

will try!

slender iron
tulip sleet
#

so can't we just link to the .rst instead of pulling it into __init__.c ?

slender iron
#

I'd rather not because the rst isn't structured well

#

functions aren't marked as such for example

manic glacierBOT
tulip sleet
#

we can PR improvements back to upstream, but I don't think that should be a blocker to incorporating it. I'm worried about making changes now without a plan as to how to keep compatible with upstream

slender iron
#

I don't think it's useful until it is well documented

#

linking to their own read the docs leaves confusion about what version we have

tulip sleet
#

we have forked it, so we can link to our readthedoc

#

for the fork

#

i have used numpy. for someone familiar with numpy it is pretty well documented

manic glacierBOT
slender iron
#

I'd rather just reformat the docs now so that it's done. having the shared-bindings document structure gets us much closer to generating stubs for IDEs as well

ionic elk
#

@slender iron @tulip sleet As I work on the core temp and VREF functions, I'm noticing that a VBAT read is kind of conspicuously absent. Is that something that's implemented elsewhere or just not priority?

slender iron
#

folks who haven't used numpy should be able to use it based on our docs

tulip sleet
#

we don't have to put it in the imminent beta.5

#

i'm not sure that's necessary, since we don't document core python stuff either; we refer people to the CPython doc

slender iron
#

we don't need ulab in beta.5 either

#

I don't want to rush it in

#

its not much work to get the docs in standard form

tulip sleet
#

i agree we could wait a bit. if we could pr the doc changes back to upstream that would be good

#

@ionic elk do you mean reading from the voltage divider?

slender iron
#

we do document the subsets of cpython modules we implement

tulip sleet
#

there are some python examples about how to read the VBAT voltage divider

#

with analogin

ionic elk
#

@tulip sleet no, from a dedicated VBAT pin. Which on looking, I guess the SAMDs don't have, so that answers that question.

#

Thought that was an ARM specification thing but I guess not.

tidal kiln
#

nah, it's just a voltage divider fed into an available ADC pin

#

and then i think convention is to name that pin VBAT

ionic elk
#

Yeah the STM32s have a bunch of register settings and stuff related to it so I thought it was more of a core feature.

#

I could add the functionality if desired, might be nice for battery using people.

manic glacierBOT
onyx hinge
#

@slender iron I'll look at drafting documentation in our "style" in a __init__.c file, reusing text from ulab.rst where possible. That seemed to be the conclusion of the discussion?

tulip sleet
#

yes, i was chomping at the bit, but we can clean it up more first

onyx hinge
#

I like knowing that others are enthusiastic but there's no reason to hurry

slender iron
#

@onyx hinge that would be awesome. I don't think it's too much work so I think it is worth doing

#

consistency is very helpful

onyx hinge
#

Upstream docs are 3300 lines so.. I am not sure it will be instant

ionic elk
#

micropython veterans: do you know the difference between adc.c and machine_adc.c? They seem completely redundant.

tulip sleet
#

@ionic elk machine_whatever.c is probably for the machine native module. I don't know why there are two.

slender iron
#

@onyx hinge true. but hopefully faster than writing it yourself

onyx hinge
#

It's all good, I'll know the markup much better by the end too

half sedge
#

I believe this should have been the ultimate demo...

#

I will try to document this a bit better.

fallen anvil
#

Hi folks, is this the right place to ask dumb questions about porting CircuitPython? Specifically mimxrt1021?

#

I'm whacking into a hardfault in flexspi_nor_flash_init but I don't really understand how the XIP is being handled while the FlexSPI is undergoing brain surgery in those routines. My board is losing it's marbles somewhere inside the flash init process. Unfortunately it's a custom board with the flash on the alternate pins (so no DQS available) otherwise I guess it would've come straight up.

timber mango
#

@fallen anvil I find that when working with something new, it is best to work with the standard configuration a bit before jumping into something super custom. This has saved me many headaches.

fallen anvil
#

I have the standard configuration working fine on a Teensy4, its the leap into the unknown thats got me fooled.

#

(Teensy4 is 1062, but it's close 🙂 )

timber mango
#

@fallen anvil Ah, OK. Those unknowns are where the fun really starts though! 🙂

fallen anvil
#

he he...tell me about it!

#

I just don't see anywhere where the XIP is switched off or otherwise accomodated while the flash is reconfigured. I guess I'm missing something, but I don't see what.

timber mango
#

Is there an example for the configuration you want to use that you can refer to?

fallen anvil
#

I'm starting from the 1021 config. There should really only be one thing to change (famous last words)..changing kFLEXSPI_ReadSampleClkLoopbackFromDqsPad to be kFLEXSPI_ReadSampleClkLoopbackInternally . Certainly that gets me booted and into running code, but then I hit a wall again when the flash comes to be reconfigured in the main startup code.

timber mango
#

I will not be any help there, sorry. I am just trying to point at things that have messed me up in the past, like not looking for examples. Sometimes, even within a family of parts there can be differences.

#

@fallen anvil @indigo wedge would be the one to talk to about i.mx rt stuff.

fallen anvil
#

Oh, there are certainly differences amongst this family! Thanks for trying. Hopefully we can leave this hanging here and if arturo has more info they can ping later. I'm just worried that it might be relying on the Instruction cache while the flash is reconfigured, which would be bad mojo....but I can't believe that's the case, I've just missed something somewhere.

timber mango
#

@tulip sleet Was it you who suggested the gamepad module to me yesterday?

#

Speaking of the gamepad library, are there any examples on how to expand use from one button to up to eight buttons? The one button example is a great starter, but it is difficult to figure from the docs how to expand that.

#

It does look like I will be able to use gamepad for all my switch related needs though. It works much better than I thought it would!

tulip sleet
timber mango
#

That is the example I used to get it implemented into my script, since I am just using one button right now. But, how would I check for the second or third buttons? That is not clear to me at all.

#

At least now, I will not have to reconfigure and restart my script when I go to bed. I can just toggle the display off. 🙂

#

Bye for now. I will return later.

slender iron
#

@fallen anvil ideally we wouldn't reinit the flexspi at all and rely on the boot rom to get it going

fallen anvil
#

Hiya. Yes, thats what I've done now, and it's working fine. Not sure why it's being reconfigured in the setup code, which is what I really wanted to ask about

#

There doesn't seem to be any provision for preventing XIP doing a fetch from the Flash while its being reconfigured, which isn't a good thing, if my understanding is correct.

slender iron
#

ya, that is my understanding too

#

I believe those flash functions are placed in ram though

#

so as long as interrupts are off it should be fine

fallen anvil
#

Then I think we'd better clean it up, but I don't want to go blundering through someone elses codebase making changes and submitting patches without some discussion first to make sure I understand.

#

For me, at least, those routines are in flash. Perhaps I banjaxed the linker, I'll check...getting late here now.

slender iron
#

I'm happy to discuss it. I'd love to see another person working on imx

#

I redid the linker stuff

#

to get the TCMs going

fallen anvil
#

I've spent a long time on imxrt, did a fair bit of work bringing NuttX up on it. Would be nice to see this running well.

slender iron
#

nice!

#

I just dipped my toe in

fallen anvil
#

I have a custom board with a fair few perhiperals which can be open sourced if its useful to anyone....CAN, Ethernet, RS485, RS232, RTC, SD Card, ADC, WiFi and a Pi expansion header.

slender iron
#

we'd be happy to have the code for it in circuitpython and having schematics would be nice to have too

fallen anvil
#

you can have the KiCad if it's useful...what goes around comes around

manic glacierBOT
fallen anvil
#

bedtime, will dig at all this tomorrow

slender iron
#

nice!! very cool

#

I'm in seattle and will try to respond to you early tomorrow in case you want to sync up

#

feel free to pr any code changes you have

fallen anvil
#

OK. I'm UK so on GMT at the moment. Will try and sort this out now I have some idea where it's at. I propose to move the flash configuration into the boot_hdr.conf section and away from mainline code, which also serves to solve my other problem that I don't have DQS available on my board....but let's see how tomorrow goes.

slender iron
#

👍

meager fog
#

@half sedge nice! ruby

onyx hinge
#

why would my clue's status LED be changing between red and green while running my code, if I'm not otherwise doing it on purpose?

idle owl
#

@onyx hinge I have nothing but snarky retorts.

onyx hinge
#

huh, I guess if nobody else can help me I'll take that instead

idle owl
#

it's trying to give you a holiday clue

#

or play a tiny game of red light green light

#

and you're not playing along.

onyx hinge
#

sorry

idle owl
#

Don't apologise to me, apologise to the CLUE.

#

@onyx hinge seriously though, what code are you running?

onyx hinge
#

this fft spectrogram code

idle owl
#

oh hmm.

onyx hinge
#

no intentional neopixel use

idle owl
#

complicated and fancy code though, yeah?

#

Is the board resetting?

onyx hinge
#

the ulab code is pretty complicated anyway

#

no, because the display doesn't reset, it keeps on working

idle owl
#

hmm

#

because it sounds like it's acting like a status LED, but that doesn't make sense

lone axle
#

How fast is it changing?

#

and if you introduce intentional delay in your main loop does it affect the speed of the neopixel changing?

onyx hinge
#

it was doing it a few times a minute maybe?
I started heavily revising the code and now it doesn't run 🙂

idle owl
#

feature!

lone axle
#

Ah, definitely been there

#

Yeah, it's like the bob ross "happy little trees" of programming

slender iron
#

@onyx hinge the status led flickers red on disk access

onyx hinge
#

oh maybe linux is doing something behind my back

idle owl
#

hey I was kind of right!

#

@tulip sleet when is the beta going out? or did I miss it.

onyx hinge
idle owl
#

Haven't gotten this one before: You are in safe mode: something unanticipated happened. CircuitPython core code crashed hard. Whoops! Nordic Soft Device failure assertion.

slender iron
#

@onyx hinge if only it was running 90 degrees to that and we actually used the display's scroll

onyx hinge
#

@slender iron I can tell you are already working on displayio 2.0 in your head

slender iron
#

there are always things I want to do

#

I think the next display thing will be supporting 24bit output peripherals and bigger screens

onyx hinge
#

it seems like a real challenge getting good framerates and memory usage for so many different use cases

#

I'm starting to appreciate that fact more the more time I spend with it

slender iron
#

🙂

#

I think the refresh rework was good. it just doesn't do slow very well.

onyx hinge
#

the way the original scrolling style display was coded I think gets a "wow clever", but it does not hit a fast case for the refresh code. It makes a TileGrid where each row of the screen is one tile. So to scroll, you just reassign the tile indices. But of couse behind the screen it becomes necessary to refresh the whole screen.

slender iron
#

the displays are designed to scroll in one direction

#

we just don't take advantage of it

onyx hinge
#

to change a row content you assign to the bitmap, but I think that also causes the whole containing TileGrid to be redrawn, so the fast non-scrolling version uses a bitmap where there's 1 pixel with each value 0..len(palette)-1 and you assign the TileGrid elements to change the display. That's the most performant way I came up with

#

no general bitblt in the LCD controllers yet? 🙁

slender iron
#

the tilegrid should have a fast path for updating a rectangle over the pixels you've changed

onyx hinge
#

when I assign tile grid elements like grid[x,y] = 37

#

I agree, that's what I think I see happening

slender iron
#

that should keep a bounds of the tiles updated

#

there is a fast path for a tilegrid with a single bitmap

onyx hinge
#

what I think the original fft demo was doing was assigning bitmap[x,y]

#

should that be a fast path too, and maybe I'm mistaken in what I thought I was seeing?

slender iron
#

editing the bitmap should only cause the damaged area to update

onyx hinge
#

in the case where the whole TileGrid is 1 tile only? This is 1x120 tiles (WxH) or something

#

I didn't test the 1x1 tiles + assign to bitmap[x,y] case

slender iron
#

right, 1x1 tiles

onyx hinge
#

ok

slender iron
#

its what turtle does

#

either way a scroll will kill you though

onyx hinge
#

yes, that scrolls fast too. Thanks for the tips!

#

that's the more "natural" way to do it?

slender iron
#

¯_(ツ)_/¯

meager fog
#

@onyx hinge yeah not scrolling is what i recommend

#

@onyx hinge do you want to gimme new code

onyx hinge
#

jas!

#

if you really want the slow mode, you can hold down the A button while turning on / resetting

#

probably should just remove the scrolling version entirely

meager fog
#

yeah i dont think its necessary

#

like there's no strong UI need for scrolling

#

you found that its fastest to do with tilemaps instead of assigning bitmap elements?

onyx hinge
#

not exactly

#

there was a combination of using tilemap + assigning bitmap elements that was just as slow as scrolling

#

so we won't use that one

#

scott didn't seem to care which of 2 fast ways of updating a row at a time I used

#

they seem about the same speed. to me, the one which modifies the bitmap makes a bit more sense.

meager fog
#

npnp

onyx hinge
tulip sleet
#

@idle owl I am going to do the beta soon. Was waiting for merge build to finish before I make a release

idle owl
#

@tulip sleet No worries, I dug up the latest on s3 for CLUE and it's working. I loaded Arduino on it and realised I didn't remember which of the firmware.uf2s was the working one for CP.

meager fog
#

@tulip sleet is ulab going in b4 the beta?

#

or are we waiting for dox

tulip sleet
#

waiting for dox

#

we can make another beta soon

meager fog
#

np

#

ill stick to the artifacts

onyx hinge
#

I'll keep everyone updated about how quickly it goes.

tulip sleet
#

we can whet appetites on the Wed shows

onyx hinge
#

upstream has a lot of verbage, I have a feeling what we do will be smaller and more focused; and they have a readthedocs so we can potentially link to it especially if people want more background on things.

#

LaTeX equations about FFTs & such

meager fog
#

@onyx hinge wow nice - works great

#

im going to tweak the range

manic glacierBOT
#
[adafruit/circuitpython] New tag created: 5\.0\.0\-beta\.5
orchid basinBOT
onyx hinge
#

clue was in beta4, or is the list wrong?

tulip sleet
#

right, it was already in beta 4

onyx hinge
#

ok

#

time flies

tulip sleet
#

i forgot about the others. But the beta.4 CLUE was not Rev C (the alpha)

#

(oops typing in wrong window)

meager fog
#

@tidal kiln using the fft ^ with the recorder you can see why its hard to know what note is being played!

#

there's lots of harmonics

onyx hinge
#

while not working on docs tomorrow I'll see if ulab can speed my "1d wave simulation" neopixel demo thingy that already got an FPS boost from pixelbuf...!

#

I think it should be adaptable to use ulab for the heavy math but it'll be a learning experience 🎒

manic glacierBOT
orchid basinBOT
manic glacierBOT
tulip sleet
lone axle
#

@onyx hinge I'm trying out the new Mixer and WaveFile from 5.0.0 beta.5 with this NeoTrellis M4 tone generator https://github.com/FoamyGuy/NeoTrellis-M4-CircuitPython-Music-Fun with the new version I get an extra pop sound when I play on voice 0 of the Mixer. If I alter the code to not use voice 0 but still play the same wave file I don't hear the pop. On beta.4 I had no pops on any voices or any wave files.

#

I am off to bed now but tomorrow I can try to replicate with a more isolated example.

timber mango
#

Beta.5 - got it!

#

One of these weeks, I am going to have to declare a Circuitpython play week and tinker with all these new fangled gizmos. 🙂

#

I am especially interested in any Machine Learning stuff.

#

Unfortunately, I think I may have to replace my Jetson Nano. 😦

#

Hey @lone axle, have you hidden a MIDI sequencer in there anywhere? 😉

onyx hinge
#

@lone axle that's an interesting observation. "weird, shouldn't happen". Go ahead and file an issue if you don't mind

#

and yes if you can create a more isolated example that's sure appreciated

lone axle
#

@onyx hinge will do. Is the proper place for that the main circuitpython repo?

onyx hinge
#

yes, audiocore is right in the main repo

lone axle
#

Ok. Ill work on a self contained example today and get it created. Thank you

#

@timber mango Hehe, no MIDI sequencer yet. This is essentially my first real dive into the audio world, still working with just a few tones atm. MIDI and sequencing are both definitely on the radar though 🙂

lone sandalBOT
manic glacierBOT
manic glacierBOT
orchid basinBOT
orchid basinBOT
onyx hinge
#

hum ulab will have some bug work to do too unless this is a deliberate difference ```>>> len(numpy.linspace(-10, 10, 201))
201

len(ulab.linspace(-10, 10, 201))
50

#
201
``` requires num= to be a named argment I guess
manic glacierBOT
onyx hinge
#
>>> ulab.dot(ulab.zeros(3), 0)
Segmentation fault
orchid basinBOT
idle owl
#

@tidal kiln FORGOT TO CALL SHOW() AGAIN. 🤦

tidal kiln
#

careful. python is case sensitive. 🙂

idle owl
#

(╯°□°)╯︵ ┻━┻

tidal kiln
#

table.auto_flip = True

solar whale
#

table.show()

manic glacierBOT
#

@hierophect no need to be sorry, in my opinion. Its a largely undocumented step, and not easily visible. Could probably be added to the "How to add a new board" learn guide.

Adding the port's folder name to the SUPPORTED_PORTS list is the starting point. Then I would build the docs and check that everything is correct. If not, the Note above is probably related to the failure point. I haven't been following the STM code-base that closely, so I'm not immediately aware of any idiosyncras...

tidal kiln
slender iron
#

@tulip sleet thanks for releasing beta.5!

manic glacierBOT
#

@tannewt thanks for these - I'll get started on them later today.

For now I am stuck on what I think is an internals difference between MicroPython and CircuitPython. I wonder if you have any ideas on what might be going on.

I'm using this reduced module for testing, which makes a class EVEL with one method, "flush". The problem is that when EVEL is subclassed, the "self" that flush receives is not an EVEL.
Demo case:

from eveL import EVEL
    
print('works fine: EVEL')
    
...
tidal kiln
#

@onyx hinge fft and waterfall demo are awesome!

slender iron
manic glacierBOT
onyx hinge
#

@tidal kiln 👍

timber mango
#

Apropos of nothing; I recently had to manually set a TIM3 interrupt on the stm32f407 and found out that the APB1 clock is 42 MHz except when the TIM3 prescaler is not 1, then it's 84 MHz.... Had me searching for a while. (Same for every timer on apb1.)

raven canopy
#

@slender iron for the calls to the API, yes. its the access_token query string that is now deprecated. it needs to be changed to use the HTTP Authorization header. it lies in the github_requests.py function, from when i looked last night when Kattni pointed it out to me. i plan on working it here in a few; i'm playing hookey today. 😄

manic glacierBOT
slender iron
#

@raven canopy cool thanks! go back to hookey 🙂

raven canopy
#

hookey days are spent writing code! usually. 😉

manic glacierBOT
ionic elk
#

@timber mango that sounds like the item documented in the PWMOut.c file in the ST port:

// If the APB prescaler is 1, then the timer clock is equal to its respective
// APB clock.  Otherwise (APB prescaler > 1) the timer clock is twice its
// respective APB clock.  See DM00031020 Rev 4, page 115.
#

But it sounds like you're talking about the Timer prescaler, which is confusing?

timber mango
#

@ionic elk Ah ok, nice. Yeah i found it in the reference manual.

#

Oh! Errrr, yeah timer prescaler i thought.

ionic elk
#

I try to document weird stuff like this in the code itself! Or carry it over in cases where Micropython made note of it, as in this case

#

So it's probably a good idea to go check out the module c file first, before diving too deep. There might be an explanation right there in the code.

#

ST has LOTS of weird little cases like this.

timber mango
#

Cheers & good luck

manic glacierBOT
#

In fact I can demonstrate the same problem the existing socket.socket class - here:

Adafruit CircuitPython 5.0.0-beta.4-130-g8347f2b5c-dirty on 2020-02-05; Adafruit Metro M4 Express with samd51j19
>>> 
>>> import socket
>>> u = socket.socket()
>>> u.settimeout(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 128] ENOTCONN
>>> 
>>> 
>>> 
>>> class Bar(socket.socket):
...     pass
...     
...     
... 
>>> v = Bar()
>>> v.se...
onyx hinge
#

hmmm it looks like the way ulab was configured it is using double precision. Should probably NOT do that

manic glacierBOT
#

Sat down with a serial sniffer for a while and found Cura is doing a bit of hyper-specific handshaking when it connects to a device. One of the packets it sends is "IRP_MJ_DEVICECONTROL: IOCTL_SERIAL_SET_TIMEOUTS" which contained "00 00 00 00 00 00 00 00 e8 03 00 00 00 00 00 00 80 96 98 00" when this message is played back from a python script I wrote, we get kicked into repl every time.

I suspect that "\x03" in the center of the message is the issue. Cura is sending Ctrl+C as part o...

#

I am using all pins on the ItsyBitsy M4 and would need more...
So I tried to do this:
BTSelect = digitalio.DigitalInOut(microcontroller.pin.PA30)
And was very happy that I can also use PA30 & PA31 (the SWCLK & SWDIO pins on the "other end" of the ItsyBitsy)

But now when I am using them after powering on a runtime error happens on the first boot.
If I the do a reset all works fine!

Is there a way to "Deinit" all pins at startup of a script?
Can I somehow deinit a pin even thou...

slender iron
#

How is this for sensor node code?

"""This is a basic sensor node that uses the internal temperature sensor."""

import adafruit_ble_broadcastnet
import microcontroller
import time

print("This is BroadcastNet sensor:", adafruit_ble_broadcastnet.device_address)

last_temperature = None
while True:
    temp = microcontroller.cpu.temperature
    # Round the temperature to the nearest degree to reduce how often it is
    # broadcast.
    temp = round(temp, 0)
    if temp != last_temperature:
        measurement = adafruit_ble_broadcastnet.AdafruitSensorMeasurement()
        measurement.temperature = temp
        print(measurement)
        adafruit_ble_broadcastnet.broadcast(measurement)
    last_temperature = temp
    time.sleep(10)
ionic elk
#

Is there any way to reset a pin from circuitpython itself? I was typing a reply to that issue and realized that I don't think any of those functions are actually exposed.

lone axle
#

reset a pin like deinit?

ionic elk
#

Can you de-init a pin without it being part of anything?

slender iron
#

all pins should be deinit before the VM runs unless it is used by the supervisor

ionic elk
#

@slender iron the question is whether you can manually remove a pin from never_reset from circuitpython itself

slender iron
#

not from the vm

#

never_reset is for the supervisor only

ionic elk
#

Is that something that's a hazard to add? I've also sometimes wanted that functionality, to manually release a pin when it was claimed by something I didn't want enabled.

slender iron
#

you shouldn't need it

ionic elk
#

The above case is reclaiming a SWD pin, for instance

#

which is added to Never Reset at startup and cannot be released

slender iron
#

protecting SWD is intentional because debugging is much more difficult if it is used

ionic elk
#

this effect would go away on reset, though, no?

slender iron
#

yes but only until the code reclaims it again

ionic elk
#

Well, if you're sure, I'll tell this guy there are no plans to add it

slender iron
#

I can reply too. the better response is pointing them to where its done and suggesting they compile it themselves

ionic elk
#

true

arctic dome
#

Just saw the fft demo based on micro python ulab, how did this get included in circuitpython? Does it need to be compiled with the whole circuitpython src?

slender iron
#

@arctic dome it is compiled into the build

arctic dome
#

@slender iron thanks! I’ll have to update my waterfall code with this faster fft

slender iron
#

I think @onyx hinge already has 🙂

onyx hinge
#

@arctic dome Hi! I was about to step away, but I'd be happy to share my code with you before I go.

#

and thanks for the original version, it was really easy to build on top of

arctic dome
#

Ya thanks!

ionic elk
#

@slender iron I'm not sure where atmel even disables the SWD pins so I guess I've got to defer that one to you

slender iron
#

kk, I'll reply tomorrow when I circle back to email

#

I think it's a function of the pinmux

onyx hinge
#

@arctic dome you are Thomas S. ?

arctic dome
#

Ya

onyx hinge
#

okay, didn't know your Discord handle

arctic dome
#

Same as twitter

onyx hinge
#

It's time to do some cooking but if you mention me I'll be sure to read it. ttyl!

manic glacierBOT
#

The SWD pins are intentionally protected on startup, as debugging is very difficult without them. There isn't really an interface for releasing them either (I'm not sure why they're even available on your first startup). But you could try removing them from the protected list and rebuilding circuitpython. I'm not sure where the list is for Atmel-SAMD but @tannewt should be able to help you out tomorrow.

timber mango
#

@slender iron I would bring last_temperature=temp under the if.

slender iron
#

@timber mango why?

timber mango
#

Only needs updating if different

slender iron
#

👍

timber mango
#

When we are mentioned and we are no here, how do we get the mentions when we come back?

idle owl
#

@timber mango For the most part, you have to scroll back to find it. However, the search function has a mentions: option which means you can search for mentions:geekguy with your full handle, and it should bring up the messages.

timber mango
#

@idle owl Oh, OK, thanks!

slender iron
#

@timber mango ☝️

onyx hinge
#

@timber mango on the desktop client there's an "@" in the upper right corner, clicking that should get you your mentions

idle owl
#

@onyx hinge 🤦

#

TIL.

orchid basinBOT
meager fog
#

@slender iron nice sensor node - could also try kattni's lovely new library, would save ya some init's 🙂

orchid basinBOT
#

Images automagically compressed by Calibre's image-actions

Compression reduced images by 32.6%, saving 4.07 MB

Filename Before After Improvement
assets/images/boards/large/clue_nrf52840_express.jpg 323.71 KB 96.22 KB -70.3%
assets/images/boards/large/feather_bluefruit_sense.jpg 260.22 KB 137.83 KB -47.0%
`assets/images/boards/large/imxrt1010_evk....
#

It is! And it's ok for this PR I think, it's simply optimizing the file sizes (the new heroes are much smaller).

The issue I think is that normally it doesn't run properly as we push forked PR from our own repositories, so it suddenly has a bunch of images to optimize from previous pull requests. I'll look into that, as I'd like it to optimize images on each PR that comes in with new images.

timber mango
#

While working on the electronics for my Little Red Rover, I realized that I have the starting point of other possible projects, including a NEST-type thermostat, and even a master for a home control system.

#

I have not figured out how an IMU could be useful in that though. 😃 😉

#

Will there ever be a Bluetooth module that will work with any Express or other board and Circuitpython?

orchid basinBOT
ionic elk
#

@meager fog @slender iron could we connect on priorities at some point this week? I've got the Espruinos on my list but beyond that it's kind of open - could do QSPI, flash improvements, PulseIO, audio, etc.

meager fog
#

yep how about tomorrow?

ionic elk
#

sure

meager fog
#

ok when scott's around we can figure out a time - afternoon ET is best for me

manic glacierBOT
#

@hathach the _usbd_dev object is empty - where should I poke around to try and find the root cause of that?

p _usbd_dev
$2 = {{connected = 0 '\000', configured = 0 '\000', suspended = 0 '\000', remote_wakeup_en = 0 '\000', remote_wakeup_support = 0 '\000', self_powered = 0 '\000'}, itf2drv = '\377' <repeats 16 times>, 
  ep2drv = {"\377\377", "\377\377", "\377\377", "\377\377", "\377\377", "\377\377", "\377\377", "\377\377"}, ep_status = {{{busy = false, stalled = false}, {busy = f...
#

@hathach the _usbd_dev object is empty - where should I poke around to try and find the root cause of that?

p _usbd_dev
$2 = {{connected = 0 '\000', configured = 0 '\000', suspended = 0 '\000', remote_wakeup_en = 0 '\000', remote_wakeup_support = 0 '\000', self_powered = 0 '\000'}, itf2drv = '\377' <repeats 16 times>, 
  ep2drv = {"\377\377", "\377\377", "\377\377", "\377\377", "\377\377", "\377\377", "\377\377", "\377\377"}, ep_status = {{{busy = false, stalled = false}, {busy = f...
timber mango
#

Drat! An M0 Express does not have enough memory to use the ESP32-WIFI FeatherWing.

meager fog
#

geek no you need an m4 for sure

#

only arduino could use it

half sedge
#

Doc sometimes say "no M0" and sometimes say "M4 or nRF52840". But that was before so many more board were added...

meager fog
timber mango
#

@meager fog Now, I am going to have to solder stacking headers on my other Feather M4.

meager fog
#

For CircuitPython use, a Feather M4 or nRF52840 works best - the M0 series does not have enough RAM in CircuitPython.

#

geek, you could use a doubler

timber mango
#

@meager fog I know. That is why I am only buying M4 boards or later ones now.

manic glacierBOT
split ocean
manic glacierBOT
timber mango
#

Thanks @split ocean!

#

Is there a way to find out how much memory a script and loaded libraries are using?

idle owl
#

@split ocean Yeah Jeff pointed that out too. I was entirely unaware of that. Thanks to you as well.

manic glacierBOT
#

Thank you for the explanation.
I have one more observation:

  1. I can catch the error I am getting in a try: except clause.
  2. If I do in the except part: microprocessor.reboot() I get into a "reboot loop"
  3. If I do in the except part: a supervisor.reload() I can see in the serial console the system constantly reloading...
    So far so good; understood and reproducible.
    But if I break the supervisor.reload() loop, by pressing the "reset" switch on the board the code will work fine.
    No er...
slender iron
#

@split ocean ah, I didn't know about the @!

#

@meager fog @ionic elk I'm around tomorrow except for lunch with a friend 11:45 - 1:30 pacific.

idle owl
#

@gilded cradle Is CircuitPython_Display_Shapes in a usable state? I thought I remembered it being WIP.

gilded cradle
#

As far as I know it is. There's only a few shapes right now and it should be stable, but maybe the WIP idea was because there had been discussion of adding more.

idle owl
#

Fair enough. I need circles. Looks like it has circles.

gilded cradle
#

yep

idle owl
#

Ok right on, thanks. I will probably be pinging you with questions.

gilded cradle
#

🙂

lone axle
#

I used on on an Edge Badge a few months back to make a simple pong implementation. I didn't run into any trouble with it.

idle owl
#

Nice, thanks for the confirmation.

half sedge
#

@idle owl Hi, I just found kattni_debug_i2c.mpy in the bundle, not sure this is "normal".

idle owl
#

@half sedge It's probably not. Means it got added from the wrong submodule.

#

I'll look into it.

ionic elk
#

@slender iron @meager fog 10am or 2pm would work well for me tomorrow, but anytime is fine, really.

idle owl
#

@half sedge Thank you for catching it - it was accidentally included in a new lib, and therefore included in the bundle. Should be resolved in the next couple of days.

manic glacierBOT
slender iron
#

@tulip sleet nrf i2c on clue isn't working for me with a master build

slender iron
#
OSError: [Errno 5] Input/output error```
tulip sleet
#

limor and i noticed flakiness earlier; we are still debugging it;

slender iron
#

kk

slender iron
#

@tulip sleet how can I disable the default scan response? the SD can't do extended advertising with scan response

tulip sleet
#

you mean disable via SD API or in the library?

#

i don't know the answer to either off the bat

slender iron
#

I was thinking the library. I can modify the library so it doesn't do it for extended advertisements

#

ok, got it

tulip sleet
#

ok great

tough flax
timber mango
#

@slender iron I hate that Error 5! I have found that it is often a bogus error and after pressing Ctrl/D to restart enough times the script will start running perfectly.

#

Is there a way, from inside a running script, to find out how much memory it is using?

slender iron
#

if that is on nrf then it sounds like dan is on the trail

#

there is a gc module

#

and it has gc.mem_free()

#

it doesn't account for fragmentation though

timber mango
#

I get that error 5 a lot.

slender iron
#

on nrf?

timber mango
#

No, on a regular Feather M0 or M4.

#

(Express)

manic glacierBOT
slender iron
#

hrm. I haven't seen it there. are some sensors worse than others?

timber mango
#

I get error 5 no matter what I am working with. I just keep restarting the script until it starts running normally. It really annoys me and breaks my flow.

#

Sometimes, I do have to wiggle a sensor though, like the vl53l0x which I get it on a lot.

slender iron
#

hrm, weird

timber mango
#

The vl53l0x is the only sensor I have where error 5 has been valid.

#

Very weird.

#

Now is a good example. I just saved a script to CIRCUITPY as main.py, it restarted, and here comes error 5 right away. 😫 The script will run fine after I restart it enough times.

manic glacierBOT
lone axle
#

the clue library made it super easy to convert gizmo thermometer for use with CLUE. Excited to play with the rest of the sensors.

timber mango
#

@lone axle I so want a couple of the CLUE boards, but I will wait until they are in a full production versions. I see many possibilities!

lone axle
#

I couldn't resist the chance to play with it

timber mango
#

OK, time for me to heat up my soldering station and put some stacking headers on my other Feather M4 Express. I want to play with the ESP32SPI WiFi Featherwing.

#

@lone axle That little CLUE would be hard to resist for tinkering!

manic glacierBOT
#
  • How is this different than struct?

The methods in this module (e.g. _vertex2f) align their arguments on bit boundaries, not the byte boundaries used by struct. Also these methods append the binary commands to an internal buffer, avoiding the overhead of constructing an ephemeral bytes object for the binary command.

  • It'd be great to separate the implementation of these functions from the definition and arg parsing so that they are better documented.

So taking vertex2f, w...

lone axle
#

@onyx hinge after poking around a bit more with a more isolated example I'm less sure about the nature of the issue I mentioned yesterday being as simple as voice 0 vs voice 1 on beta4 vs beta5. I'll do some more testing on some other devices and create an issue if needed when I understand it better.

timber mango
#

Well, bummer, it appears that I did damage my AirLift FeatherWing when I soldered the stacking headers on to it. Oh well, I had to try.

#

I really hate soldering headers on to Feather and FeatherWing boards! I may have to stop buying feathers because I keep messing them up and can not afford to replace them. 😫

tulip sleet
#

@timber mango if you post good pictures of your soldering (especially the bottom of the board if you're using stacking headers) on the forum, our experienced support folks can make suggestions about your soldering and whether it might be recoverable.

#

also describe your soldering setup

timber mango
#

@tulip sleet I do not think suggestions would help. I know how to solder, but my eyes just can not handle the close together pins on the stacking headers. I do fine when soldering to breakout boards.

tulip sleet
timber mango
#

I do not have any magnifier. I wish I did. I am sure that would help a LOT once I got used to working with it and soldering.

tulip sleet
#

i have to use it when plugging in breadboard jumpers too.

#

A cheap pair of strong reading glasses (like +2.50) would work too.

#

there are visor like that that are less expensive. I am old enough that I have presbyopia, and need several different strengths of reading glasses. Further than 6 feet away or so I'm better than 20/20, but not close up.

timber mango
#

That magnifier really looks nice, and it would probably work with my glasses. I will put one on my want list. Yeah, plugging in breadboard jumpers gets me frustrated too sometimes.

tulip sleet
#

our local job lots store has reading glasses for like $3.99.

timber mango
#

That is cheap!

#

I already wear glasses though.

tulip sleet
#

I wear the visor over my reading glasses.

#

I have doubled up reading glasses in an emergency. Anyway, give yourself a present for these. They will help a lot for many things (e.g. removing splinters, sewing, reading fine print).

timber mango
#

Cool. That is the way I want to go. I prefer the hands free approach.

tulip sleet
#

i have a desk swing lamp with a big lens and surrounding light, but I prefer the visor, because it moves with me.

timber mango
#

The good news is that it appears I did NOT damage the Feather M4 Express I soldered tonight.

#

That is why I would prefer the visor, plus hands free.

#

I still wish Adafruit offered ALL Feather boards and Wings with headers already soldered on, but that would probably be a bit of a nightmare.

tulip sleet
wind trellis
#
 #if (MODULE_ULAB_ENABLED)```
#

Where am I supposed to define that?

#

I've tried mpconfigport.h and also boards\pyportal\mpconfigboard.h but neither of them work for me.

tulip sleet
#

@wind trellis are you trying to build the PR?

wind trellis
#

Trying to build from the circuitpython-ulab repository. Is that the PR?

#

Is there an issue with better instructions in it?

timber mango
#

I saw that on github.

tulip sleet
#

no, that is just the library. It is a submodule used inside adafruit/circuitpython

#

but it's still in process; he's improving the documentation. We can probably merge it in a day or two.

#

@timber mango we added a placeholder

timber mango
#

what do you mean?

tulip sleet
#

still awaiting info from the board designer

timber mango
#

👍

wind trellis
#

OK, thanks @tulip sleet. I'll try cloning that.

tulip sleet
#

I just mean we added it so it can be downloaded, but we are awaiting images, feature lists, etc.

manic glacierBOT
#

I'm doing a project with the W25Q80DV external flash, and it looks like circuitpython only supports the W25Q80DL version. It looks like they're nearly identical, except the DV uses a flash device type of 0x40 instead of 0x60. I updated the code so I could use it for my project. I was wondering if it would be worth making a PR to integrate these changes, or if there was a reason only the W25Q80DL is supported.

wind trellis
#

Yay, success cloning and building ulab. Thanks again @tulip sleet. It's running now on my Pyportal and I'm logging the deltas I see vs real Numpy. Is there a preferred place for collecting them?

slender iron
#

Thanks @tulip sleet I’ll chime in tomorrow. I think jimmo and I have the same sensibilities since we’re both ex google.

manic glacierBOT
manic glacierBOT
onyx hinge
#

@wind trellis you can attach them to our PR to add ulab. But I'm not sure how many we will address over time.

#

@wind trellis if you find places where ulab-micropython and numpy match, but ulab-circuitpython differs definitely report that to us

idle owl
#

@lone axle When you put in a PR, since you have write access to the library repos, please request a review from CircuitPythonLibrarians using the review request link on the right side of the page. That way it notifies the review team. Otherwise, it can get missed. Thanks!

#

@onyx hinge How solid is your displayio

onyx hinge
#

Nothing expert. Want me to take a look at something anyway? I do have a meeting to leave for in 10 minute though

idle owl
#

It's a quick question that you may or may not have an answer to

#

Do you have any idea how to decide how big to make the group max_size?

#

I make it a number, sometimes it fails group full so I increase it arbitrarily, but I have no idea how to really determine that

onyx hinge
#

hmmm

#

if you can exactly count the number of items you'll insert, then you could pick that number

#

sounds like that's not feasible

idle owl
#

I don't know what items means though. Because I don't think it's related to the number of things you append to it

onyx hinge
#

(insert? add? append? whatever we called that method)

#

what's the traceback look like when you get the message?

idle owl
#

I haven't gotten it in a while, so I'm not sure

#

let me decrease it and get a traceback

#

Not exactly useful: code.py output: Traceback (most recent call last): File "code.py", line 17, in <module> RuntimeError: Group full

onyx hinge
#

is it your "main group", or is it happening say when you are updating a label text? those are also size limited and might give the same message when you send a label that is too long (max_glyphs of Label) .. but no, that's not it

idle owl
#

fails on the third append, with a group max_size of 2.

onyx hinge
#

that at least makes sense

idle owl
#

This is main group, but I'm appending shapes this time