 Hello, everyone. This is the Circuit Python Weekly Meeting for May 3rd, 2021. It's the time of the week where we get together to talk about all things Circuit Python. I'm Jeff, and I'm sponsored by Adafruit to work on Circuit Python. Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is sponsored primarily by Adafruit. So if you want to support them and Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafruit.it.discord. We hold the meeting in the Circuit Python Dev text channel and the Circuit Python voice channel. This meeting typically happens on Mondays at 2 p.m. Eastern and 11 a.m. Pacific, except when it coincides with U.S. holiday. If the meeting's time has changed, we'll mention it on Discord. If you want to be notified about changes, we can also add you to the Circuit Python Easter's role on Discord. There is a calendar available that we also keep updated if you prefer to subscribe to that. There's a link in the notes document. This meeting is recorded. We record audio from the voice channel and video of the text channel. If you'd rather not have your voice recorded, you're still welcome to participate by just listening in or providing notes. This meeting will be posted to YouTube and the audio-only version released as a podcast. If you find we're not available on your favorite podcast service, please let us know. As I mentioned earlier, there is a notes document to accompany the meeting and recording. If you'd like to participate but can't make it to the meeting, that's where to leave your hug reports and status updates. The notes document also contains timestamps to go along with the video, so you can use the doc to skip to the parts of the video that interest you the most. The meeting tends to run 60 to 90 minutes, just as a warning. A link to the notes document is posted to the Circuit Python Dev channel in the Adafruit Discord every week. Check the pinned messages to find the latest notes document. This meeting is held in five parts. The first part is community news, a look at all things Circuit Python and Python on hardware in the community. It's also a preview of the Circuit Python on microcontrollers newsletter, which comes out every Tuesday. The second part is the state of Circuit Python, the libraries and Blinka. It's a statistical overview of the entire project, a chance to look at the project by the numbers. The next part and the first group participatory part is hug reports, an opportunity to highlight the good things that folks are doing and recognize the awesome folks all around us in the community. After that comes status updates. We invite you to sync up on what you've been up to in the week since we last met and what you hope to get up to in the next week. And the final part is in the weeds. It's an opportunity for a longer form discussion. This can either be something that you identified beforehand or that comes up during status updates, but needs more back and forth discussion. And that covers how the meeting will go. We'll just click over to the notes document and to the community news. So first off, MicroPython turned eight years old on April 29th. That day in 2013 was when Damien wrote the first line in private before anybody knew about it and before it was even called MicroPython. Now MicroPython is used on many different types of microcontrollers and single board computers in both educational and commercial platforms. Version 1.15 was released two weeks ago with great new features. And as you probably know, Circuit Python is based on MicroPython. So we owe them a big debt. And that's one reason that Adafruit has sponsored MicroPython on GitHub. Adafruit has stocked the official MicroPython board from Damien for a while and they've also made direct donations to MicroPython to support Damien's work as well as making share contributions based on the Circuit Python core on MicroPython. Now with GitHub sponsors, Adafruit provided a $5,000 sponsorship. MicroPython's goal is $5,000 a month. So one full month is on Adafruit. If you use MicroPython, please consider sponsoring as a one-time gift or monthly gift. And companies and organizations can now sponsor. So if you are affiliated with an organization, maybe consider sponsoring from that point of view. Next up, some projects from the community. A Black Panther smart display slash alarm clock. This one uses an Adafruit ESP32-S2 Metro to get a comic cover with the Marvel APIs. It also does weather, calendar, help, et cetera, coded in Circuit Python. There is a Twitter link. Next, a MIDI controller UI for Pico8ENC. Hitting the Raspberry Pi Pico's limits, trying to do 8 encoders and NeoPixels in Circuit Python. Links to Twitter and GitHub. And next up, the Trinky Dance Party. Fun pulsing colors for the Adafruit Neo Trinky in Circuit Python. Again, there are links to Twitter and GitHub. All right. Next, a visual thermometer using Circuit Playground Express and Circuit Python by Steven Cross on stevencross.com. Then we've got a link to Cognitive Gears module, Circuit Python's schedule. It allows the programmer to use a functional syntax to run jobs at custom time intervals. And I guess there's also a Reddit thread about that one. And finally, I mean, this is not finally for the newsletter. This is finally for what I picked out. The magic GIF ball, receive random advice, but with GIFs instead of text. In the notes doc, you'll find links to Hexter IO, the Element 14 community, as well as a video on YouTube. The Circuit Python Weekly newsletter is a community-run newsletter emailed every Tuesday. The complete archives are on adafruitdaily.com slash category slash Circuit Python. It highlights the latest Python on hardware-related news from around the web, including Circuit Python, Python, and MicroPython. To contribute your own news or project, edit next week's draft on GitHub, link in the notes doc, and submit a poll request with the change. You can also tag your tweet with hashtag Circuit Python on Twitter or email cpnews at adafruit.com. And is kindly correcting my pronunciation of GIF. It's the adafruit style that it's pronounced with a hard G, but I was educated wrong. I'm sorry, Ann, I failed you. All right, moving on to the state of Circuit Python, the libraries and Blinka. So, as I mentioned before, this aims to be a statistical overview of what is going on in the project. First, overall, and then divided into our main components of the core libraries and Blinka. So, overall, in the last week, we had 88 poll requests merged from 28 authors. And some of the names that are less familiar to me are J. Reber, Riza Almanda, Slutsky, S. Light, and Zap Wizard. Our names that I don't immediately recognize. So, thank you to our new or irregular contributors. Thank you to all the authors. Thanks also to 17 reviewers, which I think is our biggest number yet. The biggest number I remember seeing, and I know some of those folks are new, newer. So, anyway, thank you to all of them. With everybody's help, we were able to close 29 issues by 17 people with 22 new issues opened by 19 people, which is a slight net decrease in open issues. And with that, I will pass it to Scott to tell us about the core. Hello. Just scrolling down because I'm slacking. So for the core, 30 poll requests merged from 22 different authors. Thank you to all our authors. That's awesome to see. Thank you to our 11 reviewers. Awesome to see us break double digits on the number of reviewers. So thank you to all those folks. Those are the folks that let us scale the number of authors. So thank you reviewers. We have 22 open poll requests. A number, a couple of those are over 200 days old. So if folks want to help out in the core, picking up an abandoned poll request is really helpful. There are a few that are pretty old, but are like quite close to being ready. But just have, I haven't personally had time to pick them up. So if you're, if you're curious, adopt the poll request and help us get it in. Issues wise, we had 10 close issues by seven people and seven open by six people for a total of 443 open issues. And we triage those issues by attaching milestones to them. So we have five active milestones. Currently we have 56 open issues on 7.0, which is going to be our next major stable release. We'll do minor stable releases in 6x still. We have two bug fixes, two issues marked for a 6x bug fixes right now. And we have two issues not assigned to milestones. So we'll have to take a look at those later. And that's the gist of the core. We're continuing to merge and things are, thank you to everyone who's been testing me. All right. Next, I will pass the baton to Katnit to give us the library update. Thanks. All right, so we had 57 poll requests merged by 10 different authors. Which is excellent and 12 reviewers, which is doubly excellent more viewers than authors. Great to see. I want to highlight one particular PR the TLC 59711. It was 841 days old. It was the longest standing PR that we had. And the author stuck with it and made it through a lot of different library changes. And conflict merges and all kinds of stuff to get that feature in. And now you can chain two of those words together using the library, which is amazing. Let me scroll down this huge list of merged poll requests. It is a big list. All right. Like a global editor or something this week. No, there wasn't. It's all documentation updates from Jose David, which is amazing. We have not done CI updates in a bit here. I will talk about that in just a minute. So we had that leaves us with 56 open poll requests, the oldest of which is now 500 days old. So we had 15 closed issues by nine people and 15 open by 14 people. So we are not even at 312 open issues. Six of those are labeled good first issue. If you are interested in contributing to Circuit Python on the Python side of things, go to circuit python org slash contributing. You'll find all this information and more open poll requests, open issues and library infrastructure issues. The open issues you can search by label. Good first issue is an excellent place to start. If you're new to everything or bug or enhancement is something if you're looking for something a little more complicated. Feel free to comment on the issue that you're picking it up and have that with PRs. If you have the hardware, please test. If you my cat is making an appearance. If you have the hardware, please test it. Otherwise, take a look at syntax. Take a look at spelling that sort of thing. Whatever it is you can contribute to reviewing a PR is super helpful to us. And let's see. So in terms of library updates in the last seven days, we had two new libraries, the OV7670 and circuit Python Morse code in the community bundle. The first one is a fruit circuit Python library. The second one is a community bundle library. And now I'm scrolling down to my overall. So we finally saw our oldest library PR to completion. Thanks to S light for the perseverance. There's so many library changes over that time. I'm excited to see the documentation updates and older PRs and issues being picked up. Thank you to everybody who's been contributing. And thank you to our newest reviewers for joining the team. Again, the best way to start reviewing is to just comment on PRs that you've taken a look at it or tested it. And once you're more comfortable, we can level you up to actually joining our review team. At which point that enables us to, as Scott mentioned, scale more authors and do a lot more development. And that's where we are with the libraries. Thank you, Catney. And that was not the button I meant to press. All right. So as Melissa can't join us today, I will read the section about Blinka. Blinka is the circuit Python compatibility layer for Raspberry Pi and other single board computers. I think that's how the spiel goes. And last week, there was one poll request merged from one author and one reviewer, leaving eight open poll requests, the longest of which has been open for 1,794 days. They've got to be Catney. There were four closed issues by four people and no open issues, leaving 60 open issues. There's a link to the Adafruit Blinka issue tracker in the notes document. The number of Pi PI downloads in the last week was 7,997, a lovely palindrome, and the number of supported boards is 72. And that brings us to hug reports. We'd like to give you a moment to acknowledge the people in the community around us who are doing good stuff, whether it's a project that they put up, some help that you got on Discord, whatever it is, highlight the positive. So I will start off by being among those who wants to thank Jose David for the continuing work on so much documentation stuff. Documentation often doesn't give love, but at Adafruit we think of it as one of the things that distinguishes the way we do things as we show you how to use it. I want to thank Scott for the ongoing work on the MicroPython merges. There is a lot of work there, and although a couple of things slip through, I know Scott is figuring out a lot more in the pull request before it goes to the rest of us to test with. And thank you to FOMI Guy for a thing called the library screenshot maker. We are going to incorporate that and use it to improve the learn system. I'm pretty excited about being involved in that a little bit. And thanks to Dan for the USB descriptor stuff. Which I'm sure he will talk about in his turn. And I will pass it now to Jerry and then read notes from Jose David. Hi, thanks, Jeff. Yeah, thanks also to Tanute and everybody else who's been involved in all the painstaking merges of MicroPython. It's an amazing effort. And Jeff, thanks to you for the quick fixes last week to the issues that came up in 70 with the Sanby 21 and the pixel buff. Nice to have those working again. Alright, happy to help. I will read notes from Jose David and then Katnie is up after that. So Jose David has a hug report for Katnie. Read our discussion about the community library list and finding that it is already in place. It'll just need tweaks later. To RedM for their contribution to the MCP23SXX library. To GitHub user Adam Candy for fixing the I2C lock problem in the SSD 1306 and their help with the code. A hug to Hugo for accepting to collaborate on the dashboard project. And to the whole to add team. I'm not sure if that just means everybody to add the DHT library to the core. Alright, Katnie you're next and then Kmatch. Alright, so my first hug report is to Jose David for the continued documentation updates. And the reason why our list of updated libraries and merged PRs are so long in the notes above. To Dan for dealing with the old circuit Python daily reports. The list was getting quite lengthy and the way that it was ordered changed which put our current reports in a really weird spot. Thank you for at least dealing with that temporarily. It's foamy guy for the project library screenshot generator that Jeff mentioned. And to S light and foamy guy for finishing up the oldest standing library PR at 871 days, I think it was. There were some very significant changes to the library during that time between regular, you know, code PRs and all the CI updates that we've done. And the original author S light stuck through all of it dealt with all the merge conflicts out with all the updates. And foamy guy did a lot of the testing and the back and forth there was was really great and it was great to see that everybody stuck with it. And now that useful feature has been added to that library. So I know this is probably the third time I've mentioned it today but it's worth mentioning and I'm very excited to see that that continued through and that we got it added. All right. K match is up and then it will be Scott. The first hug goes to foamy guy for fixing the documentation building and read the docs for the new circuit Python GitHub organization. Thanks for doing that and getting it all hooked up and working. Thanks to Jose David for all the documentation fixes as well as new ways of highlighting new ways of organizing so maybe it'll be easier to find some of the detail documentation within that read the docs folders. And then last thanks Jeff thanks to you for all the new graphics ideas for how to handle images and how to process them both inside of circuit Python and with micro lab. Thanks. Thank you. All right Scott is next and I have notes to read from a couple of people at the beginning of the alphabet. Hello to hugs for me today first hug report to K match for work continuing work on the tiny logic friend. Which is a really hopefully universal firmware for all sorts of microcontrollers that allow for logic analysis using them as a logic analyzer. The progress you're making is really great so keep it up. And then hug report to Jeff for helping me through test fixing the test fixing phase emerging 112. There's a lot of tests that needed to help so thanks Jeff for helping me get through that slog and also going back and fixing some of the stuff I missed in previous merges as well really appreciate it. Right. I have notes from anecdata who has a hug report to me for patient help on shared binding enums I'll get there. And anecdata I'm here to help you next time you want to talk about it so just at me. A hug report for manic data is to microdev one for the off mode class and integrating it into access point. And finally a hug for Jose David for testing the ethers. All right then I have notes from Sea Grover and after that we'll go on to Dan. So Sea Grover has a hug report for David cloud and v923z for inspiration and exceptional coding examples. All right tell us what's up Dan and then I will read notes from David. Okay. So Scott reminded us. Thanks to Damien George for micro Python on its eighth anniversary. Without my group I thought I would not have this job. There we go. This wonderful job. Thanks to micro dev who's been doing some core circuit Python reviews which is really helpful because there are a lot of them to do. Jerry and Deshi Poo who are testing 620 and main on various boards and finding problems which we need to know about. Thanks a lot and thanks to Lady Ada for some discussions over the weekend. When it became clear that we really needed to make some space on boards because of adding dynamic USB descriptors and you thought we could get rid of pulsio on the smallest boards based on what it is and isn't used for. Okay. I'll talk about that later as well. I will read the notes from David cloud and then after that it's foamy guy. But David has a hug for Sea Grover for discussion about thermal cameras and to v923z for providing a very simple piece of code with micro lab array splice magic to do bilinear x2 image enhancement. I will need to scroll back and find that assuming it was in the public channel. Alright next up is foamy guy and then a higher effect will get to round out the section. Alright thanks Jeff. First hug this week goes out to Hugo for saved me a bunch of time untold time and frustration by pointing out a particular issue I was having which was it turned out to be related to utf I guess bite order mark. This was not something I was familiar with but it was causing trouble with a script that was reading a file and Hugo figured that out and pointed it out and saved me again tons of time and frustration so big thanks there. Thank you to catney for getting pi pi integration setup on the circuit python org. Thank you to you Jeff for your improvements and working to integrate with see I the screenshot utility that I worked on. Thank you to Jose David for tons and tons of great updates across many different libraries updating documentation and examples and all sorts of things Jose's been doing tons of great work so I really appreciate that. And then. Last one I have written here is to s light. Echoing what catney said just thanks for sticking with that long PR and getting that finished up and it's really cool that we can now chain multiples of those PWM drivers together. I will add one more that I forgot to put in the list here that goes out to Scott. It's been really fascinating to see the that see you work on the merging of microphone in on your deep dive so thanks for extra kind of peeling back the curtain and letting us see that. That's all for me thanks. Thank you to catney for writing that one in sorry. All right last up higher effect. Well I put down group hug but really it's a group hug especially for the core team because I had a bunch of different questions and so you and Dan and and various other people helped pitch. This past week so thank you to all you folks for your help on just those miscellaneous issues and that's for me. All right, thank you everybody. And with that we will move on to status updates. We want to hear what you've been up to relative to circuit python since the last time you were able to check in and what you hope to get up to in the coming days. So I will start and we will go in round Robin in a similar fashion to hug reports. So finding my own notes. Last week I published the library Adafruit over 7670 which is the setup library for this digital camera that I've talked about a number of times recently. And you do need to run that with circuit python seven and only a couple of supported boards but it's pretty cool. I also worked on some test failures and bugs due to the micro python merges. I guess the the most interesting one of those had to do with magic numbers and how they're encoded in MPY files and I got to learn a little bit more of the circuit python internals as I worked on that that I hadn't seen before so that was fun. And I started working on integrating the library screenshot maker into learn. Now that we have bundle fly it's great for producing these zip files that show what you will or that hold the files that you need. But the idea is to create screenshots simulated screenshots of what the file structure looks like in the zip file and we'll show those in learn alongside the link to download the zip file from bundle fly should be pretty cool. And for me I did all the hard work I just get to do a little integration. So this week I hope to finish that integration continue helping with issues arising from the micro python merges although there may be a short respite from that depends on Scott's pace of working. And the thing to really get back to is to start on the image capture module support for the ESP 32 s to so that we'll be able to run the cameras on those boards as well. And nicely the ESP 32 s to Coluga development kit has the proper header just built in so that's nice you don't have to wire up anything. Right, so that's what I've been up to Jerry is next and after that I'll read notes from Jose David. Lots of scattered little projects but just mostly been trying to check out the 70 as it as it as it evolves on spending different boards they can see what's working what's if anything's not so I'll be I'll be good. All right, and just to briefly interrupt myself. Dylan if you do plan to have status updates, then just put a, at least put your name if not your notes in the document at the right point, so that when I come back, I will call on you. But now I'm going to read Jose David's notes. This week library documentation, a design guide update discussion on the widget control design philosophy. A new example using scale color in the progress bar and refactored my Morse code library from micro Python to circuit Python now in the community bundle. This week maybe doing some graphics and working on the dashboard project with Hugo. All right, next is catney and then after that is came out. So last week I published my final newsletter. That was an interesting stint but I am very happy to hand that back over to Ann. Publish the itsy bitsy RP 2040 guide subsequently fixed the itsy bitsy RP 2040 board definition in circuit Python. So note, use the absolute newest version of circuit Python with your itsy bitsy RP 2040 to have everything work properly. There was one pin that was incorrect and the little built-in LED and the button pins were both wrong as well. So everything is now fixed, but it's in only the latest. So be prepared for other bugs, but you know, if you want your pins to work, use that. Added all the existing templates to the Funhouse guide and then created a spreadsheet for a template page checklist. It includes all of the circuit Python board guides. It is depressingly huge. But the plan is to start with the most recent boards and work backwards for adding all the new templates to the guides. So unfortunately that spreadsheet is only going to grow with more templates as I add them. But you know, we needed some way to keep track of where things were because, hey, did this guide get that I don't know was not a good way of tracking things. This morning I got through all my guide feedback. There's a link on learn guides that says feedback or corrections, and it goes into a back end system that we can access. And so any board or any you can search based on the guides that you wrote and that has been something that I haven't kept up with as well as I should have. And also the newsletter kind of took up quite a bit of time until this week. So this morning I went through all my guide feedback. So that was good. That's empty now this week. The first thing I'm going to be doing after this meeting is trying out the new pretty pinouts diagram stuff. I'm trying to get that running locally we've got something that more put up on GitHub that I'm going to be trying and then next after that is going to be making pinouts diagrams for the RP 2040 boards. Then the next one is to get all the current templates into the rest of the RP 2040 guides it's if he has all of them but cutie pie and feather do not. And then continuing on with templating the rest of the essentials guide. The plan is to turn that whole guide into templates and then add all those templates to the board guides. So that's a huge project that will have a lot of stuff happening in between it, but that's the eventual plan. Thank you, Katni. Tenu is on deck, but now tell us what's up K match. Okay, thanks. So this most of this past week I've been focused on a tiny logic friend logic analyzer. And just want to mention it's kind of outside the scope of pure circuit Python so I won't be offended if I shouldn't be given too many updates here. So just let me know. But right now I've got it where it's connected to an itsy bitsy import and I can measure 11 of those pins. And if it was available I could measure 16 channels. It's not super fast way it's written right now I can measure 100 kilohertz signal, but that might be good enough for for some folks to get started. And I think there's plenty of room for improvement. And I'm sure folks can find ways of speeding that up if need be over time. Mainly now I want to try and get a first cut where folks might want to look at it. And that means cleaning up the file structure, add some documentation and organize it so that boards can be added easily to it. And then really the question is what's where where should this be going. I know that on the live stream from Scott that Lady Ada had put together some hardware I'm not sure if that's the same direction want to go with that or if it needs testing. Also I could work on better performance for the Cortex M4s and some other options depending upon different boards may want to do run length and coding or pure straight sampling. So when decided whether add a flag for that. And also inspired by what Lady showed on her stream last night. I can probably extract for any given chip all the pin names from the existing circuit Python pin dot see files. So I may want to look at that how to make it easy to generate a lot of a lot of I guess you have two files to run this code on a bunch of different boards that are there in the circuit Python organization. So, and then last there's existing work from Mark gambler and GitHub user mark be 139, which is a pretty good example of logic analyzer using RP 2040, and I think it's really fast to. So I might consider that is sort of the next thing of getting their code tied in with this. So that's what I got this week. All right, that sounds like plenty. I'll hand it to Scott and then we'll head back to the beginning of the alphabet. Awesome. Thank you Jeff. So more emerging, not shouldn't be a surprise. 112 is passing CI and dance reviewed it so one of the first things I'm going to do this afternoon is get back to Dan on that should be pretty quick I think it's mostly just name name stuff so I should get 112 and today or tomorrow. I started 113 last week, and I have 99 files left to merge. So I'm hoping to get through that today and then getting everything compiling is the next step. Once I get to the point where I'm hunting down test problems I'll probably grow up in Jeff unless somehow there aren't any or there aren't very many so we'll do that and then we'll have after 113 will have two more left 14 and 15 but they should be smaller. So shouldn't be as bad hopefully. Besides that, I'm working with Trevor on getting the iOS side of the BLE workflow going using the test Python code. And then I'm also working on slides for the Python language summit next week, which is a, it's a private get together of Python core developers and I'm giving a lightning talk so it's five minutes. On how circuit Python is a subset of CPython meant to be informative for the CPython developers as they, there's kind of been some discussion about whether CPython should actually be kind of a smaller thing, and and have less kind of built in stuff so I wanted to just use circuit Python and micro Python as a as an example of what that would look like or what that could look like. And since it's private what I'll plan on doing is I'll just I'll just show it off on my stream on Friday just like I did for the open hardware summit as well. So that's not this Friday but next next Friday I'll show it off there. Cool. Next, I have got the notes from C Grover and after that it will be Dan. C Grover successfully implemented algebraic and micro lab based by linear interpolation methods for circuit Python with lots of help from David cloud and the nine two three Z on the micro lab version, tested with an eight by eight to 15 by 15 thermal array image on pi portal. The implementation needed all of the Python, all of the pi portals 256 K memory and 120 million Hertzes developed an analog iron spectrum grayscale and visible spectrum to RGB converter. Helper input is a floating point spectral value from zero to one output is a 24 bit RGB tool. Continue development of the dual load cell espresso scale developed pi badge slash gamer clue and portal versions. Next up, finish the 2x thermal camera port to pi portal, submit PR for invisible display of touchscreen buttons, submit PR to change default of Adafruit motor DC motor from coasting mode to braking mode. Complete the DRV 8830 I to see motor controller breakout PCP design and first version of device driver and unrelated need to wrap up the final few of the 50 plus illustrations for the book publishing deadline next week. After we hear what is up from Dan, I will be notes from David but go ahead Dan. Okay, so the big news is I finished the first the initial PR for dynamic USB descriptors. That lets you turn. Enable or disable circuit pi the master or device, the serial devices MIDI and something else I forget. And also let you specify a list of hid devices. And so you can either specify some pre predefined hid devices, or specify your own you can make up your own game pad or joystick which people have been resorting to custom builds for until now. So Scott's reviewing the PR there's some questions he has about the API. Happy entertain, and I tested it it seems to work fine. It is definitely. It's not. I was hoping that it would be quite small it's not quite small it's about 3000 bytes, which about 1000 is the API and the others distributed among various other things, but a lot of the code that was done a compile time is now being done a runtime so it has to go somewhere. One thing that next thing is very simple for seven we said we were going to remove PWM out from pulsio because it's in its own PWM IO right now, and Scott just merge that thank you. The other thing related to dynamic USB descriptors is that in order to make room we decided to make. We moved pulsio on the smaller smallest boards like the non express and 21 boards, and we were, there are a few cases also it was not used very much it is used for DHT humidity sensors. Maybe we need to write a small special purpose library for those because they have their own unique one wire ish kind of protocol. So, and Scott also reminded us during a meeting before this that we can also shrink things because the a low level library that GCC includes with every build is not compiled in the smallest possible way. And if we do that we save several thousand bytes so that I'm going to look at that too. I'll put that in the notes in a minute. And then after I do all the dynamic USB stuff there are a number of out of bugs outstanding for 62 and for 70 that need to be fixed. So I'll work on those. Okay. Thanks Dan, I will read notes from David and then Dylan is up after that. So David will be checking in with see Grover the options for the thermal camera with interpolation. Testing the bilinear two three and four times image enhancement using microlib array slice and simple arithmetic based on v nine two three Z's code. On the mini Sam m four and circuit playground blue fruit checking memory versus speed and various ways to limit temporary matrices with micro lab. The thermal camera with bilinear four and five times interpolation plus pixel doubling with display IO. There is a Twitter link in the notes document and non circuit Python got my first vaccine dose with unusual sleep time in the next two days. All right, Dylan you are up and then after that is foamy guy. Nice to see you. Hey, um, so is it okay if I just like do my hug reports now because yeah, thanks. So massive hug report to Katnian and they know why. Then huge hug report to Jose David M for all the contributions he's been doing on GitHub. I last week I opened my email and I was astounded at how many pull requests he had opened, which is awesome. So on to status updates. Been working on a sort of like fun house IOT hub, which I'm super excited about it's been looking really, really promising. Then finals, not excited about that. I think they start like this Saturday so really, really not looking forward to that. Then another thing, this will be better for like in the weeds but I was just kind of wondering why I get auto reloads in the serial console. Yeah, that's it. All right. Unless somebody wants to jump right in I think better to hold that for in the weeds and go on to foamy guy. Alrighty, got the wrong button there. Okay, for. Okay, perfect. Thank you for last week. I was working on that library, the requirement screenshot or has too many names and I keep changing them up so eventually that will go in the learn guide repo and the name will be less important which will be nice but I was working on that and it can now do screenshots for all of the docs when I had first made it it was kind of a very manual idea and my idea was to like type those things in one at a time and then take the screenshot when you're done, which in retrospect is kind of silly but it's come a long way and it can do all of them at once now so that's really cool. Also this past week I separated a few more of the widgets into their own repos in the circuit Python org on GitHub. I hooked up read the docs for all of those repos the new ones that I brought over as well as the original ones that I did last week are now all up to date with read the docs and they all have releases for inside of GitHub which made them also release up to as well so we're all up to date there. And then the other kind of main thing I worked on last week is I needed to learn react j s and a specific design editor library I needed to do this for work. But the way that I found a practice on those skills was by building a server that lets me hook up a pie portal to it. I can kind of design a page with a nice clean like drag and drop interface that's what this module and working on does gives you this nice cool kind of canvas designer thing. I can design a page there in my pipe portal will automatically refresh and download the new version whenever I save it so that's kind of fun. I will I started working that over the weekend on that project and I was showing that on the stream so I will. I think stream a little bit tonight on Twitch just to show the finished version of that if anyone is interested in seeing what that looks like now when I finished over the weekend it was not very close to done, but now it actually does a lot of stuff and has a pipe what I hooked up to it. So if anyone's interested I'll be doing that tonight. Other things for this week, moving more of those widgets over to the circle Python org creating new repos for those. I have a couple questions down in the weeds that I want to like to get input on before we get too many of them done. And then last thing is I'll be updating some learn guides to change references from the older, less used currently I guess API of bus IO I to see into the newer one, which is preferred the board. I to see Jose has been making a bunch of updates in the libraries with that and we need to update learn guide code as well so I'll be doing that this week. That's all for me. Thank you. Thanks. Before we move on I wanted to mention something that I didn't put in my status updates, which is that I put in a PR to remove all those bite order markers from the PY files in the learn repo. I don't know whether you saw that go by but you mentioned it in your reports that it was a thing that it vexed you. Yep. Excellent. Thank you. All right with that will let her effect round out the status updates section. All right, so this past week for me was a just mostly wrapping up sleep related stuff. So we merged in the internet 52 power and alarms module this past week. So if you would like some low power stuff to work alongside Bailey, that's where you should go for that. I'll give it a shot. I also wrapped up the RP 2040 panel arm that's going to be a little bit out because we have a number of API changes to go in before it but it is done and working. As far as I can tell it doesn't have sleep alarm yet so I'm going to be working on that this week. I started on some supervisor bugs and some other stuff I'm going to be moving into a little bit of bug chasing after all of this new sleep stuff goes in so this week I'll be as I said filling out the RP 2040 and then going into supervisor bug maybe taking over some and also be doing a comparative power profiling of all the different ports that have the new power, low power and sleep code so I'll be putting together some test sketches for each, each port that kind of is a typical use case for low power deep sleep stuff. And we'll get some graphs up so people can see how much power is going to be used when they're in those various different modes. And then on my off time on time I'm probably going to be playing around a little bit with TensorFlow light this week, trying to get back into ML stuff and see if there's a feature for that in Sir Python so I've got a whole bunch of old textbooks that I've dug out and I'm going to try and catch up again and get some things to compile and that's that's it for me. Thank you. Now we're ready to move on to the next section called in the weeds. Our opportunity, as I mentioned before for longer form discussion, and I will just pass these off to the author, or if your text only, I will read them out. And then, if there are any action items we invite the original author to update the document with what those action items were. So I will pass it to came match to introduce our next topic. Sorry, I was on mute there. So my first question I think it relates into what for me guy is going to discuss, but it's related to the transition of some of the libraries over into the circuit Python organization on GitHub. So, just to comment on my workflow to look for good things to work on or things to review. Is that typically go to the contributing page on circuit Python dot org and look through the list of either open PRs or open issues. Since it's a good sort of one stop shop for seeing a lot of the things going on in the libraries. In contrast, going through the GitHub, I don't know what emails are after what it's called notices in GitHub is is a little overwhelming sometimes. So I find that going on the circuit Python dot org pages is easy for me to find kind of what's going on and where I might be able to contribute there. So the question was, is there a plan that those new circuit Python organization libraries will show up there in those same menus for contributing pull requests and open issues pages. So I don't think there's a plan but not because not because the answer is no, simply because we haven't thought about it yet. I think it would be fine to keep things aggregated on circuit Python dot org I think that's an excellent idea. If there's concern about if there's concern about aggregating them so much that they all look like they're in the same place we can very easily, you know, do a header and have them separated on the page but they can all go in the same place is just a matter of either getting it about or another script. To generate that. Okay. All right. Yeah, that that would be useful for me again. If I presume that if the notion was that the circuit Python organization would also be flowed into those libraries and some of the community bundle I thought that might be a good one stop place to see all that action. Okay. All right, as for how to do it I have no idea how that works. I can help there but maybe as much a request from my side. That's totally fair. I'm thinking maybe file an issue on the circuit Python org. Not not the circuit Python organization but circuit Python dash org the repo for circuit Python org. Okay, I got it to be confusing. But file an issue there just recapping this and that way we've got it in one place and we can work from there. Okay, I'll do that. Thank you. Thanks for me guy you are up next. All right, I had just three, I think what will be relatively quick questions about those new repos in the circuit Python org. I mean cookie cutter one of the prompts is a prefix for Adafruit repositories. I think typically we put Adafruit there. My first instinct was to put circuit Python there to match the organization but then we end up with doubled up circuit Python in the name, which I would guess we don't want so I was just curious is there anything we should be using as a prefix on those new repos or should we just leave it blank. I think blank is fine. I ended up doing on the ones I've done so far I just don't want to run through a bunch more and then go back and change it. So that's good. On similarly, or I guess kind of related on the circuit Python org repos. Will those have a separate bundle like a new third bundle or will those go in the community bundle or the Adafruit bundle. And I guess really the thing I'm most interested in is, will it will they somehow be tucked inside of something that the project bundler is aware of so that those can still get included with the learn guide project downloads. I guess I imagine there being a circuit Python bundle. Okay. I could be wrong. I don't mean Scott's more on top of what what is pictured for for this like what the plan is. I can't speak to whether or not the bundler can be made aware of it. But we would need to make a decision on the on the bundles first obviously, before you know going to Melissa and Justin or whoever it is we need to go to to talk about making the bundler. So Scott, I don't know if you have some kind of overarching plan for this. No, I agree with you. I think, I think it should be a new bundle I was thinking about this like I think the community bundle really is meant to be like, like, it's a disparate set of people that support something because this will be like the circuit by the community supports it collectively. Yeah. And so I think having a new bundle for that is worth it and I you know I would I, I would like to see us have systems that allow for multiple bundles so I think it's totally totally good to put time into into making this work. Cool, because you know I have this vision of like ideally we have a lot of people that are doing separate bundles and they kind of all work together. I think a circuit Python bundle for the general circuit Python org repos would be the would be the first step there. Okay, cool. I will, I'll have to look at the existing bundles and see how the repo is put together but maybe I'll try to build that repo in the circuit Python org. Would it be weird to actually use org as it the prefix so it would be like org underscore circuit Python underscore with the name. No, I don't think that's weird. I think, I mean a lot of a lot of I come from Java and a lot of you have to have a package name and the, the best practice for that is like a reverse URL so like if you own Python.org you would do org dot So that makes a lot of sense to me actually. Yeah, I agree with cat me that it's weird, but it's also one of those weird things that happens other places. Yeah. So I agree it's weird but I think it also could be better than omitting it. I think it could be a bit clearer. Okay, well let's plan on that then because really we need to make that decision like now. Yeah, yeah that's true. Any other thoughts on that. I think it's fine. I think that would just clarify it just a bit more. I will work on changing over the ones that are there. And the new ones I'll do that way I'll probably do a new one with that and see what all needs to change and see if you like it. Yeah, because then like, it doesn't mean that the, the like file name is org underscore whatever the library is that could be weird. Yeah, I think the cookie cutter can probably make that not be the file name though. Right. Like I like I imagine that, although I guess I don't know whether that would be to, I don't know whether we can get that granular, to be honest. It seems like something cookie cutter could do, but I don't know. And see what comes out. The other thing that was occurring to me is in Adafruit organization, I think one of the reasons that the circuit python is in the library name is because all of the names were already squatted by the Arduino libraries. Right. And that wouldn't be the case in the circuit python organization. So if you had, you know, if you've got a driver for the ABC 123. Why isn't the module or the why isn't the get repo just called ABC 123 why would it be called org circuit python ABC 123. I think for clarity. Okay. Or are you just saying like, well, because my thought is like, it makes sense to you when it's in the circuit python org but what happens if somebody forks it. Now it's very unclear. What, what it is that that you're dealing with, because it has a word in the name. Well, no, not that's not, I don't mean when if it has org in the name, I mean just calling it the module name. Right without circuit python on it would be on a suggesting putting org after circuit python so be circuit python underscore org underscore the name. I like that better. Yeah, JavaScript thing is kind of weird. We have a choice now we can do that since we're not being constrained by a down a downward hierarchy. I do think that one will require a tweak in a cookie cutter. I'm pretty sure. I think it's worth it. Yeah, that could that could be what it produces if you give it no prefix. I'll have it slip the organ if you answered with empty on the fix. Okay. I like that solution. And the last one I had here is in the pilot RC that gets generated by cookie cutter there's these two lines they're in the dock here they say fix me xxx to do, and my ID catches them because of the to do is there. I don't think I've ever changed anything on those I'm not really sure what they do. Is there something that we're supposed to be doing with those lines. What that does is, it means that if you put into some code, fix me in all caps with something after it, pilot will trigger on it and fail. And so the idea is, and we took out to do because we wanted to be able to leave to do is in the code. Well, Scott, let's be clear. Scott wanted to leave to do is in the code. I have a story about this too. So we took it out. But the other two will cause pilot to fail and so you can write some code put in a fix me. Forget about it. Try to merge it and you'll you'll find it'll fail and it'll catch it and that way you can go back and fix the thing you were supposed to fix. I see it's like you can use it as a warning for yourself basically. Yep, or others exactly so that that we just leave those as is. Cool. That was everything I had for today. Alright, you try that. Okay. We can hear you David. My microphone. Yes. Yeah, so I've not produced a lot of projects in two or three weeks and then suddenly, whatever reason I don't exactly know. And then I started to talk with Sea Grover and then with Zalkan and yeah, starting stuff started to move and it was only in private message. So that's why you don't find those billionaire stuff in the chat. But at one point, I had a problem of how to do the thermal camera and hands. Drake, you need CPU memory and a Stema connector and a screen. And I was like trying to find out we see Grover what do we have in stock to do that. On one side, I wanted to have something that work with existing hardware with the screen. So that it's easy for somebody to just get a new sensor and plug that and have a thermal camera. And on the other side, I needed to have the best CPU for that and I wanted to avoid fighting with memory space because that was really a nightmare. And so yeah, maybe we are missing an easy to find list of various MCU and the benefits they have. I gave up on the clue and stuff with not a lot of memory. I wanted to go on the Pico kind of stuff, but I was afraid that without floating point or so floating point, it would be not good for what I need to do. And finally, the feather S2 was great. And because I've got that keyboard with feather wing keyboards, which is almost like a TFT feather wing. I had everything but this is kind of a unique combo because I'm pretty sure not so many people have all the peace to reproduce that. So yeah, so I've put some ideas there and I don't know what MCU would you use for doing that. Or which MCU you can put more memory because you can solder memory and start building or I don't know. I saw, in reference to the cameras, from the standpoint of hooking it up to an MCU, I have a ESP32 cam which has a number of pins in addition to the camera. It seems to work fairly well, so there must be a way to do it with the 32 S2. Remembering that the S2 has access to the free toss, free R toss also. So the S2 is pretty much like that. It's not the same camera that Jeff is working on and I'm sure interested but I've not fully understand how it works. Here the camera produced 24x32 Xcel. But then you have to do to enhance that with matrix and ULAB and you allocate a lot of memory for those final matrix and temporary matrix. But yeah, Feather S2 is really a killer for me because I don't have to worry anymore. But then the code I do will not work anywhere on a smaller piece I think. I don't remember what MCU is. The kind of thing that you sound like you're trying to do seems to me to be, it wouldn't work on any of the little boards, the smaller boards because even simple image processing is very memory intensive. I discovered the hard way. Yeah, exactly. David, what about the fun house? Is it is it an ESP 32 S2 inside? Yes. Okay, what I don't know is that an expected maker, it did put a lot of flash and a lot of memory. I don't know how much did you put there, but I mean, there is space. I'm pretty sure there is space. It's the rover module. So four megabytes of flash and two megabytes of PS RAM. Yeah, I mean, the code is there. If you have one of those MLX camera, I can try to tune it for that board. I don't have it yet. And maybe, maybe not. I don't know. I'm not sure yet. Let's just a suggestion. Yeah, it sounds like the Feather S2 is what you want. Yeah. Maybe there is another. I don't know because there are fast and stuff like the teensy or the IMX and so fast is easy memory seems to be the problem. Yeah, and that's about it. And I did not try BQB because I mean, I was super happy to have the math solved by Zoltan because yeah. So I just tried linear interpolation. That's easy. So yeah, okay, with memory. So that would be the only one or Well, I was just suggesting it because it's a feather. I mean, ESP 32 S2 with a display. Yeah. Yeah. Yeah. And because some of the what lady had I did with, I don't know if she produced that or it was just top secret, but she's got bored with a screen on it. Yeah. And those like on feather format or all. And yeah, that's super cool because I mean, the idea is to have a minimal set of hardware to get to the result so that it's not a Frankenstein kind of stuff because I've got a lot of hardware. But Yeah, that feather is top secret. It's not out yet. Don't ask. Yes. Yeah. There is one with a screen. I'm pretty sure. Yep. Okay. Yeah. Um, so I will check what's in the fun house and see if I can get close to it and maybe share the code and somebody else try something like that. Well, I think that brings us to the end of in the weeds. Thanks everybody for joining us for the circuit python weekly meeting for May 3 2021. Our next meeting will be at the usual time on May 10 next Monday. And I believe Scott will be running the meeting. And let me click back to what else I'm supposed to say at the end of the meeting. I'm such a professional. Thanks to everyone who participated. If you want to support Adafruit and circuit python and those of us that work on circuit python, consider purchasing from the Adafruit shop at Adafruit.com. Video of this meeting will be released on YouTube at YouTube.com slash Adafruit. And the podcast will be available on all major podcast services. It will also be featured on the Python for microcontrollers newsletter. Visit Adafruit daily.com to subscribe. The meeting time is the usual 2pm Eastern 11am Pacific. To be notified about the meeting, any changes to the time or day, you can ask to be added to the circuit python easter's role on discord. You also need to be added to this role if you want to participate. If you want to speak during the meeting. We hope to see you all next week. Thanks everyone. Thanks everyone.