 Hello everyone. This is the Circuit Python Weekly meeting for October 1st, 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 little computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you'd like to support them and Circuit Python, consider purchasing your hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to adafru.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, 11 a.m. Pacific, except when it coincides with the U.S. holiday. Such as next week, we will recognize Indigenous Peoples' Day and move the meeting to Tuesday at the same time of day, so 24 hours later. The best way to be notified about changes to the meeting is subscribing to a calendar that is available on GitHub, and I believe the link is also in the meeting doc. This meeting is recorded. You record the audio from the voice channel and the video of the text channel. If you'd rather not have your voice recorded, you are still welcome to participate. This meeting will be posted on YouTube and the audio-only version will be released as a podcast. And Carter, I think we're getting a little feedback from you. So if we're not on your favorite podcast service, do let us know. There is a notes document to accompany the meeting and recording. If you're watching us on YouTube, the link is just down below. If you wish to participate but can't make it to the meeting, this is where you leave your hug reports and status updates in advance and we'll read them off during the meeting. I'll also be adding timestamps to the notes document, so if you're watching it after the fact, it will help you skip to the parts of the video that interest you the most. The meeting tends to run 60 to 90 minutes, so it's great to have the option to skip around. Before the meeting, we post the link to the next meeting notes document in the CircuitPython.dev channel on the Atiford Discord every week. The best way to find it is to check the pinned messages and follow the link to GitHub or to Google Docs. The structure of the meeting has five parts. Next up is community news where we get a preview of the Python on Microcontrollers newsletter, a sampling of things that are going on with CircuitPython and Python on hardware. The second part is the state of CircuitPython, the libraries, and Blinka, where we take a statistical overview of the entire project. The first participatory round robin is called hug reports, an opportunity to highlight the good things the folks around us are doing to make the time to recognize the awesome folks in our community. The second round robin is called status updates. We invite you to take a couple of minutes to talk about what you've done since you had time to join us in a meeting and what we'll be up to in the next week or until the next meeting you can join us. And then the last part is called in the weeds. If there is a need for a longer term discussion, this is where we are going to do it. Please add the topic to the notes document as you have identified it, whether that's a week in advance or during someone's status update, including your own. And that covers the major parts of the meeting. So I will click over to our notes document and tell you about a few headlines and a few projects from the CircuitPython newsletter coming out tomorrow. First off, and this reflects my priorities, I'm really excited that Hectoberfest begins October 1st. Hosted by Digital Ocean for the eighth year in a row, Hectoberfest encourages participation and giving back to the open source community by completing pull requests, participating in events, and donating to open source projects. Anyone around the globe who wants to help drive the growth of open source and make positive contributions to an ever growing community, all backgrounds and skill levels are encouraged to participate. The first 55,000 participants can earn a t-shirt and there are links to Digital Ocean and it is also via Twitter. So here in CircuitPython, I think we will hear more about this later, but we are actively participating in Hectoberfest. We have tagged a bunch of good first issues and we will be actively reviewing them, merging them and marking them as Hectoberfest accepted. So more about that later in the meeting. Next up, a lovely piece of hardware, the Blues Wireless Swan in the Feather Compatible Form Factor. And there are some links to Twitter and let's see. The highlights of this board are 120 megahertz STM32 microcontroller with two megs of flash and 640 kilobytes of RAM. A bunch of IO pins that you can use that are kind of in between the regular Feather pins. And yeah, other stuff. So next up, and I picked this one full disclosure because it's a project by a friend of mine. It's called OctoMatrix Portal. It lets you see the status of your OctoPrint 3D printer on an 80 Fruit Matrix Portal and that is of course programmed in CircuitPython. And last up, outside of the CircuitPython world, building a GPS data logger for an electric bike on MicroPython links to DesignPark and Twitter. The CircuitPython Weekly Newsletter has a lot more than this and it is a community-run newsletter emailed every Tuesday. The complete archives are on adafruitdaily.com category slash CircuitPython and we always seek to highlight the latest Python on hardware related news from around the web including CircuitPython, Python and MicroPython developments. We really want you to contribute your news or project and you can do it in a number of ways. You can edit next week's draft directly on GitHub and submit a pull request with the changes. You can tag a tweet with hashtag CircuitPython on Twitter or email cpnews at adafruit.com and as always a big hug report to Ann for doing the great work that she does to bring us this newsletter every week. Next section, the state of CircuitPython, the libraries and Blinka. The core of this section is statistics gathered from GitHub about our activity over the last seven days and we break it down into several subsections but I will start with the overall numbers. For the last seven days we had 19 pull requests merged from 13 authors and nine reviewers and there were a bunch of author names that were unfamiliar to me so I will read them off. We have Earth Prelude, M Lupo, Flantastic Dan, Pontus O, and FE7N who have recently been authors of merged pull requests so thank you very much to them if you're just first dipping your toes in and of course thank you to our regular contributors and people that we see all the time. Issues-wise we closed 18 issues and we had 298 issues opened by 13 people so that's obviously a big net increase in issues but it's all for a good reason. It doesn't indicate that we have huge problems. It indicates that we have huge opportunities and in particular a lot of Hectoberfest opportunities. And with that I will hand it off to Dan to tell us about what is up in the core. Thank you, Jeff. So I'm talking about the Circuit Python Core which is the Eight of Food Circuit Python repo. Last week we had seven pull requests that were merged. Five authors and four reviewers. Pontus O, as Jeff mentioned, is a new contributor of a pull request to the core. We closed six issues but we opened 13 new issues. That's fine, people are beginning to discover issues with the 7.0 release. We've assigned the Hectoberfest label to 23 issues so if you'd like to do some nice small self-contained project please take a look at those issues. We'd be grateful. There are 431 open issues right now. Of those, a bunch are long term. There are 17 open for 7XX release. We'll probably do a 7.1 release in not too distant future, adding a few features and fixing some problems. I would say the number of issues is kind of stable. So take a look at those Hectoberfest issues and see if there's anything that strikes your fancy. Okay, thank you. Thank you, Dan. And next I'll hand the talking stick to Ketney to tell us about the libraries. Thanks, Jeff. So this applies to all of the Adafruit Circuit Python libraries which is everything that starts with Adafruit underscore CircuitPython underscore as well as the Adafruit Circuit Python bundle and the community bundle and I believe our cookie cutter wrap-o. So across all those libraries this week we had 11 pull requests merged from 7 different authors and 7 different reviewers leaving us with 57 open pull requests. We had 12 issues closed by 7 people and an exciting 282 opened by 2 people. And the lovely thing there is we assigned Hectoberfest label to 283 issues and I believe something like 280 of those are new. So early hug report to Formiguy for that I will be giving another hug report to Formiguy for that later. So that leaves us with 624 open issues and 285 good first issues. If you're looking to contribute to CircuitPython on the Python side of things check out circuitpython.org slash contributing. You'll find all of this information and more including a list of open pull requests, a list of open issues, and some library infrastructure issues. You can search the issues by label if you're new to all of this check out good first issue. We just created many of them and there's an explanation in those issues on how to complete them and we are absolutely available to help you with any questions you have along the way. There is a guide on contributing to CircuitPython using Git and GitHub that explains a pretty standard workflow for using both to contribute to open source and it's our standard workflow. So take a look at that if you're new and feel free to ping us with any questions and we are always available on Discord which you can join at adafru.it slash discord or if you reply to the GitHub issue we can also assist you there. In terms of library updates in the last seven days we had one new library, Adafruit CircuitPython Radial Controller and a few updated libraries that I will not read off. So overall we're heading into Hacktoberfest with a massive number of good first issues. This also means that there may be a number of folks looking for help with PRs and so on over the next four weeks. If you're a member of the review team please keep an eye out for these issues in PRs. If you are not a member of the review team and you'd like to help out, do the same and feel free to comment on either the issues or the PRs as folks are requesting assistance and that's where we are with the libraries. Thank you and to round out the section Melissa will tell us about Blinka. Hello, Blinka is our CircuitPython compatibility layer for MicroPython, RaspberryPy and other single board computers and this week we had one pull request merged by one author and one reviewer. There are four open pull requests. I think one of those is mine so I'm kind of waiting on somebody else to look at it. See there were zero open or zero closed issues by zero people and three opened by three people and there are zero issues with the Hacktoberfest label assigned and we currently have 65 open issues. There were 9904 pie wheels downloads in last month and we are currently supporting 76 boards and that's it. Thank you, Melissa. Next up, his hug reports. As I mentioned earlier, it is an opportunity for us to recognize the great stuff that the people around us are doing and an anecdote, pardon me, to the normal way of just talking about bug reports. So I will start it off and then we'll proceed in alphabetical order and when we come to you open up your mic and speak or if I need to read it out note that in the notes document. So I will start off with a group hug and a hug for all the community moderators who are dealing with a slow but steady stream of spammers. It's real easy to delete the message and ban the person who posted it but we don't like that people have to see that stuff and so thanks for everyone who steps up and deals with it promptly when it happens. And a hug to all those who are about to join us at the Hacktoberfest to make CircuitPython and the libraries better. And finally, a hug in anticipation of Dan doing some of the Discord meetings which we were discussing earlier. And with that, I will pass it to Katny. All right, so first up I have another hug for Foamy Guy for creating basically all of our good first issues. Getting that set up was something that I put out a call for leading into Hacktoberfest because we always have folks who want to participate but we don't always have the opportunity to provide things that new folks can participate with. So Foamy Guy came up with a particular thing that a lot of the libraries need that will make things easier to work with the libraries in different IDEs and so on. It's something we've wanted to do for a while and put together a very specific explanation on how to do it in each issue and was able to file all those issues and get that going. So we are prepared. So thank you very much for that. Thank you to Maker Melissa for helping me out with some guide feedback. Thank you to Dan for looking into an issue filed on the Fritzing repo about a pin name and suggesting the issue authors submit a PR with the fix to that end. A hug report to O&H 0000 on GitHub for submitting a PR to the Adafruit Fritzing library repo to fix a pin name on the feather RP2040 Fritzing object. And finally a hug report to Crayola for all the effort put in to make the IS31FL3741 work with the LED animation library. That's what I got. Thanks. Next up is Melissa and then we'll head to the top of the alphabet. I just want to give a group hug to everyone. All right. Thank you. I have some hug reports from Anecdata who has a hug for Dan and me for help with keypad usage and also with design concepts in the core for buffering data. And a hug to Micodev1 for collaborating on shared bindings and development work on the monitor mode API. And then I have notes from Charles Burnford who is lurking but sends a group hug. And next up is Dan. Okay. Thanks to CPT Iglo. Maybe that's Captain Iglo. I'm not sure. A Discord user who was trying out the KittyPaw keypad project and found several problems. First I rewrote it to use keypad which helps some things but it turns out there's some display IO delays that we'll need to check into. And speaking of running meetings thanks to Katni for writing up. A really wonderful guide about how to run the Monday meeting which we use internally and I'll rely on that extensively when I start to run meetings. Okay. All right. And last up is FOMI Guy. All right. Thanks, Jeff. This week hugs are going out for Deshipu who shared a simplified wiring diagram with me over the weekend or I think this was Friday evening to wire up the Max 7219 and an 8x8 matrix as well as several other folks who tuned into the stream on Friday and helped me figure out how to map the pins on that matrix. It turned out I had kind of an odd one. And then also to Carter who made a new graphic that's real nice and labels all the pins that we found for that matrix. So I appreciate help from everyone. Thanks. All right. And that rounds out hug reports. We had next two status updates where we want to hear about what you've been up to, what you hope to do, a little about any trouble that you're facing and then of course little humorous anecdotes or something that you're doing outside of circuit Python is always welcome. I will lead off once again. Last week I wrote and we published on the learn system a BLE thermal printer guide so you can print out bitmap images using a board like the Adafruit clue with a specific BLE thermal printer that is styled to look like it has a cat face on it which is the main reason I did the project. And then on Thursday and Friday I started on a new library to support the OV 5640 camera module that's still a work in progress but hopefully this week when I continue working on it I will get it to the point where it is going with circuit Python and with the cat printer I plan to continue on with a text-label printing program but that is for me that's not on Adafruit time so it is not likely to become a guide. It might appear on my my blog, you never know. Anyway, and if anybody is interested in trying out this particular camera module I put a link to an Amazon listing and the best board to use it with is the Espressif Kaluga Dev Kit because it has a compatible connector built right in and you can also run it with an example from Espressif rather than with circuit Python so you can verify that it is working. Anyway, that is what I will be up to and alphabetically next is Catney. Alright, so I have an exceedingly short list this week the things I was doing were a bit involved. So I published the proximity trinky guide that's the last I believe of our trinky family it's got a sensor, the APDS 9960 I think on it which is a proximity color gesture and light sensor I believe it does proximity best so we did there's a couple examples in there that use that including one to play the chrome dino game which if you've ever used chrome when you don't have network connectivity you'll be aware of this but if you've always had network connectivity you may not be aware of it it's basically a side scroller where you hit the space bar to jump over obstacles and you're a dinosaur completely random but we put that together and I was actually able to play it relatively well with the trinky so it's usable anyway I finished the ANO rotary encoder guide and that's now awaiting moderation and that's a large clicky directional navigation rotary encoder with five buttons that we made a breakout for and there's a fairly simple example that shows a LED on a neopixel ring do things based on the encoder buttons and encoder itself so that should be out soon I just keep an eye out for that so if you picked one up that'll be in there and that'll have all the information about the breakout and so on as well so this week I'm working on the LED glasses guide with philby and that'll get started this week and then once that's done I'll be doing the guide for the new AT Tiny breakout which is in the shop coming soon and it will be coming soon and then any various miscellaneous things that come up and that's what I've got going on alright just a few items but there's a lot behind it all and next up maker Melissa alright let's see here I lost my place in the document ah ok let's see last week I finished up my rotary animated gift player guide and I got back into the javascript stuff and I've been making good progress in updating the javascript BLE file transfer library and this week I'm going to work on finishing updating that library and then I'll implement some file related features into the circuit python code editor and that's it alright thank you and at the top of the alphabet we have Dan ok last week toward the end of last week I wrote a guide about building custom hid devices in circuit python it has two examples one is Jeff's enki rollover example which we're just moving from the previous customizing USB devices guide and the other is a new page I wrote about trying to emulate partially the Microsoft service style which is what is called a radio controller that's what Microsoft calls it and there's an introductory matter there too so that guide is published it doesn't give you all the gory details how to write USB report descriptors is very complicated and it's far larger than we can cover in a guide now I'm working on boot keyboard support that's sort of like half done that means that you'll be able to use circuit python boards to talk to things like bios that don't have regular keyboard support as I mentioned there's a problem with the iPad with the KittyKeyPaw which the problem is that display.io is doing a lot of work in the background and it causes USB messages to be delayed and in particular if there's a key down message it might be like half a second before the key up message goes through and that means that the operating system helpfully starts doing auto repeat which is pretty bad just trying to type a key once so when Scott returns I will talk to him about that and we're getting reports of bugs to fix for 7xx and I'm triaging those and making sure that we do take a look at the ones that look like we need to fix them okay thank you Dan and once again rounding out the section is foamy guy alright last week I got an 8x8 LED matrix wired up the first of our typing information PRs on the max 7219 driver I started working on proof of concept for kind of like a way to split out display setup from the rest of scripts the rest of an example script for instance because I noticed on linux display.io it's kind of tough to share code around between folks who have different displays because you end up having to cut chunks out and replace it with your own setup so I'm trying to make that as smooth as I can and I finally got around this weekend to publishing a short video that shows folks how to use the circuit python stubs with PyCharm and some of the kind of high level benefits that you get from it so I can point folks to that that's a question that's come up a few times lately on the discord this week I need to solder up a pico to test the same max 7219 driver with an issue that somebody brought into the help with channel last night it's not related to the PR but they were having some trouble getting that ship to work with a pico so I plan to try that out I am going to try to make some display IO examples for sensors one of the things we've had a couple of folks asked for in the chat is how to display the output from a sensor on the screen and then just update it every time they check a new value on the sensor and it occurred to me that lots of the simple test scripts in the driver libraries they will just print to the repel so I think it'd be good if we had a couple that will display onto a screen so I'm going to try to do that and then the last thing I have is a try to make an introduction to display IO we have a great guide but some folks just do better with like a video tutorial or something like that so I'll try to make a video that covers the basic building blocks and how to put them together to achieve what you want with display IO and that's what I got on the docket this week thanks alright that finishes status updates so we will now go out in the weeds and as I mentioned before this is a time for longer discussion that doesn't fit within the other categories and I've got some topics here and I will go ahead and hand it to Guy and Annick Data for the first topic alright yeah this was something that we that came up over the over the weekend and it led to the same discussion about having display based examples but really I think this is more a more general problem or a more general discussion so in libraries we always have an examples directory with one or more examples of the code and we got to talking about like where would be the best place to hold a similar type of thing but for core code there is some of that floating around in various different places but I think it would be great if we had one spot with a bunch of examples together so some ideas that came to mind for me were making an examples directory in the core repo the same way we do in the libraries or making a separate repo that is like dedicated just to built in module examples but I'm interested in feedback from mothers and any other ideas that folks have so I go ahead Dan go ahead I was going to say I think that where we have the most is in the learn system so the Adafruit Learning Guides repo and just to put my own question or discussion on top of this I was thinking in the circuit python documentation should we be linking more to like here is the main guide about bus IO if there is a bus IO guide within the circuit python read the docs but that's a tier about it and it's just it's a lot of work okay so it hasn't been happening we've discussed it though I if we don't want to add a directory to the core I think a new core examples repo would be a better option than learn because they won't necessarily be a learn guide about each thing well that and the level of CI necessary to handle code going into the learn repo is pretty astronomical and if it's definitely not going into a learn guide I don't think it's worth running all of that every time so I think its own repo makes sense and then the nice thing about that would be that I think we could probably work it into or maybe I don't really know how the examples bundle works but if we can get it pulled into the examples bundle that would be also convenient but it would allow for like sub directories and you know so on and so forth without without it being diluted into a huge repo like the learn repo yeah I do think some organization maybe based like organized by the module that the examples are for would be good yeah and that's kind of what I'm thinking which I feel like if we tried to do that inside of the learn repo we would just lose things a reason not to do it in the core is hardly anybody clones the core and I think the way most people get examples is like Katnie was saying through the examples zip file that you use to learn so something that can work with the examples that would be an ideal outcome okay I think a new repo probably makes the most sense okay cool yeah hello go ahead Charles I found the see python you know python.org has an example collection where you can go out and grab just the code you need or to try out a new function that you're learning about so and that is in fact done in a separate repo from their main thing because otherwise it would I would probably do this I think they have the same problem you would with circuit python you'd make it you'd make a huge increase in work the workload to maintain it okay cool so there's precedent out there could you paste the link to that could you paste the link to that I'll try to find it again I had it for a while and then I lost it because I lost my old computer so I'm sort of re-accumulating all these things okay thank you yeah thanks Charles alright anything more to say about that um no I think we have enough to get started I'll I'll reply back to Kat and hear in the chat but I think we got enough to get going alright well next up I had a section on Hechtoberfest and I guess I want to insert first will somebody go check whether the Hechtoberfest labels are actually placed like we thought they were or whether Adobot just counted up how many she would like to add um someone asked about it in the chat and I earlier had looked and I thought the labels maybe weren't there so if somebody could take a look and verify and find out whether we need to try Adobot again we need to try Adobot again you weren't there two minutes ago okay anyway um I just wanted to talk about my understanding of how to handle port requests so that the submitters get the credit toward their t-shirt or tree and of course the canonical instructions are on hechtoberfest.digitalocean.com there's a page of resources for maintainers and this is my understanding and summary of the document so if you can promptly merge a PR or give it an accepted review you can do that and that's enough if not but clearly you are looking at a well intentioned PR that may need some work you can give them credit by adding the label hechtoberfest accepted on the pull request and also of course let the author know what work is needed before we can get it merged if you have some a PR that is clearly not well intentioned you can tag it as invalid or spam and of course close it up and then if those labels that you need are not available you can contact someone with extra github powers that would be me Katny, Dan, Scott probably some others and I think a mention on the issue may be best, you could also do it on discord and probably most of the repos have that already the other thing I noticed is that this year for the first time you can get your hechtoberfest points by doing maintainer actions such as writing reviews and merging PRs so that is exciting if you do more work on the review side and you aren't an official reviewer yet that becomes a great reason to get spun up right now so that you can earn a hechtoberfest reward and finally I wondered whether we wanted to add hechtoberfest as a topic to any or all of our repos it doesn't seem to be required but one way you can discover where to do hechtoberfest work is to search github by topic and this would allow us to appear there so that is the only thing that is a question and of course any corrections that I outlined above are also welcome I think I mean there is probably a way through the API to label them all using adabot or some such yeah I don't think we would want to do it manually no let's get the labels fixed yes and then we will worry about possibly adding the topic that is my thought yeah and Ketny will you are you going to look into the the tag issue yes okay and you will ping whoever you need if adabot needs modified or something yes okay thank you for that yep alright so Jay first scene says should a topic be added to adafruit blinka I mean it could be and maybe we will do something wholesale or maybe we won't it sounds like probably we won't do something wholesale right now um and if adafruit blinka doesn't have the tag tags go on issues and topics go on repos it's nomenclature to learn and it sounded like melissa didn't know whether there were any good first issues or good hechtoberfest issues in blinka there are not that may be a reason not to market as part of the topic well for blinka it's like I don't know what qualifies as a good hechtoberfest issue you know I mean shouldn't any issues qualify yeah what the label does it's a signal to maybe a more beginner person whether an issue should be tackled ah but because what you actually get counted for doing is filing a port request it doesn't actually matter that isn't a requirement for somebody to be able to get the credit it just is a signal you should look at this and so that's I think why we equate it with good first issue yeah I think there's not much low hanging fruit on blinka at the moment I don't necessarily think that's true oh yeah about it being a good first issue we did that like that was an internal choice we made there are plenty of folks who are far more advanced who will be participating in hechtoberfest so just don't add the good first issue label along with the hechtoberfest label and I think it's still an appropriate situation so what about creating a just a topic over the whole blinka topic for the whole repo that would be fine that would also be fine I just think don't feel like you have to have low hanging fruit to guide people to take a look at your issues is my point sounds good okay that is going to wrap up the circuit python weekly meeting for october 4 2021 a big thanks to everybody who joined us today and if you're listening in or watching after the fact we are happy to have you and we invite you to stop by our discord at adafru.it slash discord you can talk 24 hours a day ask questions in the help with circuit python channel work with us to improve circuit python the libraries in blinka and circuit python dev or try out one of our other channels we've got help with projects and 3d printing and live broadcasting and all sorts of stuff the next meeting is delayed by 24 hours in honor of indigenous peoples day so we will see you again on just checking the date october 12th 2021 at the usual time and let's see there's a little more that I need to say before closing out the meeting 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 the video of the meeting will be released on youtube at youtube.com and the podcast will be available on major podcast services it is featured in the python for microcontrollers newsletter the community run newsletter that you can contribute to visit adafruitdaily.com to subscribe to be notified about the meeting and any changes to the time or day which I already covered next week's change please ask to be added to the circuit pythonista's role on discord this will also enable you to speak during the meeting if you want to and at any rate we all hope to see you next week and thanks to everybody who joined us today