 Hello everyone and welcome to the CircuitPython Weekly for November 22nd, 2021, yes, that is accurate. This is the time of the week where we get together to talk about all things CircuitPython. I'm Katny and I'm sponsored by Adafruit to work on CircuitPython. CircuitPython is a version of Python designed to run on tiny computers called microcontrollers. CircuitPython development is primarily sponsored by Adafruit, so if you want to support them and CircuitPython, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join there anytime by going to adafru.it-discord. We hold the meeting in the CircuitPython dev text channel and the CircuitPython voice channel. This meeting typically happens on Mondays at 2pm Eastern, 11am Pacific, except when it coincides with a US holiday. If the meeting time has changed, we'll notify you via Discord. If you wish to be notified about changes to the meeting, we can add you to the CircuitPython East as Discord role. There is also a calendar available that we try to keep updated if you'd like to subscribe to that. 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. A video of this meeting will be posted to YouTube and the audio is released as a podcast. If you find this podcast is not available on your favorite podcast service, please let us know. There is a notes doc to accompany the meeting and recording. If you wish to participate but you can't make it to the meeting, you can leave hug reports and status updates for us in the document, and we'll read them off during the meeting. The notes document also contains timestamps to go along with the video, so you can use the doc to view only the parts of the video that interest you most. This meeting tends to run around 60-90 minutes, though lately it's been about an hour, and this gives you the option to skip around. A link to the notes document is posted to the CircuitPython.gov channel in the Adafruit Discord every week. Check the pin messages to find the latest notes doc. This meeting is held in five parts. The first part is community news, which is a look at all things CircuitPython and Python on hardware in the community. It's a preview of our Python for Microcontrollers newsletter. The second part is the state of CircuitPython libraries and Blinka. This is a statistical overview of the entire project, which is a chance to look at the project by the numbers separate from what we're all up to. The third part is hug reports. Hug reports is an opportunity to highlight the good things folks are doing and taking the time to recognize the awesome folks in our community. The fourth part is status updates. Status updates is an opportunity to sync up on what we've been up to. Take a couple minutes to talk about what you've been doing in the last week since the last meeting and what you'll be up to over the next week until the next meeting. And the fifth part is in the weeds. In the weeds is an opportunity for more long-form discussions. These discussions sometimes come out of status updates, but can be something you've identified ahead of time is too long for status updates. And that is how the meeting will go. And with that, I will get started with community news. First up, MicroPython adds official SAMD 21 and SAMD 51 microcontroller support. They've added mainline support from the microchip, SAMD 21 and SAMD 51 microcontrollers. The rebel can now be used via USB VSP or U.S. ART. Using board-specified U.S. ART pins initialized on startup. Flash usage is flexible. The internal flash block device, SAMD dot flash, is initialized within little FS1 in frozen module boot dot py. 64K for SAMD 21 and 128K for SAMD 51. Spy bus usage is still a work in process. More information can be found on the MicroPython GitHub repo. Next up, CircuitPython online IDEs. The idea is simple. Have a web-based development environment for CircuitPython. This eliminates the need for installing software and provides a unified interface. It is definitely possible with newer web technologies built into modern builds of the Chrome web browser. GitHub user Mr. Coxwell started this trend two years ago. The idea was picked up by user SenseBox eight months ago. Most recently, user URFDVW has made progress with a rather nice web-based editor fittingly called CircuitPython online IDE. Available in English and Chinese, the project is well documented and has many features. There are serial console and plot output capabilities. And there are a significant number of links here, both YouTube, GitHub, and link to the actual IDE. The ESP32-S3 mini modules make for an easy S3 feather. Adafruit picked up some ESP32-S3 mini modules from DigiHeat and Surprise. They are pin compatible with the S2 mini modules. That means we were able to upgrade the ESP32-S2 feather to the newest dual-core BLE chip set. All pins have been tested, Neopixel works, and so does I2C. They're fabricating some of these, and we'll have some in the Adafruit shop as soon as we can get a reel from Espressif. And there are posts on the Adafruit blog and YouTube. Next up, wirelessly code your Bluetooth device with CircuitPython. Did you know you can transfer files over BLE? This is the basis for being able to edit CircuitPython files directly on your device. Adafruit has been working on a new web-based code editor for CircuitPython. This allows you to edit files directly on your Bluetooth devices using just the Chrome web browser without installing any additional software. The great thing about this code editor is that it's written completely in JavaScript, so it runs only on your computer and none of your data is ever uploaded to a server. And there are links to AlarmGuide and also to code.CircuitPython.org. And then finally, meet the maker, Ann Barela. Adafruit engineer Ann Barela was interviewed for the latest issue of Hackspace Magazine, issue 49. If you've ever programmed anything in CircuitPython and understood the instructions the first time, you probably have Ann Barela to thank. She's a consulting engineer at Adafruit where she puts her vast array of experience into helping people make cool stuff that just works. She had her work go into space on the shuttle, and she helped to make sure the world's computers didn't melt when the clocks reset to zero in year 2000, and she's been a big fan of open source. We got a bit flustered when we spoke to her, to be honest. Where do you start with a career that's included Caltech, Hewlett Packard, NASA, Boeing, and the U.S. diplomatic service? So we started with something we can all understand, CircuitPython. You can read about Ann, her varied professions, her making trajectory, and what she's doing now in the latest Hackspace Magazine. So this has been a preview of the CircuitPython Weekly Newsletter, which is a CircuitPython community-run newsletter emailed every Tuesday. The complete archives are available on AdafruitDaily.com slash Category slash CircuitPython. It highlights the latest Python on hardware-related news for around the web, including CircuitPython, Python, and MicroPython developments. To contribute your own projects or news, edit next week's draft on GitHub and submit a pull request. That's github.com slash Adafruit slash CircuitPython-weekly-newsletter and submit a PR with the changes. You can also tag a tweet on CircuitPython or hashtag CircuitPython on Twitter or email cpnews at adafruit.com. And that is community news. Next up is the state of CircuitPython, Libraries, and Blinka. This is a chance to look at the entire CircuitPython project and the numbers to see how things are going, get an idea of the health of the project. We will talk about the project overall, then we will specifically talk about the core, the libraries, and Blinka separately from each other. So first up, overall, we had 33 pull requests merged from 21 authors, including a few names I don't recognize, U-R-F-D-V-W, Pixel Clay, List Apple, Symantec, and Bill Tubbs. And 12 different reviewers. We have 13 issues closed by six people and 19 opened by 14 people. So we're up a bit, but there are a very large number of folks that were involved in those issues, so that's really good to see. And with that, I will turn it over to Scott to talk about the core. Awesome. Thank you, Katnie. Okay, so the numbers for the core, this is just the C core for CircuitPython on microcontrollers. We have 14 pull requests merged from 12 different authors, so thank you to those authors. We had six reviewers, so we're always looking for more reviewers to support our authors. We have 12 open pull requests. The oldest is 79 days old. I think a lot of these are also marked as drafts, so if you are the author of a draft PR and there's no work being done on it, it's kind of stalled out and it's just not going to get in, please do close it. Instead, my preference is to have issues linked to those branches. I'd like to keep pull requests for things that are actively being iterated on. So take a look at those if you're an author of any of those PRs. Issues-wise, we had four closed issues by three people, seven opened by six people, so we are net up three for a total of 455 open issues. Now, we track our issues via milestones, and milestones are used to kind of gauge how urgently the different issues are. We have negative two issues not assigned to milestones, which I'm not sure how we get negative, but that's our bucket for issues that we haven't looked at yet to understand what they should be categorized as. We have zero open issues for 7.1 and we have 23 open issues for 7XX. I suppose that there may be issues in the 7XX category that we do actually want to fix before we call 7.1 stable. If you have any ideas for that, please chime in on those issues and we'll get them remyelstoned for 7.1. And that's it for the core. Thanks, Scott. All right, next up is the libraries. So this applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore CircuitPython underscore on GitHub, as well as a few extras like our cookie cutter and the Adafruit Community Bundle, rather. CircuitPython Community Bundle. I'll get there. So across all these repos, we had 18 pull requests merged from 10 different authors and 10 different reviewers, leaving us with 63 open pull requests. We had eight issues closed by four people and 12 opened by nine people, leaving us with 636 open issues. If you're interested in contributing to CircuitPython on the Python side of things, check out circuitpython.org slash contributing. You'll find all of these open PRs and open issues available listed out. You can search the issues by label for folks that are new to everything. Good first issue is a great place to start. We currently have 258 good first issues. And if you're looking for something more complicated, bug or enhancement is also an excellent thing to search for. And if you find anything that interests you, comment on the issue and let us know you're working on it. If you need help with it, please let us know. We're available both on GitHub and on Discord to assist with any of that. We also have a guide on contributing to CircuitPython using Git and GitHub available for you to use if you are new to both of those. So don't let that intimidate you. We want to make sure that you're able to contribute in a way that works best for you. If you're interested in helping out with reviewing, take a look at the open pull requests. And if you have the hardware, test it. If you are just commenting on the code, let us know. Anything that you want to let us know about what you've taken a look at is super helpful. And once you're more comfortable with that, we can look at leveling you up to the review team. In terms of library updates in the last seven days, there's one new library, Adafruit CircuitPython async.io, and a huge list of updated libraries. There is a link to the full CircuitPython library report. It was many, many pages. So we just finished a library update sweep, which is why there were too many updated libraries to list in the notes document. We're continuing to see excellent contributions and updates to the libraries. Thank you to everyone who's been submitting updates over the last week and beyond. And as well, thank you to the review team. You all make it possible for us to continue moving forward at such a pace. We could not do it without you. Most of the time, by the time I get to a PR in my email, it's already been reviewed, which is greatly appreciated. And that is what I have for the library. So next up, I will turn it over to Melissa to talk about Blinka. Hello. Blinka is our CircuitPython and MicroPython compatibility layer for Raspberry Pi and other single board computers. And this week we had one pull request merged by one author and two reviewers. There are still three open pull requests. There was one closed issue by one person and zero open by zero people leaving a net of 64 open issues amongst all the repos. In the last month, we had 14,087 PiWheels downloads and they're currently 77 board supported. And that's it. Thanks very much. Next up is Huggerports. Huggerports is an opportunity for us to highlight the fun things that folks are doing in the community, all the positive feedback and that sort of thing that we can give. There's not enough of it, so we try to do it every week. And this is held as a round robin where I will start and then I'll go down the list alphabetically and loop back to the top to give everybody who wants to a chance to participate. So first up, I have a Huggerport to Jerry for testing the BME280 on the Feather ESP32-S2 for accuracy and providing me with the testing examples so I have something to start with. It turns out we're going to include an Adafruit IO example in the guide and I have personally never worked with Adafruit IO so this example is going to be incredibly useful because it is giving me the entire starting point I need and all I need to do is tweak a couple of timing things. Next up, to Keith the EE for learning the release part of the library PR review process. It's an important part of PR reviews and not everyone is aware of how to do that and so it's excellent to see another person pop up so we're not putting that all on one person. To Dylan for finishing up the library update sweep. To Foamy Guy for catching an issue with Read the Docs on some of the libraries and for looking into the fix. And to Jeff for keeping me up on his trip with some lovely pictures. Next I have some notes for Keith the EE to me, Katni, for helping out with a project that the Python Discord is developing to Foamy Guy for guiding me through the library release process and to everyone for being an awesome community. And next up is Maker Melissa. Hello, I wanted to give a heavy report to Katni for helping me out with the ESP32S2 feather bootloader and group hug to everyone else. Excellent. Next up I have some notes for Mark Gambler who has a hug report for Tanute for the discussion on the IS-31 and review and a group hug. And next up is Scott. Hello, first a hug to TAC for tweaking Tan USB for the Raspberry Pi 02W support. Next a hug to 560 for testing the Broadcom build process and reporting back about it. And last up a hug to MicroDev for continuing to work on the ESP32S3 and C3 and ESPIDF44 stuff. So I'm excited for that. And that's it for me. Excellent. Next up I have some notes from Anecdata who said, a hug report to DanH and FoamyGuy for help troubleshooting a bitmap font library issue. And next up is Carter. Are you actually here today? Or are you lurking? I'm going to vote lurking. Ah, okay. Excellent, lurking. So I have notes from Carter who has a hug report for Tanute for some quick help finding info on the EPD feature, border color. Next I have some notes from Cgrover who is text only today who has a hug report for FoamyGuy and Dux or Starboard for testing and reviewing the scalable retro widgets project. I appreciate the comments and suggestions as well as the opportunity to try new to me coding techniques. Excellent. Next up I have notes from Charles Burniford who has a group hug and a happy Thanksgiving. Next up is Dan. Thank you. Okay, I'd like to thank Pixel Clay who started a Russian translation and did a whole bunch of it already. It's like 20 or 25% complete already. So it's really nice to have a brand new translation. And thanks to URF-TVW who's a native speaker of Mandarin and is editing and improving the Pinyon translation. And then thanks to MicroDev who gave me a five-minute fix for a problem I was having with Tracebacks today. I reported it and it was fixed almost immediately. Thank you very much. Okay. Excellent. Next up I have notes from David Glaude who says group hug. And then next up is FoamyGuy. FoamyGuy is up. Are you text only today? I'm gonna read it off. But now, can you hear me now? Yes. Okay. Let me reread the first one here. I got two instances going for the recording so it seems like I need to unmute both. First hug this week for C. Grover who published some really cool display IO widgets. Anybody who's interested in display IO stuff definitely recommend you take a look at those. There's some really neat stuff in there. To Joey Castillo as well as there were many other folks that gave talks over the weekend at Hackaday Remoteicon. I found Joey's really interesting but there were also lots of other really neat stuff going on over the weekend. So thank you to all the folks who gave talks and participated in Remoteicon. To AnticData who found an issue with the Bitmap font library and reported it over the weekend or this past week. I don't remember exactly when that was but I appreciate him finding that and letting us know about it. Lastly to Keith the EE for learning the release process. Definitely echo what Katnien mentioned. It's really nice to have more folks coming on board to do the releases. So thanks. Excellent, thank you. Next I have some more notes to read from G3 Holiday who has a hug report to Tanute for bare metal CP support on 02 and everyone involved in the 7.1 beta. And last but not least is Jerry. Hi. So let's see a group hug and happy Thanksgiving to all those who celebrated. Excellent. And that ends hug reports. Yes, so next up is status updates. Status updates is an opportunity for us to sync up on what we've been up to since the last meeting what we're going to be up to until the next meeting. So take a couple minutes read off read off your notes what you've been up to. If you are text only please make sure that you have written text only in there. There's a couple of people that I see who were text only for hug reports and perhaps they are not for status updates but if they are please make sure that gets updated. I'm going to update one of them right now who's not in the meeting I think it looks like. Alright. So this is around Robin as well where I will start and go down the list alphabetically and loop back around just like I just did. So first up is me. So last week published the guide for the 1.12 inch monochrome OLED that's a fun little display. There's a new example for it is 128 by 128 which is what is newest about it more pixels in the 90 format. It's actually much smaller than I thought it was once I got it physically. Anyway, there's a brand new example for that both in Arduino and CircuitPython that uses the whole display because the previous version was 64 by 128. So that's been updated. I published seven new Pi Leap guides. Pi Leap is a fun new thing where you go to an app on your iPhone and you can view guide code and send it directly to a Bluetooth enabled device. In this case, all of these examples were written for Circuit Playground Blue Fruit rather. I don't know that they are in the app yet so I don't know that they're Pi Leap enabled yet but they will get there and then eventually there will be lots more for you to do with your Bluetooth and your iOS device. I started the guide for the Feather ESP32-S2 it is mostly done except for filling in the Essentials templates. I got Dylan spun up on PrettyPins, the PrettyPins diagrams that we're trying to do for all boards. I was pretty much the only person doing them and so we brought somebody else into the fold and that one which is excellent. And then various miscellaneous whatnot. This week, finishing up the Feather ESP32-S2 guide. I have to finish filling in the Essentials templates which actually I need to duplicate one of the templates and then change some wording in it because the ESP32-S2 as well as apparently the S3 and also the NRF52840 boards all have a different AREF than the SAMD21 and the SAMD51. So when you are checking voltage on an analog pin using analog in it doesn't show up as 3.3 volts. It's all documented if there's reasons but the long short version of that story is that I need to make a template that works with these boards because the current analog in template assumes 3.3 volts and that is incorrect. And then the last two things to do is upload the PCB files to GitHub and do the PrettyPins diagram and then any miscellaneous that comes up and the next guide that I'm doing is the KB2040 which is a new board that we are going to be releasing very soon. And next up I will turn it over to maker Melissa. Hello So last week I finished up the CircuitPython code editor learn guide. I updated the Raspberry Pi blinker learn guide with Python extended bus library page. I updated the BrainCraft and VoiceBona audio page with Python usage information. I added a bunch of missing boards to circuitpython.org the website and for this week it will be a short week for me because Thanksgiving and also volunteering at the local food bank and then I'm working on the days that I am working I'm working on a new guide involving using Python to control a laser and that's it. Excellent. Next up I have notes to read from Mark Gambler who submitted the IS31PR and took it out of draft and looking for ways to incorporate the ring lights in a Python helper library and that would be on the LED glasses. Next up is Scott. Hello I'm similar to Melissa. This is a short week for me due to Thanksgiving. I will be making an Apple Pi. Last week I got the Broadcom builds going in the CI and optimized the sub module check out along the way. So that was good. There's an outstanding issue on the Pi Zero 2W but I it's really hard to track down so I'm curious to see if folks have success with it and whether somebody can fix it for me too. So I'm still going to get the PR out this week and more folks trying it and we'll hopefully get more eyes on it and find some more bugs. We can always iterate on it after it's checked in the main and it's been a long time coming so I just want to get it done. I'll start this week the one thing I have to do before I do that is I need to go over the commits no debug prints or anything in the unrelated files just so that I don't mess up the history for things and no deep dive this week I'm definitely gone Thursday and Friday completely but Tuesday and Wednesday I'll be off and on as we prep for Thanksgiving dinner. So that's what's up with me. Thanks Scott. Next up I have notes for C Grover this week added new widgets to the scalable retro widgets project thoroughly enjoyed for me guys review during his stream will have some improvements coming based on his indexer starboard suggestions submitted a PR for display shapes dot line class to allow line color change post instantiation needed this for the HP 35 display module widget and there's a picture in the notes next add three new widget prototypes to the library will continue to look for ways to improve UI and subsequently expand my Python skill set if I can successfully rearrange a few stubborn synapses refocus on creating a displayed underscore shapes dot arc graphics primitive review display shapes outlining method to see why circles morph into squares when the stroke value increases and revised last year's animated matrix portal snowman decoration will either add a blizzard mode or something related to global warming next up is Dan okay thanks wrapping around so I've been working was exclusively on the async I learned guide there's a lot of text in it explaining about tasks and cooperative multitasking and things like that so it's sort of more of a textbooky kind of thing than a project at all you can see the work in progress there's a preview link that I've put in the notes feel free to look at that and give me feedback if you like it's still very much work in progress the things in the guide are tested you need circuit python seven oh beta one and the async I owe library which is in the bundle in the course of writing up some of this like I'm starting to write up some pages about task cancellation and exception handling and I found some problems when I was working on the examples so I have to take a bit of a break and fix those problems before I can continue with those guide pages but we'll probably may publish the guide and kind of it a half finished form to get wider exposure but please take a look if you want alright thank you yeah we definitely would like any feedback on this guide and the code in it really is the most important thing we want to know especially how people are going to be using it so next up I have some notes from David Glauda who says testing circuit python on pi zero two w and pi three a after each deep dive stream turning an mcp twenty two twenty one into a console cable for the pie you are testing and creating a simple test for the nes mini controller with the we check library and trying to boot a pie b stick rp twenty forty into circuit python failure but it works with the pico micro python firmware next up is foamy guy alright thank you catney back to this window okay this week a couple of things I worked on I finally got around to making a macro pad configuration using the main project from the guide I've done several things with the macro pad at this point but I never did actually make a configuration for that sort of main macro project that I think JP or somebody else I'm not entirely sure who put that together but that was really cool and I set mine up to help me score the trivia that took place during the hackaday remote icon some other stuff I was doing was playing around with those widgets that sea grover has created and the main thing I did is try out a couple of them and built an example that runs on the clue that makes a little sound reactive bar graph that's kind of needed bounces up and down with whatever sound that it can hear coming from the microphone on the clue I made a small fix inside a cookie cutter that was resulting in some missing new lines showing up in some of the python files for this upcoming week I will try out some different configurations for read the docs we found an issue in some of the libraries that are causing them not to build correctly so I'm going to test out some of the different versions that it uses as well as put in PRs on the ones we know of that have trouble I got my 80 box this past week I was put my order in kind of like really late so I was not amongst the first shipment but mine did come in so I'm excited to play with the hardware that's inside there which I haven't had a chance to play with yet so I'm looking forward to that and then the other thing that I have going on this week is looking into refactoring bitmap font to use the with context processors from python we had made that change but it turns out that there are some more substantial changes that need to go along with it to make that library work using that newer with context sort of methodology so I'll be taking a look at that this week thanks excellent next up I have notes from 23 holiday this is kind of trying to work on a circuit python scrolling text method for the eye light glasses and debugging python with ESP 32 S2 and NRF 52 840 issues with not running code after changes are made and finally last up is Jerry thanks so yeah spent a bunch of time playing with the the new ESP 32 S2 feather with the BME 280 on board and when I first ran it I was all disappointed because the BME 280 got really hot I was reading about 15 degrees high and just running in normal use so I decided to do some testing so put a SI 7021 temperature sensor on the stem and connector and then ran some tests that put data out at AIO so I can see what's going on so but I finally under normal use if you just turn the board on and start reading the temperature you're going to get values up by at least 15 degrees Fahrenheit due to heating because of the chip getting hot but when you use deep sleep and I was using it with a 5 minute cycle so it would go to sleep for 5 minutes wake up take a reading and if you do it under battery power it works great the temperature of 2 sensors converges right back down and got within a degree of each other and stayed that way for days but then it turns out the battery finally ran out so I had to charge the battery up when I plugged in the wall charger no data this time just just battery charging all of a sudden the board started heating up again and the BME 280 went up by 10 almost 15 degrees again so that was kind of a surprise I guess not really surprising because the charging circuit generates a fair amount of heat apparently but then also notice that if you let the battery fully charge as the charge rate drops near the end of the cycle the things start cooling off again so it clearly is charge rate dependent and when it finally does reach full charge it goes right back to being normal so just some heads up to people who are playing with it bottom line is it works great if you let it go to sleep and wake it up and make a measurement then there were some issues that got reported on the forum thing about the RFM69 most of them I opened a couple of issues based on it most of it will be satisfied by fixing up the documentation and then just got to think about whether there are some sort of feature enhancements that should be put in to take care of the rest I'll look at that in the next couple of weeks that's it great all of that information about the battery stuff and heating up and so on is going to go in the guide so that'll be good that was fun to do alright and that is status updates which brings us to in the weeds which there are no topics for in the weeds is our time to have long form discussions that don't make sense for status updates or are unrelated to somebody's status updates but a discussion that somebody wants to have so I will go ahead and wrap us up then this has been the circuit python weekly for November 22nd 2021 scrolling scrolling let's see thank you to everyone who participated if you want to support Adafruit and circuit python and those of us that work in circuit python consider purchasing from the Adafruit shop at adafruit.com the video of this meeting will be released on youtube at youtube.com and the podcast will be available on major podcast services it will also be featured in the python for microcontrollers newsletter visit adafruitdaily.com to subscribe the next meeting will be held as usual next Monday at 2pm eastern 11am pacific this meeting is held on the adafruit discord which you can join by going to adafru.it slash discord to be notified about the meeting and any changes to the time or day you can ask to be added at the circuit python easter's roll on discord we hope to see you all next week thanks everyone thanks cadney