#circuitpython-dev

1 messages Β· Page 106 of 1

slender iron
#

it just may not be in the bundle

drowsy geyser
#

The busio in the bundle?

slender iron
#

where did you get the driver @drowsy geyser

drowsy geyser
#

GitHub....

floral dagger
#

I just created an i2c object on my device, and hit "i2c.", and then tab. The lock function shows up attached to the i2c device

drowsy geyser
#

Ah, cool, @floral dagger !

slender iron
#

yeah, you can do it manually but most drivers use I2CBusDevice and context managers to handle locking

floral dagger
#

I was just trying to track down where to look for it

#

sorry, @slender iron I wasn't trying to talk over you. I tend to look down when I type.

slender iron
#

no worries πŸ˜ƒ

idle owl
#

@formal plover Being cool with Kattni is pretty much of the epitome of electronics.

formal plover
#

Haha so true @idle owl

drowsy geyser
#

I wish I were cool with Kattni.... πŸ˜‰

idle owl
#

@drowsy geyser You're rockin' it.

formal plover
#

`>>> while not i2c.try_lock():
... pass
...

`

drowsy geyser
#

Thanks, @formal plover !

formal plover
#

That's where I stole it from. Lol

drowsy geyser
#

Ah, another gentle "RTFM". πŸ˜ƒ I swear, y'all have the most polite "go do yer homework" messages of anyone I've ever worked with!

formal plover
#

Bwhaha! Sorry @drowsy geyser

drowsy geyser
#

Nah, that's ok!

formal plover
#

I know so little, I spend a lot of time RTFM. Haha, so only reason why I'm good at finding things.

drowsy geyser
#

@formal plover I'm familiar with that!

idle owl
#

@slender iron Let me know if you want to try to test audio early. I'm around.

slender iron
#

kk, we're gonna head down to the meeting room in ten minutes and then will

drowsy geyser
#

Oh! Almost forgot about the meeting and left for lunch. Thanks for the reminder!

slender iron
#

ok, we're in the channel @idle owl

idle owl
#

That is correct apparently

drowsy geyser
#

I'm in, I can hear @tulip sleet and @idle owl fine, but there's a lot of background noise.

#

Shipping is a Good Thing!

tidal kiln
#

hey all. just listening in.

idle owl
#

Hi @tidal kiln

drowsy geyser
#

@timber lion and @slender iron Maybe monitor the LiPo 3.7v input and detect when a clean shutdown is needed?

#

Ack! Quite a hack!

#

I'll go order the RGBW ring now....

tidal kiln
#

nope

drowsy geyser
#

Nope

#

But, is the problem we're using RGBW with RGB code, or vice versa? πŸ˜ƒ

idle owl
#

RGB with RGBW

drowsy geyser
#

Ok, thanks!

slender iron
#

Thanks all!

idle owl
#

Thank you!

timber lion
#

and the VUMeter class is where I have start tone and stop tone

idle owl
#

@timber lion Thank you! I'll check it out now

#

@drowsy geyser Adding the bpp=4 to the Trinket demo code causes it to not light up at all. Adding bpp=4 to my own quick test code, and it works.

timber lion
#

yeah you probably have a RGBW strip or circle then

#

and on trinket it's a dotstar I believe, so only RGB

idle owl
#

@timber lion It definitely is RGBW. I knew that and it made sense once you nentioned it, but it didn't occur to me before that πŸ˜ƒ

timber lion
#

oh no worries, yep i've made that mistake a lot πŸ˜ƒ

idle owl
#

I got the demo working! Ended up doing a full flash erase and reinstall, and I needed to copy one library on, but now it works.

slender iron
opal elk
#

aw, I missed it (but I knew I did)

#

there's a working group that gets to rename all our conference rooms here and I wanted to be dang sure I was on it πŸ˜ƒ

slender iron
#

@opal elk posted the video so you can listen if you like

half sedge
#

Hi @timber lion , I tested your mega demo. You may have forgot to mention that there is an "on/off" switch and nothing will take place if it is on the "other" position.

idle owl
#

@half sedge He still has a lot he plans to do - I don't think he intended to release it yet, that was something he did quickly so I had the code to work with it. That's a really good note though. Thanks!

half sedge
#

You did mention around 13:00, but it should be in the readme or very early... or one customer could believe it is broken. πŸ˜‰

formal plover
#

Thanks @slender iron!!!

idle owl
#

@slender iron The recording turned out really well even with the background noise. Nicely done!

manic glacierBOT
half sedge
#

Hi, is there a table somewhere that compare Circuit Python board. Something that tell the number of pin, type of pin (breadboard friendly/sew-me), build in hardware, soldered power option, unsoldered power option, Express (or not), storage size, ...

#

I have a few of those board, but there seems to be missing a "buyer guide" that would help picking the right one.

drowsy geyser
#

@half sedge There are a few introductory guides that have some of this information, but I'm working on creating a master table to help people select the correct boards.

half sedge
#

Nice that you are working on that... so I don't have to do it. πŸ˜ƒ

#

Here are some "criteria" I was looking for: Express/Not Express /// Breadboard/Croco /// number of pin (maybe there is a list of pin on the M0 and knowing wich one are exposed is interesting) /// powering option is maybe important such as is there a jst connector, or can you solder one /// storage (but it seems to be the same info as express or not /// UF2 or not is very important to know if it is a legacy board or a new board

#

Time to sleep in my timezone, it is now tomorrow. See you and goodby/night.

drowsy geyser
#

Good night!

sand bloom
#

Just caught up on the weekly. As soon as I get home from maker fair I'll get the project setup on my laptop and try to look at some of the stuff that was mentioned in the weekly. What would you guys recommend looking at first?

slender iron
#

Good question @sand bloom ! Do any of the beginner friendly tasks jump out at you?

idle owl
#

@sand bloom Hi! Exactly what @slender iron said! I was going to suggest checking the issues listed on Github and pick something that interests you.

sick creek
#

@slender iron now with Azure ML Workbench make use circuitpython more as @timber lion made the a video using Circuitpython board with jupyter notebook

sand bloom
#

@slender iron @idle owl I'm thinking a driver for the TCS34725 RGB Sensor

slender iron
#

@sand bloom that would be awesome! just check the bundle for any driver first

idle owl
#

@sand bloom Nice!

sand bloom
#

@slender iron will do!

manic glacierBOT
formal plover
#

Thanks for getting involved @sand bloom! blinka

sand bloom
#

@formal plover I'm super excited!

formal plover
#

@sand bloom Yay! I'm excited for you!

#

What boards do you have that support CircuitPython?

sand bloom
#

@formal plover I have a Gemma and a trinket

formal plover
#

@sand bloom Nice! Two small form factor boards, double the fun.

#

The Trinket and the Gemma are going to be super popular.

idle owl
#

@sand bloom That's great!

sand bloom
#

@formal plover I agree! You can stick those things anywhere and sometimes you don't need all of those I/Os

#

@idle owl should I get anything else?

idle owl
#

@sand bloom It sounds like you're already off to a great start. Those two boards have tons of options. And you've got that sensor you want to do the driver for. I find that if I have a place to start, it leads to me knowing what other things I want to get. I had no idea when I first started. πŸ˜ƒ

sand bloom
#

@idle owl Yay! I still need to order the sensor but it looked interesting to me when I saw it.

idle owl
#

@sand bloom Oh! Right, ok. Do you have a breadboard, or alligator clips?

#

See this is what I mean, the more we talk it out, the more I think of.

hollow tartan
#

O K PUTTY is officially making me crazy. I have a very simple terminal program called TexasDisplay. It works with REPL nicely. I have flashed 3 new NodeMCU esp8266 with micropython and they all behave the same. I get the boot blurb and >>> but the win7 and win 10 putty term just locks up.!!!

sand bloom
#

@idle owl Yup! I've got those sorts of things. I guess I should order a neopixel or some sort of rgb led and the sensor.

idle owl
#

@sand bloom Excellent! You're definitely off to a great start.

sand bloom
#

@idle owl Yay! Thanks for the encouraging words!

idle owl
#

@sand bloom You're welcome! Make sure to keep us updated. And we're always here for questions. I'm really excited for you!

formal plover
#

@sand bloom I just realized you made those Wi-Fi Deauthing Sandals

#

That's awesome! Such a cool project. And uses my favorite.. The ESP8266.

sand bloom
#

@idle owl Will do

#

@formal plover Haha yeah I did make those! I too love the esp8266. It's a really neat board

floral dagger
#

@hollow tartan does ampy work?

hollow tartan
#

@floral dagger don't know, have not tried it yet. ESPlorer is a mess too, as far as I know.

floral dagger
#

@sand bloom Hi. I think the best thing I got for prototyping is a pack of screw in terminal blocks that fit on th breadboard. It makes dealing with things like motors that have two loose leads so much easier

#

@haughty harness are you flashing nodemcu or circuit python?

#

lol I just atted the wrong person

hollow tartan
#

@hollow tartan is flashing micropython onto NodeMCU ESP8266. Orig post corrected for failure to spec.

floral dagger
#

Ah, ok. How do you have the ESP powered?

hollow tartan
#

Powered from Desktop PC USB in both terminal cases: 1. TexasDisplay, 2. PuTTY

floral dagger
#

@hollow tartan What you are getting sounds like an issue I was having. For some reason the board would flash, but the filesystem was weird on it. Sometimes it would start up, but no boot. Using a separate power source fixed that for me

#

by not boot, I mean run or install boot.py...sometimes it would, but it would freeze.

hollow tartan
#

@floral dagger what exactly is your other power source?

floral dagger
#

Right now I'm using a small breadboard power supply. I also used a 4AA battery pack for a bit.

#

but my board is 5v tolerant on the power pin

#

A powered USB hub may work too

hollow tartan
#

sometimes that power flux is a lack of Capacitance on the board itself.

formal plover
#

or power bun lol

floral dagger
#

lol @formal plover

#

I think, for my case, the USB port just didn't have enough gumption to power the board well enough. It may be worth a try if you have something you could use

#

that may not be your problem though. I dunno. It just sounds familiar

hollow tartan
#

yes, I have some BB 5V/3.3V supplies.

formal plover
#

@hollow tartan Did you do an erase first?

hollow tartan
#

@formal plover Yes, no slouching on the erase.

#

import os
os.listdir()
os.remove("file_name")

formal plover
#

@hollow tartan What are you using to flash?

hollow tartan
#

I am using esptool at the Windows Admin command prompt.

formal plover
hollow tartan
delicate pike
#

Lol

#

N'est ce pas πŸ˜‹

#

Si je puis me permettre πŸ˜‹

hollow tartan
#

you got me, I still don't know why it is funny. Power Bun. ?

formal plover
#

@hollow tartan, @floral dagger were troubleshooting the other day and he said power bun instead of power hub. Sorry, somewhat an inside joke

hollow tartan
#

ah ha.!

floral dagger
#

lol yeah, was on my phone and autocorrect got me

floral dagger
#

