#circuitpython-dev

1 messages ยท Page 267 of 1

meager fog
#

@ionic elk heya import math also fails ๐Ÿ˜„

#

plz add that as a builtin

ivory yew
#

Who needs math? It's a waste of flash.

raven canopy
#

@swift arrow @ivory yew welcome to the blinkaista's!

ionic elk
#

@meager fog it shouldn't... that's weird.

meager fog
#

lol

#

try it!

#

โž— โœ– โž• โž–

ionic elk
#

Whoops, looks like I didn't have master merged at the time of the original build I gave you

#

(had an old master version for the branch)

#

Try the new CI autobuild

#

It passed this time

#

@meager fog

meager fog
#

oki!

granite crow
#

Hi yall, when plugging a circuitpython board to my pc via USB, the contents of the drive are the contents of the on board flash chip?

idle owl
#

Yes.

#

@granite crow That is correct.

granite crow
#

Cool, thanks @idle owl, it will help me in a project I have in mind, last question, is the flash memory formatted by the mcu so I can access it from my pc or the mcu does some kind of translation of the data format ?

#

If this is off-topic I can keep asking on the proper channel you tell me

idle owl
#

This is entirely on-topic! You're in the right place.

#

It's formatted to be accessible by your PC, there isn't a translation happening. It's FAT, FAT12 I believe specifically.

#

There are others who would be able to explain it better than I can, but that's the general answer to your question.

granite crow
#

Thanks for the reply @idle owl, I think I can jump on the code and try to understand how does it works

idle owl
#

@granite crow Excellent! Feel free to post any questions you have along the way!

solar whale
#

@slender iron finally managed to build CP under catalina -- it took some patience....first had to install brew (it was not on this system) and for that, I had to go into bash shell for the install script to work. Getting the symlinks for gettext also took some extra effort due to a permissions issue. ONce I had that everything installed OK -- when I tried to build, MacOS objected to executing every parot of arm-none-eabi.... since it was not from an approved developer. I had to cancel the build -- go into security settings and allow the program, then restart the build and "open" the program. This had to be done for several of the steps in the build, but only once. I have successfully built pyportal and CPX, CPB and feather_nrf52840_express. -- just finished build of all BSPs for "en_US"

ionic elk
#

@meager fog let me know if you get a chance to run those library tests on the latest build, I want to make sure I've wrapped that up

manic glacierBOT
#

I'm sorry I didn't get a chance to respond to this before the bug was closed, but has anyone tried reproducing the problem on any of the embedded ports?

