#circuitpython-dev

1 messages · Page 225 of 1

meager turret
#

It works in the endless loop, but later, I don't think I could turn it off?

solar whale
#

if you have otehr stuff goin on the it will stay lit if set onece outsisde the loop, as long as there is a loop and code.py does not exit.

#

it will turn off when code.py exits.

meager turret
#

I'll try the time.sleep and see if that makes a difference. I thought i could just set it high and leave.

#

Thanks

solar whale
meager turret
#

Thanks! This is making more sense now. I put time.sleep(10) and it stayed lit for 10 seconds and then the program exited.

solar whale
#

actaull, I think the status_led (line 206) is the neopixel, but the board reset is probably what truns off the D13 LED.

#

basically you have a"clean start" after code.py exits.

meager turret
#

That's awesome. I'd struggle for awhile before I saw the Discord channel on Adafruit. Thanks so much.

solar whale
#

you are welcome! We are here to help any time.

slender iron
#

@idle owl want to run tomorrow's meeting?

idle owl
#

@slender iron Oh right, I think we had planned on that. Can you send me a link to a notes template though? I couldn't get the Google doc headers to work last time.

slender iron
#

did you have trouble after copying the stats?

idle owl
#

I don't remember now.

slender iron
#

I think the line endings in it are wrong

idle owl
#

Ah

slender iron
#

I don't have trouble until I copy that it

idle owl
#

Well we end up changing it up for GitHub anyway. I guess it doesn't matter.

#

Right on, good to know

#

@slender iron Do you want to take notes?

slender iron
#

ya, I can help

idle owl
#

I ended up doing both for the meeting you weren't here, so it's doable

slender iron
#

I'll be there

#

you type faster than I do

idle owl
#

😃

slender iron
#

😃

idle owl
#

Feel free to remind me about time codes though. We'll see if it's sunk in yet 😄

slender iron
#

haha, ok. still want me to start the doc?

meager fog
#

@umbral dagger elu! we've had some reqs for "how to burn the bootloader" onto a bricked M0 or M4 feather/metro/itsy/gemma/trinket

#

would you be interested in writing a guide?

#

i think easiest way is with jlink + arduino IDE

#

but command line would also be helpful perhaps

idle owl
#

@slender iron Sure if you could, then I can have your template to start with. And I'll have it for next time.

slender iron
#

I don't have a template but I can create one

idle owl
#

Oh. I can create one then. Don't worry about it. I was thinking you had one.

slender iron
#

nope, 😃

idle owl
#

Fair enough 😄

slender iron
#

kk, thanks! I'm off to run since the sun is out

idle owl
#

Have fun!

slender iron
#

thanks!

solar basin
river quest
#
Adafruit Industries - Makers, hackers, artists, designers and engineers!

Thanks to some database query’in by Raspberry Pi Community Manager Ben Nuttall, we’ve got some nifty stats to share about Adafruit library usage on Raspberry Pi! Piwheels&#160…

solar basin
#

I also made an Angular app to convert images to the binary format that the ILI9341 expects (16 bit color; big endian) which has made rendering a bit faster, but it's still not as fast as I'd like (reading from SD card in chunks and then writing those chunks to the display in turn adds some unavoidable overhead)

#

I'll post more about that after I get a few things cleaned up on it

ruby atlas
solar basin
#

Does anyone have a better way to use the stmpe610 than what I've done? It's pretty clunky the way I've done it.

main meteor
#

I wrote an app once that pulled images off an SD card and displayed them, but it was tough to get smooth animation. I ended using the on-chip flash for my images, which was much faster.

solar basin
#

The 2MB flash?

manic glacierBOT
main meteor
#

Yes. If your images will fit there along with the code (mine did), it's an option.

#

Or the program flash on the CPU (which is what I used)

pastel panther
#

@solar basin That sounds awesome! I would love to check it out when you have something you're willing to share

solar basin
#

@pastel panther I'll share it in a day or two

pastel panther
#

@solar basin have you done any work with html5 canvas or other similar things?

#

( i think canvas is html5, maybe not)

solar basin
#

Yeah, that's actually what I'm using. I load the images using the browser, draw them to canvas and then I can read the image from canvas in 32 bit color

pastel panther
#

nice! Mind if I hit you with a DM?

solar basin
#

Not at all

ruby atlas
#

hah using canvas is awesome. i'd probably have use Python and PIL.

manic glacierBOT
solar basin
#

I'm a web developer in my day job so I am more comfortable in JS, I've only been writing Python for a little over a week, and only CircuitPython lol

idle owl
#

@solar basin I learned Python through CircuitPython! 😃

solar basin
#

It's certainly a lot easier than writing c/c++ for hardware lol

ruby atlas
#

That is true!

#

Are you a C/C++ hardware coder guy by day?

#