Hey @hollow tartan Did you get everything sorted out?

hollow tartan
#

have loaded ampy. it works.

formal plover
#

@hollow tartan fantastic!

analog fox
#

Ahhh, I remember that! πŸ˜„

idle owl
#

@slender iron I know at some point I saw a datasheet type thing for the CPX, but I can't find it now. Is it still posted somewhere? I'm trying to figure out what libraries I need to request - I think it might just be the lisd3h, but I don't know whether there's specific model numbers for any of the other chips and sensors.

slender iron
#

@idle owl you should be able to base it on your imports instead

idle owl
#

@slender iron Ok, good to know. That's what I had started to do, but I was trying to think ahead to the sensors I haven't written code for yet.

slender iron
#

I can't think of any separate ICs.

#

doing it by import will make more sense from the inclusion standpoint anyway

idle owl
#

Excellent, thank you

slender iron
#

np πŸ˜ƒ

floral dagger
#

Quick question. If I have a script/library that I need to import at startup time, can I do that in the boot py file?

manic glacierBOT
hollow tartan
#

blinka Trivia Minute How does the LED connected to this pin behave?

pin=machine.Pin(10,machine.Pin.OUT,machine.Pin.OPEN_DRAIN)
pin.on()
pin.off()

drowsy geyser
#

@floral dagger I'm not sure - I always use code.py.

#

QQ: Is anyone developing the drivers for either the Ultimate GPS Featherwing or the BMP280? I need both for the rocket flight controller, so if nobody is working on it I'll start hacking up some drivers. πŸ˜ƒ

hollow tartan
#

Who would up vote an oversized FeatherWing with bigger 2 of the led 8x8 panels?

hollow tartan
#

Tera Term has won the competition. PuTTy Lost.

slender iron
#

@hollow tartan its micropython code that turns a pin on then off

floral dagger
#

thanks @drowsy geyser that was just what I needed

#

is webrepl only on ESP boards?

slender iron
#

@floral dagger yes, only esp

floral dagger
#

ok, thanks @slender iron

slender iron
#

np

floral dagger
#

Anybody have an ESP8266 that would want to test the demo code I just uploaded for websockets/webrepl interaction?

idle owl
#

@floral dagger That's really neat! @formal plover has the ESP board, but he can't do any testing until after work.

sand bloom
#

@floral dagger I have one, but it isn't flashed for micropython yet. Let me try flashing it now and then I can see if it works.

floral dagger
#

Oh cool @sand bloom let me know how it works! I am using circuit python on my board. I'm not sure how much of a difference that will make. I don't think I used any CP specific calls

#

thanks @idle owl

idle owl
#

Whee memory allocation error!

formal plover
#

I can test it tomorrow probably @floral dagger. I last maker Wednesday until my wife goes on maternity leave. Needless to say I'll be working on stuff from the second I walk in the door until bedtime

delicate pike
#

To balance odors πŸ˜‹

hollow tartan
#

@slender iron You are correct. However, the Trivia Quiz has been slightly modified. Do you want to change your answer?

umbral dagger
#

Spending tonight playing around in CP with the new dotstar featherwing.

floral dagger
#

Sounds good @formal plover There's really not a whole lot in it at the moment. It's just activating a couple of pins, and allows you to switch between them. I'm probably going to fool with it some more. I'd like to expand on it some to make it more robust, but not sure which direction togo yet.

formal plover
#

I can probably use the simple http webserver learn guide to display the status of the pins as they change as well @floral dagger

floral dagger
#

What do you mean? @formal plover

formal plover
floral dagger
#

ooooohhh, That's really cool

#

@formal plover that most likely would work. If you have the serial repl open, it shows all the input and output going back and forth as well

formal plover
#

Ah OK, that's cool too!

floral dagger
#

As many times as I've seen that, and I never even really paid a whole lot of attention to it

formal plover
#

Yeah, I mean I did that and the Asciimation one above it when I tested CircuitPython for the first time. Only reason why it's in my head.

umbral dagger
#

Dotstar featherwing CP result of this evening’s work. Next is to complete the font.

formal plover
#

@umbral dagger Awesome!

idle owl
#

@umbral dagger That's great!

floral dagger
#

That's really cool @umbral dagger . I love seeing all the stuff that people ae doing.

#

Do you have a larger project in mind for that?

umbral dagger
#

@floral dagger No, nothing bigger in mind. Just having some fun. I've been digging into the feather ecosystem, and this board looked cool so I got one. Then found no real support or docs. So I started exploring πŸ˜ƒ

floral dagger
#

awesome!

hollow tartan
#

@umbral dagger 8x8 led arrays come in two different configurations, row common cathode and row common anode. My question is does the feather wing only work with one of the types or is the software able to accomodate both on the 16k33 chip?

umbral dagger
#

@hollow tartan Not a clue πŸ˜ƒ

#

@hollow tartan Well.. looking at the wing front on, with the reset button at the left, LED 0 is at the top right. It scans left fromt there. LED 12 is on the second roe, far right. It carries on from there, for all 6 rows. LED 71 is at the bottom left.

#

That's using the adafruit_dotstar module.

umbral dagger
#

@hollow tartan Thinking about this. This wing is dotstars that have a clock and data signal daisy chained through all 72 elements (conceptually similar to neopixels). I.e. they aren't a matrix; they're a linear chain.

#

@hollow tartan Sorry, it's been a kind of rough day... it took a while to grok exactly what you were asking.

cunning seal
#

@slender iron any udpates on porting the micro:bit speech to Circuitpython ? thx

hollow tartan
#

@umbral dagger It's cool. I did not know it was the neopixels type device.πŸ˜‰

slender iron
#

@cunning seal nope, its not high on our list. need it for something?

drowsy geyser
#

@slender iron Scott, is anyone working on an Ultimate GPS driver for CircuitPython? Or a BMP280 driver? I need both for the rocket project, so if nobody has it yet, I'll take both. πŸ˜ƒ

slender iron
#

@drowsy geyser not that I can think of

drowsy geyser
#

@slender iron Cool! Tag I'm it. πŸ˜‰

slender iron
#

maybe make an issue in adafruit/circuitpython for it?

#

we can add a driver label

drowsy geyser
#

Good idea!

idle owl
#

@slender iron That's a great idea!

manic glacierBOT
drowsy geyser
#

Apparently I don't have perms to create a new tag. If you create a "driver" tag, @slender iron, I'll edit the issue and add it. Thanks for the suggestion to create an issue! That's the right way to do it.

#

LOL, scratch that. I was in the wrong place in GitHub. Driver label created and added.

manic glacierBOT
slender iron
#

looks good @drowsy geyser ! thanks for setting it up

#

@idle owl finally getting to your email now

drowsy geyser
#

No worries. And, in all honesty, I've already started the code. πŸ˜ƒ

idle owl
#

@slender iron We figured out the NeoPixel issue, so you can leave that one out.

#

@slender iron Well you were there for that anyway. I verified the issue.

slender iron
#

yup yup, will look at the cplay docs

idle owl
#

@slender iron I think it's probably some missing space or blank line in the formatting of the new API we added. That's my guess anyway.

slender iron
#

yeah, seems likely

#

or a new import

idle owl
#

I looked at the formatting in my API again, and it's not exactly the same as the others.

#

That's why I suspected that first.

slender iron
#

have you run sphinx locally at all?

idle owl
#

Nope, I didn't even know you could

slender iron
#

I'm trying to remember if I wrote up how to do it

#

I don't think I did

#

@opal elk @meager fog is reviewing your guide now

#

@idle owl you free for a bit? I can help you get setup with sphinx

idle owl
#

@slender iron My friend who just bought the CPX just got here to get started learning how to use it πŸ˜„

opal elk
#

yayyyy!

slender iron
#

nice @idle owl !

#

@opal elk turns out I could have reviewed it myself...

manic glacierBOT
slender iron
opal elk
#

yay, you chose a better image πŸ˜„

#

look ma, I'm famous

slender iron
#

@meager fog polished it up. I just blogged it up

opal elk
#

I mean I knew my image was terrible. I didn't know if there was a place to get stock ones

slender iron
#

You can always grab them from the store

vague monolith
#

Which python files is circuitpython looking for to run? main.py or code.py or both?

#

I understand there is also boot.py for setting up on boot.

manic glacierBOT
#
[adafruit/circuitpython] New tag created: 3\.0\.0\-alpha\.0
floral dagger
#

@vague monolith I believe either will work. I have been using main myself.

vague monolith
#

As have I, I also found an easy way to corrupt the main.py file blanking it out. Not sure yet if it's a filesystem bug or circuitpython related.

tulip sleet
#

@vague monolith It's not hard to corrupt the filesystem, especially on Windows. After you write a file, do an "Eject" or "Safe Removal". Otherwise it can take up to 90 seconds for all the changes to be written to CIRCUITPY.

#

@vague monolith @floral dagger File can be code.txt, code.py, main.py, main.txt. Searched for in that order. First one wins; rest are ignored. The .txt's are there in case someone is using NOTEPAD or similar and doesn't know how to change the file extensions.

floral dagger
#

Interesting @tulip sleet thanks. That means I can set up code.py for normal day to day on my main project. Then load a main.py file to test various side projects, and delete when done? Neat

vague monolith
#

@tulip sleet I'm using linux, it seems every once in awhile the auto reset after saving a file change to main.py, causes the unit to hang on boot. Pressing the reset button while it's hung 0's out the main.py file. I have to play with it more to get to the bottom of it.

floral dagger
#

Sorry. Other way around

manic glacierBOT
tulip sleet
#

@vague monolith Linux also delays writes to the filesystem, though not for as long as Windows. On Linux, just type sync after you edit or copy a file, and it will write out the rest of the changes. In general, don't press the reset button or unplug/plug if you can help it.

vague monolith
#

@tulip sleet , I'm aware of sync just didn't have time to pin down the source of the issue as it only happened twice. I'll mess with it more, if I notice it again.

tulip sleet
#

It's a nuisance. We are thinking of adding helpers to some editors to make sure the filesystem is sync'd after a write to CIRCUITPY.

#

It is hard or impossible from the CircuitPython side to know when the writes are all done.

vague monolith
#

@tulip sleet , I don't think it's a sync issue since the unit is being reset automagically by whatever is monitoring the file system. It occurs when i'm monitoring the serial connection(screen), editing files and letting it auto reboot. It hangs randomly, and that's when the issue occurs. Like I say I didn't have time to repeat it. I'll see if I get more time if I can trace it down.

tulip sleet
#

@vague monolith The problem is that some of the data is written, but not all of it. In general the file data is written promptly, but the metadata that says which blocks in the filesystem are in use is written 10-20 seconds later. So CPy sees a change to a file, waits 500mscs, and then auto-reloads. But if the metadata is delayed, then it will read a broken file. If you wait a few tens of seconds, you will see it auto-reload again. For instance, if a file is one block long, and then becomes two blocks long, the new file data will be there, but the filesystem will think it's only one block long until the later metadata is written.