(As I understand it, the CircuitPython distributions ship the Unix and Windows ports "as-is," for compatibility with the last MicroPython release that was picked up. If this is an issue only in the embedded ports then it definitely won't be reproducible in the Unix or Windows ports.)

The original write-up was reproduced on the 'atmel-s...

hexed pawn
#

@idle owl I created the pull request for the MCP9600 CircuitPython driver and Travis is happy. I will do more testing when the MCP9600 is in stock.

solar whale
#

Yay! Just verified that the ft232h and "blinka" work with MacOS Catalina!

manic glacierBOT
#

I'll try it out on a CPX later tonight and report back.

On Thu, Oct 10, 2019 at 8:08 AM ddiminnie notifications@github.com wrote:

I'm sorry I didn't get a chance to respond to this before the bug was
closed, but has anyone tried reproducing the problem on any of the embedded
ports?

(As I understand it, the CircuitPython distributions ship the Unix and
Windows ports "as-is," for compatibility with the last MicroPython release
that was picked up. If this is an issue only in th...

swift arrow
#

Just a procedural question.. Once a PR for CP libs has been accepted and merged.. Does that mean it should show up in the next release of the libs?

tidal kiln
#

yes - but only once a release is done on the repo

swift arrow
#

as long as the build date is > merge date?

#

hmm guess I need to learn what a release is on a repo

tidal kiln
#

nope. it's a manual step. it can only be done by repo owners.

#

in short, not something you would need to worry about

ivory yew
#

definitely worth being aware of if you want other people to be able to use the code you contributed.

#

You can always file a bug asking for the repo maintainers to make a new release.

tidal kiln
#

yep. or can also respond in the PR thread or something like that.

#

sometimes there are reasons to hold off on a release, but it shouldn't be a huge amount of time, so if you see that happening, can bring it up somewhere/how

swift arrow
#

ah so that lib has a release of 19 hours ago.. so on the circuitpython.org website under libs.. It should be in there as long as that date is later than the release on the lib that @tidal kiln referenced

tidal kiln
#

there is a set of tools that are run nightly that check for new releases and update the bundle

idle owl
#

And we have checks to tell us when a lib has changes and needs to be released, and a list is generated daily.

swift arrow
#

So any bundle that is created tomorrow or later will have it

idle owl
#

We're a little behind at the moment I think. I did a massive sweep about a week and a half ago.

#

Yes.

swift arrow
#

cool, not a complaint in any way.. just figuring out the process

idle owl
#

That's what it seemed like. ๐Ÿ™‚ No worries

#

The more involved you get, the more you'll want to know and understand. We're happy to answer and explain everything you want to know.

swift arrow
#

I really like how our libs have an example directory.. VERY helpful for people new to the libs or CP.

tidal kiln
idle owl
#

That was the intention. And the base example is typically included in the docs, so there's a visual on what things do.

idle owl
#

@trim elm Ok. Feel free to take a look at working up a simpletest example for the GFX library. Consider PRing early in the process while it's still a WIP so we can provide feedback as you work on it. You can always PR a WIP for feedback purposes, we don't mind a ton of commits on a PR.

trim elm
#

Ok. That's what I'll do. I'm getting the pyportal to see about writing a simpletest for the ili9341 on that. I think it would make more sense to have a few simpletests, one for each of the major screens that still use gfx

idle owl
#

@trim elm The other option is to have commented out init lines for each display and use the same code in one file.

#

Depends on whether they use the same code really.

#

If there are some that do, consider doing that.

trim elm
#

Yeah. That sounds like a better option assuming the code isn't too different screen to screen

manic glacierBOT
solar whale
#

@swift arrow if the PR is still open you can just push a new commit and it will be include in it.

swift arrow
#

@solar whale are you talking about the one we were discussing
Fix for Issue #24 #26 ?

manic glacierBOT
solar whale
#

@swift arrow yes, and just a general comment that you can add changes easily to an open PR.

swift arrow
#

would you like it resubmitted with the pass made into a continue? but the rest left as is

solar whale
#

That was my suggestion -- as long as it still works ๐Ÿ˜‰ but that was just my suggestion not a request.

swift arrow
#

๐Ÿ™‚

#

it's interesting.. when I get my phone to actually connect using the bluefruit app.. I can not get that example to crash.. I did get John's Solderless Tie example from the blog to crash.. and fixed it by using the try around the packet getting. His example is basically the ble_color_picker with some extras in there..

#

the code seems sensitive to more commands coming in with the code making it too busy to get back and grab the next pack soon enough

solar whale
#

I'll give it a try --- take few minutes to find it...

swift arrow
#

I put a PR against John's code and he added the try.. so you will need to pull it out to get the failure

#

but he noted that he also saw the failure

solar whale
#

do you have a link handy ?

swift arrow
#

sure, one sec

#

naturally a simple tweak to use the CPX neopixels and not external ones

idle owl
#

YOU ARE WELCOME.

#

๐Ÿ˜‰

swift arrow
#

heheh SORRY!!!

idle owl
#

Of course you delete the evidence ๐Ÿ˜„

swift arrow
#

too bad I didn;t have a hot mic.. you would have heard a cool "eeeeeeeekkkkkkk"

idle owl
#

Anyway, I feel like Limor had them communicating 70ft apart at some point, so it's possible that the signal strength indicator in the app has a larger range than whatever the CPB has, but it's still fine.

swift arrow
#

I was trying to figure out if maybe I had a bad phone or damaged CPXBFLE

solar whale
#

@swift arrow OK -- have it running without the try -- how do you make it crash?

#

also -- I see 1-2 bars about a foot away

swift arrow
#

go thru different animations really fast.. pretend you are really angry at it and want it to crash..

#

I used the arrow keys to slow it way down.. then changed the animation style.. then more arrow keys.. more number keys..

solar whale
#

yup killed it

swift arrow
#

then it froze..

solar whale
#

I was able to control-C then reboot

swift arrow
#

we need a crash or freeze emoji

solar whale
#

with try -- it seems to be OK.

#

nice program, by the way!

swift arrow
#

@solar whale , right that was my experience.. so when I saw @idle owl's issue with the ble example.. I figured I could kill two birds with one stone so to speak with the try fix.

solar whale
#

I have it running a string of 30 neopixels via a "gizmo"

swift arrow
#

but excellent questions around should we silent error, or print "Hey we got a bad checksum" kind of thing..

#

also should the library catch the error.. so the user never has to worry about such things?

#

lol.. I found myself with more questions after than I did before ๐Ÿ™‚

solar whale
#

That's usually the way it goes! In the example, I think errors should be reported. It can be dangerous to hide too much in the library.

swift arrow
#

So use the try but add a message saying it got an error?

#

and leave the lib the way it is

#

or are you saying let it error out?

solar whale
#

I think the library is OK -- the example can do the try/except and handle it.

#

again -- just my opinion, I am by no means a python expert.

swift arrow
#

That is my preference as well. If people are like me they go to the examples and use that as a starting point for projects. I like the idea of them seeing how it should/could be done to catch it and move on.

#

I am a total Python newbie.. so I like hearing all opinions

solar whale
#

and if a lib fix is eventually implemented, no harm done...

slender iron
#

@solar whale yup, I got it going yesterday by jumping through the security and open hoops

solar whale
#

it was painful, but done!

slender iron
#

and..... more hoops ๐Ÿ™‚

solar whale
#

so far no deal-breakers with Catalina

swift arrow
#

@solar whale I guess the question now is what errors to catch.. and what message to print

solar whale
#

I tried mu and it works -- as did Arduino...

idle owl
#

@slender iron So you took the big stick approach? Or you actually managed to get it working properly?

solar whale
#

@swift arrow have you seen more than ValueError?

slender iron
#

@idle owl I figured out how to add security exceptions for each binary

swift arrow
#

I myself have only seen the valueerror with a bad checksum

idle owl
#

Fair enough.

solar whale
#

no reason to add more -- unless they become a problem. better to see the errors!

swift arrow
#

@idle owl saw a "OSError: Failed to read CCCD value, err 0x3002".. but maybe we should leave that alone.. and just go after the bad packet for now

#

that could be something more serious

idle owl
#

Like I said, Dan wanted to fix it properly.

swift arrow
#

maybe I will open my own issue for the bad packet.. and my simple fix PR to fix it. Keep Kattni's separate.

slender iron
#

I do want to add better errors for BLEIO

#

will likely wait until after I land my current changes though

solar whale
#

another good reason to handle it in the example -- the libraries are going through a lot of development and it is great to flag this kind of issue in an example. Perhaps it will go away wiht future library updates. It really depends how often the issue occurs. the "bad checksum" is pretty easy to trigger. Not sure about the OSError.

swift arrow
#

@solar whale The question on my mind is it's easy to trigger.. but not easy to trigger in the example I opened a Issue against.

#

in John's code it is easy to trigger.. and John's code is a modified ble_color_picker .. so in a way it makes sense to fix it.. but in another.. sigh..

#

I think it only happens because it can not pull in packets as fast as they are issued from the phone app when you add complicated animations.. in the example I can not trigger the error because it can process them faster than I can issue them from the phone

#

but that's just my opinion

solar whale
#

The issue is real as your example shows - your PR can be seen as a "workaround" not a fix. Perhaps the issue should remain until it is fixed in the lib or deemed liveable,

swift arrow
#

perhaps the way to look at this is.. the fix hurts nothing.. and is instructional in it's use

solar whale
#

that was fun to play with -- I have to go offline for awhile. Thanks!

swift arrow
#

thanks for talking me thru this

manic glacierBOT
#

I wasn't able to do this step on Mac. The kernel spun up for a while and then the script produced this error:

> spresense-exported-sdk/sdk/tools/flash.sh -l spresense-exported-sdk/firmware -c /dev/tty.usbmodemE594E79FECF32
Traceback (most recent call last):
  File "site-packages/pyserial-2.7-py3.6.egg/serial/serialposix.py", line 468, in read
OSError: [Errno 6] Device not configured

During handling of the above exception, another exception occurred:

Traceback (most recent cal...
raven canopy
#

tfw you read your own conditional wrong, and place code in the wrong place... ๐Ÿคฆ

orchid basinBOT
#

Pre-PR request for comment. @jwcooper, does this format work for you?

"Adafruit_CircuitPython_Bitmap_Font": [
      {
        "title": "TTF support (Open 147 days)",
        "url": "https://github.com/adafruit/Adafruit_CircuitPython_Bitmap_Font/issues/10",
        "labels": [
          "None"
        ]
      },
      {
        "title": "Remove backward-compatible imports when 4.0.0 released (Open 203 days)",
        "url": "https://github.com/adafruit/Adafruit_CircuitPython_Bi...
orchid basinBOT
orchid basinBOT
manic glacierBOT
#

From CircuitPython 4.0.1 on a Feather M4 Express:

>>> a = 2
>>> b = 'a'
>>> a/b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't convert 'int' object to str implicitly

>>> -b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported type for __neg__: 'str'
>>> a = object()
>>> b = object()
>>> a / b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeErr...
manic glacierBOT
manic glacierBOT
#

This is a Request For Comment for a suggested extension to pulseio for doing high precision timing on multiple inputs on the SAM port of circuitpython.

I would like to do time capture on pin inputs so that I can do things like:

  1. Get the exact time of an event (on one pin), compared to GPS time (referenced to the Pulse Per Second on another pin).
  2. Get the time between a start pulse and a stop pulse on two different pins
  3. Get the frequency, duty cycle, etc. of a signal by measurin...
manic glacierBOT
#

I was looking into this and want to make sure I understand what is needed.
As far as I can tell, the time module only knows about "local time" it has no concept of Time Zone.

However -- when we have an internet connection and us the adafruit_ntp library to set the time, it sets it to GMT.

Do we need to add Time zone awareness and then return localtime or gmtime as requested?

I am thinking that was is now referred to as localtime should really be gmtime and if local time requested, ...

slender iron
#

@tulip sleet any idea if scan response events happen right after the corresponding advertisement?

manic glacierBOT
#

Sounds like an interesting project! I don't know of anything that currently allows for it (though I'm not much of an Arduino user).

I'd suggest adding it as a separate module so that it can be supported separately from PulseIO.

Other than that, let us know if you have CircuitPython questions. Thanks!

manic glacierBOT
manic glacierBOT
tulip sleet
#

@slender iron the scanner should ask for the scan response quite soon, assuming it's interested in the advertisement

rotund basin
#

Hey all, my apologies but I forgot this .. I have the m0 adalogger and need a second uart , how do I do this ? My current version of circuit python is 2.x

ionic elk
#

@tulip sleet I think the Stm32 uart HAL may have actually been written by satan

#

to torment mortals

raven canopy
#

๐Ÿ‘บ

tulip sleet
#

Considering upgrading from 2.x: there have been many improvements since then, including big speed improvemetns

rotund basin
#

@tulip sleet thank you kindly for reminding me, I wonder how much of my code will break from the upgrade? Is the upgrade stable ? ๐Ÿ˜ƒ

tulip sleet
#

@rotund basin Yup, it's stable! Go to 4.1.0. You can always revert, but I think you'll like the improved perfomance and bug fixes. 2.x hasn't been supported since 4.x came out.

rotund basin
#

Thanks @tulip sleet will do it!!

slender iron
#

@tulip sleet ok, will try it. I'm wondering if I should merge the scan response into the original scan entry

manic glacierBOT
#

Drafting a PR for this despite major issues so it can be reviewed by others.

I'm running into several issues with the STM32 HAL implementation of UART. Broadly, the HAL does not have any buffering capability and generally is not built around the concept of receiving unknown quantities of data. The example code and structure of the HAL expects global, shared handles for every device, you cannot assign your own callbacks, and pre-defined callbacks have no context pointers. In general this m...

tulip sleet
#

@slender iron right now the scanner doesn't do "active" scanning, so it never actually gets scan responses. I'd look maybe at how iOS or Android do scan responses for inspiration

slender iron
#

yup, I plumbed it through

#

my guess is that it's all callback based

#

if one event is right after the other then the payloads can be merged

#

I added a filter to the scan so it'd be good if they were merged

manic glacierBOT
marble hornet
#

@tulip sleet mind if i ask some questions about the nrf port? about turning on some micropython features?

tulip sleet
#

sure

marble hornet
#

So I'm looking at a project where I want tighter control of the power consumption / hardware. and I prefer I really like the bluetooth abstraction you made. I'm looking to control sleep / not sleep modes, cpu frequency, and the inline assembler. where would i look for some of the config toggles?

tulip sleet
#

All that is not really available from CircuitPython right now. We use SysTick as the fundamental timekeeper, and it requires the CPU to be going all the time (not sleeping). We have ideas about how to rework this, and it's on my list of things to do (there's at least one issue), but is not the absolute next thing to do, though it's not far down the list.

#

The inline assembler stuff might work, but you're not going to get very far with that in terms of controlling sleep because of the other issues above.

#

also we'll have to be really careful in the nrf port to use the nRF SoftDevice sleep/low-power API, because the bluetooth code depends on being awake to maintain BLE connections, etc.

marble hornet
#

Thank you for the prompt and detailed response! i have two more questions: is SysTick use as the timekeeping method (no pun inteneded) in just cirpy or micropy too? and what if it was fine for the entire system to sleep for a some amount of time w/out running python?

tulip sleet
#

MicroPython mostly uses the RTC of whatever chip it's running on. That is what we want to head toward. The RTC peripherals are designed to work at very low power, so that timekeeping proceeds no matter what.

#

If you are willing to turn off power completely (no BLE state is being maintained), then you could just turn off power to the board and restart, using something like one of these: https://www.adafruit.com/?q=tpl

#

this stuff really is on our radar, it's just that a lot of other things are too. But having BLE raises the priority, because there are a lot of applications people have in mind that require good power managment (and you are one of those people).

sly falcon
#

@prime flower @crimson ferry @solar whale just caught up on the chat about all the nina-fw changes... I was one of those 800k+ affected by The Great California Power Shutdown of 2019 ๐Ÿ˜œ but I'm back now.

#

I still need to read all the github email I have, but great idea bout doing the binary releases on GitHub....I feel dumb I didn't think of that...oh well.

#

I'm out this weekend, and no clue what next week will look like at work given the data center issues I had to work on this week due to the power nonsense...so yeah...please don't count on me for a week or so. Hopefully next weekend (Oct 19/20) I can get back to things....sorry I haven't been around more or made more progress!

radiant juniper
#

im having a dumb and cant find it anyplace else, on the metro M4, did you use an external crystal? and if so at what frequency?

marble hornet
#

thank you @tulip sleet ! this was very helpful and illuminating !

sly falcon
radiant juniper
#

thankyou

sly falcon
#

you're welcome

radiant juniper
#

huh. The answer is "maybe?" there is a crysal on the schematics, but... Its not connected where I would expect.

crimson ferry
#

@sly falcon I may have a window of time this weekend where I can get immersed. If you're not in the middle of the NINA stuff, would you mind if I took a stab at it, if that window doesn't close? I'm sure I'll need some help on data structures and build. Or if it closes, it will still be there when you are ๐Ÿ™‚

sly falcon
#

@crimson ferry heh...nope - I say go for it! From my perspective, you taking a shot and learning something new is worth it. I haven't started coding anything...when I left off, I was getting v3.3 of the IDF setup and doing some rough ideas of what I wanted to do...so yeah...no chance of duplication of work at this point

ivory yew
#

@radiant juniper it's in PA00 and PA01 which is the normal place iirc?

radiant juniper
#

AFAICT from the datasheet, the external Xtal for XISCO go on PA14 and PA15.

#

OXOSCO

#

Page 37 from the SAM D5x/E5x data sheet

ivory yew
#

It's XOSC32K

radiant juniper
#

'To guarantee the XOSC32K behavior in crystal mode, PC00 must be static.'

#

now you have got me all confused.

ivory yew
#

well the good news is that PC00 isn't even on the usual QFP/QFN64 package.

radiant juniper
#

right.

#

alright, I found my confusion. I missread an arrow on the block diagram. I thaught XOSC32K was fed from OSCCTRL... not the otherway around. PA01 and PA00 are correct for a 32.~~~ mhz crystal. the other pins are what one would use for other crystal frequncies.

manic glacierBOT
marble hornet
#

Hey @tulip sleet , Iโ€™m getting about a 20 mA draw even while using the radio with the NRF52840. Does that sound right to what you see?

#

Have seen**

manic glacierBOT
manic glacierBOT
solar whale
#

@idle owl for using neopixels on a raspberry pi, the guide explains that you have to install the neopixel library as "sudo" and run code as "sudo" Is it also necessary to have installed "blinka" as sudo as well? I think I ran into issues if I did not but just wanted to check and see if it was necessary. If so, you may want to add a note to the guide. It gets confusing having two installations (user and sudo...)

solar whale
#

@idle owl ah -- never-mind -- I just removed my "sudo" installation of blinka but then just installed sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel and it works just fine -- as in the guide ๐Ÿ˜‰ it automatically installs adafruit-blinka for root as part of this. Still have two installations, but a bit less confusing when you just do what the guide says....

idle owl
#

@solar whale I ran into a situation yesterday where I needed to just read the guide... I get it ๐Ÿ˜„

raven canopy
#

hopefully soon, i'll be testing Blinka on a RPi running Ubuntu 19.04... assuming it survives my frustration. ๐Ÿ˜„

idle owl
#

@raven canopy Wait, wat?

raven canopy
#

Back to working on RosiePi. Using Ubuntu Server 19.04 since it comes with the correct version of gcc-arm-none-eabi to build circuitpython. but...now that i got the Ansible playbooks to run correctly, i've discovered that the way i structured everything doesn't work. #status-update ๐Ÿคฃ

solar whale
#

@raven canopy interesting -- never thought of trying Ubuntu on a pi for that reason ๐Ÿค”

raven canopy
#

they have distro an image for it too...no muss, no fuss.

idle owl
#

I was more @.@ about Ubuntu on a Pi in the first place.

raven canopy
#

its just Debian, really. Like Raspbian.

idle owl
#

I suppose so. But I know it better than Raspbian ๐Ÿ˜„

#

Though I guess I mostly ssh into my Pis, so who cares?

raven canopy
idle owl
#

Sounds attractive if I'm ever using it with the GUI though.

#

Disco Dingo ๐Ÿ˜† Didn't know we'd gotten that far.

raven canopy
#

well, the GUI is probably better with Raspbian.

idle owl
#

Fair enough.

solar whale
#

did you use the 64bit (last one) for the Pi3?

raven canopy
#

yep. ubuntu-19.04-preinstalled-server-arm64+raspi3.img.xz. just did a clean one this morning.

solar whale
#

cool! something new to play with!

raven canopy
idle owl
#

hah!

solar whale
#

When you first boot after install - what is the device name? equiv to raspberrypi.local?

raven canopy
#

ubuntu

solar whale
#

that was my first guess ๐Ÿ˜‰

#

flashing now -- will try soon.

raven canopy
#

the cloud-init system may give you fits. are you ssh'ing in? or direct?

solar whale
#

was going to try ssh -- by direct do you mean UART?

raven canopy
#

direct keyboard/monitor.

solar whale
#

oh -- I can do that as well if ssh does not work

raven canopy
#

yeah, if it stays non-responsive beyond a few minutes, its probably hanging on cloud-init due to connectivity problems. (ran into that with a non-dual-pair ethernet cable)

#

building your own CI-like service teaches many things. most are painful. ๐Ÿคฃ

solar whale
#

fire in the hole! -- blinking lights

#

hmm -- still no response to ping ubuntu.local

raven canopy
#

oh. i misunderstood you. give me an easy command to find what you're looking for. (i go straight IP)

solar whale
#

ah -- just need to know its IP address... hooking up monitor/keyboard

#

Amazing -- it's alive!

#

and working via ssh -- now that I have its IP address - very cool

#

there goes the rest of today ...;-)

raven canopy
#

hehe. sorry. kind of. ๐Ÿ˜œ

solar whale
#

not sorry..

manic glacierBOT
#

My personal use case is a running count of pulses from a source of around 10 MHz, which I can check "from time to time" but maybe as infrequently as once a second. If it can reset to 0 at a specific value (e.g. 600e6 ~1 minute) even better.

10 MHz is a bit too fast for a 'A pulse caused an interrupt: take down all the details then return from interrupt'.

What would work is 'The PulseTime clock is driven from this external pin instead of the CPU clock'. Then you just call `.no...

solar whale
#

@raven canopy hope you don't mind a few more questions... where did you get the arm-non-eabi distro from -- I could not install the ppa (no release) -- same issue for the raspi2 ppa -- did you bother to install it and if so, how?

#

I may try 18.04

slender iron
#

Hi all, the meeting is at our normal time, 11am Pacific / 2 pm Eastern, on Monday here in our Discord voice chat. All are welcome to attend. Details on the meeting are in the notes doc here: https://docs.google.com/document/d/1LVztWEsQVUZIOpSC36iRl72r09S51LjRymuYSv9TjtQ/edit?usp=sharing Feel free to add your notes in early as well. <@&356864093652516868>

raven canopy
#

no ppa necessary..

solar whale
#

so you built from source -- ok

raven canopy
#

didn't build it. just apt install gcc-arm-none-eabi would be required.

solar whale
#

ah ๐Ÿ’ก

#

did you get wifi workiing?

raven canopy
#

haven't tried. i'm using ethernet. but i will say: netplan is annoying as all get out.

solar whale
#

looks like it -- wired for now

raven canopy
#

ipv6 is largely broken too, for netplan. i've got a disable resource if you need it.

solar whale
#

OK -- will ping you if I get that far

raven canopy
solar whale
#

thanks!

#

@raven canopy hmmm -- all installed OK but when IT try to make mpy-crooss I get ```make: Entering directory '/home/ubuntu/circuitpython/mpy-cross'
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
GEN build/genhdr/moduledefs.h
In file included from ../py/mpstate.h:34,
from ../py/runtime.h:29,
from ../py/gc.c:32:
../py/nlr.h:63: error: "MICROPY_NLR_SETJMP" redefined [-Werror]
#define MICROPY_NLR_SETJMP (1)

../py/nlr.h:39: note: this is the location of the previous definition
#define MICROPY_NLR_SETJMP (0)

#

had same issue with 18.04 -- did I miss something?

#

looks like nlr.h is not detecting the achitecture

raven canopy
#

hmm. might need to work some dpkg magic. i honestly haven't gotten that far yet..

solar whale
#

ah -- ok -- no problem -- I'll let you know if I figure it out.

raven canopy
#

i appreciate it @solar whale!

raven canopy
#

ahh. just looked at the log. building unix port.

solar whale
#

hmm - could have used a bit more info at the end ...

manic glacierBOT
#

Add microprocessor.cpu.voltage to measure the regulated voltage supplied to the chip. Monitoring of this value can detect when the regulated voltage is slumping due to a low battery.

This is typically 3.3V. Note that this does not measure the actual on-chip voltage used to urn the CPU, which is often lower due to an on-chip regulator (e.g., 1.2V).

I use the on-chip bandgap reference and compare it with a scaled version of the supplied voltage. The SAMD51 is very touchy about how to us...

#

I think you've got it. The primary objective is to be able to determine local time accurately based on gmtime when it's available. The nice-to-have would be to calculate gmtime from local time when an actively-updated gmtime isn't available.

Since the flag is available, calculating and including the DST offset would be frosting on the cake.
`>>> time.localtime()
Out[2]: time.struct_time(tm_year=2019, tm_mon=3, tm_mday=18, tm_hour=0, tm_min=3, tm_sec=26, tm_wday=0, tm_yday=77, tm_isdst=1...

solar whale
#

@raven canopy hmm -- it appears to only impact mpy-cross --- I was able to build feather_m0_express ```buntu@ubuntu:~/circuitpython/ports/atmel-samd$ make BOARD=feather_m0_express
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
GEN build-feather_m0_express/genhdr/moduledefs.h
QSTR updated

6812 bytes free in flash out of 253696 bytes ( 247.75 kb ).
24868 bytes free in ram for stack out of 32768 bytes ( 32.0 kb ).

Converting to uf2, output size: 494080, start address: 0x2000
Wrote 494080 bytes to build-feather_m0_express/firmware.uf2.

raven canopy
#

yeah, i might be able to get away with that for my purpose. i don't currently plan on sending a CPX or the like through a Rosie test.

solar whale
#

still should be fixable -- will keep looking

raven canopy
#

but the allure of reading the contents of things like libc/arch-aarch64/include/machine/setjmp.h is high ๐Ÿ˜„

solar whale
#

the board build set CFLAG -mthumb so I think that keeps it happy

#

the mpy-cross may need a new config for RPi

raven canopy
#

yeah. i'm tempted to just plug in an #if defined(__aarch64__) if i can narrow down what the values should be.

solar whale
#

sigh -- have to stop playing for now -- will get back to it later this evening or tomorrow. So much fun -- so little time.

raven canopy
#

right? thanks again for climbing down this hole with me!

solar whale
#

my pleasure - thanks for showing me the hole !

solar whale
#

@raven canopy got a few more minutes to play -- if it is OK to use MICROPY_NLR_SETJMP instead of something specific to the architecture then this change allows mpy-cross to compile and I am able to build circuitpython_express ```ubuntu@ubuntu:~/circuitpython$ git diff
diff --git a/py/nlr.h b/py/nlr.h
index 802f5f39a..769994eb8 100644
--- a/py/nlr.h
+++ b/py/nlr.h
@@ -36,7 +36,6 @@

// If MICROPY_NLR_SETJMP is not enabled then auto-detect the machine arch
#if !defined(MICROPY_NLR_SETJMP) || !MICROPY_NLR_SETJMP
-#define MICROPY_NLR_SETJMP (0)
// A lot of nlr-related things need different treatment on Windows
#if defined(_WIN32) || defined(CYGWIN)
#define MICROPY_NLR_OS_WINDOWS 1
@@ -64,7 +63,9 @@
//#warning "No native NLR support for this arch, using setjmp implementation"
#endif
#endif

+#if !defined(MICROPY_NLR_SETJMP) || !MICROPY_NLR_SETJMP
+#define MICROPY_NLR_SETJMP (0)
+#endif
#if MICROPY_NLR_SETJMP
#include <setjmp.h>
#endif
ubuntu@ubuntu:~/circuitpython$

raven canopy
#

i was digging in the same direction. aarch64/arm64 has setjmp, so in theory it should work... should

solar whale
#
make: Entering directory '/home/ubuntu/circuitpython/mpy-cross'
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
   text       data        bss        dec        hex    filename
 268038      20144        904     289086      4693e    mpy-cross
make: Leaving directory '/home/ubuntu/circuitpython/mpy-cross'
ubuntu@ubuntu:~/circuitpython$ cd ports/atmel-samd/
ubuntu@ubuntu:~/circuitpython/ports/atmel-samd$ make BOARD=circuitplayground_express clean
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
rm -rf build-circuitplayground_express 
ubuntu@ubuntu:~/circuitpython/ports/atmel-samd$ make BOARD=circuitplayground_express
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
GEN build-circuitplayground_express/genhdr/moduledefs.h
QSTR updated
FREEZE ../../frozen/Adafruit_CircuitPython_BusDevice ../../frozen/Adafruit_CircuitPython_CircuitPlayground ../../frozen/Adafruit_CircuitPython_HID ../../frozen/Adafruit_CircuitPython_LIS3DH ../../frozen/Adafruit_CircuitPython_NeoPixel ../../frozen/Adafruit_CircuitPython_Thermistor

6072 bytes free in flash out of 253440 bytes ( 247.5 kb ).
25748 bytes free in ram for stack out of 32768 bytes ( 32.0 kb ).

Converting to uf2, output size: 495104, start address: 0x2000
Wrote 495104 bytes to build-circuitplayground_express/firmware.uf2.
#

I'll do some real tests with it later or tomorrow.

raven canopy
#

wipes sweat from brow
finally back to a workable state, and on the target device to boot.

rosie@ubuntu:~/rosie_pi$ rosiepi metro_m4_express f510fbeb0f197c2568c0ca59ae312f741c1bba71
========================= RosiePi ==========================
Initiating rosiepi...
------------------------------------------------------------
 - Date/Time: 12-Oct-2019,22:13:41
 - Test commit: f510fbeb0f197c2568c0ca59ae312f741c1bba71
 - Test board: metro_m4_express
============================================================
Connecting to: metro_m4_express
------------------------------------------------------------
Failed to connect to: metro_m4_express
Can't find USB device: idVendor=0x239a, idProduct=0x8021
============================================================
Closing RosiePi

rosie@ubuntu:~/rosie_pi$ 
#

now to test triggering from the web...

manic glacierBOT
solar whale
#

@raven canopy @tulip sleet FYI -- I just ran through the Linux install steps in https://learn.adafruit.com/building-circuitpython/introduction on a Raspberry Pi 4 (Buster) with one change. Instead of using the ppa for installing the arm tools I just did sudo apt install gcc-arm-none-eabi which installed the same toolchain we are using gcc version 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] (15:7-2018-q2-6) and it all works very well.

#

@raven canopy with Ubuntu 19.04 on the RPi - with the one change to py/nlr.h from yesterday, it also builds fine -- I was able to execute a build on the cpx and use some of the frozen modules so mpy-cross is fine. I then tried to install "blinka" on the Ubuntou19.04. system and ran into another issue due to the aarch64 architecture setting -- rpi-ws281 fails to build when installing via pip3. Looking at the code, it is due to the aarch64 architecture setting. Still investigating how to workaround it. Note: I also found that I had to manually mount the CPX (either CPLAYBOOT or CIRCUITPY) not a problem, but took a few mintes to figure out... progress

solar whale
raven canopy
#

@solar whale oh yeah; buster came out right after i switched to using disco and i forgot all about it. did the buster version require that change to nlr.h? I am planning on getting a Pi4 at some point; 4GB RAM and faster USB would allow for some things like running a Redis server and booting from a drive...SD cards come with too much risk. ๐Ÿ˜„

#

i also imagine raspbian buster is a tad more performant than ubuntu disco.

solar whale
#

@raven canopy no, no changes needed on buster.

#

It shows up as armv71

raven canopy
#

ahh.

#

i might have to make that switch then. the only other platforms i can think of that would show up as aarch64/arm64 are maybe things like a Chromebook running Linux, the upcoming Surfaces (i think they switched to ARM), and maybe some CI services. might not be worth it to change micro/circuitpython for that...

#

opens Ruby docs to work on the webserver; why am i sticking with GitHubs template vs using Flask/Django? ๐Ÿ“š

solar whale
#

I think the change I made is harmless if it is useful.

raven canopy
#

that way nlr.h doesn't set it to 0

solar whale
#

Interesting. Still seems like nlr.h should not set it twice. My change just avoids that.

#

But it could be handled in the Makefile that way as well

#

May be simpler

solar whale
raven canopy
#

well looky there. i could've swore i peeked at it yesterday. good find @solar whale!

solar whale
tulip sleet
raven canopy
#

tips hat to @tulip sleet for upstream merges yet again. those must be sooo painful.

solar whale
#

@tulip sleet ah -- ok -- I may put in a PR for discussion then, as we found it can lead to errors as written, but I think a simple reordering fixes it.

tulip sleet
#

I can't remember about that at all. I may have put it in to get it to work in some situation. I don't see it upstream.

solar whale
#

the problem is it set is there -- but also tries to set to again if the architecture is not found, which is an error

tulip sleet
#

So I think probably I wanted to make sure it was set one way or the other, and thought "arch not found" should maybe indeed cause an error so it could be fixed?

solar whale
#

I think this avoids it with no impact ```ubuntu@ubuntu:~/circuitpython$ git diff
diff --git a/py/nlr.h b/py/nlr.h
index 802f5f39a..769994eb8 100644
--- a/py/nlr.h
+++ b/py/nlr.h
@@ -36,7 +36,6 @@

// If MICROPY_NLR_SETJMP is not enabled then auto-detect the machine arch
#if !defined(MICROPY_NLR_SETJMP) || !MICROPY_NLR_SETJMP
-#define MICROPY_NLR_SETJMP (0)
// A lot of nlr-related things need different treatment on Windows
#if defined(_WIN32) || defined(CYGWIN)
#define MICROPY_NLR_OS_WINDOWS 1
@@ -64,7 +63,9 @@
//#warning "No native NLR support for this arch, using setjmp implementation"
#endif
#endif

+#if !defined(MICROPY_NLR_SETJMP) || !MICROPY_NLR_SETJMP
+#define MICROPY_NLR_SETJMP (0)
+#endif
#if MICROPY_NLR_SETJMP
#include <setjmp.h>
#endif
ubuntu@ubuntu:~/circuitpython$ ```

#

unless you want it to fail

tulip sleet
#

we have stricter warnings, and want #if SOMETHING to throw an error if SOMETHING is not defined.

solar whale
#

it still gets defined, just a bit later

tulip sleet
#

so please go ahead and restruture to have it make sense in the "don't know this arch" case

#

at the time there were probably no unknown architectures

solar whale
#

ok -- I'll put a PR in later today. Then we can discuss if it is they way to go.

tulip sleet
#

so it didn't fail

raven canopy
#

another approach could be to handle aarch64/arm64 so that its known. again, i think this is a small vector. biggest would be if github actions starts running on ARM servers, probably.

solar whale
#

I have go -- ๐Ÿถ needs a walk -- back later .... thanks!

manic glacierBOT
#

Remove non-CircuitPython ports. We discussed this a week or two ago in the weekly CircuitPython meeting, and there was general agreement to remove these for clarity. These ports have not kept up with CircuitPython, except for esp8266, which was dropped. If and when we do a port to one of these platforms, we may choose a different directory name so as not to conflict with the MicroPython port name. (For example, we are using stm32f4 for our port, instead of stm32.)

These ports have b...

crimson ferry
#

@prime flower I have a working digitalRead NINA + digitalRead adafruit_esp32spi.py ...I assume NINA version number I'll leave alone and it will get changed when the PR gets accepted and someone with access (probably you?) does an official build? Also, what is the significance of 1.4.0-dirty?

solar whale
#

@crimson ferry the -dirty implies you have made changes to the repo since the last tag.

exotic pumice
#

hey @slender iron can I pick your brain about the spi flash filesystem?

slender iron
#

@exotic pumice sure. I'm not around for very long though. have brunch soon

exotic pumice
#

I'm writing a qspi flash driver in Rust, and the fat library I'm using either needs an MBR or the lba_start address and block size of the filesystem

#

do you happen to know where I can find the lba start address?

#

oh and another question I had was if there was any way to detect size of the flash chip

slender iron
#

we hard code the partition table in circuitpython

#

the flash size my be detectable but we don't go that far because there are other aspects you may need to know like qspi support variants

#

newer chips have more complex id registers but we don't use them

#

we read the older one and map it to static info we build in

exotic pumice
#

yeah I'm not sure if I want to start building a database of flash chips like you guys have but it might be unavoidable

#

could you show me where the partition table info is?

slender iron
#

why not have the user supply the info about the chip?

exotic pumice
#

that's a good idea

slender iron
#

you probably want to use a real mbr though

#

it's only good to stub it if you want to lock it down

exotic pumice
#

is there a way I can get direct access to the flash chip over usb to write an mbr?

slender iron
#

ya, usb is all block level below the fs

exotic pumice
#

because I had circuitpython installed and tried reformatting and stuff and it didn't like it

slender iron
#

yup, that is because we hard code the partition table

exotic pumice
#

so what do I do? some low-level usb shenanigans?

slender iron
#

to do what?

exotic pumice
#

direct access to the flash chip to write an mbr

slender iron
#

in circuitpython?

exotic pumice
#

in whatever

#

I have a soic clip but hoping I don't have to use it

slender iron
#

usb just reads and writes blocks. just don't intercept the block 0 read like we do

exotic pumice
#

so I need a usb fs driver

slender iron
#

yes

exotic pumice
#

ok thanks

#

and is it fat16 or fat12?

slender iron
#

12

exotic pumice
#

well that might be a problem :/

#

don't think I have a fat12 driver

slender iron
#

the chips are too small for fat16

pastel panther
#

hey @slender iron or @tulip sleet , how far out is BLE HID from being ready for testing?

tulip sleet
#

@pastel panther It already works in the current alpha.4 release, but is a little rough around the edges. @slender iron is doing a rewrite, so the API will change. Also, since we don't have bonding yet, you may have to re-pair each time.

pastel panther
#

@tulip sleet ok, great. Thanks for the update

manic glacierBOT
manic glacierBOT
manic glacierBOT
onyx hinge
#

@slender iron for the meeting:: hug reports to everyone, I've missed you. Status update: Flying back to USA today, will look at my issues and pick something to get started on once jet lag has passed. Will miss today's meeting

#

Actually I might be between flights in MSP when the meeting is going on...

raven canopy
#

hmm. GitHub Apps & GitHub Actions seem to be quite intertwined due to the fact that both exist in the "check suite". finally got to test the RosiePi app...and it received 80+ (* 2, for push & PR) requests. one for each check created by the GitHub Actions. hooray! ๐Ÿ˜ฌ

manic glacierBOT
manic glacierBOT
manic glacierBOT
#

This PR is by no means critical - there may be better ways to do this
Background
I was attempting to build CP on a Raspberry Pi with Ubuntu 19.04 installed - just to see if it worked...
When I tried to build mpy-cross - it failed with several instances of this error

make: Entering directory '/home/ubuntu/circuitpython/mpy-cross'
Use make V=1, make V=2 or set BUILD_VERBOSE similarly in your environment to increase build verbosity.
GEN build/genhdr/moduledefs.h
In file included fr...
plucky flint
#

morning... I have dad taxi duty (again) at time of meeting. I've added stuff to the agenda doc. TL;DR -- lots of painful Mu things & hugs to @slender iron for upcoming radio fun.

#

Q: would folks like to see the circup functionality wrapped in some way within Mu..?

prime flower
#

@plucky flint I would

plucky flint
#

๐Ÿ‘

#

OK... I'll try getting it into the upcoming alpha

prime flower
#

@plucky flint sweet, tag me and I'll gladly test

meager fog
#

@tidal kiln hihi how is the neopixel guide goin

tidal kiln
#

@meager fog oops. haven't really started it. somehow missed your response in basecamp that mini=ok. i'll go ahead and crank it out today.

gilded cradle
#

@plucky flint, only if it means the Catalina fix won't be slowed down ๐Ÿ™‚ .

rotund basin
slender iron
#

@rotund basin are you looking at the serial output?

rotund basin
#

Hi @slender iron I can't seem to find the m0 in either my windows device manager or ubuntu system ๐Ÿค”

slender iron
#

did you try a different usb cable?

#

blinking the red led looks like a perpetual reset

rotund basin
#

It seems like it's just connecting and disconnecting on every flash set

slender iron
#

what is it connected to?

rotund basin
#

Windows box

slender iron
#

all of the jumper wires

rotund basin
#

I think the reset is confirmed

#

They are all disconnected

#

So, is it bricked now? ๐Ÿค”

slender iron
#

can you double click to get the bootloader?

rotund basin
#

Tried that, a G? Appaeard briefly but , no joy otherwise

ruby atlas
#

you know you've been flashing a board too much when you write shell and python scripts to build Circuit python, reset the board into the bootloader and then wait for the bootloader volume, copy it, then start the serial monitor ๐Ÿ™‚

onyx hinge
#

whee, hello from MSP! It's good to be back in the states. A couple hours waiting for our connecting flight back home to LNK.

idle owl
#

@onyx hinge Hey! Welcome back!

ionic elk
#

@slender iron can't make the meeting today but I'll post some updates later tonight on UART hopefully. Notes are in the doc

slender iron
#

@ionic elk when will you be around? we can do a voice sync on it

ionic elk
#

Had some moving stuff bleed into the early afternoon but I'll be at my desk in an hour or so to do evening work.

#

How would 3:30 work?

slender iron
#

should be fine

rotund basin
#

@slender iron confirm its bricked? Would a swd programmer fix?

old smelt
#

lurking

swift arrow
#

lurking

onyx hinge
#

hi kattni

swift arrow
#

Howdy!

#

yes

tulip sleet
#

@rotund basin what .uf2 did you use?

tidal kiln
#

lurking working on a guide ๐Ÿ™‚

gilded cradle
#

I wanted to makesure upgrading to MacOS Cataclysm didn't break discord

onyx hinge
#

now you know you need a second mac

tulip sleet
#

@rotund basin it's not bricked - you should just be able to get FEATHERBOOT and reload it

turbid radish
#

Lurking but here for questions/comments

river quest
#

yah, we have not moved to catalina on our day to day machines or our broadcast machine(s) yet

turbid radish
#

Some people on Twitter are likening Catalina to Vista

swift arrow
#

ouch

raven canopy
#

is that better than a comparison to 8.1? ๐Ÿ˜œ

swift arrow
#

๐Ÿ™‚

tidal kiln
#

yay! clicky keyboards! just like old times!

onyx hinge
#

you'll get there

errant grail
#

... lurking today ...

ivory yew
#

Is there a link to the notes doc?

ruby atlas
slender iron
ivory yew
#

Thanks. ๐Ÿ™‚ The pinned one is for last week's.

gilded cradle
#

I fixed the pin

old smelt
#

"Reasonable Backtrace" would make an excellent name for a rock band.

river quest
#

GET IT, PHIL FILLS US IN!

#

๐Ÿ™‚

raven canopy
#

good. i wasn't the only one who thought that. :phew:

neat folio
#

phil us in

pearl notch
#

Hi all. Just listening today, I think.

turbid radish
#

Philler material

ruby atlas
#

๐Ÿคฆ๐Ÿป

turbid radish
#

Phillosophical notes

errant grail
#

in-phil support

raven canopy
#

gets ready to add Master Punner roles

rotund basin
#

@tulip sleet it keep resetting itself, won't go into boot loader mode either ๐Ÿ˜ž

river quest
tulip sleet
#

@rotund basin will circle back after meeting

river quest
timber mango
#

The philament that binds us

river quest
onyx hinge
#

circuitpython encircles the world

river quest
#

Does Mu work with Catalina? Yep!
"...the update to OSX Catalina breaks Mu in dark and high-contrast modes (text remains black, so can't be seen). It's still fine for "day" mode, although code colouration might not work properly. I tested things this morning and it's down to the version of Qt packaged with the 1.0.2 version being old. I hope to release a new alpha version early next week that fixes the issue. BTW, the only reason it's called "alpha" is because the new features may not be finished or finalised. Alpha versions of Mu still have to pass all the tests and things we do for a regular release. Just letting you know in case you get folks on your forums or support channels asking."
https://codewith.mu/

#

PyCon US 2020 is opening applications for Financial Aid, they are accepting them through January 31, 2020. To apply, first set up an account on the site, and then you will be able to fill out the application through your dashboard. The financial aid program aims to bring many folks to PyCon by limiting the maximum grant amount per person; this way PyCon can offer support to more people based on individual need. The financial aid program reimburses direct travel costs including transportation, hotel, and childcare, as well as offering discounted or waived registration tickets. For complete details, see our FAQ, and contact pycon-aid@python.org with further questions - PyCon blog.
https://pycon.blogspot.com/2019/10/financial-aid-launches-for-pycon-us-2020.html

#

now off to FILL UP MY COFFEE CUP

gilded cradle
#

@idle owl, my sound stopped working

river quest
#

YAY @ivory yew !

manic glacierBOT
raven canopy
#

no new labels were assigned. i think there are about 9 or so issues with the Hacktoberfest label.

#

i could probably dis-ambiguate that text... ๐Ÿ˜„

slender iron
#

no worries

gilded cradle
#

Ok, sounds is back after a restart

manic glacierBOT
idle owl
#

๐Ÿฆƒ

swift arrow
#

yea @ivory yew !

ivory yew
#

๐Ÿ˜Š

prime flower
#

welcome back charles!

manic glacierBOT
turbid radish
#

Group hug

prime flower
raven canopy
ivory yew
#

Yep!

prime flower
#

@solar whale Speaking of NTP, after the meeting, did you happen to test if the NTP "error" still occurs on nina-fw 1.4.0?

solar whale
#

@prime flower yes -- it does but I no longer have as many failures to find my SSID when I first connect. It still needs some time to find a valid NTP time.

ivory yew
#

@raven canopy hi, I used to work on pip and python packaging, feel free to ping me for help with that stuff. ๐Ÿ™‚

raven canopy
#

i defintely might take you up on that @ivory yew! thanks in advance.

ruby atlas
#

(whee, adafruit package right in the middle of the cp weekly!)

onyx hinge
#

I am also available for geektrapping on this stuff @ruby atlas

ionic elk
#

@slender iron ready whenever you are

onyx hinge
#

bye!

slender iron
#

@ionic elk will be available in 5

ionic elk
#

Oh yeah I see you guys are still going

ruby atlas
#

@onyx hinge thanks! ๐Ÿ™‚

tulip sleet
#

@rotund basin back from meeting, are you still unable to get the bootloader going on the board? Did you have the UF2 bootloader installed on the Adalogger?

prime flower
solar whale
#

@prime flower will do - may have to wait until next weekend if I can't get to it today. traveling the rest of the week .. ๐Ÿ˜ฆ

prime flower
#

no rush

slender iron
#

ok, @ionic elk

raven canopy
#

fridge update: kiddo wasn't wrong. water filter somehow was impeding the flow. uninstall, reinstall, and all is right in the world.

rotund basin
#

@tulip sleet I had to use the bin file with bossa as in the adafruit pages. The boot loader didn't show before , but it all worked well on 2x

tulip sleet
#

did you use the same bossac as before for 4.x? The new bossac has different default arguments, and can overwrite the bootloader if it's not protected

#

if you double-click the reset button, do you get a pulsing red led?

#

i will dig out an adalogger

rotund basin
#

I used the latest bossac 1.9.1 with the 0x2000 offset like on the adafruit pages

tulip sleet
#

ok, that's good

rotund basin
#

Double click still gets me to continual reset

tulip sleet
#

ok, i have an adalogger with the Arduino bootloader. Will try.

rotund basin
#

Ok

tulip sleet
#

@rotund basin where di you get bossac 1.9.1 from?

#

and did you use adafruit-circuitpython-feather_m0_adalogger-en_US-4.1.0.bin ?

rotund basin
#

Github, and yes

idle owl
#

@slender iron Uploading the vid to YouTube. I need a link to the notes doc. Here is the vid link once it's processed: https://youtu.be/sGLswv_yHxk

swift arrow
#

The contributing page is pretty cool.

slender iron
#

doing it now

idle owl
#

@slender iron Thanks! Vid processing now.

slender iron
#

thanks!

idle owl
#

@swift arrow Once we get it updated, yes. But right now you can't filter by label.

swift arrow
#

ah ok. I thought it was done and I was looking in the wrong place ๐Ÿ™‚

idle owl
#

Nope, the data is available, we haven't updated the UI yet.

swift arrow
#

cool

#

I think it's going to be a great addition.

idle owl
#

@slender iron Video is uploaded.

#

@swift arrow I think so as well. I'm looking forward to it. Not so much looking forward to the huge sweep to label everything ๐Ÿ˜„

slender iron
#

๐Ÿ‘ wrapping up newsletter now

ruby atlas
#

@slender iron so, uh, if i change obj.c or objtype.c is there a test suite? ๐Ÿ™‚

slender iron
#

ya, the tests/ directory

ruby atlas
#

thanks!

slender iron
#

check out the CI config to see what it runs

#

micropython has really good coverage

ruby atlas
#

that's good to know (coverage)

tulip sleet
#

@rotund basin

C:\Program Files (x86)\BOSSA>bossac.exe -e -w -v -R --offset=0x02000 -p COM8 \Users\Dan\Downloads\adafruit-circuitpython-feather_m0_adalogger-en_US-4.1.0.bin
Erase flash

Done in 0.744 seconds
Write 183248 bytes to flash (2864 pages)
[==============================] 100% (2864/2864 pages)
Done in 2.303 seconds
Verify 183248 bytes of flash
[==============================] 100% (2864/2864 pages)
Verify successful
Done in 22.614 seconds

It came up with CPy, and also double-clicking reset is getting me a pulsing red LED, as expected.

rotund basin
#

Bossa told me it was successful as well , but didn't work after. I used the bossa gui as well

tulip sleet
#

do you mean you tried it twice?

rotund basin
#

No

manic glacierBOT
tulip sleet
#

so just bossa GUI?

rotund basin
#

Yes

tulip sleet
#

ok, will try that, hold on...

#

@rotund basin did you select "Erase all" in the Write Options?

rotund basin
#

Yes

#

And put in the offset

tulip sleet
#

did you put in the offset the very first time, and as 0x2000?

rotund basin
#

Yes , it fails without it

tulip sleet
#

ok, it's working for me with the GUI too. So, when it's plugged in, and you double-click the reset button, what shows up in "Ports" in the Device Manager?

rotund basin
#

Windows device manager continually refreshes because the device is resetting

#

Wonder if it's a 2x to 4x thing? ๐Ÿค”

tulip sleet
#

if you double-click, you should be going into the Arduino bootloader, and so what was flashed should not matter. It sounds like maybe the double-click isn't working??

#

have you tried another USB cable?

rotund basin
#

I had to double click for bossa to work

tulip sleet
#

right, that's what I'd expect

rotund basin
#

But now it's broken ๐Ÿค”

tulip sleet
#

if you plug it into a USB power supply (not Windows) and double-click, you should also get a pulsing red LED. Did you try this on other than Windows? (I forget.)

rotund basin
#

@tulip sleet still doesnt work, red flashes the same as my video

#

2 bright red, 1 dim red , 1 off repeat

#

Maybe its 3 bright red

#

When I double click, I get a red glowing effect then back to the above pattern

tulip sleet
#

i get similar for single-click. But double-click gets a pulsing. Try simulating a double-click by plugging a jumper into RST and then inserting and removing into GND twice quickly. Also unplug other stuff and remove the SD card

rotund basin
#

Just tried that, no not

#

Joy

tulip sleet
#

@rotund basin iDid you check any of the other checkboxes in BOSSA when you flashed? It's possible you somehow set the watchdog timer fuses, but that would be hard to do. How long does the reset loop take, as seen by Windows?

#

do you have a J-Link or similar programmer?

rotund basin
#

I didn't check any other boxes. @danh it's about two seconds

#

I have a jatagice3

slender iron
#

someone want to hop in the audio channel so I can test?

tulip sleet
#

are you familiar with Atmel Studio? You could hook up the JAGATAGICE3 to the SWDIO and SWCLK pads on the bottom, check the fuses, and reprogram the bootloader.

rotund basin
#

@danh I am going to try that , hoping that perpetual reboot doesnt interfere. Just to confirm which bootloader should be loaded ?

tulip sleet
#

first just check the fuses, since they may be the only things you need to fix. I'll find the bootloader

manic glacierBOT
slender iron
#

@idle owl had to launch from command line because obs doesn't trigger mic permissions correctly. also updated ishowu though I'm not sure I needed to

idle owl
#

Oi, ok.

#

Yeah I held off updating ishowu since it's been working

tulip sleet
crimson ferry
#
  File "code.py", line 1169, in <module>
  File "code.py", line 259, in load_font
  File "code.py", line 248, in load_font
  File "/home/travis/build/adafruit/Adafruit_CircuitPython_Bundle/libraries/helpers/bitmap-font/adafruit_bitmap_font/bitmap_font.py", line 51, in load_font
OSError: [Errno 2] No such file/directory```Never seen a Travis path in an error before. This was spurious (I may have done something funny on an analog pin), not to be too concerned about I think, but a curious result.
swift arrow
#

I have seen travis paths a couple times lately.. think in the _ble stuff

manic glacierBOT
raven canopy
#

@crimson ferry @swift arrow yeah. i need to drill down on that. are these happening with raw .py files or .mpy?

#

or both..

crimson ferry
#

.mpy but clearly something was corrupted in the processor, I have no refs like that in my code, and there's none in the .py of that lib

raven canopy
#

the only reason i can think of it happening has to do with how the script that builds the bundles is getting...confused.

crimson ferry
#

the path must be in the .mpy, but it should never get accessed by code

swift arrow
#

@raven canopy I think it was the mpy

raven canopy
#

basically, the script creates a temp file, and copies over the original, going line-by-line so it can update __version__ info before it all gets zipped. i'm wondering if its replacing something like __file__ or __name__ with the path. which would explain the Travis/...since its run on Travis.

crimson ferry
#

makes sense

raven canopy
manic glacierBOT
raven canopy
#

though i realized it could also be a mpy-cross issue as well.

rotund basin
#

@tulip sleet so the chip is resetting too fast or the ice3 can't read it. It reads a low voltage about 1V and can't read the chip or erase it

#

When the ice3 is connected and I double click, it stops resetting but... I still can't read the chip

slender iron
#

@rotund basin sounds like a physical problem with the chip

meager fog
#

@tidal kiln ok yay guide done, whatcha wanna do nex?

tidal kiln
#

got something?

meager fog
#

well, theres a few library tags you did

#

if ya wanted to poke at those

#

was also maybe trying the recorder project with bluefruit CPlay

#

or...maybe something else? have ideas? ๐Ÿ™‚

tidal kiln
#

yah, i was going to get caught up on weekend forum postings and then checkout those github things

#

i did try the recorder thing with the CPB, and it did sort of work better

manic glacierBOT
meager fog
#

@tidal kiln maybe worth a guide showin how you can do basic frequency 'detection'

#

it did sorta follow the trail of notes when i tried some squawking

#

could also display the frequencey detected on TFT Gizmo

tidal kiln
#

that's what i was thinking. the underlying method is kind of cool.

meager fog
#

could be cool 'guitar tuning' type thing

#

ok go for it

tidal kiln
#

it's not solid enough to like tune a guitar, but it still sort of works

meager fog
#

ok we'll add FFT eventually ๐Ÿ™‚

#

maybe thats a @onyx hinge project

#

its audio related

#

plz do version without TFT (using neopixels) and also a page with TFT gizmo

tidal kiln
#

the cool thing about the zero crossing is that it is fairly easy to explain and groc

meager fog
#

yeh!

rotund basin
#

@slender iron I respectfully disagree, it worked fine on 2x before the upgrade to 4x

slender iron
#

why would the voltage be 1v?

tulip sleet
#

@rotund basin have you also connected GND and VREF (and perhaps also RESET) to the ICE3?

#

do you need to tell Atmel Studio it's SWD (as opposed to JTAG, etc.)?

manic glacierBOT
swift arrow
#

what gcc version are we working with?

#

7 or 8? I'm betting not 9

swift arrow
#

7.3.1

manic glacierBOT
manic glacierBOT
meager fog
#

@tidal kiln hey i have an idea!

manic glacierBOT
tidal kiln
#

๐Ÿ‘‚

meager fog
#

jp's gona write a guide on the 'beam images to cpbluefruit' this week

#

but next week, maybe he can do a guide on running turtle on the tftgizmo

#

the CPX can't run turtle, but the CPB can

#

do you wanna do a team up, maybe in the next week or so, write a few turtle scripts that make fun holiday / winter -fall themed graphics

#

and jp can do the writeup/explain them

#

sirpinski snowflake i think we even have, can do a dreidle, xmas tree in green, maybe some baubles on it

#

snowman

tidal kiln
#

okie doke

meager fog
#

dunno if you did logo as a kid, i kinda find it relaxing + nostalgic ๐Ÿ˜„

tidal kiln
#

a little...wayyyyyy back

meager fog
#

๐Ÿข

tidal kiln
#

so, yah, would be fun to play with it again, haven't even used turtle yet

meager fog
#

@tidal kiln its built into mu!

tidal kiln
#

yep

meager fog
#

@tidal kiln feel free to bump mcp and close the two issues

tidal kiln
#

hmm. that one's still not really solved.

rotund basin
#

@danh you are a genius, I definky forgot those pins. Atmel studio jtag sees the m0 just fine now. Which bootloader should i load on the m0 after i erase it ?

meager fog
#

robo, what exact board do you hav?

rotund basin
#

Hey @meager fog I have the adalogger m0 ๐Ÿ˜

#

I think I found it on the uf2-samdx1 github

#

But I dont see adalogger in releases , is it the same as the feather m0?

rotund basin
#

And it doesnt show via USB, probably have to burn it via the swd connection

rotund basin
#

Any documentation on how to put the bootloader on it via atmel studio ? I'm not sure which fuses to set

rotund basin
#

What is the 07 equivalent?

rotund basin
#

So I did the 8k one after I flashed the bootloader and I have recreated the perpetual resets

#

After a double click and disconnecting the jtag

tulip sleet
#

@slender iron I had to update tinyusb manually even after merging from upstream for the deleting unused ports PR. Also I had to update submodules inside the tinyusb submodule

#

I thought I was doing that recursively already.

rotund basin
#

I tried going back to 2.00 bootloader , still no luck. The device just resets as soon as its loaded , what is the original bootloader version that shipped for adalogger I wonder?

tulip sleet
#

@rotund basin do you mean the 2.0 version of CircuitPython? That's not a bootloader. Use the .hex file from the link I posted earlier.

rotund basin
#

No the bootloader @tulip sleet

#

I went down from 3.7 all the way incrementally to 2.0.0

manic glacierBOT
tulip sleet
#

which UF2 bootloader are you trying to load, and how are you loading it? You'll need to load it at 0x0000, and maybe undo the BOOTPROT fuse temporarily so it can write. So are you succesfully flashing with Atmel Studio?

rotund basin
#

@danh I've tried eac, one from 3.7 to 2.0.0.afafruit6 , the avr studio defaults to 0x0000 , after bootloader is written, the m0 resets perpetually... I can find no shorts across the pins and the jtag reports 3.7V on the chip. Does OpenOcD have to be used to program the bootloader instead? Not sure why that would matter ?

manic glacierBOT
manic glacierBOT
trim elm
#

@idle owl it appears the ili9341 (the same screen on the pyportal from what I can gather) is already supported on displayio. Should I continue working on a simpletest for it with the gfx library?

#

Or what I could do is work on some simpletests for the displayio library for various displays as I can't seem to find any online

manic glacierBOT
lone sandalBOT
manic glacierBOT
manic glacierBOT
meager fog
#

@ionic elk hiya - you're working on a GPS demo?

manic glacierBOT
manic glacierBOT
tidal kiln
#

@umbral dagger any reason to limit the turtle lib to only boards with built in displays?

manic glacierBOT
ionic elk
#

@meager fog yep I'm still whacking away at UART

#

YOU SAID IT WOULD BE EASY D`:<

meager fog
#

@slender iron @ionic elk ok lets chat about attack plans

#

usually it is!

#

im also often wrong

ionic elk
#

I had a chance to chat with Scott yesterday but we can talk again if you want

idle owl
#

@trim elm I would say find a display that uses GFX, and write a simpletest for it. There are at least a few for sure. There should be a number of guides using displayio already. We can think about writing up more examples for displayio though.

meager fog
#

i wasnt there ๐Ÿ™‚ so now we can catch up in text

#

@ionic elk at this time you have basic character reading but its not buffered?

ionic elk
#

That's right

#

it works for most things, including returning raw GPS data, but it won't work for the GPS sketch in full

#

Gets stuck on fixing

#

(compared to control)

meager fog
#

what dya mean 'stuck on fixing'

#

whats the output vs expected?

ionic elk
#

My Feather M4 express will fix on my "warmed up" battery-backup in about 4 tries, the STM32 one never does, it just returns the "attempting fix" forever

meager fog
#

whats the raw NMEA output?

#

like what is your root cause failure

ionic elk
#

I would guess dropped characters, when it's working in high speed asynchronous format, caused by a lack of buffering and not requesting data at the correct times

#

I do see what appears to be complete data when I read the raw data

meager fog
#

do you know that for sure or are you guessing? ๐Ÿ™‚

ionic elk
#

I'm not totally sure, since I don't have great python debugging chops - but with the current system, if you do receive anything when a read isn't actively in progress, you will lose characters. Even before I started Scott figured that would pretty much disable the GPS from working

meager fog
#

ok please give me the firmware binary

#

and your current sketch

ionic elk
#

Sure

#

Adding sketches to basecamp since they're too long

meager fog
#

you can drag files here

slender iron
#

@ionic elk you can modify the gps library to print out what it's reading from serial

ionic elk
meager fog
#

@ionic elk ok back in a few - have to finish a tester

ionic elk
#

Raw data sample, I don't know if this is useful:

$GPGGA,170915.000,4222.8886,N,07106.2939,W,1,07,1.08,18.6,M,-33.7,M,,*67
$GPRMC,170915.000,A,4222.8886,N,07106.2939,W,0.34,91.59,151019,,,A*40
$GPRMC,170914.000,A,4222.8885,N,07106.2940,W,0.44,94.06
meager fog
#

thats correct

#

you can verify the checksum at the end

manic glacierBOT
meager fog
#

@ionic elk did you implement self._uart.in_waiting?

#

alwyas prints 0

ionic elk
#

Ok, I'd guess that's based off common_hal_busio_uart_rx_characters_available

meager fog
#

yes please implement it

ionic elk
#

Since there's no input buffer, should it just be 1?

meager fog
#

sure

#

the library assumes that data is bufferd

#

so it wont work really without that

#

if self._uart.in_waiting < 32:
return None

#

it doesnt read a GPS sentence until there are 32 bytes

slender iron
#

ah, that'll break it

meager fog
#

yes

#

@ionic elk is there no IRQ for UART RX?

slender iron
#

there is an interrupt based HAL api

meager fog
#

there is no way to get a callback when a byte is received over UART?

ionic elk
#

Basically the issue is the IRQ API is inflexible by default. You can't specify your own callback, you have to use theirs, and you can't pass in context pointers, so everything you use in it has to be global.

#

(as given in examples, anyway)

meager fog
#

thats ok there's no more than 3 UARTS

ionic elk
#

So I'm looking at how Micropython does it, which turns out to be how I was planning to do it but thought it'd be too clumsy, which is to have a file with all these global interrupt registrations and then call custom interrupts out of there

meager fog
#

you could allocate 128byte buffers for each uart

#

you are definitely able to get data fast enough, if i disable the 32-byte buffer read check the data comes thru

#

it just isnt getting there right now ๐Ÿ™‚

ionic elk
#

Ok gotcha

#

I've got a system that's almost completely done I just need to sort out the IRQ management

meager fog
#

oki

#

what else does micropython use the irq global table for other than uart?

slender iron
#

globals are totally ok

#

I just wouldn't do a global buffers. Allocate the buffers on the micropython heap. That way they only take up space when in use

ionic elk
#

Let me pull up a link

#

The issue is I need to get the buffer into the IRQ/callback. And the IRQs don't take context pointers

#

that's my key problem

meager fog
#

@ionic elk can you tell what triggered the IRQ?

manic glacierBOT
ionic elk
slender iron
#

right, there are separate functions per uart

#

when there isn't you can check the interrupt bit on each peripheral to know if it triggered

ionic elk
#

Ok, I think I see the key element

#

scott, do you know what this does? pyb_uart_obj_t *self = MP_STATE_PORT(pyb_uart_obj_all)[uart_id - 1];

slender iron
#

they all call the same handler but pass in the index

#

MP_STATE_PORT is global state so it must map to the uart for the given index

ionic elk
#

I think that line fetches the mp object for the UART based on the UART index, which is what I need to get the buffer into the callback

#

right, can I still do that in Circuitpython?

slender iron
#

ya, I'd just store it globally myself

ionic elk
#

the buffer?

slender iron
#

the pointers to the native object

ionic elk
#

Ok, so every time you create a native object for a given UART, it puts itself in a global pointer table?

slender iron
#

ya

ionic elk
#

And then the de-init removes it

#

ok

#

OK I think I can work with that yeah

slender iron
#

it's probably best to put it in MP_STATE_PORT

#

you need to make sure the pointers go somewhere that the garbage collector looks

ionic elk
#

^are you changing your mind

#

just checking

slender iron
#

otherwise it'll free it out from under you potentially

ionic elk
#

@slender iron Can you give me a once sentence description of what it actually is? I see it refers to a structure called MP_state_vm

#

I think it's accessing the root pointers, right? Which I would need to define, since we don't currently have any

slender iron
#

its a big struct of global state where part of it is automatically collected during garbage collection

ivory yew
#

So MP_STATE_PORT is basically just a bunch of global variables used by a specific port/board?

#

(I'm lurking and very interested in this discussion)

slender iron
#

yes

ionic elk
#

@slender iron so I'd add root pointers for the UARTS to mpconfigport.h, and then I'd have access to them via MP_STATE_PORT, right?

slender iron
#

what do you mean by root pointers?

ionic elk
#

In micropython, the array of UART objects, pyb_uart_obj_all, is not specified in the actual MP state vm object, but in mpconfigport.h under MICROPY_PORT_ROOT_POINTERS, which then get included in the actual object

slender iron
#

right

#

root pointer means it's the first pointer collected during gc

#
  • one of the first
#

the collection process recurses into it to find other referenced pointers

ionic elk
#

What's the advantage to this vs just storing the pointers in an static global array in the UART module, again? Will the array of pointers prevetn the uart modules from being garbage collected?

slender iron
#

right, if it's a plain global the gc won't realize you still have a reference and re-allocate the memory

ionic elk
#

sorry, it's my first time dealing with gc in this kind of context

slender iron
#

assuming the user stopped using it

ionic elk
#

Will that matter? We don't need the UART to persist past user use even if it's still referenced

#

which it shouldn't be, because when the object is de-inited, that pointer should be set to null

slender iron
#

it will because your interrupt handler will still try to use it

#

objects aren't always deinit

#

deinit is a convenience for folks to get back resources immediately

#

python is very handwavy when an object is actually freed

ionic elk
#

I see. So the threat is that an object goes away, the IRQs are still going because there was no concrete common_hal event to signify that, and they start attempting to read/write from memory that's already been reallocated

#

do I have that right?

slender iron
#

yup, exactly

#

you can test by:

#
uart = busio.UART()
del uart
gc.collect()```
#

the del will delete the python reference but not the internal one

ionic elk
#

I guess I'll start by trying to get the root pointer array in, and then I'll get the IRQ linking set up

slender iron
#

and the collect will free the memory

ionic elk
#

Is there a big array of specific IRQ functions for Atmel and NRF? If so, where did you put them? Micropython has the stm32_it but I'd rather follow circuitpython convention if it exists.

slender iron
#

we don't have it in one file because the global names are enough

#

the big array is an arm thing

ionic elk
#

I mean where do I put this stuff:

void UART5_IRQHandler(void) {
    IRQ_ENTER(UART5_IRQn);
    uart_irq_handler(5);
    IRQ_EXIT(UART5_IRQn);
}
#

Should I just have it in my uart.c function, or port.c, or what?

slender iron
ionic elk
#

per file then, you'd say?

slender iron
#

ya, I'd put all of the uart ones together

ionic elk
#

๐Ÿ‘ˆ you got it ๐Ÿ‘ˆ

slender iron
#

arms have an array of exception (aka interrupt) handlers

ionic elk
#

I was considering editing that but didn't want to break it too badly.

#

Wasn't sure how the HAL would take to it

slender iron
#

nah, the functions there are declared weak so if you create one of the same name it'll win

ionic elk
#

I mean the actual assembly file

slender iron
#

it's assembly for stm?

ionic elk
#

(double checking so I don't look like an idiot)

#

yep

#

.s

slender iron
#

you probably want to do it through the hal still

ionic elk
#

Yes, it will be, in this case. The array of root pointers will allow me to access the ring buffer without the use of a context pointer, just by using the index of the UART, so I'll be able to continue using the HAL functions without modification

slender iron
#

or not since it expects you to know how much

ionic elk
#

If it continues having issues I can reduce down to direct register pulls like Micropython does, which probably wouldn't be awful in the case of uART

slender iron
#

I find registers easier than HALs but it can get tricky when using both

tidal kiln
#

@slender iron is there an easy answer for what to do about older examples that use refresh_soon() and wait_for_frame()?

slender iron
#

ya, just delete them

#

the auto-refresh should work without those

tidal kiln
#

and things will generally be ok if running in 4.x?

slender iron
#

4.1.0 at least

tidal kiln
#

well, that is easy then. thanks.

slender iron
#

np

#

๐Ÿƒ

manic glacierBOT
rotund basin
#

Well. I couldn't get my adalogger working , so I bought 10 more ๐Ÿ˜

meager fog
#

@ionic elk hiya was in a meetin' - sounds like you have a path?

tidal kiln
idle owl
#

@tidal kiln Oh hmm. I think the current iteration of it on RTD needed to be deleted and it needed to be added like normal. I have this open in a tab somewhere.

#

Let me look

#

That appears to have been resolved. Looking into it.

#

@tidal kiln It's not simple. I think it needs to be deleted and redone.

tidal kiln
#

oof

idle owl
#

I'll deal with it when I get a chance.

#

or do you need the docs now

tidal kiln
#

only for boiler plate text in a release

idle owl
#

Oh right. Yeah leave it as is in the release text. It'll get fixed

tidal kiln
#

ok. thanks.

ionic elk
#

@meager fog yep I think I'm pretty close. I was pretty close before but my approach would have given me problems with the garbage collector, so I'm super thankful Scott helped me understand the circuitpython root pointer stuff

meager fog
#

yes he's amazing!!!

#

thank you for working together so well ๐Ÿ™‚

ionic elk
#

It's definitely nice to get his help, especially on the micropython arcanery

#

Hug report next week lol ๐Ÿ™‚

#

@meager fog also, sent you an email about this, but I've been thinking of putting together some of my own CPy boards and was wondering if I could get access to the Adafruit eagle parts library

meager fog
#

lol ok @ionic elk dont forget to implement available_bytes

#

orwhatever its called

#

@ionic elk oh yahh its undergoing a refactor

ionic elk
#

Yep!!! Good to know it's essential

meager fog
#

can you 'recycle' existing boards

#

thats the best way to use our parts

#

copy n paste from the sch ๐Ÿ™‚

ionic elk
#

Gotchaa yeah I think eagle has the reverse library build thing, I was just wondering if you had a big sharable database

#

I'm just looking for connector bits mostly, the old Sparkfun and Adafruit libs don't even have USB C and the managed libraries are a bit of a mess

#

Plus your parts are so much prettier

#

(and more informative)

#

but if it's WIP I can use the reverse thing

meager fog
#

@ionic elk yeah its something im working on but its kinda a mess right now ๐Ÿ˜ฆ

#

so you can use exp-lbr

#

or copy-paste from a schematic into yours

ionic elk
#

I'll do that! I assume the copy paste drags along the brd layout too?

meager fog
#

@ionic elk no, you have to relayout

#

if you want to include both you need to import the design you want to copy

manic glacierBOT
orchid basinBOT
raven canopy
#

and also handle fails more gracefully. even after closing that PR...the check is still "running". ๐Ÿ˜„

pastel panther
#

hey <@&356864093652516868> if someone could test the msa301 or another driver that uses adafruit_bus_device with a current bundle and 5.0 alpha 4 build? if you're seeing what I'm seeing it'll be obvious.

I have to run out for a bit but @vernal fern if you can, thanks!

gilded cradle
#

I tested the RA8875 yesterday and it seemed fine @pastel panther

tidal kiln
#

@pastel panther can do. i'll do itsy m4 + msa301. one sec....

errant grail
#

@pastel panther I have one in-hand and could test it later tonight if that would help.

ivory yew
#

Any other driver? I'm using bus device for the AD5689 driver, I can try that out.

pastel panther
#

I'm seeing an issue across the board with anything using bus device on calling the constructor. Driving now, bbiab

tidal kiln
#

@pastel panther seems to work fine.

Adafruit CircuitPython 5.0.0-alpha.4 on 2019-09-15; Adafruit ItsyBitsy M4 Express with samd51g19
>>> import board
>>> import adafruit_msa301
>>> msa = adafruit_msa301.MSA301(board.I2C())
>>> msa.acceleration
(0.0766094, 0.809186, 11.6973)
>>> 
pastel panther
#

Ok thanks @tidal kiln I must have lost my mind

idle owl
#

Hmm. Now to find out if register works with an already existing non-register driver.

idle owl
#

Welp the driver I wrote sight-unseen doesn't work. Surprise. ๐Ÿ™„ Getting OSError: [Errno 5] Input/output error.

idle owl
#

!! My driver did work!

ivory yew
#

yay?

#

but who was error?

idle owl
#

Needed to set frequency on I2C init.

ivory yew
#

ah nice

idle owl
#

The rest of it worked. I wrote that in June without having the board.

#

Probably the 3rd driver I ever wrote I guess?

ivory yew
#

2 more than me. ๐Ÿ™‚

idle owl
#

You have a far deeper knowledge of this stuff than I do, or at least it seems so based on the assistance you're providing to others here ๐Ÿ™‚

ivory yew
#

๐Ÿ˜Š I'm mostly just good at research.

raven canopy
#

@idle owl ๐ŸŽ‰

ivory yew
#

What's the new driver?

idle owl
#

MCP9600. But a community member has since submitted the basic bits of the driver and we're using that. I am supposed to go through and add all the extra features I implemented in the original one I wrote in June.