(I'm a polyglot, dealing with many languages most days, but preferring Python)

solar basin
#

I too am a polyglot. I use JS/NodeJS at work, C/C++ for most of my hardware project (until now), I'm also super interested Rust for hardware

exotic pumice
#

ooh fun

#

I'm one of the people getting rust running on atsamd

solar basin
#

Ooo in the Embedded Working Group?

exotic pumice
#

sorta, not contributing to the working group directly, we have our own github organization for samd

solar basin
#

Does that work on the atsamd51?

exotic pumice
#

I'm working on that

#

not yet

solar basin
#

Now that I have the M4 Express, it'd be fun to play with Rust on it

exotic pumice
#

I have a blinky working on samd51, but not uart/spi/i2c afaik so some things still need work

#

but the 21 is plenty competent

#

it's not like rust is so memory hungry or something you need the 51

solar basin
#

@exotic pumice I don't have a 21 lol

exotic pumice
#

ok

#

maybe you can help me figure out what's wrong with the 51 lol

#

I think it's to do with peripheral clocks but it's hard to tell

#

do you have metro m4 express or feather or what?

solar basin
#

Feather M4 Express

exotic pumice
#

ok, that's good, once we get this pr in I can add a board def for that and get you to test it

#

if you'd be willing

manic glacierBOT
exotic pumice
solar basin
#

Done

manic glacierBOT
meager turret
#

Does anybody know of a straightforward way of mixing RGB colors in CircuitPython for a "dumb" RGB strip led? I found FancyLED, but I think it's just for the NeoPixel.

pastel panther
#

@meager turret You can probably pull the individual RGB values out of the FancyLED magic and feed them to the individual LEDs

#

It doesn't directly drive the addressable leds, it just generates color values so the end target should be flexible

meager turret
#

I'm trying to usePWM and the duty cycle to mix the colors. Do you mean to scale the duty cycle consistent with the value of 255 for each color?

pastel panther
#

Yes

meager turret
#

I'll give it a go. I was googling for some sort of library, but I don't think it exists. Thanks!

pastel panther
#

If you roll your own class to handle the color setting for the individual LEDs, it would be cool to share it here if you're willing

meager turret
#

That's a bit beyond my skill level, but it'll be my stretch goal 😃

pastel panther
#

Don't short change yourself. I think you can probably do it 😉

meager turret
#

Thanks for the encouragement. If I get it, I'll absolutely share it.

cinder dune
#

So I have yet another question

#

I'm using a for loop to make a fade animation with my strip of neopixels

#

It looks something like this:

#
 for i in range(251):
        pixels[0:150] = [(0,0,i)] * 150
        pixels.show()
    for i in reversed(list(range(251))):
        pixels[0:150] = [(0,0,i)] * 150
        pixels.show()
#

Now I want to be able to make every other pixel be a different color

#

Than the pixel before it

#

Oh wait I think I figured it out!

raven canopy
#

@cinder dune adding a step to the slice? did it work? (not sure if stepping is implemented)

cinder dune
#

I did this pixels[1::2] = [(0,0,i)] * 75 @raven canopy

#

Not sure if that is what stepping is or not

raven canopy
#

yep. that is stepping. [start:end:step]

cinder dune
#

Oh!

#

Thank you for explaining that!

#

Now I can do all sorts of cool patterns!

raven canopy
#

no worries. its basically the same thing that range will do: for i in range(0, 10, 10) is the same as for i in range(1).

cinder dune
#

Does range(0,10,10) work for you?

#

Ah I'm silly lol

#

Forgot my :

raven canopy
#
Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> for i in range(0,10,10):
    print(i)

    
0
>>> 
#

oh. hehe. happens. 😄

cinder dune
#

I really am enjoying my neopixels, I'm trying to get it where I can get a nice rainbow effect on each indvidual led

#

All at the same time

pastel panther
#

@cinder dune It can be fun and educational to code something like that yourself, however if you'd like a canned solution, the FancyLED library does fades very well

main meteor
#

It's easy enough to have all the LEDs progress through a rainbow in synchrony. It's a little trickier to have them out of phase, so the rainbow appears to move down the road, but not that hard.

idle owl
manic glacierBOT
main meteor
manic glacierBOT
#

having to seek thru a 20-50K file one-per-char takes 1-2 seconds per glyph. if your first string has a bunch of chars it takes 20-30 seconds. good news is it works, but makes workflow sluggish. if we're going to keep it in python, lets have a way cache/load the whole font into memory upon request. e.g. font = bitmap_font.load_font("fonts/Checkbook-25.bdf", load_all=True)

raven canopy
#

note to self: when subtracting unsigned integers, and checking if the result is greater than n...make sure you place the numbers on the correct side of the operator. or, remain puzzled... 😄

main meteor
#

I've made that gaffe too.

raven canopy
#

i started looking into my debug output, thinking that the number resolution was getting reduced. then that moment came: "i'm subtracting a larger number, from a smaller number, all without a sign bit. aren't i?". 🤦

main meteor
#

That sounds all too familiar! You aren't the only one who's done that!

raven canopy
#

woohoo! i am not alone! hehe

meager fog
#

@solar whale heya since you have it set up could you make me a custom esp32 firmware zip

#

with RTS on IO33

#

(and RX/TX on the RXD0 and TXD0 pads)

slender iron
#

@main meteor @raven canopy its best done when looping

manic glacierBOT
ruby atlas
#

oh fun, fighting with submodules

raven canopy
#

bleh. i don't look forward to fixing the conflicts if i ever get FrequencyIn finished. i think i'm still pre-tinyusb. 😬

ruby atlas
#

I gave up because I couldn't get the build to go anymore thanks to submodules.

#

I did make the merge succeed, with effort, but then just copied everything over to a clean repo

#

And then force pushed that to my fork

raven canopy
#

hehe. manual copy files, hard reset, glue everything back in. 😄

ruby atlas
#

yep.

#

much easier w/o submodules

#

but add submodules in and... ... not worth the time.

raven canopy
#

well, mine requires a submodule update of its own. adds that extra layer of fun.

raven canopy
#

which one(s) are you getting stuck on?.... oh, n/m. looks like you got it. 🎉

ruby atlas
#

I'm likely going to need submodule updates, but I've got like 5 different ideas about how we might migrate to pixelbuf.

#

oh, i wasn't stuck.

#

I gave up and did it the "easy" way.

#

I've been doing git for ... uh ... since 2006.

raven canopy
#

its a magical place, that git.

ruby atlas
#

better than svn, cvs, rcs, hg.

raven canopy
#

my only experience is with git. can't imagine others having a higher barrier to entry... 😬

ruby atlas
#

much higher!

#

git is easy.

#

it handles sooo many cases automagically

raven canopy
#

then git is where i'll stay. well, assuming that is a logical line to draw in the sand.

manic glacierBOT
manic glacierBOT
manic glacierBOT
solar whale
#

@meager fog here is the esp32-at build with RTS on gpio33 - also attaching the flash command I used to load it via USB. I loaded it to an ESPRESSIF ESP32 board. After loading, I can talk to it via the USB port so it looks like it is using RX0,TX0 OK but I am not able to get it to work with a feather_m4_express. Not sure why. How are you planning to use this? Let me know if you need something different.

solar whale
#

@meager fog FYI -- I have never been able to get the ESPRESSIF ESP32 board to work with my featherm4_express via TX0/RX0 -- it works if I lost the standard AT firmware and use GPIO16/17.

manic glacierBOT
solar whale
#

@meager fog do I have to remove the R17/R18 (zero ohm resistors) to TXD0/RXD0 on the ESPressif board to be able to ust the TX/RX GPIO pins? From the schematic, they are tied to the USB bridge via R17/R18. https://dl.espressif.com/dl/schematics/esp32_devkitc_v4-sch-20180607a.pdf I think this explains why I have not been able to get this to work via TX/RX. If I remove them, then USB wont work, but I should be able to use miniesptool, correct? Looks like you cannot have the USB connected via R17/R18 and use TX/RX

manic glacierBOT
modern wing
#

Would it be allright if I joined today's call just as a fly on the wall? I'm working on a few things here so I can't chat, but I'd like to hear what's new....

raven canopy
#

@modern wing of course it is! Just mention you're lurking at the start..

modern wing
#

@raven canopy Awesome 😃 Is it at 11 eastern today, or did I get that mixed up?

solar whale
#

@modern wing The CP weekly is at 2PM EST 11 PST

modern wing
#

Thank you @solar whale 😃 Usually I'm a day late and a dollar short....I'm way early this time.

manic glacierBOT
#

isnt the audio var in makeMixer function has no references to it, its gc'd after the call is complete - so they'd have to make that audio object global (defined outside function)?

Then this code should work with and without the class defined, right?

import board
import audioio

audio = audioio.AudioOut(board.A1, right_channel=board.A0)
mixer = audioio.Mixer(voice_count=1,
                      sample_rate=22050,
                      channel_count=2,
                  ...
dark prism
#

hey that's me ^ 😅

solar basin
#

Using adafruit_stmpe610, what is the best way to detect a single "click"? I've tried reading the first touch point from the buffer and "draining" the rest, but it's kind of flakey that way. Some "clicks" don't tend to start out in the boundaries of "buttons" but I feel like the "average" of the touch points of a "click" might be a more accurate representation of "where the click happened." Thoughts? Examples (other than the two in the library)? Solutions?

tidal kiln
#

@slender iron @idle owl can't make meeting today. nothing much to report on the CP front. hugs added to notes. cheers.

idle owl
#

@tidal kiln cheers! Thanks for letting us know!

pastel panther
idle owl
#

@slender iron I haven't proofed it yet, and I will blog it up sometime today, but here is my post: https://docs.google.com/document/d/1mEuxN9sHbZF4jKvBpvjcfztR1SgtD8ANqxvnDMHqoNw/edit?usp=sharing

slender iron
#

yay! #muchexcite

#

is that the meme? 😛

idle owl
#

No idea, lol. I'm kind of out of the meme loop.

slender iron
#

😃

manic glacierBOT
idle owl
#

<@&356864093652516868> and anyone else interested, CircuitPython weekly meeting in a few minutes!

modern wing
#

Howdy everyone -- I'll be just lurking during the call if that's allright 😃

idle owl
#

@modern wing That's perfect 😃

fluid helm
#

Text only for me today!

idle owl
#

We're still in another meeting - so we're going to be a few minutes late.

fluid helm
#

Happy new year everyone, not been on here since the start of Jan.

marble hornet
#

I'm lurking

gilded cradle
#

I'm lurking too

pastel panther
#

@idle owl I can't make it today; if someone can read my notes, that would be great

fluid helm
#

I know we have micropython on the micro:bit but will CircuitPython ever come to the micro:bit? there may be no need but was just wondering

tulip sleet
#

@tall yacht it would require incredible trimming to make it fit

fluid helm
#

Yeah, i've noticed that a lot of add ons skip micropython due to the size limits. it's hard to fit their libraries on

raven canopy
#

Had a day_job call. Should be back in a few...

slender iron
#

anyone lurking but haven't let us know?

fluid helm
#

i'll be able to do voice now btw, got a working mic

slender iron
#

kk

pastel panther
fluid helm
#

Yay for BLE!

gilded cradle
#

I'm lurking

raven canopy
#

back

slender iron
#

@meager fog hug reports and status updates we can read later?

raven canopy
#
  • @Takaklas for, I think, their first contribution with a PR to the LSM303 library.
  • Just a group hug beyond that!
meager fog
#

hiya current status is more wifi and displayio testing - grand central is shipping

#

hugz to @idle owl for helping with getting guide done!

#

my audio's not working so can't listen/speak

slender iron
#

¯_(ツ)_/¯

#

👍

#

harvest is a good word

prime flower
#

(was talkin to ladyada - no hugz this week)

slender iron
#

💯

#

sounds like a spacebar

stuck elbow
#

thanks to @tulip sleet and @solar whale for help with nrf52 feathers and to @meager fog and @slender iron for work on displayio

errant grail
#

@idle owl 🦅 !

marble hornet
#

I'm back

#

Can speek

raven canopy
#

Last Week:

  • Adabot:
    • Added Blinka to PyPi download stats. How did I miss that?
    • Added total PyPi download stats, and re-fotmatted to a Markdown table.
    • Catgeorized "needs release, new commits" by time elapsed since the oldest-new-commit.
  • FrequencyIn:
    • Changed the event action from RETRIGGER to COUNT. This helps fold @notro's counter in. Working out timing relations with the reference and capture TCs (overflow, resolution, etc).

This Week:

  • FrequencyIn
prime flower
#

Last Week:

  • Not much circuitpython, but some python goin' on, workin on other adafruit things.
  • Updated the #help-with-wippersnapper-and-adafruitio Python Client to include the Dark Sky Weather API
    integration (for IO Plus users!)..API HTTP and MQTT examples added
  • Adafruit IO Project with the Ruiz Bros that'll go live this week :)
    This Week:
  • going back to working on LoRa & circuitpython things
marble hornet
#

Congrats!

stuck elbow
#

no progress on the TextMode library, maybe I can do something this week, started work on a 2xanalog joystick shield for controlling robots

manic glacierBOT
slender iron
stuck elbow
#

@slender iron not yet, I saw some issues reported on github, but didn't dig any deeper yet

slender iron
#

kk

raven canopy
#

day_job is disruptive today. gotta run. if I can't make it back, have a great day everyone!

manic glacierBOT
slender iron
#

you too @raven canopy

fluid helm
#

Thanks!

marble hornet
#

me

#

when i;m done with my school work today

prime flower
#

I'll write one this afternoon @slender iron

solar whale
#

will next weeks meeting be on Monday?

gusty kiln
#

(cool, i'll give it a shot. have a few paragraphs worth of thoughts anyhow.)

marble hornet
#

where can we see what people have written before?

tulip sleet
marble hornet
#

thanks!

tulip sleet
#

links in there

slender iron
#

👋

meager fog
#

back

prime flower
#

👋

fluid helm
marble hornet
#

thanks !

modern wing
#

thank you 😃

gilded cradle
#

Thanks

meager fog
#

@solar whale heya yeah - this is for a 'hardwired' board like the argon

solar whale
#

@meager fog OK -- I hope it works - let me know if not...

meager fog
#

oh wait you posted it?

#

hold on lol its been a Monday

fluid helm
#

Is there any major core stuff coming up in 4.0 that's wortha adding to edublocks? @slender iron

meager fog
#

@solar whale got it

#

i might ask some Q's later

#

like i can set it upmyself

solar whale
#

Np -- its real easy to set up

manic glacierBOT
#
[adafruit/circuitpython] New branch created: tannewt\-patch\-5
tulip sleet
meager fog
#

@solar whale @ruby atlas id like to get into socket implementation and then requests for URL fetching

#

so you can have it more like CPython

#

@slender iron i have a question on how to do that

#

because there's import weirdness i think

marble hornet
#

How do I update my fork to match the master cp repo?

solar whale
#
git pull
git pull --rebase upstream master 
git push --force-with-lease origin master```
meager fog
#

thats my favorite link

marble hornet
#

thnx

#

trying....

#
fatal: 'upstream' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Jonahs-MacBook-Pro:circuitpython jonahym$ ```
tulip sleet
#

you need to add another remote, usually named either upstream or adafruit

#

git remote add adafruit https://github.com/adafruit/circuitpython

#

scott recommends using adafruit rather than upstream, since you might have multiple remotes. I had to break my muscle memory, but have switched over.

marble hornet
#

awesome thanks! and noted! this remote is new to me

#

(resists making pirkey / remote pun)

#

is blob the non-sun mirosystems bwos?

#

in:

#

and being serious:

#

what is the sh module? in the build_too_info.py tool

slender iron
#

it makes it easy to run shell commands

solar basin
#

@slender iron is there some way I can be of help in displayio development? I'm new to Python and the C code behind it isn't immediately obvious, but I'd be willing to learn if I can be of help there. I also have a Feather M4 Express with a 2.4" TFT FeatherWing so I could do some testing if that is helpful.

marble hornet
#
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
make: *** No rule to make target `peripherals/samd/clocks.c', needed by `build-metro_m4_express/genhdr/qstr.i.last'.  Stop.
Jonahs-MacBook-Pro:atmel-samd jonahym$ ```
#

just cloned and submoduleded

solar whale
#

@marble hornet try git submodule sync then redo the git submodule update --init --recursive

slender iron
#

@solar basin that would be cool! its a bit tricky to get going but help on the python libs would be welcome

meager fog
#

@gilded cradle did i see you wanted to work on an RA8875 library 😃

umbral dagger
#

@meager fog Re: burning a bootloader guide. Not something I've had much need to do, so I'm sure that there are some others in here more qualified to write it.

meager fog
#

npnp

#

just trying to think of stuff you may be interested in

#

do you like floppy drives?

umbral dagger
#

You want a CP controlled floppy drive synthesizer?

main meteor
#

Who doesn't? I seriously considered learning how to program FPGAs to run a bunch of floppy drives.

umbral dagger
#

I do kind of miss that grinding noise ... SSD is just not the same acoustically.

marble hornet
#

Thanks

#

@solar whale

meager fog
#

@umbral dagger who doesnt?

marble hornet
#

Although I tried it

meager fog
#

a grand central could control many 😃

magic wing
#

Am I wrong for wishing we could have a C64 SID on a chip?

meager fog
#

and there's MIDI

magic wing
#

floppy drive synths would be cool, though

marble hornet
magic wing
#

can you simplify it down to just the steppers or do you really need the whole floppy?

pastel panther
#

@magic wing I hope you're OK with two SIDs on one chip

magic wing
#

@pastel panther oh the horror

pastel panther
#

I already sent an email to ask if they're willing to open source it but no dice so far

magic wing
#

Yeah, that would be a cool breakout board -- FPGASID + amp + connectors for speakers

pastel panther
#

To be fair they never responded so for all I know they're working on a push to github as we speak, but I doubt it. They have a lot of work put into it

manic glacierBOT
solar whale
#

@marble hornet did you do make BOARD=metro_m4_express clean before final make?

#

I just ran make BOARD=metro_m4_express V=2 and it completed normally.

tough flax
#

Just got a big batch of WS2801 LED strands donated for the Magic Wheelchair. Before I go forward with the Raspberry Pi Python library, has anyone gotten these working using CircuitPython on M0/M4?

#

I know they're SPI based so it should be possible, just looking for the shortest path

solar whale
#

but wow - that V=2 produces a lot of output !!!

marble hornet
#

okay, i just re-cloned

#

and i am trying to make build_release_files.py

#

**run

#

and i am getting this error

meager fog
marble hornet
#
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
usage: mpy-tool.py [-h] [-d] [-f] [-q QSTR_HEADER]
                   [-mlongint-impl {none,longlong,mpz}] [-mmpz-dig-size N]
                   files [files ...]
mpy-tool.py: error: the following arguments are required: files
make: *** [build-pca10059/frozen_mpy.c] Error 2
make: *** Deleting file `build-pca10059/frozen_mpy.c'

Cannot find file ../ports/nrf/build-pca10059/firmware.uf2
#

for every single board and language

#

i have not edited the script

gilded cradle
#

@meager fog Possibly. I want to do some CP work, but have been slowly familiarizing myself with the codebase and the guides for working on it. Just came across the one for creating libraries and was reading it.

meager fog
#

@gilded cradle i'd love to help you with it if you'd like to try it out!

#

its a lot easier to write drivers in circuitpy than arduino, i think

#

and i dont know when i'd get to the RA8875 driver on my ow

#

but with an M4 - could be fun to have a big display 😃

solar whale
#

@marble hornet is this a new clone -- you may have to make -C mpy-cross not sure

tulip sleet
#

make -C ../../mpy-cross

#

gmta

gilded cradle
#

Thanks. I will probably take a stab at it. I have all the datasheets for the RA8875 already, but feel I need to do some prerequisite reading first. 😃

#

Also I have a Feather M4 and a nice 5" display.

marble hornet
#

trying

meager fog
#

@gilded cradle sounds good, you can ping me on github when you need eyez 👀

marble hornet
#

okay, it is running

gilded cradle
#

For developing CP libraries, should they be developed against 4.0A5 or the latest stable?

idle owl
#

@gilded cradle You may run into bugs with the alpha release, but it'll have all the newest features we're working on. You'll eventually want to test it with both, but I think it's probably up to you. Simply be aware that if you run into an issue while testing with the alpha release, it might not be your library. At that point you can swap to the stable release and test it pretty easily. I've been doing my dev with the alpha.

gilded cradle
#

Thanks @idle owl

manic glacierBOT
tough flax
#

@meager fog - thanks for the pointer!

exotic pumice
#

OwO I missed the C64 discussion

#

I've been thinking it would be cool to make a sid-based ipod

ruby atlas
#

@meager fog that would be awesome (socket, requests). Stupid busy day at work today. Just reading discord now.

pastel panther
#

<@&356864093652516868> I assume retroactively changing the tag/version for a prior release of a library is a bad idea? the 34x releases are a bit out of whack because they're going from 1.0.0 to 1.10 to 1.1.1 and PyPi of course sees 1.10 as > 1.1.1

I considered retconning 1.10 to 1.1.0 but I'm now thinking that it could cause issues. Perhaps I could just either re-release the latest as 1.10.1 or edit the tag.

Thoughts?

tulip sleet
#

@pastel panther I'd do 1.10.1, don't try to go backwards. or is 2.0.0 in order?? As someone said, there are a lot of numbers available...

pastel panther
#

2.0.0 isn't in order, at least not for this version as it was just a bugfix. 1.10.1 sounds fine

idle owl
#

Yes retroactively changing it does nothing

#

There's a whole process for this

#

I can explain it

pastel panther
#

👂

idle owl
#

Ok if you want to delete a release, you have to first edit it and delete all the assets. Then it lets you delete the release. Then delete the tag. Then create a new release with a new tag number (the proper one in order this time, oops) and put the same notes in it and call it good.

pastel panther
#

done and done, thanks @idle owl and @tulip sleet

#

Hm. Pypi didn't like that

idle owl
#

blergh.

pastel panther
#
Dropped refs/stash@{0} (f86e558c74ecc740cd9aaf4bd275a9647c0b7aad)
PyPI upload failed.
failed to deploy
idle owl
#

It thinks it's the same tag

#

hold on

#

you did 1.1.1 right?

pastel panther
#

previously, yes. I then removed it and did 1.10.1

idle owl
#

Ok you didn't delete the tag.

pastel panther
#

baaahg

idle owl
#

see if that fixes it

#

it says it's building on 1.10.1 now

#

so we'll see

pastel panther
#

looks like it barfed again.

idle owl
#

@pastel panther I went through this so many times when I did all the PyPI stuff. No worries. It is a Process ™

#

Rerunning it once. If it fails, we do the delete/delete process one more time so it runs on the correct tag on the first try.

#

I've burned through an entire set of 0.0.x numbers on one lib trying to get it right.

#

well single digit anyway.

pastel panther
#

It just kicked off another build; did you do that or is it automagic?

idle owl
#

I did that.

#

And it passed!

pastel panther
#

weee

idle owl
#

That last failure was a glitch type failure. So I reran it.

pastel panther
#

🖐

idle owl
pastel panther
#

My post didn't make it to the blog 😢

#

s'ok, my mom says I'm cool

idle owl
#

@pastel panther Mike blogged it...

pastel panther
#

I don't see it? Am I going blind?

#

not a big deal; it's in the notes and I posted it here so I imagine interested folks have seen it

tulip sleet
#

it's in process

idle owl
#

The scheduler on Wordpress didn't do the right scheduling. Should be coming right up!

#

It was scheduled for a couple of hours ago 😉

tulip sleet
pastel panther
#

Yay! Thanks everyone!

tulip sleet
#

tnx @idle owl for following up with Mike

idle owl
#

@tulip sleet Np!

magic wing
#

@pastel panther and @idle owl In the adafruit-github-feed channel I'm seeing the announcement for 1.1.1 at 2.17pm and then for 1.10.1 at 3:10pm. Is that what the latest number is supposed to be or is the feed behind?

idle owl
#

1.10.1 is latest.

#

We had a PyPI hiccup we needed to resolve so 1.1.1 was removed.

magic wing
#

yeah I was following the discussion I just wasn't sure what the latest version was supposed to be at the end

#

Sometimes I wish that versioning labels added the zeros so they were easily sortable by text tools

cinder dune
#

I have a quick question. So in place of using a swtich statement, which python does not have, I'm using a dictionary. My dictionary has this format:

myDict = {
    1 : '(i,0,0)'
    2 : '(0,i,0)'
    3 : '(0,0,i)'
    4 : '(i,i,0)'
    5 : '(0,i,i)'
    6 : '(i,0,i)'
    7 : '(i,i,i)'
}

My question is can use it like this:

num=randint(1,7)
pixels[0:150] = [myDict.get(num)] * 150
#

I tested this in an interpreter and it returned the tuple with the quotes

#

Without the quotes python expectedly gives an error about i not being defined

#

If anyone has any tip they'd be much appreciated

#

I can probably use strip() to remove the quotes but I'd need some guidance because I can't get it working in my interpreter

waxen ermine
#

@cinder dune You should be able to use the tuples themselves in the dictionary. Is there a reason you're using strings?

cinder dune
#

Because i is not defined

#

I don't define it until the for loop

#

And this needs to work across for loops

waxen ermine
#

You can redefine the myDict in every iteration of the loop (assuming i is the iterated value)

cinder dune
#

I feel like there is a way where I could only define it once lol but I guess that would require a function with multiple arguments

#

One for the key I'm getting and one for i

waxen ermine
#

That's an option, sure. Define seven functions that take i as the parameter, then put those seven functions in the dictionary

cinder dune
#

Oh I was thinking a function with just the single dictionary

#

Two arguments: i and the key

#

😃

#

Wouldn't be that hard

slender iron
#

thanks @idle owl will read it once I'm through this code work

waxen ermine
#

Sure, but it may be faster to have seven functions stored in a dictionary.

#

Caveat: I'm new here, and I haven't explored all of Circuit Python, so my next suggestion may not work:

#

You could even (shudder) build it with lambda expressions (assuming CP can handle them)

idle owl
#

CP supports lambdas.

waxen ermine
#

Great. Ugly, but great : )

slender iron
#

I recommend using if/elif where a switch/case would be. dictionary of functions is much more advanced

cinder dune
#

Yeah....

#

I think I'm going to do that

#

I have everything writtern

#

*written

#

But python doesn't like keys that are integers in dictionaries

#

at least in my solution

waxen ermine
#

That's strange. I haven't heard of Python griping about integers as keys. Is it throwing an error?

cinder dune
#
 2 : (0,0,i)
    ^
SyntaxError: invalid syntax
waxen ermine
#

That's inside the dictionary definition?

cinder dune
#

Yes

#

Right after 1:

#

Well, ```
1: (0,0,i)

waxen ermine
#

Add a comma to the end of the line

cinder dune
#

Oh my goodness lol

#

Okay, I'm dumb

#

But also that did not do what I thought it would lol

#

Like with the lights

waxen ermine
#

I doubt that. Python is very good at doing what you tell it to, not what you want it to do : )

#

What were you expecting and what did you get?

cinder dune
#

I have a fade animation thing that runs through for loops and brightens every other light and then does the ones that aren't lit

#

I had just been doing a color for the first set to come and a color for the last set

#

I was trying to make it random

#

But this makes the lights flicker, which makes sense sense it radomizes the incremented value of i in the tuple

#

If you can follow that explanation I commend you lol

waxen ermine
#

I think I see what you're running into. You are setting all 150 lights in a loop, right?

cinder dune
#

Ah no

#

Hold on lol

waxen ermine
#

right: pixels[0:150] was in your original question

cinder dune
#
import neopixel
import board
from random import randint

num_pixels = 150
ORDER = neopixel.GRB

pixels = neopixel.NeoPixel(board.D18, 150, brightness=1, auto_write=False, pixel_order = ORDER)
def randColor(i):
    num = randint(1,7)
    myDict = {
        1 : (i,0,0),
        2 : (0,i,0),
        3 : (0,0,i),
        4 : (i,i,0),
        5 : (0,i,i),
        6 : (i,0,i),
        7 : (i,i,i)
    }
    return myDict.get(num)
def fade():
    for i in range(251):
        pixels[1::2] = [randColor(i)] * 75
        pixels.show()
    for i in range(251):
        pixels[::2] = [randColor(i)] * 75
        pixels.show()
    for i in reversed(list(range(251))):
        pixels[1::2] = [randColor(i)] * 75
        pixels.show()
    for i in reversed(list(range(251))):
        pixels[::2] = [randColor(i)] * 75
        pixels.show()
def Main():
    try:
        while True:
            fade()
    except KeyboardInterrupt:
        for i in reversed(list(range(251))):
            pixels[0:150] = [(0,0,0)] * 150
            pixels.show()
Main()
#

I'm using slicing to select every other pixel

#

And light it

waxen ermine
#

Aha. I think I see it.

#

You're using i as the index of each for loop, and you're calling randColor with i as the parameter

cinder dune
#

I see why I got the behavior I did

#

I just am not sure how to go about getting the behavior I want

#

And yes

slender iron
#

@tulip sleet got the subclassing working 😃

waxen ermine
#

hold on, that's not what I was thinking was the error.

cinder dune
#

It's flashing a lot

#

Because it's changing the i in the tuple randomly

waxen ermine
#

You want to pick a random color, assign that to every other pixel, fading from black to the color, then pick another color and fade the rest of the pixels that color?

#

Then pick a color before each for loop

cinder dune
#

Oh, that would work better I guess

#

I want every pixel to be different than the pixel before it

#

Lol, I just got these the other day and now I'm trying to do this

#

I'm sorry 😃

waxen ermine
#

Hey, that's the fun of it, right?

cinder dune
#

Yep!

#

I'll figure it out eventually!

waxen ermine
#

Yup.

#

You want to pick a tuple for each for loop, and you only need to two tuples.

cinder dune
#

Right

waxen ermine
#

Not an actual color, because you are using the for loops to fill out the tuple

cinder dune
#

...I think 😃

#

Yeah

tulip sleet
#

@slender iron re subclassing Yay!

inland tusk
#

where do I find the current list of python libraries

tough flax
#

Got the WS2401 leds working with python on pi. That (non CP) library is a bit out of date so I’m going to try the CP driver with Blinka(?). Or I’ll update the api in the lib to match the dotstar lib

tough flax
#

We had 12 strands of 84 leds donated to the magic wheelchair project. So glad we can make them work!

manic glacierBOT
slender iron
#

@ruby atlas what issue did you have with subclassing and pixelbuf?

manic glacierBOT
idle owl
#

That list is updated nightly.

inland tusk
#

@idle owl thank you very much for the info

manic glacierBOT
idle owl
#

You're welcome!

terse kayak
#

good catch, I think I updated it correctly now to remove the {}

slender iron
#

@terse kayak thats true but I meant the -

terse kayak
#

fixed ... I will self review better in the future .. was thinking it was just a quick thing and now on version 4 😳

clear halo
idle owl
#

@terse kayak No worries! That's what reviews are for. We're all in this together. 😃

gilded cradle
#

I have a question about creating the RA8875 driver. Should it be a subset of Adafruit_CircuitPython_RGB_Display or its own package?

solar basin
#

@slender iron where should I start? I assume at the very least I'll need to get a development version of CP running?

meager fog
#

@gilded cradle hihi

gilded cradle
#

Hi

meager fog
#

@gilded cradle it should be its own package

#

its significantly different i think

gilded cradle
#

Yeah, that was the conclusion I was coming to

#

And that's why

meager fog
#

Adafruit_CircuitPython_RA8875 should do it 😃

gilded cradle
#

Thanks

meager fog
#

wanna try it on M4?

exotic pumice
#

cool

#

that's like the people running a C64 emulator on stm32

#

but for z80/cpm

ruby atlas
#

@slender iron non-specific crashing of overridden methods. I didn't spend any time with a debuger. I tried it. It crashed. I moved on.

meager fog
#

@solar whale wanna try requests?

slender iron
#

@clear halo thanks for the link! will look now

#

@solar basin what displays and boards do you have? I may be able to give you a build initially

#

@ruby atlas ok, it may be worth another shot. I'm fixing an issue with subclassing a class that takes kwargs into the native make_new

meager fog
#

@solar whale ok i ripped out the old URL stuff

#

requests is a tiny bit slower, cause it does multiple writes, but worth the nicer interface - and of course you can POST, send headers, etc.

slender iron
#

nice job @meager fog

meager fog
#

~ yay ~

#

its a party

#

i think we can POST to adafruit.io feeds properly now with the built in requests header thingy

pastel panther
#

Oh goodie, I was going to work on that but I guess I don't have to!

#

or is it a different lib from the esp at control lib? Either way, yay proper POST with auth headers!

meager fog
#

its a subclass within esp_at

#

stuff like SSL was too intertwined

manic glacierBOT
manic glacierBOT
umbral dagger
#

@meager fog Looks fun, yes.

solar whale
#

@meager fog I'll be happy to try requests - I don't see anythin new in the repo - is it in your local repo?

#

oh yeah - I see it there --- I'll grab it and try it out later today - may not be until this evening 😦

plucky flint
#

Hi folks... a quick heads up... I just hit the big green "release" button for the bugfix Mu 1.0.2 (http://madewith.mu/mu/users/2019/01/15/happy-mu-year-2019.html). Many thanks for the contributions from folks in this neck of the woods. As always, comments and suggestions most welcome. Hopefully, next stop will be 1.1 (with NEW features). 😃 🐮 ❤ blinka

ruby atlas
#

@slender iron let me know what branch to rebase from, or when to merge from master.

stuck elbow
prime flower
#

@plucky flint ahhh you merged in the particle with blinka pr I submitted, works gr8

plucky flint
#

@prime flower thanks for the contribution..! 😃

prime flower
#

thanks for makin' mu!

plucky flint
#
We are the Mu makers,
And we are the dreamers of dreams,
Wandering by lone sea-breakers,
And sitting by desolate streams;—
World-losers and world-forsakers,
On whom the pale Mu gleams:
Yet we are the Mu'vers and shakers
Of the world for ever, it seems.

(sorry) 😛

manic glacierBOT
solar basin
#

@slender iron right now, I just have a Feather M4 Express and a 2.4" TFT FeatherWing (ILI9341 + STMPE610).

tidal kiln
meager fog
#

@solar whale yah i just need to lint and merge, you can then change your post example

#

@tidal kiln hihi could you help me with some of the mini guide fixes you emailed about

#

im swamped today :/

tidal kiln
#

sure. which ones?

meager fog
#

the bluefruit i just sent

#

and then the i2s one im about to 😃

tidal kiln
#

yep. see it. sure. np.

slender iron
#

@solar basin cool. I have that here I think. I'll get you a build

#

@ruby atlas I don't want to block your change on it

#

we can always update it later

#

will look at it all this morning

manic glacierBOT
tidal kiln
#

@meager fog for i2s - use arduino I2S or adafruit ZeroI2S?

meager fog
#

well

#

i think probably ZeroI2S for both?

#

cause I2S doesnt support M4 i think

tidal kiln
#

ah. ok.

#

yah, they say "SAMD21 based boards" for I2S

manic glacierBOT
#
[adafruit/circuitpython] New branch created: tannewt\-patch\-6
manic glacierBOT
lone sandalBOT
meager fog
#

@slender iron this is for per-lang folders?

slender iron
#

ya

meager fog
#

ok approved

#

want me to merg?

slender iron
#

ya, might as well

#

travis won't actually test it until its merged

#

since we don't save PR artifacts

manic glacierBOT
slender iron
#

thanks! I'll keep an eye on it

manic glacierBOT
#

displayio.Shape is a subclassable class that stores shapes by storing boundaries of the shape for each row of pixels. It also allows for mirroring to save memory.

Most of the changes are to enable subclassing native classes which take keyword args. To do so, the signature of make_new changed to take a separate kw_arg map. The basic argument checking changed as a result as well.

FourWire and Group now handle accepting subclasses as well by calling mp_instance_cast_to_native_base to get...

idle owl
#

@gilded cradle I can create a repo for you to fork so it's ready for you when you're ready to PR if you'd like. Did the cookiecutter stuff in the Creating and Sharing a Library guide make sense and work for you?

gilded cradle
#

Yes kattni. I put up a repo already on my github, but can remove it and fork if that's easier.

idle owl
#

You'll eventually need to PR to our repo so it might be easier to fork it now instead of dealing with it later in the process

gilded cradle
#

Ok, sounds good.

idle owl
#

Ok give me a few minutes 😃

gilded cradle
#

Will do. Thanks

idle owl
#

@gilded cradle Adafruit_CircuitPython_RA8875 is accurate?

gilded cradle
#

yes

idle owl
#

Thanks!

#

Thanks for doing this!

gilded cradle
#

Ok. Thanks.

#

Ok, got it forked, cloned, removed README and pushed previous work back up. Not ready for a PR yet though. 😃

idle owl
#

Excellent! That's totally fine! It's there when you're ready 😃

gilded cradle
#

Sounds good. Thanks

idle owl
#

@raven canopy Thank you so much!!! It was over 100 when I last looked. Library has new commits since last release within the last month. - 57

#

Trying to update the Library issue and failing. Two different browsers, same thing, it simply won't update. I've run into this before but usually it starts working after a couple of tries. Bleh.

slender iron
idle owl
#

Nice!

idle owl
#

Trying to figure out how to file a Github bug..... TONS of info on filing an issue on a repo.... Not so much on filing an issue with GitHub itself. 😆

#

Found a support email finally.

ruby atlas
#

@slender iron depending on the changes, it will make my code cleaner and faster. Especially if it's easily possibly to call a python method from C base classes. But as you say, if what's there so far passes review, we just need to figure out how we want to structure the testing versions of the _pixelbuf based neopixel.py and adafruit_dotstar.py

slender iron
#

what are the options?

#

@solar basin I have a build for when you are around. my featherwing display isn't working but the spi traffic looks ok

ruby atlas
#

What I’ve done so far is just have a new repo that holds pypixelbuf, and the other two pixelbuf compatible libraries . Not sure the name is even relevant anymore as it has rgbled in the name 😃

ruby atlas
#

I was wondering if we should have new repos, or use new branches for the _pixelbuf supporting ones and freeze into circuitpython where appropriate.

raven canopy
#

@idle owl it was at 97 when I started. I didn't even realize I did 40. 😆 I can hit a few more later.

meager fog
#

@umbral dagger eluuu

#

@umbral dagger dano's working on a solenoid xylobot

#

do you want to help out with the MIDI code

slender iron
#

@ruby atlas I'd just add a pixelbuf library and update the existing neopixel and dotstar to use it

umbral dagger
#

@meager fog Sure, That should be straight forward,

#

t's jusWe already have code to parse MIDI events/files. It's just different output.

#

I'm tied up with HackSpace for another day, likely, but time to chat is fine in the meanwhile.

solar basin
#

@slender iron whenever you're ready, I'm in and out of meetings today, but I'll have my laptop with me

meager fog
#

@umbral dagger ok np l8r!

manic glacierBOT
solar whale
#

@meager fog requests is working great - I have a working post example

tough flax
#

@idle owl - I hate to be the Git newbie again.. I'm trying to reset my fork of adafruit/circuitpython so that I can make some changes to the HID stuff @tulip sleet and I are working on. So I want to rebase to adafruit/master and drop all my changes (there aren't any). I followed these directions and it seems to have worked from the command line. However, when I look at my fork on the web, it says I am 590 commits behind. What am I missing? https://gist.github.com/ravibhure/a7e0918ff4937c9ea1c456698dcd58aa

idle owl
#

Did you push to your fork when you were done? git push your_remote_name master

tough flax
#

Yep

#

it insisted that I use origin/master instead of master

solar whale
#

these is the magic incantation I use to “rebase” fork — bring into line with adafruit master git pull git pull --rebase upstream master git push --force-with-lease origin master

tough flax
#

root@DESKTOP-QK2QQSA:~/circuitpython# git pull
You are not currently on a branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

git pull <remote> <branch>
#

Something is wrong

solar whale
#

probaby needd to git checkout master

tough flax
#

root@DESKTOP-QK2QQSA:~/circuitpython# git checkout master
error: pathspec 'master' did not match any file(s) known to git.

#

I should start over with a new clone

idle owl
#

push shouldn't want origin/master.

tough flax
#

root@DESKTOP-QK2QQSA:~/circuitpython# git status
HEAD detached at origin/master
nothing to commit, working tree clean

#

Never seen that before

slender iron
#

that means you are at the state of adafruit

tough flax
#

"Head detached"? Sounds painful

slender iron
#

it means you don't have a local branch

#

so git checkout -b <name related to what you are going to do>

tough flax
#

Ok, I've never not been on a branch - it made everything act wonky

slender iron
#

what do you mean by everything?

tough flax
#

root@DESKTOP-QK2QQSA:~/circuitpython# git checkout -b hid_joystick
Switched to a new branch 'hid_joystick'
root@DESKTOP-QK2QQSA:~/circuitpython# git push
fatal: The current branch hid_joystick has no upstream branch.
To push the current branch and set the remote as upstream, use

git push --set-upstream origin hid_joystick
#

Stuff like that

idle owl
#

Still should be able to checkout master I would think....

tough flax
#

I'm going to start a new clone and try this again - I think it's hosed

idle owl
#

I mean, that's what I would do. But I also try to avoid rebasing when I can, so I take the long way round.

tough flax
#

Do you create new forks?

idle owl
#

No

#

Unless it really hosed the fork too somehow

#

but usually I hose things locally when something like this happens, so same fork is fine

tough flax
#

Starting over

idle owl
#

But deleting and reforking is also an option if you really want to burn the place to the ground.

#

but you'll lose any remote work

#

so be careful with that one if you do it

tough flax
#

I'm good with that

#

Got it! Ok, the default branch for my fork was set to 3.x

#

which made a cluster

#

it's better now - thank you 😃

idle owl
#

You did all the work there 😃

tough flax
#

The good and the bad - yes 😃

#

I re cloned and just needed a push to do that 😃

idle owl
#

Great!

manic glacierBOT
lone sandalBOT
manic glacierBOT
tulip sleet
#

@slender iron looked over the Shape + subclass PR - looks great! One q, how would I typecheck an incoming arg to make sure it was, say, a Shape or a subclass of Shape? Do I use mp_instance_cast_to_native_base() and that returns mp_obj_null or NULL or something if it can't cast?

slender iron
#

correct. it returns MP_OBJ_NULL if its unable to

tulip sleet
#

ok, that should be perfect. Approve and merge shortly and then I'll try to use it!

slender iron
#

great!

tulip sleet
#

i don't see any issues and you cleaned up a few constructors so they can use kwd args, which is great - excellent work!!

slender iron
#

ya, some of the arg checks were bad

manic glacierBOT
slender iron
#

it was a good opportunity to go over them

tulip sleet
#

there were actually fewer than I thought

ruby atlas
#

blinka nice

slender iron
#

😃

ruby atlas
#

if i can get away from work for a few minutes i'll look too!

#

also at your PR comments

slender iron
#

k cool!

ruby atlas
#

unless you can do this kubernetes configmap for me, then update the postgis deployment to mount that configmap entry as files in a specific dir so that postgis has an extension enabled? 😃

slender iron
#

you'll be much faster at it

raven canopy
#

i can spell kubernetes. only because you typed it first though... 😄

ruby atlas
#

I wasn't aware it was an ancient greek word.

raven canopy
#

i imagine its something like "net of ghoulish spiders". well, that may be biased towards my limited understanding of the modern kubernetes. 🕸

ruby atlas
#

from Ancient Greek κυβερνήτης (kubernḗtēs, “captain, steersman”), also appears in the New Testament. [1]

tulip sleet
#

@idle owl The Debouncer library isn't pypi'd yet. I submitted a simple PR to fix the travis build but I didn't see that it's missing a chunk of other stuff. Is this in your queue?

idle owl
#

Not yet. But I was messaging you. The hyphen isn't needed until there are multiple providers. So I'm not sure that's the issue with Travis.

tulip sleet
#

it was complaining about "api_key"

idle owl
#

Totally unrelated

#

I have to generate that and add it to the Travis CI settings

#

I can do that now

tulip sleet
#

🤷 i am behind on these things.

idle owl
#

@tulip sleet Added. It should run successfully now. Your PR isn't necessary. That'll get dealt with when I deploy it to PyPI.

tulip sleet
#

k, I'll close it.

manic glacierBOT
idle owl
tulip sleet
#

now it's happy

empty tartan
#

Question... I've been looking to use BLE on the nRF52840 with CircuitPython, but for the life of me can find no good info on it (Have CP up and running on the board already). Perhaps my google-foo is failing, but not finding anything of substance. I do know that it should be supported through ubluepy, however, this isn't included in the latest adafruit 4.x bundle. Anyone have any pointers?

tulip sleet
#

@empty tartan that's because it's being worked on right now (like, literally, I'm working on it at this moment). The latest master has an initial API, and also see https://github.com/adafruit/Adafruit_CircuitPython_BLE. Warning: API and examples will change, but we'd love it if you try things out

#

but the latter includes Device, which you should ignore for now.

#

ubluepy has gone away and is being replaced with bleio.

empty tartan
#

Haha... Ok, well that explains it. I'll take a look at those links. We have an nRF52 device and want to use CP running on a dev-board to do some latency testing. I'll dig into it more tomorrow morning. Thanks for the quick feedback!

meager warren
slender iron
#

thanks @meager warren will look now

fluid cape
#

Hello guys, I am kinda new here. My name is Hendra, I am one of the language contributor for Bahasa Indonesia. I am still learning to understand how the github work (pull, merge, commit, etc), so I am sorry if I am creating a weird pull request on the repo🙏

idle owl
#

@fluid cape No worries! You did great 😃

#

Welcome!

fluid cape
#

Thanks @idle owl 😊

raven canopy
#

@fluid cape git/github give us all head-scratching moments. and i'll second...you did great. welcome, and thanks for the contribution! 👋

fluid cape
#

@raven canopy thank you. It still WiP, I will try to finish it by the end of the month

raven canopy
#

WIP...its where most of my projects live. 😆

exotic pumice
#

does a yellow pulsing neopixel on a feather mean undercurrent?

raven canopy
#

@exotic pumice running circuitpython? or just the bootloader?

exotic pumice
#

I can't remember what it's running tbh

raven canopy
#

haha. if circuitpython: pulsing YELLOW: Circuit Python is in safe mode: it crashed and restarted

exotic pumice
#

yeah it's circuitpython 4.0.0 maybe that's why

#

alpha 3

#

I should update it while I'm here

#

oh it's running my broken dap thing

solar whale
#

He's doing it again....

raven canopy
#

🙃

#

only like 10 or so left...i think.

#

i finally ran across one that requires thought for the release notes.

idle owl
#

I'd say have a strokey-beard meeting but... no beards allowed for you. So no meetings of that sort either.

umbral dagger
#

Wait! Wut? No beards?!

idle owl
#

You can be as beardy as you want.

solar basin
thick tundra
#

Does anyone know if we can have multiple declarations for the same CPU pin in the pins.c?

tulip sleet
#

do you mean multiple names for the same pin? Yes, we do that all the time

#

i can find an example

thick tundra
#

Yeah, i thought so. No example needed

manic glacierBOT
thick tundra
#

Just wanted to check i wasn't being dumb before submitting that

tulip sleet
#

@thick tundra see my review - good PR, just minor style fixup requested

#

@thick tundra Great! will approve after Travis finishes

manic glacierBOT
solar basin
#

Ahh man! I've been paying for that! ^

thick tundra
#

Well my students have been looking out for you then!

manic glacierBOT
manic glacierBOT
meager fog
#

@solar whale hrm im having problems getting compiled ESP32 AT to work

#

using their IDF and firmware

#

can you send me your sdkconfig

#

oh blah RTS/CTS are fixed, they cant be changed - oi

manic glacierBOT
lone sandalBOT
solar whale
#

@meager fog here is the sdkconfig I used - let me know if yo uwant me to try something.

marble hornet
#

can interpreter (the supervisor? what's teh "right" name?) store info in flash about how to boot up next? or info for itself in the future?

solar whale
#

@marble hornet as far as i am aware, you can only write-enable the flash in boot.py - then you can write to it but it will b read-only as a mass stoarge device. - you can't have masss storage (CIRCUITPY) be writable and and write from CP at the same time. If yo just have a few values to store (<8K) you can use the NVM -- it will remain after boot/power cycle.

marble hornet
#

i should have specied, from c code

solar whale
#

ah -- sorry - you would probably have to create a special section of the flash -- like the nvm -- just guessing.

#

how much information do you need to store?

#

why not use NVM?

marble hornet
#

you know the svm module i'm VERY SLOWLY learning c to make?

solar whale
#

ah - NVM is not in all builds ...

marble hornet
#

not nvm

#

svm

solar whale
#

what is that?

marble hornet
#

static volatile memory, saved bytes between soft reboots, but not resets. it will be used ot replace unmounting from storage

#

the number of bytes of ram to set aside needs to be stored

#

i'll find the issue

#

**scratch volatile memory

solar whale
marble hornet
#

thanks

solar whale
marble hornet
#

how do i include displayio in an m4 build ?

tulip sleet
#

@marble hornet it should be included already

marble hornet
#

hrmmm i just built it, i couldn't import displayio

tulip sleet
#

from master?

marble hornet
#

but i just copied #define CIRCUITPY_DISPLAYIO (1) from the hallowwing

#

yeah

tulip sleet
#

hmm, I thought it was included, but maybe not in general, it probably should be

#

i think we'll include it in all builds eventually - it was special-cased for hallowing and pyportal initiallly

#

thanks for pointing that out

marble hornet
#

okay, so that line isn;t working . can you show how to include it correctly? (i'll also reclone just in case

#

)

#

like does it go in .mk?

#
>>> import displayio
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: no module named 'displayio'```
tulip sleet
#

@marble hornet it should be in mpconfigboard.h like the hallowing

marble hornet
#

Okay

#

Thanks

marble hornet
#

building...

inner tree
#

Hi all, I just got an SGP30 and hooked it up to a Circuit Playground Express. I'm trying to follow the python example and I'm running into the same "SDA or SCL needs a pull" error. From the discussion above, is this an issue with the library, or do I need to actually put some sort of resistor?

tidal kiln
#

how are you connecting it to the CPX?

inner tree
tidal kiln
#

can you post a photo of your actual connections to the CPX?

inner tree
#

Sure thing...

#

What did I mess up

stuck elbow
#

those crocodile clips are not going to give you a good connection like that

tidal kiln
#

be very careful not to short the red/black clips

stuck elbow
#

and is it just me, or is the gnd shorted to 1v8?

#

I would add some wires to it and clip the clips on those wires

#

or at least pins

inner tree
#

K, I'll grab some wires and try it

tidal kiln
#

yah, i think using the gator clips on the sensor directly like that is going to be very tricky

inner tree
#

got it

empty tartan
#

@tulip sleet Thanks for the info yesterday - I am able to import bleio using build adafruit-circuitpython-pca10056-en_US-20190114-738e8f0 (actually running on BMD-340 devkit, but they were nice enough to keep all the pins and XTALs the same - we always target pca10056 without issue.) I tried running the scanner code but it returned an empty set, maybe I need to pull and build to see what's going on. I use Keil for work, so will have to get the GCC environment set up.

One question that I had yesterday which may also be related... Do I need to flash the softradio separately, or is it included in the build (looking through the build instructions, it appears to be part of the build)?

tidal kiln
#

are you able to solder?

#

@stuck elbow i've got a pygame question. you've used that a lot i think?

stuck elbow
#

shoot

tidal kiln
#

audio related - how to generate simple pure tones?

#

generate and play - like what's the way to do play_tone(440)

tribal terrace
#

On a high level what you do is take samples at regular intervals of a sine wave that oscillates with 440Hz and feed those values to the DAC

river quest
#

here's a sneak peak of our CircuitPython powered IoT display... this live-updates when we get a star on on the CircuitPython repo' ....

raven canopy
tidal kiln
stuck elbow
#

@tidal kiln I don't think you can easily do that with pygame, it's more made with the idea of playing ready files

tidal kiln
#

@stuck elbow ok. thanks. that's the impression i was getting.

slender iron
#

@tidal kiln soundgen is something I'd love to see in circuitpython

tidal kiln
#

@slender iron fwiw - use case is rpi + crickit w/ python

slender iron
#

ah, I don't know how to play buffers on cpython

tidal kiln
#

it's kind of an outlier. the other things like servo, etc. have CP libs that can be used and make things nice and easy, like servo.angle = 90. but audio is just an i2s amp. it's supported in the OS, but trying to find a nice easy way to use it from python....

raven canopy
#

I imagine all the game roms are sample based, but maybe there are some overzealous romers that went full chip tune?

marble hornet
#

@slender iron displayio isn;t compiled into the alpha on the metro m4

solar whale
#

oooh

marble hornet
#

oops

#

wrong chat

solar whale
#

😃

marble hornet
#

that was meant for my robotics chat !!! SORRY!

solar whale
#

no problem -- I though my dog was speaking to me 😉

marble hornet
#

your dog just wants you to think i typed that

tidal kiln
#

"greetings professor falken..."

marble hornet
#

so i can;t get displayio to compile in

#
<artificial>:(.text.run_background_tasks+0x2a8): undefined reference to `board_display_obj'
/var/folders/08/4sg6c7j12zqbxz6wtmh3ggrw0000gn/T//ccU2Ns7M.ltrans17.ltrans.o:<artificial>:(.text.run_background_tasks+0x2ac): more undefined references to `board_display_obj' follow
collect2: error: ld returned 1 exit status
make: *** [build-metro_m4_express/firmware.elf] Error 1
Jonahs-MacBook-Pro:atmel-samd jonahym$ 
#

i'm getting that error

marble hornet
#

it says it needs more resources, does it need more inclued in the mpconfig.h?

raven canopy
tidal kiln
#

"simple" 😃

solar whale
#

@marble hornet I've not tried to build it recently -- you may want to look at board.c file for the hallowwing. it has some displayio stuff in it.

marble hornet
#

trying..,.

pastel panther
#

anyone have tips for debugging a missing CIRCUITPY drive on raspbian?

solar whale
#

check output of dmesg

marble hornet
#

tificial>:(.text.run_background_tasks+0x2ac): more undefined references to `board_display_obj' follow

slender iron
#

@marble hornet its only built into the hallowing

solar whale
#

@marble hornet just for check - can you build the hallowing image

slender iron
#

did you do a clean after adding the CIRCUITPY_DISPLAYIO define to make sure it picked up new source files

#

look in the board.c for hallowing as well

pastel panther
#

I have no idea how to cut and paste, but dmesg looks promising, it sees the metro and even talks about mass storage and attaching a removable disk. let me check this mount point

#

hmm. not a mount point, a device

solar whale
#

what does df show after plugging in the board

marble hornet
#

i'll try it

pastel panther
#

no CIRCUITPY, misc/dev, /run,/boot

solar whale
#

mine just mounts to /media/pi/CIRCUITPY -- pops up file manager window --

pastel panther
#

I had to manually mount it

#

my laptop is having its battery replaced so I'm giving an RPi a run for its money as a desktop

solar whale
#

don't get your hopes up 😉 what kind of pi?

pastel panther
#

3 B+

#

I'm just pretending I'm on my old 486 with my 300 baud modem

solar whale
#

it'll work fairly well, but it'll be really sluggish

pastel panther
#

heeey, I got a REPL 🎉

solar whale
#

what more can you need 😉

pastel panther
#

did the updates to the esp at library get merged? I would like to see if I can get this thing talking to IO

#

uses his own eyeballs to check

solar whale
#

not yet -- there are a bunch of new things that Limor has done -- added requests -- make is much simple to use

#

check her repo

pastel panther
#

are they still in her fork?

#

kk

#

just remembered I'm on an RPi; should probably close some of these chrome tabs

slender iron
#

anyone have a 2.4" featherwing and feather m4?

idle owl
#

Probably? I have all the FeatherWings, so presumably yes.

slender iron
#

k I have a build that will use the display

idle owl
#

Hey I even knew right where it was. Do you need testing?

slender iron
#

sure 😃

marble hornet
#

/var/folders/08/4sg6c7j12zqbxz6wtmh3ggrw0000gn/T//ccx0y9V2.ltrans17.ltrans.o:<artificial>:(.text.run_background_tasks+0x2ac): more undefined references to `board_display_obj' follow

slender iron
#

if you have cycles @meager fog has been filing bugs

inner tree
#

@stuck elbow @tidal kiln Thanks for the help! I soldered headers and used the clips from the CPX to the wires and the code works now!

slender iron
#

@marble hornet there is stuff you need in board.c

magic wing
#

@inner tree I had to do the same for a Flora project I was using. It was a powerful lesson for me (one in a series) of how important good ground connections can be.

inner tree
#

I was avoiding soldering as we're just trying to prototype something for my son's FIRST Robotics project

#

He's going to be mad when he gets home from school and finds out that I soldered the headers 😃

pastel panther
#

because he wanted to?

inner tree
#

yeah

#

He can solder the real wires from the sensor to the CPX though. All is not lost.

marble hornet
#

do i need to change pin defs ?

slender iron
#

you'll need to add the DISPLAY entry

tidal kiln
#

@inner tree as an option on the CPX side - you could use screws to attach the wires to the CPX pads. the holes are big enough. that way you wouldn't be soldering wires to the CPX in case you want to reuse it for something later.

inner tree
#

That's a great idea

pastel panther
#

I'm surprised there is no terminal block "shield" for the CPX

tidal kiln
#

dastels might have done something like that

pastel panther
#

adds to the pile of board ideas

tidal kiln
pastel panther
#

yup

solar whale
#

@slender iron I have those

craggy harbor
#

I can’t find any info on getting the featherwing‘s buttons working. I haven’t used I2C yet so any help is appreciated!

#

Featherwing OLED*

#

(The Display works fine)

slender iron
#

@solar whale let me know if you want to test. beware there are lots of bugs

solar whale
#

sure

pastel panther
#

@craggy harbor aren't they just tied to gpio?

slender iron
idle owl
#

It loads! Well done! (I have no idea how to use displayio 😄 )

pastel panther
#

@craggy harbor from the guide page on pinouts:

Button A is #9 (note this is also used for the battery voltage divider so if you want to use both make sure you disable the pullup when you analog read, then turn on the pullup for button reads)
Button B is #6
Button C is #5
slender iron
#

ya, I'm realizing I'm too on the critical path for it

craggy harbor
#

Ohh I see! A bit unfortunate since those are already used in my case 😄

slender iron
#

time to teach others 😃

craggy harbor
#

But oh well

idle owl
#

Probably better right now anyway, I'm in the middle of something else 😆

#

Still, step 2 works 😃

solar whale
#

@slender iron loaded and booted -- what should I do to test?

pastel panther
#

@craggy harbor I think there is a way to change the pins

craggy harbor
#

What’s the thing with the battery voltage divider?

tidal kiln
#

@craggy harbor careful then, one of them has a pullup

craggy harbor
#

@pastel panther that would be cool!

slender iron
#

that is the most complex example so far

craggy harbor
#

@tidal kiln would that mean it „pulls up“ always, as long as the wing is attached?

pastel panther
#

@craggy harbor I think I spoke too soon. Some featherwings have jumpers you can cut but I don't see any one this one (having to look at pics)

tidal kiln
#

i don't think can easily be changed

pastel panther
#

I mean you could find the traces and cut them but that's probably more than you want to do

manic glacierBOT
craggy harbor
#

@pastel panther okkkk

tidal kiln
#

@craggy harbor on the wing, the pin for button b is connected to 3.3V via a 100k resistor.

manic glacierBOT
craggy harbor
#

@tidal kiln so as Long as I don’t push it, it won’t affect the functionality of the SPI devices that I control from that pin right?

tidal kiln
#

is it working ok now?

#

actually, wouldn't be too hard to move them. you could cut the trace between the headers and the secondary row. and then solder jumpers from there.

#

but i'd try to just not use those pins. what all is attached? why not use the dedicated SPI pins?

solar whale
#

@slender iron do yyou know offhand if PB21 is correct for the backlight for the feather m4 or do I need to change it ..

slender iron
#

you need to change it

solar whale
#

ok -- looking

craggy harbor
#

@solar whale well the chip selects etc. I already did a board layout etc so don’t want to change it now.

solar whale
#

@craggy harbor ?? not sure what you are referring to

#

@slender iron do I need to set backlight or can it be None -- its not wired up on the 2.4 TFT

slender iron
#

I think you can remove it from the example

solar whale
#

ok - will try

craggy harbor
#

Ups i wanted to mention @tidal kiln

tidal kiln
#

ah. you have some kind of custom PCB you've made up?

solar whale
#
fade up
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pyportal.py", line 29, in <module>
ValueError: Group must have size at least 1
>>> 
#

@slender iron do I need special fonts -- I cloned adafruit_bitmap_font and put it on the board

slender iron
#

you need a .bdf file

solar whale
#

ah -- ok -- nay ones you recomend -- jsut put at root or in adafruit_bitmap_font folder

slender iron
#

in the root I think

craggy harbor
#

@tidal kiln yup!

tidal kiln
#

do you want to use the buttons?

craggy harbor
#

@tidal kiln it would be cool but it’s not necessary 😊

#

The most important thing is that they just don’t interfere with my current setup (PCB).

#

I would be willing to e.g. just pull out the 5,6,9 pins from the shield if it’s necessary 😃

tidal kiln
#

that's one option. those are the buttons. just don't connect them down to the feather.

craggy harbor
#

Ok 👌🏼

#

What else is possible (more elegant)?

tidal kiln
#

time travel and use different pins 😃