vague monolith
#

Makes sense and sounds like what I was experiencing with the multiple blocks.

idle owl
#

My friend just left, she's so excited! I'm so proud of her! She picked up on MakeCode quick. She's going to come over again tomorrow or the next day to keep learning, and she can't wait to get home and play with it some more tonight. She loves her CPX. So excited for her!

tulip sleet
umbral dagger
#

With 3-wide font.

idle owl
#

@umbral dagger Looks great!

umbral dagger
#

@idle owl Thanks.

formal plover
#

Ooo I like that font @umbral dagger! Great job!

slender iron
idle owl
#

@slender iron Nice!

umbral dagger
#

@formal plover I’m happy with most of it (15 minutes effort... took longer to type in the data), but a few are β€œugh”. M, W, N are the worst IMO.

formal plover
#

@umbral dagger Gotcha. Well at least the worst letters aren't all vowels. haha

slender iron
#

@tulip sleet @timber lion I'm gonna release a new bundle

#

actaully, maybe I should wait for the tuple fix

tulip sleet
#

@slender iron Maybe we should fix the neopixel library now and include it instead of waiting for Jerry?

slender iron
#

haha, thats the other option

tulip sleet
#

Go ahead and fix it. I don't think he'll mind!

slender iron
#

he should be back tomorrow

#

I'm lazy though

tulip sleet
#

We can approve the pull request and then fix it up.

slender iron
#

actually, I'll do the time sleep stuff instead

formal plover
#

@slender iron I see what you did there

#

lol

tulip sleet
#

@slender iron I can do neopixel if you want to make a release

slender iron
#

nah, I'll wait

tulip sleet
#

okee

manic glacierBOT
slender iron
#

fixing the audioio crash would be good too

sick creek
#

@slender iron it's weird

#

audio and io

slender iron
#

yeah, I know

tulip sleet
#

@slender iron That stuff is high priority. I fell asleep at my desk after writing that last email, which is highly unusual, so I may not get to it today, but it's first on the agenda for tomorrow.

slender iron
#

kk. sleep is top priority!

tulip sleet
#

There is a stable branch in adafruit/circuitpython. Did you make that? We made a 2.x, but maybe it should be stable instead? I'm thinking about the .travis.yml file in the libraries which uses the stable branch to build mpy-cross. I'm not thinking so clearly.

formal plover
#

Somebody send @tulip sleet a nap

slender iron
#

we can change stable to 2.x

#

yeah, @tulip sleet take a break

#

we had a busy weekend

tulip sleet
#

I took a nap but was interrupted

tidal kiln
#

disable wdt?

tulip sleet
#

2.x will change to 3.x later, so I wanted a "stable" or "release" branch or tag for the .travis.yml checkout

slender iron
#

lol

#

right, that makes sense

tulip sleet
#

@tidal kiln lol - the housecleaner showed up

formal plover
#

@tulip sleet My cat is usually the one who interrupts my naps

idle owl
#

@formal plover It'll be a tiny human soon!

formal plover
#

lololol @idle owl πŸ‘Ά

#

Where's the sooooon meme?

sick creek
#

@formal plover what? there is the clowns what scare people again

tulip sleet
#

@formal plover πŸ”œ πŸ‘Ά

#

you can type into the emoticons popup over there and it will search! βž‘β¬‡

formal plover
#

Haha yeah, it's pretty slick

manic glacierBOT
drowsy geyser
#

So, ah, is the micropython uart support not ported yet? If not, it will make the GPS driver more problematic. πŸ˜ƒ

idle owl
#

@slender iron Is there a reasonable way to make an mpy file on Mac? The only writeup I've seen involved some complicated looking things on Windows.

slender iron
#

@drowsy geyser there is UART support

#

@idle owl you'll need to be able to build circuitpython for it

idle owl
#

Oi. Ok πŸ˜ƒ

slender iron
#

what do you need it for?

drowsy geyser
#

@slender iron Me, or @idle owl ?

slender iron
#

@idle owl

drowsy geyser
#

Ok.

#

goes back to looking for the uart support.

formal plover
#

@drowsy geyser RTFM. lolololol

idle owl
#

Trying to adapt Tony D's mega demo code. That was one option, and now I'm not heading down that path.

slender iron
#

@drowsy geyser in busio

drowsy geyser
#

Errr?

#

Okie dokie. Was RTFSing and didn't see it obviously.

#

@formal plover Thank you for your support. πŸ˜ƒ

formal plover
#

@drowsy geyser hahah what else are friends for?

drowsy geyser
#

Thanks, @slender iron. Off to RTFM now. πŸ˜ƒ

slender iron
#

πŸ˜ƒ

formal plover
#

Since the last I2C project was an epic fail

umbral dagger
#

I added "image" support:

             "..XXXXXXX...",
             "....XXXXXXX.",
             ".....XXXXXXX",
             "....XXXXXXX.",
             "..XXXXXXX..."]

display_image(starfleet, (0x20, 0x20, 0x00))```
slender iron
formal plover
#

@slender iron I'll see myself out

#

@drowsy geyser will not let me live this one down

drowsy geyser
#

Hahahahaha, sure I will. πŸ˜ƒ

formal plover
#

@slender iron Just trying to find something to work on that's not like crazy difficult.

#

I was digging through my order history because I have so many parts I don't know which Feather Wings I have haha. Then I saw that and ADD kicked in.

slender iron
#

πŸ˜ƒ

#

can you find new docs for that?

drowsy geyser
#

@formal plover I literally have a gallon ZipLoc bag full of Feathers and Wings....

slender iron
#

is it wise to be doing USB hacking right before show and tell?

#

my usb webcam could be a casualty

sick creek
#

control your webcam using circuitpython

tulip sleet
#

@idle owl Scott uses Mac natively as a build environment; he installs what he needs using brew. I'm not familiar with that. You could also make an Ubuntu VM with VirtualBox, and it's not hard to get a build environment going there. Or you follow Tony's guide for vagrant: https://learn.adafruit.com/micropython-for-samd21/build-firmware. @slender iron could also just drop you a pre-built Mac mpy-cross. Maybe we should put Linux and Mac versions of mpy-cross in the release ...

idle owl
#

@tulip sleet I need to take a different route with what I'm doing anyway for this particular problem. However, this was something I was wondering about previously as well.

#

@tulip sleet That's the guide I saw about it too. It was more than I wanted to do for the issue I was having at the time.

sick creek
#

@tulip sleet homebrew on mac?

tulip sleet
#

@idle owl I started with vagrant on Windows but ran into a bunch of issues. I run Ubuntu VM's and native machines all the time, so that was easier to get going. Right now I develop on a native Ubuntu machine (the machine is dual-boot with Windows and has two SSD's, one for each). And I have an assortment of old and new laptops and other machines with Ubuntu and Windows. Just ping me sometime if/when you're ready to try something.

idle owl
#

@sick creek Oh yeah, it's great.

#

@tulip sleet I will! Thank you!

sick creek
#

@idle owl it was on AML Workbench what needed to do before using it was homebrew

idle owl
#

@sick creek I only found out about it in the last few months.

sick creek
#

in Windows you need just download and install using it from msi but in mac need to download 3 files i think and homebrew before install it

#

before using machine learning as write python and control your circuitpython board

idle owl
#

Yeah I installed it once I started using Python for the first time. It was for a RaspberryPi camera project I started.

sick creek
#

so multistep process

idle owl
#

I think it was, but it wasn't difficult. Just a few things and then I had brew.

#

I don't remember specifically.

sick creek
umbral dagger
#
        "..G.....W...",
        "..G..W....W.",
        ".GGG...W....",
        "GGGGG.......",
        "WWWWWWWWWWWW"]

xmas_colours = {'W': (0x20, 0x20, 0x20),
                'G': (0x00, 0x20, 0x00),
                'Y': (0x20, 0x20, 0x00)}

display_coloured_image(xmas, xmas_colours)```
tawny creek
#

@umbral dagger cool! (and festive!)

umbral dagger
vague monolith
#

What is the giant set of eyeballs?

#

is/are

umbral dagger
#

Ok. One more for tonight.

#
                'W': (0xFF, 0xFF, 0xFF),
                'G': (0x00, 0x20, 0x00),
                'y': (0x20, 0x20, 0x00),
                'Y': (0xFF, 0xFF, 0x00)}

xmas_animation = [["..y.w......w",
                   "..G.....w...",
                   "..G..w....w.",
                   ".GGG...w....",
                   "GGGGG.......",
                   "wwwwwwwwwwww"],
                  ["..y.........",
                   "..G.W......w",
                   "..G.....w...",
                   ".GGG.w....W.",
                   "GGGGG..w....",
                   "wwwwwwwwwwww"],
                  ["..Y....W....",
                   "..G.........",
                   "..G.w......w",
                   ".GGG....w...",
                   "GGGGGw....W.",
                   "wwwwwwwwwwww"],
                  ["..y..w....w.",
                   "..G....W....",
                   "..G.........",
                   ".GGGW......w",
                   "GGGGG...w...",
                   "wwwwwwwwwwww"],
                  ["..Y.....w...",
                   "..G..w....W.",
                   "..G....w....",
                   ".GGG........",
                   "GGGGG......W",
                   "wwwwwwwwwwww"]]

display_animation(xmas_animation, xmas_colours, 0.05)```
slender iron
#

looks good @umbral dagger !

#

you should write up a guide

umbral dagger
#

I should. The repo readme has docs.

slender iron
#

perfect! email me a link and I'll look tomorrow

umbral dagger
#

@slender iron Just rough docs for now. I'll give some thought to making it better and/or more complete.

slender iron
#

sounds good!

umbral dagger
#

@slender iron Are there author guidelines anywhere?

slender iron
#

just mimic what you see

#

lots of screenshots and pictures

umbral dagger
#

@slender iron Sounds good.

slender iron
#

thanks @umbral dagger

manic glacierBOT
tulip sleet
#

@slender iron I'm gonna rename branch 2.x to stable, if that's OK by you. When master 3.0.0 is done, we'll advance stable to that. Etc.

slender iron
#

@tulip sleet don't rename it, just have two branches

#

that are equivalent

tulip sleet
#

wouldn't we have to keep both up-to-date by merges, commits, etc, or can I add a name to a branch?

slender iron
#

yeah, thats a good point

tulip sleet
#

doesn't seem like you can give a branch a second name. I was worried that stable was a micropython-ism, but it looks like you created that name

slender iron
#

yeah, I created it

#

I like have 2.x though too

#

oh well

tulip sleet
#

I was provoked to do this by the .travis.yml files in the libraries that want the latest released version, and by the stable branch in the readthedocs. But I like 2.x in readthedocs better, kind of like how the CPython docs have pathnames with the version. Maybe stable or whatever could be a moving-target tag name. I can study up on this some more and see what other people do.

slender iron
#

or we add logic to parse all of the tags for the #.x pattern

tulip sleet
#

Could do that, but having a fixed name for latest-release makes it easy. I'll read up and report back on other people's use cases. It's not urgent to change now.

slender iron
#

ok thanks!

drowsy geyser
#

Oh, good heavens, it's a pain to write a NMEA parser from scratch!

#

(Context: CircuitPython Ulitmate GPS driver.)

sick creek
#

ultimate GPS what rule the world

#

right?

opal elk
#

@drowsy geyser can you copy/steal from an arduino implementation?

#

it seems like it's mostly a regex parser, though maybe import re doesn't work

tidal kiln
marble talon
#

Ok, so I mentioned this the other day but now I have some new info, so maybe someone can help? I have a Feather M0 Express and I was doing CircuitPython and ran into some limitations (no NeopixelDMA) so decided to try Arduino IDE. I was working on my program and had it semi-working when I saw the drive unmount pop-up and Arduino IDE lost track of the port (as did OS X, El Capitan). No combination of board resets and mac restarts is getting the board recognized. I can boot it into FEATHERBOOT mode and drop a new uf2 file on it but if I eject it immediately pops back up as FEATHERBOOT. I've tried it on my other other laptop which I just upgraded with High Sierra as well as a Linux box with CentOS. Same deal. So, how can I get my board back in a useable state? The USB circuitry is working or it wouldn't show up as FEATHERBOOT but I can't get it to show up as a flash drive.

idle owl
#

@marble talon Did you try the flash eraser uf2 bfore loading a new uf2?

marble talon
#

@idle owl No, tell me about that?

idle owl
#

Download the right one from here:

#

Doubletap to get into FEATHERBOOT. Drop that on. It should do some blue lights, and then green I think, and then you doubletap again to get it back to FEATHERBOOT, and then load a new uf2 firmware or code file onto it

#

It will erase everything though.

marble talon
#

Strangely, it's been going right into FEATHERBOOT without the double tap.

idle owl
#

I seem to remember thinking you had data on there you wanted to keep.

marble talon
#

Yeah, I didn't want to lose my code but don't have a choice. That's the problem with editing in place!

idle owl
#

It's true... I manage to remember to keep backing it up 90% of the time, and then it's always when I get in the zone on the hardest of the code that I forget and lose the most difficult part I wrote. I totally understand.

marble talon
#

I should have made a copy when I switched to Arduino anyway. I'm not entirely certain how the Express knows which code to run?

idle owl
#

It runs code.py, code.txt, main.py, and main.txt by default on booting up.

#

So you edit those files locally (but be sure to backup! .. oi.) and it alters the code live.

#

Or rather runs the altered code on save, etc.

#

If you're in the serial REPL, you'll see it reload every time you save, and then run the new code immediately.

#

Wait. No that's what CircuitPython does. I'm not sure how Arduino knows....

#

I misread what you were asking, heh.

#

I need to run for a half hour or so. I'll be back after that.

marble talon
#

Yeah, I was wondering how it picked between Arduino code and CircuitPython code.

#

Doesn't look like erase is working--neopixel never turns blue...

#

@idle owl Hey, so it's not showing up as a flash drive but my port is back, so I'm back in business with Arduino IDE... Β―(ツ)/Β―

slender iron
#

@marble talon arduino code replaces the circuitpython core. the file system on express boards should be preserved because its on separate flash

#

you won't get a CIRCUITPY drive if you load an arduino sketch on it because it replaces circuitpython which provides the CIRCUITPY drive

drowsy geyser
#

@opal elk and @tidal kiln Starting from scratch allows me to use a more Pythonic approach than would scavenging C++ code! For example, I can use a dict to map GP codes (e.g., GPGAA) in the NMEA sentences to funcitons, then execute the functions dynamically.

tidal kiln
#

yep

opal elk
#

got it!

#

are NMEA codes always the same length?

drowsy geyser
#

@opal elk The identifiers do, yes. They are GP followed by a three letter identifier.

opal elk
#

okay, that makes it much easier

drowsy geyser
#

Yes it does! πŸ˜ƒ

opal elk
#

though I guess for i in range(len(sentence)): if not sentence[i].isnumeric() return i isn't too hard either

#

I'm mostly a 2.7 person so using range() over xrange() is still a little weird

idle owl
#

@marble talon I'm glad it helped at least a bit!

drowsy geyser
#

@opal elk Most of my annoyance is in unpacking non-standard data encoding. For example, 4708.223 is 47 degrees, 08.223 minutes. You have to write a method like nmea2dd(encodedData) that does the 47 + (08.233/60.0) to convert to decimal degrees. Not insurmountable, of course, but lots of detail to account for before you can even get a test framework in place.

opal elk
#

ah, yeah

marble talon
#

@slender iron Good to know. So a reflash should have gotten me back to CircuitPython, though, correct?

idle owl
#

@marble talon The flash eraser clears it. Doubletap to FEATHERBOOT after the flash eraser, load the CircuitPython uf2, and then you'd have CP.

#

In theory πŸ˜ƒ

marble talon
#

Yeah, but since the neopixel never went blue and there was no pause I don't think the flash worked. If I ever try to take the board back to CircuitPython I might be here again asking similar questions! But I'm unblocked for now for this project and still have another Express board to play with later. Onward and upward!

idle owl
#

Ah, I see. Ok. Good to know you're moving then! We'll be here for questions πŸ˜ƒ

marble talon
#

Much appreciated!

slender iron
#

@marble talon yeah, after arduino you need to reflash circuitpython

marble talon
#

That's what I tried, but I don't think it worked.

tidal kiln
#

@marble talon does double tapping to get to FEATHERBOOT work?

slender iron
#

weird @marble talon

hollow tartan
#

Hello, everyone. So the buzz is that esp8266 is supposed to show up in windows as a flash drive with some files like code.py, code.txt, main.py, and main.txt . I do not see it on my Windows 7 pro. I have seen the files list by using REPL's >>>os.listdir(). Any clairity offered will be happily accepted.

#

Goin' to the Maker Space in Marietta, GA this weekend. HooRay!

#

Hoping to get some Laser Cut Beam Chariot Critter parts and maybe my first 3D print ever. Target: RPi Zero cases and esp8266 cases.

marble talon
#

@tidal kiln It Actually goes directly into FEATHERBOOT when I plug in the USB. When I eject it in Finder it immediately reappears as FEATHERBOOT

floral dagger
#

@hollow tartan I don't think the ESP8266 can do that. At least, I haven't seen it happen yet on mine

opal elk
#

@hollow tartan how do you connect to the REPL?

idle owl
#

Gah I figured out my code!!

hollow tartan
#

@floral dagger even with mircoPython or CircuitPython loaded?

floral dagger
#

@hollow tartan not that I have found, no

hollow tartan
#

using teraTerm.

floral dagger
#

Hooray! @idle owl

idle owl
#

Three days I've been trying to adapt .. I think the terminology is adapt functional code, making it more procedural and less object oriented.

slender iron
#

@hollow tartan @floral dagger is correct. only M0s can do the USB drive. the esp8266 doesn't have built in USB support

idle owl
#

@floral dagger Thank you πŸ˜„

tulip sleet
#

@slender iron I read about some git workflows, and found a lot of dogma. "git flow", "github flow", "oneflow", "threeflow", etc. You could Google all that if you want, but it may not be worth it. The main q is how to treat master: whether as the latest stable release, a dev branch that's always deployable, etc. Most not too relevant to our situation, though it was somewhat interesting to read. It's just a matter of style and what's better for continous integration and various release frequencies.

We can just keep our current situation: 2.x has fixes and enhancements to the 2.x line. master is dev for 3.0. stable should be the latest stable release: right now 2.0.0. It should always be able to be fast-forward-merged from 2.x to the release. I'll fix up stable to be that, or maybe you already have (I haven't checked).

slender iron
#

sounds good @tulip sleet

half sedge
#

@hollow tartan The "drive" Circuit Python trick does not work legacy board. You need an UF2 boot I guess. So SAMD is not sufficient, but you don't need Express a Trinked M0 and Gemma M0 also expose that drive. The nice part is that you only need an editor on the host. Pushing file on an ESP8266 is/was still difficult.

slender iron
#

@half sedge thats true for the boot drive. legacy M0 boards like the adalogger do show a CIRCUITPY drive

opal elk
#

oh, right!

#

that doesn't happen for the feather

#

I can't believe I didn't think of that

#

you have to use ampy or some other way to upload code

#

sorry 😦

half sedge
#

So M0 and from Adafruit is the only requirement?

slender iron
#

@half sedge if you manage to load CircuitPython on a non-Adafruit M0 you'll also get the drive

half sedge
#

@slender iron Let's say it does not exist yet... the attack of the clone is to be expected sooner or later.

#

So UF2 mean easy to flash a new version of Circuit Python.

slender iron
#

good luck keeping up πŸ˜ƒ

#

correct! UF2 is the BOOT drive stuff

half sedge
#

How can we know if someone is already working on porting some I2C device to Circuit Python... to avoid double work?

#

May I attract your attention to this: https://talk.pokitto.com/t/first-micropython-test/382/8

idle owl
#

@half sedge I would suggest asking here (which you've done), checking the issues list on Github and verifiying that it's not in the current CircuitPython bundle.

#

@half sedge That chip is on my radar, but I've got a lot lined up before I can get to it.

half sedge
#

Somebody try to run MicroPython on a M0 chip device that might be using the same chip as Adafruit CircuitPython stuff.

slender iron
#

@half sedge please file an issue on circuitpython with the driver label

tough flax
#

Hi folks, I've been out of the loop recently. Can I get an update on HID over USB and HID over BLE? Specifically, I'd like to know if the Trinket m0 or Gemma M0 can use those now if we add a BLE breakout?

half sedge
#

@slender iron in the Bundle or in the driver?

#

Bundle or kernel (or whatever the name)

slender iron
#

@tough flax only USB HID is working. we haven't started bluetooth work

tough flax
#

Ok, thanks Scott

manic glacierBOT
half sedge
#

About HID over USB. I had a lot of fun with a Gemma M0 pressing SPACE and BACKSPACE in loop. In chat room, this make it look like you are typing a long message... However, when trying to play with HID over USB on my MAC, I get a message from OSX that say it does not recognise the keyboad and ask to press on a specific key. Is there a trick to keep the MAC happy and accept a Circuit Python as a keyboard without too much annoyance (this is not Circuit Python specific, it is more a MAC issue).

tough flax
#

@slender iron will the NRF52 Feather support CP? I didn't think it had the memory necesssary?

slender iron
#

@half sedge I always just close out of that dialog

#

@tough flax yes but it won't have the USB support

tough flax
#

??I thought CP kinda required the USB storage device stuff?

slender iron
#

no, its just a nicety

#

(ESP8266 doesn't do it either)

tough flax
#

Ok. How do you update the code?

#

Feel free to refer me to a guide

idle owl
#

@slender iron When you have time, should we try to get Sphinx setup?

slender iron
#

@tough flax its not supported at all now. sit tight

tough flax
#

Gotcha

slender iron
#

@idle owl @formal plover was working on it yesterday

idle owl
#

@slender iron Yeah I remember that. You had mentioned walking me through it yesterday, but my friend showed up. So I wasn't sure if you still wanted to do that.

tough flax
#

Friendly reminder (:-) When a controller w/BLE HID & USB HID that is USB Storage programmable exists, I have about a dozen AT projects that will click into place. I'm probably up for purchasing hardware, pizza, and beer to make it happen πŸ˜‰

slender iron
tough flax
#

Can we do it on two chips w/Trinket M0 & BLE breakout?

slender iron
#

I don't know

tough flax
#

Ok, thanks. Don't mean to sound impatient, just hate waiting for manufacturers on this kind of stuff πŸ˜ƒ

slender iron
#

its not a high priority for us. sorry

tulip sleet
#

@half sedge I asked a Mac user about that, and the person said it the query about the keyboard type only happened the first time they plugged it into a particular port. Does it happen every time? ... Yes, it should identify itself better, though. You can file an issue here, and I'll investigate at some point if there's a fix: https://github.com/adafruit/circuitpython (it's really a CircuitPython issue at base; the library is not the problem)

half sedge
#

I had it multiple times... but likely with multiple board. Or I had it once, but I had it with other device of that kind. But yes, it might be that once you skip it, it does not come back.

tulip sleet
#

@tough flax You could probably work up a driver for the https://www.adafruit.com/product/2633. But the adafruit_hid library uses the HID devices supplied by CircuitPython, so if you want the functionality of that library, the low-level stuff would also have to change.

tough flax
#

Ok, I have a BLE breakout board (I think its the UART version) - if it's going to be a while I'll write up my first CP library by ripping off their stuff. I only need KBD control, no joystick/mouse (although I'd use Mouse later).

tulip sleet
#

@tough flax I don't think it would be that hard, since the keyboard presses are just AT commands: AT+BLEKEYBOARD or AT+BLEKEYBOARDCODE for lower-level keypress/release.

tough flax
#

Right. I'll take a look this weekend

tulip sleet
#

@slender iron I ordered parts for a Rosie East. I may try to boot the RPi from a USB hard drive, or I may try a little Dell box I have that's NUC-sized. I looked into SLC uSD cards, which are supposed to last a lot longer, but they are quite expensive (so-called "industrial" SD cards). I'll let you know when I have something sort of working (or not).

slender iron
#

sounds good @tulip sleet !

manic glacierBOT
#

For reference, *Python ressources that can be usefull

Some very old attempt in Micro Python I made a year ago: https://gist.github.com/dglaude/1ab912dd060f22e54aa9dc083b058957

Some GPL code for plain Python found on Github for a simple version of the chip (9930 vs 9960):
https://github.com/Depaulicious/python-apds9930
+
https://gist.github.com/Depaulicious/08689d6d1e58f7700e4a

Some Python project that failed to use apds9960 because of missing library:
https://www.hackster.io/bast...

formal plover
#

@slender iron & @idle owl, I just walked in the door. What's up?

idle owl
#

@formal plover We were talking about Sphinx.

formal plover
#

And yes I got sphinx running, but I have to uninstall it and reinstall. All the guides available are outdated. All the prompts and setup is different

#

@slender iron I think we lost our Nitro services. Can't use the custom Adafruit Emojis

slender iron
formal plover
#

Back now, weird

#

Still gone in DMs

#

I don't really care that much, just pointing it out.

#

bigger fish to fry

slender iron
#

DMs happen outside the server boundary I think

formal plover
#

Must be

slender iron
#

@idle owl and @formal plover I can help with sphinx after I eat some lunch

formal plover
#

Sounds good @slender iron

idle owl
#

@slender iron I will take you up on that.

slender iron
#

k, give me 30 min or so

formal plover
#

No worries or rush

slender iron
#

ok back now

drowsy geyser
#

Lo, @timber lion diagnosed the Arc Reactor problem with a mere description! RGB NeoPixel ring arrived to replace RGBW, and magically everything works!

#

@idle owl

manic glacierBOT
#

I was just comparing Circuitpython ustruct with Python 3.5.2 struct and ran the follow tests. In Python 3.5.2, the @lLlL pack format and the lLlL format produce 8-byte integers while <iLIL and >iLiL format produces 4-byte integers. Circuitpython produces 4-byte integer in all cases. I think that the native size of long on my Ubuntu machine must be 8-byte integers therefore this difference should be allowed.

Mike

struct.pack("@lLlL",1,2,3,4)
b'\x01\x00\x00\x00\x00\x00\x00\x00\x0...

idle owl
#

@drowsy geyser Excellent! I verified it as well - I can get the neopixel ring to work with code from scratch, but not with the prebuilt demo code that talks to RGB.

manic glacierBOT
tulip sleet
#

@slender iron on adafruit/circuitpython stable branch, did this:

git push -f

So now stable is set to the 2.0.0 tag (it was at 1.0.0 before). Whenever we make a new release, we can do something similar.

slender iron
#

kk

#

I was thinking we could have a specific tag or branch call "mpy-builder" or something

#

to specifically be the version we build against

tulip sleet
#

That would be OK. It wouldn't necessarily change that much. Does the stable branch influence the readthedocs stable/ tree? Is it going to rebuild automatically?

#

Should we have a 1.0.0/ tree as well in rtd?

slender iron
#

I left stable there and it should rebuild

#

I prefer 1.x and 2.x going forwards

tulip sleet
#

so we could add 1.x and 2.x to the rtd builds, and give out links to those in preference

slender iron
#

ya

manic glacierBOT
tulip sleet
#

I can add those; I think I have the right privs. We have to go out in about 20 mins. Will prob do later tonight.

manic glacierBOT
idle owl
#

@slender iron I can't picture what the start_tone and stop_tone code would look like. In my mind I'm writing it like circuit.play_tone(frequency, input_trigger) with the trigger being a button or touchpad, and the tone plays for the duration of the trigger event. I can't figure out how start_tone and stop_tone play into that format.

#

@slender iron Can you give me an example of how you're seeing it?

slender iron
#

sure!

#
if trigger:
  circuit.start_tone(frequency)
else:
  circuit.stop_tone()
idle owl
#

It's so obvious. I was thinking I needed to cram every one of these API options into one line. So I've been trying to work within that this entire time.

slender iron
#

πŸ˜ƒ

idle owl
#

@slender iron Thank you πŸ˜ƒ

slender iron
#

its more like what you did originally

idle owl
#

That it is.

#

Trying to get it into one line wasn't working out well

vague monolith
#

What would be the best way to implement a color chooser? I was going to have a list of colors for neopixels and then when a button is pressed select one of the colors from the list. When the button is pressed again select the next color etc... Would you use itertools.cycle() Or is there some other obvious way I'm missing. I also can't wrap my head on a way to do it without a global variable

slender iron
#

@vague monolith you could adapt tony's wheel code to only change when a button is pressed rather than time

vague monolith
#

@slender iron Wheel code?

slender iron
#

@idle owl do you have the color wheel code?

#

it cycles the color over time

idle owl
#

@slender iron I do.

#

@slender iron Isn't it the same as the demo code on Trinket and Gemma? It looks the same to me...

slender iron
#

probably

#

asking for @vague monolith

idle owl
#

@slender iron Got it, I was just making sure I was understanding the question.

#
    # Color wheel function from neopixel strandtest.  This takes in a value
    # from 0 to 255 and outputs a smoothly changing rainbow hue.  Both 0 and
    # 255 values go to red so animations can happen without any noticeable
    # break in color.
    if pos < 85:
        return (int(pos*3), int(255 - (pos*3)), 0)
    elif pos < 170:
        pos -= 85
        return (int(255 - (pos*3)), 0, int(pos*3))
    else:
        pos -= 170
        return (0, int(pos*3), int(255 - pos*3))```
slender iron
#

@vague monolith you could have a number you increase when the button is pressed and use the color from the above function

vague monolith
#

I was asking more about.

colors = ((0,0,10), (0,10,0), (10,0,0))
iter_colors = itertools.cycle(colors)

while True:
    if button.value:
                            np.fill(next(iter_colors)
#

A way in which it would keep track of the current selected color form the tuple or list and each button press would select the next predefined color... Just curious if there was a better way.

#

Or if I was doing something wrong doing it this way.

sick creek
#

@slender iron so rosie is build with python?

formal plover
#

@vague monolith You want to cycle through colors basically?

vague monolith
#

@formal plover yes

slender iron
#

that makes sense. you could also just track an index

vague monolith
#

@formal plover A set group of colors

formal plover
#

That shouldn't be too difficult to scheme up.

vague monolith
#

I just alway question that I'm donig something the best way after I implement it.

formal plover
#

@vague monolith That's a good practice

#

Making things more efficient and whatnot

slender iron
#

I wouldn't use itertools. I'd just track a count and wrap it using mod (%)

vague monolith
#

I guess a generator would be more effecient.

#

Ahh but stop iteration would be raised.

sick creek
#

I was thinking as Rosie have that linux rasbi guide so

formal plover
sick creek
#

I try to think if the python is good for the test as i dont put linux to my raspi3

#

ok it should work

vague monolith
#

@sick creek What?

sick creek
#

I am going to show you guys Rosie-CI how happy she is with the Fluent UI

#

basically I put rocie-ci to nanocontainer what go to raspi3 and not run in linux but run it in windows

vague monolith
#

Ahh

manic glacierBOT
drowsy geyser
#

Ok, @formal plover , I imagine I'll be instructed to read the manual, but I've been looking at ReadTheDocs and can't seem to locate this bit of information. I'm trying to write the rocket flight control software in CircuitPython, but I'm a bit stuck on the status LEDs. I have an eight-NeoPixel stick for my display, but I can't figure out how to address an individual pixel. For example, I set all the colors to blue initially to show the pixels are working. Then, as a subsystem checks out, I change the associated pixel to green. If there's a problem, I want that pixel to be red. If the altimeter fails to initialize, the first three pixels should be green, the fourth red, and the rest blue..... But I can't figure out how to address individual NeoPixels....

formal plover
#

@drowsy geyser oh yeah, this is definitely some read the manual stuff. Haha just kidding. I believe @idle owl and I were just talking about this a day or two ago. I have a NeoPixel ring, I'm assuming addressing individual NeoPixels is the same as your stick. I won't be able to check it out for a few days however. Kattni might be available though.

solar whale
#

@drowsy geyser ```
import board
import neopixel

pixels = neopixel.NeoPixel(board.NEOPIXEL, 1)
pixels[0] = (10, 0, 0)``` here 1 for 1 pixel you will hav e more...

#

pixelsl[n] is for LED n

drowsy geyser
#

@formal plover No rush. It's payday, so I have until Tuesday before the rest of the flight controller arrives from Adafruit. πŸ˜ƒ

drowsy geyser
#

AHHH Magical! It works on the stick! I was indexing pixels incorrectly when I guessed what it would look like!

#

I was thinking it was analogous to the Arduino addressing, so I was trying variants of pixels.fill(2, (255,0,0))

#

The way it actually works is much cleaner.

solar whale
manic glacierBOT
#

I have started on a proof-of-concept module here: https://github.com/pewpew-game/circuitpython/tree/buttons

Turns out we don't need the interrupts, since we need a timer for de-bouncing anyways, we can poll in that timer. For now I put the functions in the samd module, because right now the code is specific to that platform. Of course ultimately it would go to its own module.

There are two functions: setup_buttons takes up to eight DigitalInOut objects, and configures CircuitPytho...

formal plover
#

@solar whale returns! Just in the nick of time!

#

Well there ya go @drowsy geyser glad to hear you're all set.

#

One of the many reasons I love this community. There's always multiple people who can help.

#

I haven't seen many outstanding issues last longer than a day here.

manic glacierBOT
tulip sleet
#

@slender iron I had some questions about the lifetime of audio objects, especially that use DMA. Not sure what their state and the DMA state is when they are deinit'd. Trying to mark them as deinit'd in a clean way. Do you have time for an audio or video chat?

slender iron
#

in 20 minutes or so. finishing cereal now

tulip sleet
#

ok, tnx. ping me. That reminds me; I should eat lunch.

slender iron
#

kk, eat some lunch and then we can chat

manic glacierBOT
slender iron
#

@tulip sleet I'm ready. Lets chat whenever you are back from lunch.

marble talon
#

@tulip sleet Is it possible (or will it be) to play audio while doing something else in the main loop? I'm trying to do NeoPixels and audio at the same time and when my audio plays my neopixels turn off.

slender iron
#

@marble talon I think so. The audio should be playable in the background

tulip sleet
#

@marble talon They shouldn't turn off even if the audio is blocking. But the audio is not blocking. Could you post your code (could be an attachment if it's long; click the plus sign on the left)?

marble talon
tulip sleet
#

@marble talon do you mean all three pixels go dark when the audio is playing?

marble talon
#

Yes

tulip sleet
#

The loop will block while any audio file is playing due to to the while x.playing: pass

marble talon
#

Actually, I have a 4th that's not part of the code that stays on

#

Yeah, I grabbed that code from somewhere but wasn't certain of the purpose

tulip sleet
#

it loops until that audio file finishes. but that should not affect the neopixels. What board is this?

#

what version of CircuitPython are you using?

marble talon
#

Feather M0 Express

#

2.0.0

#

Yeah, removing that helps, though I do get some artifacts in my audio

#

And I can't explain all those 256s! Changed to 255s... πŸ˜„

tulip sleet
#

wait, do you mean they still go dark with 255? 256 is like 0

marble talon
#

No, no, they just weren't changing brightness. All good and wasn't really a factor. Hmmm. I don't think so, at least? Because the problem went away when I fixed the pass, but the 256 being like 0 would explain the darkness.

#

I think I need to play with it for a little bit now.

tulip sleet
#

it's only 8 bits, and that top bit will be dropped.

#

ok, well get back to us. The 256 didn't register the first time I looked at it. I think that's it.

marble talon
#

Yeah, I think I converted the wavs to 8 bit with sox. That was a week or two ago so I could be forgetting...

#

Either way, the pass definitely helps remove the artifacting so I may either have a delay or artifacts. I can probably put up with either in a pinch.

tulip sleet
#

the width of the wav's doesn't matter. It's that the color values range from 0 to 255. 256 is out of range and will wrap around.

marble talon
#

Yes, understood. I fixed that. It was just an oversight the first time, but it's possible it was messing with my observations.

tulip sleet
#

keep testing and let us know the outcome

marble talon
#

Really enjoying CircuitPython.

tulip sleet
#

@slender iron ok now?

slender iron
#

yup!

marble talon
#

@slender iron Will you be at GeekGirlCon?

slender iron
#

no, but @timber lion and @fierce oar will

marble talon
#

Yeah, @fierce oar was pitching it to me.

#

Looks like I've got this circuit working well enough to make a showing!

#

CircuitPython ended up working better than Arduino after all. I couldn't get SPIFlash to work from Arduino, which would mean no sound.

#

There's minor artifacts and I could do with a little more timing flexibility (but would need NeopixelDMA for that, I think) but that's my perfectionist side showing.

slender iron
#

I'm not surprised there are artifacts. All the audio stuff is very new

#

going for a run now! be back in an hour or so

marble talon
#

Enjoy!

slender iron
#

thanks! (going now that it stopped raining)

marble talon
#

Run while you can, then! Gonna be a long 9 months...

slender iron
#

totally πŸ˜ƒ

floral dagger
#

Is there a way to create multidimensional arrays in Python? I see how to do it with lists, but not arrays. I could make three arrays, but that just feels wrong πŸ˜ƒ

#

if it helps, I am trying to modify the motor.py file from the PCA9685 library to work better with the PCA9685 breakout. The one there seems to be designed for the featherwing motor controller version, and has fixed pins stored in a tuple to match the connections to the motor controller. The breakout doesn't need these, so I'm working on a way to edit them.

idle owl
#

@marble talon That's great to hear!

slender iron
#

@floral dagger no compact way that I know of

manic glacierBOT
manic glacierBOT
manic glacierBOT
manic glacierBOT
#

I have another difference in behavior Python 3.5.2 struct and CircuitPython 2.0 ustruct. See below the same code is on both systems. I was being a little tricky and and set the offset to 1 instead of 0. The Python 3.5.2 case placed the short int right at the offset=1, while CircuitPython placed it at offset=2! I am not sure why, but I am guessing the CircuitPython is forcing packing alignment from the beginning of the buffer,while Python 3.5.2 does the alignment starting at offset=1

**...

marble talon
#

@slender iron I was running into a limitation today where there isn't a time_ms, so I couldn't do subsecond delays. Would that be a feature request?

tulip sleet
#

@marble talon time.sleep() takes a float, so you can do fractions of a second. time.sleep(0.010) would sleep for 10 msecs.

marble talon
#

@tulip sleet Ah, is the leading 0 necessary? Maybe that's what I missed.

idle owl
#

@marble talon It's never played nice for me without the leading 0, so that's my assumption

tulip sleet
#

@marble talon .01, 0.01, and 0.010 are all the same number. I just did this in the REPL:

>>> .01
0.01
idle owl
#

Interesting.

marble talon
#

k

#

Oh, that's working nicely!

idle owl
#

Now I'm wondering what other thing was broken in my code that I blamed on the leading zero, lol. This isn't recent, but still.

tulip sleet
#

but otherwise it seems fine. I like adding leading zeros to make it easier to read.

idle owl
#

@tulip sleet I'm sure it was entirely me. I think I've only ever seen it written with a leading zero so I've assumed it was necessary and have continued to use one.

manic glacierBOT
#

That's not how you would use it in a usual program, though. Whether it's a menu, a game or a remote control device, you would have a main loop where you check all of the buttons at once on every frame, and decide what to do based on which buttons are pressed. Just think of a simple "press any key" check, to pick an extreme case. With your API, that would lead to a lot of boilerplate β€” either copy-pasted lines of code, or loops and lists everywhere. And of course all those objects consume extr...

manic glacierBOT
#

Thanks for the example links!

I was getting a bit distracted by the API. I want to focus on the need for a C module to do this instead. In my mind there are two main reasons to require a C module:

  1. Functionality is only available through a C API.
  2. Multiple steps must occur in a strictly timed sequence.

I don't believe 1 applies here because pins can be read through digitalio.DigitalInOut already and debounced in Python.

I'm also not sure 2 does either. The time between read...

#

I have tried a naive implementation of pew.keys() in Python, of course. The games were completely unplayable because button presses would be missed or registered several times.

The problem is that we can't poll the keys fast enough and still let the user code to run at the same time.

The basic feature required here is the ability to poll the keys at regular intervals (so that de-bouncing is consistent) and fast enough (so that we don't miss short button presses) while at the same tim...

#

In addition to adding the description from the issue here is more feedback.

What do you think about renaming this to gamepad? I'm worried that calling it buttons implies that you need it whenever using a button.

I also think it should be a proper object rather than using statically allocated memory. That gives more flexibility on its use going forwards without impacting the size of a global state. The only global state should be the object mechanics (functions and name dictionaries)...

manic glacierBOT
#

I also think it should be a proper object rather than using statically allocated memory. That gives more flexibility on its use going forwards without impacting the size of a global state. The only global state should be the object mechanics (functions and name dictionaries) plus a global for a pointer to a Gamepad object that tick updates.

Let me see if I understand this correctly. I would have a global (extern) pointer to a GamePad object, initialized to NULL, that would be checked...

#

I think we're close to the same page. gamepad.GamePad(b1, b2) would construct a python object and set the global state to it. I was thinking tick would then see if the gamepad global is null but its probably better to have it always call something in gamepad which can do a null check internally.

Although C doesn't have methods, its common for CircuitPython code to pass around a struct representing an object as the first argument similar to how Python passes self around.

sick creek
#

@slender iron rosie-ci seems not have logo?

manic glacierBOT
#

It seems natural that if you can enable something, you should also be able to disable it.

One use case that comes to mind is a common trick with sharing buttons with the SPI pins β€” the buttons are connected through resistors, so that when the CS pin is asserted, the pins are in output mode and SPI has control over the lines, but when we finish and deassert CS, we switch them back into input and read the button states from them. It's a bit of a hack, but surprisingly common, and it would be...

manic glacierBOT
manic glacierBOT
idle owl
#

Hah! start_tone and stop_tone work!

delicate pike
#

Hooray !!!

#

Lol

idle owl
#

@delicate pike Thanks πŸ˜ƒ It's been a few days of work.

delicate pike
#

Congratulations @idle owl πŸ˜„

idle owl
#

But.. Sphinx is unhappy with my unsigned short. At least I now know before I break the entire doc again.

manic glacierBOT
formal plover
#

@idle owl how bought that Sphinx eyyyyyyy

#

Lol

floral dagger
#

is "sleep" the only method working in time? I was looking through the readthedocs page (http://circuitpython.readthedocs.io/en/stable/docs/esp8266/quickref.html)
and this sample code does not seem to be working:


time.sleep(1)           # sleep for 1 second
time.sleep_ms(500)      # sleep for 500 milliseconds
time.sleep_us(10)       # sleep for 10 microseconds
start = time.ticks_ms() # get millisecond counter
delta = time.ticks_diff(time.ticks_ms(), start) # compute time difference```
idle owl
#

@formal plover Yuuuuuuuuup.... 😝

solar whale
#

@floral dagger what is not working?

floral dagger
#

@solar whale time.sleep(1) is the only thing that is working

solar whale
#

Hmm. I’ll take a look when I get back to my desk. Should be in the next hour. Do you get errors or just no delays?

floral dagger
#

i'll try one real quick and post the message...one sec

solar whale
#

On esp8266?

floral dagger
#

yes

#
>>> time.sleep_ms(500)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'sleep_ms'
>>> start = time.ticks_ms()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'ticks_ms'
>>> time.
__name__        monotonic       sleep           struct_time
>>> time.
``` that's what I get @solar whale
solar whale
#

Ok. I’ll check. On thought. Try import utime as time.

floral dagger
#

I tried that earlier. utime is not there

#

the message is ImportError: no module named 'utime'

solar whale
#

Ok good. I’ll be home in a bit to try it.

#

What CP release are you using?

floral dagger
#

ok, thanks. no hurry. In the meantime monotonic is working to get the time, and sleep(0.3) is working as well, so the functionality is there, just not the way I thought πŸ˜ƒ

#

latest stable, so 2.0 I believe

#

Adafruit CircuitPython 2.0.0 on 2017-09-12; ESP module with ESP8266

slender iron
#

@floral dagger ticks_ms is a non-standard thing that micropython introduced to the time module so its been removed.

floral dagger
#

@slender iron ah, ok thanks....what about ticks()

#

Was it all removed?

slender iron
#

yup, its also non-standard

#

time.monotonic is the alternative that matches CPython

#

we've debated adding a precise_time module but anything in the python VM is subject to timing variance

solar whale
#

@floral dagger - just looks like the esp8266 docs are a bit obsolete regarding time.

floral dagger
#

ah, ok. Thank you both.

solar whale
#

@slender iron Is there a description of the CP branches on github - or can you just give a quick explanatiion of them. Is stable == 2.x and master == 3.0.0-alpha?

slender iron
#

@solar whale yup, thats right

#

we have 1.x and 2.x for previous stable releases too

solar whale
#

OK - thanks

slender iron
#

np πŸ˜ƒ

floral dagger
#

woohoooo!!!!! encoder wheel is now being read! Now I can start working on motor calibration.

#

this is the code I am using for reading the sensing pin into an 8 bit number for debouncing. Not sure this is the best way. Is there a more appropriate way to keep the number at or below 8 bit when performing the bit shift?
cState = int(cState << 1 | encoderPin.value()) & (0xff)

royal ridge
#

Checking brain: time.monotonic is the (rough) equiv of arduino millis(), right?

floral dagger
#

best I can tell, it is fractional....so kinda @royal ridge functionally it works the same, but the precision seems to go further than millis

#

or maybe that's just been a quirk with the test readings I have been getting. the digits of precision haven't all stayed the same for me

manic glacierBOT
solar whale
#

@floral dagger @royal ridge with time.monotonic() I think you alwasy want to call it to set teh start value, then call again and subtract to get the "elapsed time" in seconds (float). the actual value returned is not meaningful - onlty its diff from an earlier value.

#
x=time.monotonic()

do some stuff

x = time.monotonic() - x

now x is the elapsed time
manic glacierBOT
sand bloom
#

How do I assign myself to the issue I just opened?

manic glacierBOT
idle owl
#

@sand bloom I don't think you get assigned to it, you create it and the issue exists with your name on it. There's a driver label though that would be helpful to add.

sand bloom
#

@idle owl for some reason it won't let add labels

idle owl
#

@sand bloom I've not had to do it, but I didn't think you needed to have permissions to tag your own issues. I would wait until dhalbert or tannewt are around and ask. On weekends, they might lurk but for the most part they're around on weekdays.

sand bloom
#

Okay! Sounds good!

idle owl
#

@sand bloom That should help πŸ˜ƒ

sand bloom
#

Yay! @idle owl

manic glacierBOT
#

I just tested on a Gemma and Trinket with the same pins, and it's working for me on a wooden desk with my finger directly on the pad or with an alligator lead. Code is just something like:

import board
import touchio
t = touchio.TouchIn(board.D1)
t.value

I put it in a loop, etc., and it was OK. Anything else going on?

We have an old pull request from a user for the raw value that was never finished (#136). We could revive that easily or do something similar.

umbral dagger
#

@slender iron I'm working on a "learning guide" type document as well.

manic glacierBOT
umbral dagger
#

Started working on the first non-prototype (I hesitate to say "production") of my trinket/CP project.

manic glacierBOT
#

yeah the 'default raw' value is 2000 for D1 and ~1500 for the others. you can see how D1 doubles when i touch it, but maybe because it is higher than D3/D4 it doesnt trigger?

# Trinket IO demo - captouch to dotstar

import touchio
import busio
import board
import time

touch0 = touchio.TouchIn(board.D1)
touch1 = touchio.TouchIn(board.D3)
touch2 = touchio.TouchIn(board.D4)

dotstar = busio.SPI(board.APA102_SCK, board.APA102_MOSI)

r = g = b = 0
 
def setPixel(red, green,...
solar whale
#

@fading solstice Thanks for the dht library - works well. It's very nice to have available. I did find a few errors in the example: ```
import adafruit_dhtlib
should be
import adafruit_dht

then when used the full name has to be used:
dhtDevice = adafruit_dht.DHT22(<pin>)

or
import adafruit_dht as dht

umbral dagger
#

@solar whale I'm just curious: why are you using the DHT rather than something like an Si7021? I started my prototyping with a DHT, but switched for the I2C bus and the smaller (post-breakout stage) part.

solar whale
#

@umbral dagger I just saw that the dht library had been added and have a few laying around so I thought I'd give it a try. Si7021 is next on my todo list πŸ˜‰ I agree that the i2c sensors are very nice.

fading solstice
#

@slender iron what branch should i make my changes to for the "ustruct to struct" issue . Iplan on making my own branch, but I wondered what it should be created from inially

#

@solar whale yes please add an issue.

manic glacierBOT
fading solstice
#

@umbral dagger @solar whale i think that it happened only because i wanted to write one AND the adafruit store still sells DHT sensors. Gave me a chance to get my feet wet on a low risk project.

manic glacierBOT
#

We could. Micropython actually worked that way originally where the heap
was shared. There was no way to continue main though. Would the goal be for
debugging?
On Sat, Sep 30, 2017 at 3:12 PM ladyada notifications@github.com wrote:

this doesnt exist in python i think but its an interesting idea - can we
pop out from the main.py code to REPL but still have access to that context?

β€”
You are receiving this because you are subscribed to this thread.
Reply to this email directly, vi...

#

what branch should i make my changes for this issue . I still plan on making my own branch, but I wondered what should be the source branch.
Note that i have made the changes to to shared-bindings and shared-module. The atmel side of things build with error, but the esp8266 has many unknown compile errors. I am assuming that i do not have the appropriate sources for esp8266 to build.

manic glacierBOT
manic glacierBOT
floral dagger
#

I'm really starting to like circuit python. It's taking me some time to get the basics down (python noob), but so far it all seems very straightforward. Nice work folks

idle owl
#

@floral dagger That's great!

floral dagger
#

managed to port my little rover/bot project over to CP pretty easily. I'd expected it to take the rest of the weekend to get the coding done, but functionally it's about ready. It's surprising how well CP works.

idle owl
#

That's great to hear! That's the goal.

#

@floral dagger I'm a Python noob too, started with it three months ago, and ended up doing a lot of my learning through CircuitPython. I found it easier to get into when I had immediate results on a board. Blinky lights are great!

floral dagger
#

nice @idle owl. Yeah they are. It's pretty cool to have physical feedback.

#

Now I just need to figure out this github monstrosity, and start poking around in the code.

idle owl
#

I'm just learning that too. I have basic commits figured out, and working with branches. Most of my usage involves going back through my terminal history because I haven't gotten much of it memorised yet.

floral dagger
#

Yeah, it's a lot to pick up for sure. I'm still hoping to find that one person that can explain it without using terms that only someone who knows how to use github would know. I'm sure they're out there somewhere.

idle owl
#

I totally get you there. I've got a friend who can. That's who has been teaching me. I've watched presentations on it, and most people, like you said, use git terms and that doesn't help if you don't know them.

floral dagger
#

lol ikr....all I hear is "ok, now you jus flippityfloo the whatsit, and that creates your bloppiter for your flamwangler"

idle owl
#

lol exactly!

idle owl
#

@floral dagger By the way, if you have any git questions, feel free to ask. If I haven't learned it yet, I have someone who can explain it to me in normal terms, and I might be able to bring it back to you the same way. There's a few people here who were able to explain some things to me as well, but I can't recall if I'd already started using it - which is to say using git terms at that point wouldn't have been gibberish to me if I'd already been working with it some.

umbral dagger
#

@floral dagger Same here (wrt CP). I was exposed to python in 2003 but never cared for it. I tried it again 5 years later at Google, but it didn't click. Ruby always filled that niche for me. CP feels fundamentally different, however, and I'm rather enjoying it. Still running into plenty of "how do I do that in Python" moments, but getting some real code written.

#

@floral dagger @idle owl I'm using GitKraken for most of my git use these days. Cross platform, free for non-commerical use, and is pretty decent. So mostly that, and then some command line use as well. Git is pretty much the standard for source control now.

idle owl
#

@umbral dagger The more I use it, the more it's starting to gel for me, but I'm still getting started, so there's a lot of asking the same questions.

umbral dagger
#

@floral dagger @idle owl Git is massive in terms of what it can do. I've been using it for over 10 years and use/know a portion of it.

idle owl
#

@umbral dagger Yeah my friend who seems to know it inside and out has been teaching another friend pretty much weekly for 3 years and he's still in the dark about so much.

delicate pike
#

Thanks to Hak5 they explain a lot of such things

solar whale
#

@umbral dagger got the si7021 and an mcp9808 up and running - all 3 sensors are close in temperature but the si7201 does do a better job with humidity. Also get occasional errors reading from the dht22 - that is typical in my experience. I would definately recommend the si7021 or mcp9808 if you dont need humidity.

manic glacierBOT
#

Thanks, Dan. I got the esp8366 to build as well. The resultant uf2 runs correctly on Metro and CPX.
I have a question of project design. I noticed that there is a separation of code between shared-bindings and shared-module. Can you define what code should go in either and what should not be in either? My first attempt was to move internal STATIC function into share-module, but i think i need to do more.

manic glacierBOT
#

@tannewt designed the shared-bindings / shared-module split. This doc page describes it in more detail. Basically, the wrapper code that implements the Python API and calls down to the lower level HAL (hardware abstraction layer/level) is in shared-bindings/. Lower-level code that is architecture-independent and can be shared between ports lives in shared-module/. Then there are (for now) atmel-samd/common-hal/ an...

umbral dagger
#

@solar whale I used went with the Si7021 for my sensor node design. I'm sticking with it for version 2. I've added BMP280 (for barometric pressure... not sure it it's worth keeping in the long run), and am interested in seeing how the temperature readings of the two compare.

manic glacierBOT
#

that is waay lower than the threshhold ASF uses - they use maybe like 64 points

Not sure I know what you mean here. Do you mean the raw value range is only 0-63?

The current algorithm is to read the raw value on construction, and then double it for the True/False threshold. E.g., if the initial raw value at construction is 2042, the threshold is 4084. Your worst case was 3774/2038 = 1.85. We could lower the threshold to 1.75*the initial raw value.

On my samples, the ratio is always...

manic glacierBOT
#

I tried a Makey-Makey style use:

Banana, clip lead on stem, no-touch / touch:
D1: 3573 / 4064
D3: 2763 / 4064
D4: 2879 / 4064

Apple, clip lead on stem
D1: 3000 / 3891
D3: 2183 / 3694
D4: 2257 / 3727

Clementine well past its prime:
D1: 2896 / 4064
D3: 2231 / 4064
D4: 2187 /4064

I think this suggests we should use an absolute increase above baseline rather than a ratio. Also maybe we really should expose the threshold for getting/setting.

I don't know why D1 has a consis...

manic glacierBOT
manic glacierBOT
#

CPX A0 is connected to the speaker, so it will not work for touch input if the speaker is in use. This should be documented if it's not already

In addition, Touchio.TouchIn(board.A0) often ends up with a very high initial threshold value when the object is created. If you deinit() the object and re-create, the threshold is more reasonable and is closer to the raw_value read later. I tried reading the value twice on during construction but it was still high to being with.

half sedge
#

@timber lion I tested your mega demo (the Monday dropbox zip version) and found two bugs.

#

@timber lion If you get into the touch demo, activate the sound option, trigger a sound and switch to the next demo. The sound stay and never stop.

manic glacierBOT
idle owl
#

@half sedge He mentioned that when he talked about it before posting it. He hadn't put in a hook to stop the tone.

half sedge
#

@timber lion Then, if you switch to another demo a few time, it get stuck after the rainbow.

#

@idle owl Yes, but latter, it freeze completely when looping through the demo.

#

Anyway, that demo is a very good selling point. I showed that at an hacker space... and they did put that on their shopping list. πŸ˜ƒ

#

It would be great if the demo would work with the mega.py version. Because that is editable on the fly.

#

I believe that removing the accelerometer demo and code would make it much smaller.

idle owl
#

Not enough memory. We're working on integrating a few things that might make that work, but we won't know for a bit.

#

Removing it does help, but it can still run into memory issues.

manic glacierBOT
#

I have make changes to several bundle library projects: lis3dh, max31855, pca9685, rgb-display, si7020, and register. which branch of these projects should I be updating. I assume master, but I want to make sure first. The changes are simple: import ustruct -> try: import struct except: import ustruct as struct. change module references from ustruct. -> struct.

manic glacierBOT
slender iron
#

<@&356864093652516868> @tulip sleet I think we're on for the weekly meeting tomorrow (Monday) at 2pm ET/11 am PT!

manic glacierBOT
#

Master please @mrmcwethy. For small projects, master is the place to go.

On Sun, Oct 1, 2017 at 12:09 PM Michael McWethy notifications@github.com
wrote:

I have make changes to several bundle library projects: lis3dh, max31855,
pca9685, rgb-display, si7020, and register. which branch of these projects
should I be updating. I assume master, but I want to make sure first. The
changes are simple: import ustruct -> try: import struct except: import
ustruct as struct. change module re...

#

Absolute increase works for me! Thanks for the investigation @ladyada and
@dhalbert.

On Sun, Oct 1, 2017 at 9:06 AM ladyada notifications@github.com wrote:

D1 is shared with the DAC circuitry so i think it has a different built in
capacitance

β€”
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/adafruit/circuitpython/issues/297#issuecomment-333386886,
or mute the thread
<https://github.com/notifications...

formal plover
#

@slender iron My attendance will typically be hit or miss. Since I'm working till 4pm EST. For right now I am working from home on Mondays, so I'll be able to listen, but probably won't be able to talk. You can try to verbally ping me though, I might be able to depending on what I'm working on at that moment. blinka πŸ˜€

solar whale
#

@slender iron I'm also tied up at work this afternoon. I may be able to listen only, but even that is doubful today since I am in an all day conference. After this week my availabilty should improve.

plucky flint
#

@slender iron I'm not going to be able to make this evening's chat - I have dad-taxi related duties to fulfil (my 13yo needs driving to Taekwondo). Should be able to do other weeks tho.

idle owl
#

@slender iron I'll be here for the weekly.

slender iron
#

thanks all for the rsvp! I'll record it again in case you want to listen later

manic glacierBOT
fading solstice
#

hi smart people. My metro express board is sad. 2 clicks on the reset button shows the Boot Drive and I can copy a different .uf2 file onto it, but the run-time drive shows and disappears quickly. plus the serial communications is not allowed. This happened right after copying updates onto the drive. The drive will not mount on either ubuntu or windows. Is there a way to set the board back to factory settings?

idle owl
#

@fading solstice Have you tried the flash eraser yet?

fading solstice
#

no, i did not know about the flash eraser

idle owl
#

Basically download the uf2 file and drag it over, and it wipes the flash completely.

#

Then you need to doubletap reset it again and copy your CircuitPython or desired uf2 file to it.

fading solstice
#

@idle owl you are the best!

idle owl
#

@fading solstice Thanks! I'm glad I could help!

slender iron
#

@fading solstice your mic is super loud

quick oyster
#

Hello, how do I join?

idle owl
#

Click "CircuitPython (recorded session)"

slender iron
#

click the circuitpython voice channel on the left

idle owl
#

Towards the bottom of the list on the left.

tidal kiln
#

(lurking)

opal elk
#

lurks too

pastel panther
#

(just listening)

opal elk
#

I am

#

yep

#

ha! other dan πŸ˜„

#

I can hear, at least. I probably won't be talking.

pastel panther
#

#datkeyboard

tidal kiln
#

cherry clicky

timber lion
#

is this the chat channel for the meeting?

slender iron
#

yup!

timber lion
#

sorry discord is a bit... interesting UI wise πŸ˜ƒ

#

so the voice channel is separate and just always in background I guess?

slender iron
#

yeah

timber lion
#

cool

opal elk
#

woo @idle owl !

idle owl
#

Thank you! 😊

pastel panther
#

πŸ‘

tidal kiln
#

nope

slender iron
#

thanks @tidal kiln !

opal elk
#

🍎 🍌

tidal kiln
#

oh. forgot. hug report. thanks to dan h for helping with a forum post.

slender iron
#

sorry cat seizure

opal elk
#

oh no! I hope it's okay

slender iron
#

yeah, hes back

#

pretty normal for us here πŸ˜•

idle owl
#

oh that's good he's ok though

timber lion
#

hrm is there any audio? i just heard it stop

idle owl
#

There is audio, yes

timber lion
#

ah wow

#

let me reload maybe

opal elk
#

I don't hear him

timber lion
#

oh i heard scott for a sec

opal elk
#

oh this happened before

tidal kiln
#

i only hear scott

slender iron
#

I can hear @fading solstice

idle owl
#

I can hear him as well

opal elk
#

I think web people can't hear certain people? I heard mr mcwethy before too

timber lion
#

hrm i just hear bits and pieces of scott

fast wharf
#

same here, can only hear you scott

pastel panther
#

I'm using the client and can hear everyone

floral dagger
#

lol so funny to see everyone typing about invisible conversations

tidal kiln
#

reconnect fixed it.

timber lion
#

for our libraries they have an examples folder that I've tossed examples in, so check their too (the guides point at examples in the folder there)

#

er there

twin mica
idle owl
#

I had to step away for a call. I'll be back.

timber lion
#

i wouldn't frame it as a podcast personally, it's more a what's going on and less a produced show

pastel panther
#

I'm typing only

opal elk
#

I used to do a podcast for years and it had less production value than this, so, πŸ˜‰

pastel panther
#

Now that the SAMD51 is showing up for sale, is there a feather board floating around that could be dev-ified like the m0 express one I did?

twin mica
#

yeah its insider baseball

fast wharf
#

yea, totally - awesome podcast

pastel panther
#

Or some other eagle stuff I could do?

#

With software in mind, could some work be put in to the CONTRIBUTING.md to make getting started with the software?

#

You mean like a metro to feather pinout adaptor?

#

Should be fairly easy, I'll give it a look this week

opal elk
#

I do!

#

nothing to add now though

#

but if you want to bring up other stuff I'm here!

timber lion
#

hrm i only hear scott

opal elk
#

I might... if you could use a guide on my Halloween costume I could hopefully do one of those πŸ˜ƒ

timber lion
#

ah!

#

hey, yeah no big update since last week.. travel and prep for geek girl con took my time

#

tomorrow i'm flying to denver so trying to fix a few bugs and things before leaving

#

working on the ili9341 guide update too

#

GGC was good! good cosplays

#

i think i'll miss wed. meeting

#

if all goes well i'll be 14k feet up a mountain πŸ˜ƒ

#

oh one thing

#

@brave cipher @dreamy dagger I hit the memory erase on battery level low again

#

on my circuit walker shoes πŸ˜ƒ

#

so FYI, it's pretty easily reproed

#

yep

#

it only ever happens on the express boards i've seen

#

i've had a feather m0 basic run out of battery and it seemed good, didn't wipe it all

tidal kiln
#

testing one two three

opal elk
#

you need to lock that down by level, though

tidal kiln
#

hello world

opal elk
#

I heard it too

timber lion
#

i heard it, on web app

tidal kiln
#

tts engine is different for each app

timber lion
#

funny how each app is totally separate πŸ˜ƒ

opal elk
#

beep boop i am a robot

tidal kiln
opal elk
#

will be good

timber lion
#

oh wow scott just cut out a bit for me, back now

pastel panther
#

One other question: If I were to get a Saleae, which would be good for this type of dev work? I was looking at the Logic 8 bit would the 8 Pro be worthwhile for any reason?

timber lion
#

i think the regular 8 is good, the pro is just faster and has analog

#

but for I2C and basic SPI sniffing up to 50mhz or so from the basic is fine

#

i2c is 400khz and sometimes 1mhz, SPI varies but really only big LCD displays run fast (multiple megahertz)

pastel panther
#

The docs show the 8 having analog inputs. Is there something that the 8 pro has that makes analog support better?

timber lion
#

oh interesting yeah looks like they do have analog on the non pro too

#

it's just a little faster so can get more signals, but it's not really a proper oscilloscope.. like it doesn't have the same protections or voltage range

#

good in a pinch but not a replacement

#

the 4 would be too limiting i think though, you really want 5 pins sometimes for SPI devices to see the CS line, enable line, etc and clock, miso, mosi

pastel panther
#

Trying to decide between an Rigol 1054Z and logic as a first purchase. I'll probably get both eventually but I'm leaning towards the Logic first

#

Yea, that's what I thought

timber lion
#

yeah i use my saleae more than oscilloscope these days

#

all good! πŸ˜ƒ

fast wharf
#

πŸ™Œ blinka

tidal kiln
#

πŸ‘‹

timber lion
#

from living computer museum blade runner party over the weekend

#

they had the whole museum open though

pastel panther
#

awesome!