 Hello, everyone. This is the Circuit Python weekly for Monday, February 12th, 2024. This is the time of the week where we get together to talk about all things Circuit Python. I'm Dan, and I'm sponsored by Adafruit to work on Circuit Python. You might ask, what is Circuit Python? It's a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support Adafruit 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 DevText channel and in the Circuit Python Voice channel. Typically, this meeting happens on Mondays at 2 p.m. U.S. Eastern time, 11 a.m. U.S. Pacific time, except when it coincides with U.S. holiday. In the Note Stock, there's a link to a calendar you can view online or add that calendar to your favorite calendar app. You also send notifications about upcoming meetings via Discord. If you would like to receive these notifications, ask us to add you to the AdSign Circuit Pythonistas Discord role, just asking the channel and anybody with moderator access can do that for you. There is a notes document that accompanies the meeting and recording. You can contribute to the document beforehand. The final notes document includes timestamps to go along with the video, so you can use the doc to skip around a few parts of the video that interests you most. The meeting tends to run 30 to 60 minutes. After each meeting, we post... You'll need to unlock your iPhone first. After each meeting, we post a link for the next meeting's notes document to the Circuit Python Dev Channel on the Adafruit Discord. Check the PIN messages to find the latest notes doc, so you can add your notes for the following meeting. If you wish to participate but cannot attend, you can leave hug reports and status updates in the document for us to read during the meeting. You hold this meeting at five parts. I'll explain the parts later as we get to each part. Okay. I'll go back here. At the beginning of the meeting, we will start with community news. Let me take a time step. So, we start out with community news, which is a look at sort of the latest news headlines about Circuit Python and Python on hardware in general. And mostly, this is taken from our weekly Python or micro-introduced newsletter done by Ann. So, these are like the top few items from that newsletter. I'll talk about at the end about how to contribute to the newsletter because it really is helpful if you get notices of things that are interesting that you'd like to see in the newsletter. So, I will start out with the first item, which is actually not in this week's newsletter because it was discovered over the weekend. If you remember, you may notice, especially if you have a Mac, that Mac OS Sonoma has a lot of trouble dealing with Circuit Pi drives on Circuit Python boards. This was really kind of a plague of a problem. Sonoma was delaying rights to files long enough so it would write the data and then not write the metadata for many seconds. And this caused it to drive to appear to be corrupt to Circuit Python. It also caused right problems when you were writing large number of files and it generally was a real mess. There were some workarounds, but they were quite painful. Well, as of Mac OS Sonoma 14.4 beta 2, this problem appears as if it has been fixed. I'll thank some people for working on that later, but there's a link in the notes to the blog post that I wrote about these problems, and it notes that there's an update. And I've also updated the Circuit Python thread on this posted by the Circuit Python user on Faustadon, which is a Macedon server. So, we're really happy about this because it's been a real problem for a long time. Next up, there's a really cute submarine hunting game that was done partially with Circuit Python. There's a link to a Twitter post about it, but for something called Global Game Jam, Piotr Gachsowski and his team built a 3D game using a mix of 2D and 3D assets found in their garages, et cetera. And it's about somebody who's... It simulates someone running a nuclear submarine. The vessel is controlled using discarded washing machine front panel. That's the control panel. There's a oscilloscope. Anyway, it looks really cute. So, there's a link to the notes in the notes doc that Twitter posted a lot of photos. Next item is called How to Fail with Circuit Python. And this is a really nice little thing that author Fede2, FEDE2, wrote in the Adafruit Playground, which is sort of like a user-level learn guide about how to handle failures in Circuit Python, soft and hard failures. And go ahead and look at the link for that. So, all these things, except for the Mac OS Sonoma problem, which we'll show up in next week's newsletter, I'm sure, are from the Python and Microcontrollers Weekly Newsletter, which is run by the Circuit Python community and it's emailed every Monday. Link to all the archives is in the notes document. The newsletter highlights the latest Python or hardware-related news from around the web, including Circuit Python, Python and MicroPython developments. You can contribute to this newsletter by submitting a PR to the GitHub repo where the newsletter is assembled, or you could email cpnews at Adafruit.com or you could tag a post with hashtag Circuit Python on Mastodon or Busky or X. Any of the things will get our attention and we'll really highly consider anything submitted for incorporation newsletter. So, thanks very much. All right. The next section is called the State of Circuit Python, the Libraries in Blinka. This is a quantitative overview of the entire project. It's a chance to look at the project by the numbers separate from our individual status updates. So, first up, overall, I'll say that you've had 25 pull requests merged in the last week by 17 authors. So, new authors I haven't seen before are Python MCPI, Jan Volk, Logan G. Smith and Linky Orr. And of those 25 pull requests, they were reviewed by six reviewers and there were 16 issues closed by 11 people and 17 opened by 12 people. So, we're still kind of even on how many issues are happening. Next up is a report on the Circuit Python core and Scott, are you available to read that? Yeah, happy to. Thanks, Dan. Okay. So, in the core for the last week we had 12 pull requests merged from eight different authors. I just want to give a quick shout out to QuestMobilize and Katny and Jerry Newdell and FOMIGuy for all being core contributors this week. Andy Bing and W. Timur are common translators so thanks to those folks as well. We had three reviewers including FOMIGuy so thanks to FOMIGuy for doing some reviewing in the core. We have 24 open pull requests which is one under that one page limit which is great. Many of these are open for a long time issues that are particular boards so please take a look at those again. If you have a certain board that could be super helpful to get those finished although some of them are difficult as well. We had 10 closed issues by seven people and nine opened by six people so high single digits participation and we're down one so that's been great. We have a total of 683 open issues which we prioritize those issues for eight different funded folks through the milestone system so the milestones we're looking at particularly right now are 9.0 which has 36 open issues. These are things that we want to deal with or punt on for the 9.0 next major stable release. We have two open issues for 10.0 which are basically things that we want to remember to do when we do the next major version. And then also we have 12 open issues for 9XX. At the time these stats were grabbed we had four issues not assigned to milestone which is not uncommon for over the weekend so we'll just have to make sure that we triage everything as it comes in and that's it for the core. Alright, thanks Scott. Next up is libraries and a foamy guy you available for that. Yep, I will tell you about the libraries. So this section covers all of the Circle Python libraries which are Python level code that implements either drivers for specific bits of hardware or helper libraries that allow you to build your projects at a bit higher level and not worry about as many of the lower level details. You can find all these libraries on GitHub under names like Adafruit underscore, Circle Python underscore and then the name of the library. Across all those libraries this week we had 10 pull requests merged by nine authors which is great to see nine authors a couple of the names that were newer to me which I think maybe Dan mentioned but I don't know for certain so I would do want to call out Python, MCPy, Linkior and Logan D. Smith those are a couple names that are less familiar to me so those might be newer or less frequent contributors who are much appreciated as are all of the more frequent contributors too. Across those 10 pull requests we had five reviewers this week mostly the usual suspects thanks to Jeff, let's see Jeff, Scott, Dan, Carter and myself of our pull requests that were merged the oldest one was 73 days we had another one that was 62 days and the rest are between one and four days those are all listed here in the note stock if you'd like to take a look at them that leaves us with 47 pull requests open the oldest one is 543 days and the newest one is just one day over the last seven days we had six issues closed by six people and seven new issues opened up by six people that leaves us with a total of 737 open issues and of those there are 19 that are labeled good first issue which is a great time to tell you about contributing to CircuitPython if you would like to get started contributing to CircuitPython on the Python side of things you can check out circuitpython.org slash contributing on that page you'll find a list of open PRs and open issues and if you're looking to contribute it's a great place to start if you want to get started in reviewing you can look at the list of open PRs find PRs that are for libraries you have hardware for or knowledge about or just an interest in you can go and test out those PRs or just take a look over the code and leave comments on GitHub about what you find once you get comfortable with that we can level you up to the review team where you can leave the official reviews in GitHub but comments are appreciated all the same too if you're interested in actually contributing code you can take a look through the open issues and try to find one that you've gotten interest in or hardware for and try to knock out your own PR for it to submit the ones that are identified as being best for folks with less experience or who are just getting started are labeled with the good first issue label on that circuitpython.org slash contributing page if you do click over to issues you can use a drop down near the top of the page to filter by those labels in order to highlight the ones that have that good first issue label if that's what you'd like to define so we want to help you contribute in whatever way you can whatever skill level you have all the different parts of the process between git and github and circuitpython and the libraries and everything else so if you need help don't hesitate to ask in the discord and folks are always around to help get you pointed in the right direction rounding out the rest of the library stats for the week in PyPI numbers we had, oh wow we cracked 200,000 so we had 207,619 PyPI downloads across 324 libraries this week and the list of updated libraries in the last 7 days includes HDP server BitBang.io requests US100 and over in the community bundled the mag cal library so check those out if you would like, thanks okay thank you I had a question in library PyPI weekly download stats so 7,000 that's for all time is that right? I think it's last week yeah no I think it is the past week I do think there are automated tools so I think those numbers represent just all pip installs across I don't know for certain but I do I believe it's a rolling window okay because these are PyPI downloads and so PyPI is not used is used mostly by people who are using Linux single board computers or who are using THANI right yeah it does not include downloads of libraries through the library bundles so it's sort of interesting but it's not a good picture about like the regular library downloads for use on boards in general or CirCup I believe as well is not included in there so yeah there's a couple segments that it doesn't catch and doesn't contribute to these counts yeah okay alright next up is the Blinka status and Melissa could you read that? sure so this Blinka is our CirCup Python compatibility layer for MicroPython, RaspberryPy and other single board computers and this week we had three pull requests merged by two authors and two reviewers currently six open pull requests there were zero closed issues by zero people and one opened one person and that leaves a net of 82 open issues there were 15,000 and 22 PyPI downloads in the last week there were 11,107 PyWheels downloads in the last month and we are at 129 boards and that's it okay, thank you Melissa alright next up we'll move on to hug reports which is a chance to highlight folks in the CirCup Python community and beyond for doing awesome things I'll start, it will go down the list alphabetically if you're text only or missing a meeting I'll just read your notes when I get them to them in the list so as I said I'll start first of all thanks to Romkey and ADCC for retesting the latest macOS Sonoma Beta and finding out that it's fixed the delayed write problem it's really helpful that people are keeping track of this and it's a great news about this as I mentioned earlier in community news thanks to Jerry for figuring out why ES32 SDI camera board build stopped working the camera part stopped working and PRing a fix to that there's still some mystery about that but the fix is working we're having to understand how the default configuration for cameras works thanks to Katny for redoing the Pimeroni inkyframe 7.3 inch board PR that's now merged thanks to Justin for doing a cascading set of PRs that clean up sort of python typing and also prepare for Justin's connection manager code it's been like Justin has to keep moving backward and fix things in dependent in previous libraries in order to get connection manager to be the best it can be and thanks to Scott for another catch up meeting I had with him when I came back to the Pimeroni application next up is C Grover who's text only thanks to John Park for the fader wave project the design was perfect for creating a physical test bed to create synthio wave tables and envelopes using Fourier series overtones and next step is DJ Devon thank you I have a hug to FOMI guy who three years ago added a wrap to wrap text to pixels functions which is basically word wrap can you turn up your microphone you're very low that's better that's great go ahead it was a word I needed a way to use word wrap text in a display IO project so I went back all the way in the back of get history to find out who made that function just to thank them because it saved me so much time and if you take a look at the function you'll see that it's not a trivial thing to word wrap text so you know three years later gifts keep on giving thank you guys a hug to Jepler for an example in a good hub related issue on spy bus sharing with SD card IO I was able to use six less GPIO pins on a new PCB design thank you for the lesson on spy bus sharing a hug to Justin for the work you're putting into connection manager having a consistent method for socket use is highly desirable and you've made it the neat infrastructure improvements along the way it's been enjoyable seeing your progress updates and engaging with the community a hug to Dan H for updating a lot of this a lot of display drivers with that use spy display and four wire to be both 8x and 9x compatible so it's kind of a transitional code for the the imports and it it does work very well so that was very helpful a hug to Seegrever for his touch calibration code even though it's not specifically designed to help people write touch drivers it does help you write touch drivers and that's what I got okay thank you next up is ADCC hi there everyone first off hugs to Dan and Scott for always being there with exactly the incisive responses I've needed to keep making progress on BLE for RP2 and just hugs to all the people who worked on solving the macOS Sonoma bug it was Apple's bug to fix but I think our analysis and reports gave them the prod they needed to fix it that's it okay thanks and I'll note that somebody who had submitted a feedback to Apple basically an issue did was acknowledged in theirs that the bug was resolved Lady Aida had also submitted one and she looked in her update and it was not yet marked there but hopefully it'll start showing up in all the places that where we complained about it it did show up in mind great that's good to hear okay phone we got you're next all right this week I have hug reports for Scott thanks for working on the SD card visibility through the web workflow that makes it really convenient compared to unplugging the SD card and put it into an adapter in order to see or copy the files you could just keep it plugged in and keep it connected and just access those files with the web workflow it's really really nice thanks to Jeff for working on JPEG in the core it's really cool to have support for new image format for display and thanks to Justin and DJ Devin 3 both for helping folks on the discord and the help with circuit python channel thanks okay next up is Jeff who's missing the meeting so I'll read his thanks to Todd Bowden JP thanks for lunch and chat while I was visiting LA okay and next up is Jerry hi it's group hug and thanks to everybody for letting me play here it's really a wonderful place to hang out have fun thanks very much Jeff Jerry next up is Justin Justin yeah I just wanted to give a thanks kind of a double thanks to Tenu for helping move connection manager long did that initial PR review and also for pointing me to an issue that they were having with typing it was it felt really good to be included in something to see that the effort of the time I put in has started making people actually think about me and point out issues that are happening and then also to Dan and Jeff for helping me work through that issue a little bit to try to figure out some things that were well out of my understanding of how things were currently set up okay great thank you alright next on to maker Melissa hi I wanted to give a hug to all the folks watching the macOS circuit pipeline compatibility issue I've been waiting to upgrade because of that issue and group hug to everyone else okay and finally Scott hello echoing back to Justin thanks for helping folks on the discord jumping into the Python typing rabbit hole and also working on connection manager I think we've we've seen that it's going to be super valuable to get all that stuff unified so thanks for working on it hugs to Romkey for doing the initial testing on the latest macOS beta I know other folks followed up but thanks to them hug to ESP sprite for getting back to me on the ESP32 forum they got back to me within like six hours or something which was great and gave me gave me the lead I needed for continuing my IDF5 escapades hug to Jerry for testing 9.0 and also a hug to FedE2 for the failing with circuit python Adafruit playground post I thought was really insightful and happy to see that there so thanks to all of them okay thank you Scott okay next up is status updates this is our time to tell folks what we're up to individually I'll start and go through the list as before when I call on you take a couple of minutes to talk about what you've been doing since the last meeting and what you'll be doing until the next meeting this is also an opportunity to provide tips and tricks relevant to what people are working on if the discussion becomes too long for status updates we can move it to the in the weeds section so I will start as we mentioned several times so macOS Sonoma 14.4 beta 2 seems to fix this delayed write issue that we were that was really plaguing the use of circuit python circuit pi drives on macOS so we really hope that this fix sticks there isn't a regression before it comes the final comes out and we'll continue to test as each beta and the RC come out given this Apple's usual schedule on this the 14.4 final version will probably come out sometime in March and that's also a time when they're announcing new hardware I believe otherwise besides that I've been shepherding various PRs and doing various bug investigations trying to fix the issues that we need to fix for 900 final relevant to that I would like to do a 900 beta 1 soon but there's a new bug that seems to have to do with network socket use on ESP32S2 so we like to fix that before beta 1 ships so we don't have a regression for that so we'll wait on beta 1 until we can do something about that alright and next up is DJ Devin thank you this week I received my ST 7796S spy TFT feather adapter prototype PCBs and I'll post an image of that the adapter basically turns the display into a TFT feather wing I only made one mistake during trace routing and I've already fixed it in the next revision Adafruit doesn't use this specific display so I had to write a circuit python display driver for it and as a display demonstration I'm updating a word wrap label using the display IO who display the introduction of hitchhiker's guide to the galaxy I have successfully tested the built-in SD card reader with SD card IO thanks to some example code that jebler unwittingly posted in a get issue that I just grabbed real quick that was very helpful I successfully adapted and updated a circuit python XPT 2046 touch driver control which don't think Adafruit uses they might use it in the ILI display it was written by Derek McMillan in circuit python but it needs to be updated with the latest updates and stuff it was based on a driver by user R Dagger for MicroPython that was in 2021 and this morning I added SeekRover's Minmax calibrated to the touch driver and this morning I got the touch driver working and drew on the resistant display with the stylus still working on improving the touch detection with the when the display is rotated and I'm over the moon happy because I got that working finally everything works that's it all right thank you all right and next up is ADCC confirmed by tracing that Apple has indeed fixed that Sonoma bug and Dan if you want to get ping me later about the tracing code continuing work on BLEIO for RP2 scanning and advertising now work and overall stability is improving by the build this week I'm digging into timer problems that seem to stem from assumptions in the PICO SDK about how BT stack is plumbed in and used I've already bypassed most of BT stack and it in the SDK likely have to bypass the rest anyway that's it for me all right thank you all right we'll have phone be guy next all right thank you last week I finished up work on the USB host keyboard text editor project and the guide for that was published I do have a couple of more advanced features in the back of my mind that I like to maybe pick it up after a while and attempt but I don't know for sure if I can actually succeed and I suspect it would be quite difficult so it was nice to get the guy done and set that down to work on some other stuff for a bit after that I have started to work on some prototype code for my next project which will be for making photo frame overlays with the momento camera eventually although I've been working on some alternative hardware for the moment kind of similar to like photo boots that you can go to where you will take a photo and it will kind of let you choose from a border or maybe even some like stickers and things to put on top of the photo in the process I've been it's been a fun but challenging deep dive into some more image processing and especially differences between color spaces and how the color converter class fits into everything with display but I am rocking a little bit more each time I mess with it so it's nice I made some modifications in bitmap saver that allow it to work with the color converter because the current one only works with the palette and that seems to be working but I haven't submitted it as PR yet so I'll get that done this week and then I am overall kind of trying to work towards getting all three of the jpeg decoding the bitmap tools operations and the bitmap saver exporting to play nicely together and output everything into colors to look correct I have gotten close to where different parts look correct but not other parts but not quite all the way there just yet with everything and I might start poking around in the core to see if there's something I can add either to bitmap tools or to color converter that maybe help with some part of the process but I gotta wrap my head around what's going wrong before I can actually do that so that is where I am at thanks alright thank you alright I'll read Jeff's next did some pos export work during downtime on vacation that's Jeff's working on the Unix port and making it a more like certified python we use the Unix port for testing I'm getting back Tuesday that's tomorrow we'll figure out what to work on then okay next up is Jerry yeah so it's just been spending a bunch of time playing with the various cameras and forging support cameras the new Amento has been fun and it's working really well then I had fun at the older ESP32 S3 eyes and now I've been trying to work with the Metro ESP32 S3 it's got enough pins to make it worthwhile to hook a camera up to it so lots of mixed results and a lot of it is just stumbling across things but making progress and still a lot to learn about these things and the cats trying to help and then yeah keep stumbling across some of the 9.0 issues so it's fun to help ferret them out as I come across I'm trying to open up coherent issue reports and again I appreciate how fast they've gotten dealt with and I'm really proud of myself yesterday for actually being able to remember how to submit a core PR it was a one line, trivial change to a file but a lot of pieces had to come together so that was fun alright thank you for that PR next Justin yeah so I learned quite a bit about some of the stuff for how we were doing typing since I've been knee deep in the requests in the medium QTT library when I was looking at the typing I was like wow this is the exact same typing stuff in this library that they have pasted requests and thus that I had copied over to Connection Manager and was able to drop out a whole roughly just shy of a kilobyte of data because although Markiplier Thunder's new typing it doesn't stop it from getting compiled if there's definitions into the mypy file so it's been a long time since I've been this excited about removing that much data from a Python file most of my stuff is large scale stuff so if it's megs or gigs it doesn't matter so that was really fun as I said got forward progress on the Connection Manager got it moved over into the Adafruit's domain and initial review so started working through some of that kind of one of the big comments that I got in there was kind of the complexity of the difference between kind of how requests does retries and Minium QTT does and so opened up a PR to potentially simplify at least one piece of that obviously Minium QTT we want to be mindful of if it actually starts communicating with MQTT server and there's issues to keep that delayed retry so we don't just flood that but for a regular like can't connect to the you know physically can't connect the sockets we can pull some of that complexity out so opened up that PR at least to get thoughts and see if I'm missing something so it's kind of what I got today all right thank you all right we have maker Melissa next I'm Mark and I'm hitting the snake eyes bonnet working with the newer Raspberry Pi's I updated the Python code to use Blanka which now isn't as HDMI only and I'm currently working on updating the frame buffer C code I have it compiling with 64-bit and now putting to the TFT displays and that's it okay thank you and our last person for status updates is Scott thanks Dan I'm still working on my RMT p-count pulse counter and timer API updates internally I'm testing them now a lot of last week was spent messing around with protomatter and RGB matrix stuff I did get it working it's just really challenging to try to get code that runs when the flash cache is unavailable so that's been tough I do want to get back to this week I've got an order to get some high density Neopixels for testing so I'm going to spend just a day this week sometime just testing the S2, the S3 and the ESP32 with Neopixels just to make sure that on the S3 and ESP32 they work okay there's some differences between the different ESP chips that make it harder or easier to make sure that Neopixels don't flicker so I'm going to do that I also want to move on to once I'm out at ESP, I want to get out at ESP land and onto the IMX RT there's a few things there to test including bus IO stuff so I'm going to do that and I've been updating this implementer's guide that I started last year and I want to work on that some more and then Jerry mentioned the trouble with S2 and HTTPS connections so I might tag team that with Dan and Jerry probably today or tomorrow just to try and make that a little bit better but the S2 is really not really not a favorite chip of mine the S3 is much much better Scott just to clarify the problems I've been reporting on S3 not S2s oh so yeah there's maybe two different problems going on here yeah it could be I did some aggressive turning off some SSL protocol so it's possible I was a little too aggressive for that the recent one that I came on across yesterday it was all of NS3 stuff and that was all the running out of retries on the connections here alright well that's good to know, thanks Jerry okay so now we're in the weeds section where we can have some longer discussions that folks have identified ahead of time or maybe that came out of status update so we'll give an in the weeds thing before we get to the section so we'll know what we're dealing with here so I have one thing to say about we've been talking in our internal meetings someone a user noticed me like that GIFIO was not turned on on the feather TFT ESP32 S3 feather TFT and it was like that's weird why that's very useful to have that if you want to play GIFAN animations for instance so what can we do about that and the reason it's turned off is that for some larger translations it just doesn't fit so the problem that we have on these boards is that 4 megabyte of flash even though it sounds like a lot is actually less than what we would want one reason is that there's just a lot of code in the ESPIDF so when we add all kinds of features it does grow that substantially and the other is that we have an over the air update partition so there's a firmware partition which currently is 1.4 megabytes and then the OTA partition is the same size because if you're doing an over the air update it's called circuit python and we have code to do that it's called dual bank you need reserve space so that you can switch partitions or copy it in and then copy it over to the other place I don't remember exactly how it works so what we think we're going to do for 9.00 is turn off on these boards with smaller 4 megabyte flash because we have other things that we want to be on on those boards and BLE does not work all that well right now anyway on ESP32 S3 because it's incomplete you can't act as a BLE peripheral and advertised services you can only act as a central and it's just so it's just sort of not that useful so you think we're going to turn this off for 9.00 we might turn it back on later when we can figure out maybe how to trim these a little bit Anecdata notes how many people actually use over the air OTA update we could consider turning it off by default and then we have larger firmware larger user file system and I would say the issue there is some people may we don't really know how many people use OTA we don't really know how many people need these other things it's very hard to tell so we can consider turning it off we can consider having two builds that just keeps increasing the number of builds that we have we already have you know 500 builds or something so I guess the question is not 500 but a lot so the question is does the sort of initial plan that we have sound okay to you or what other things that might you think about and this business about OTA or not I mean ideally you could say like well the best thing would be like oh I could just have a custom build and I'll get what I want but we don't have the infrastructure for doing that right now so are there any comments on this DJ heaven asked would we still progress for BLE with 16 or 8 megabyte flash yes because in ESP IDF 5 they made we were blocked on BLE support on ESP32 because there was a fundamental deficiency in the BLE stack that you couldn't add services dynamically at runtime which is what circuit python expects and that is now possible because they ESP folks added that feature to nimble so I guess that's what the question I'm curious is anybody used over the air update feature who's here now no one of the guys says I didn't know OTA updates were even possible I mean I you know this Dan but I'll say it publicly I really push to keep OTA there because I know that more and I really want to push people on the web workflow and and Jerry's asking is there a guide for OTA I don't think there is now I think there is a feature where we are going to want to do it we've talked a lot about the toy hacker board being like kind of our first enclosed board where you really don't have USB you only use web workflow and I think that the moment that you have something where it is like it's sold as something where it's wireless you're going to want OTA as well right like you're not going to want to just update circuit python code there's always this possibility that there's going to be a bug that you hit that you want to be able to update over the air so I think that I know we don't use it now and we added it long ago because we were going to use it but I think this is the year I think this is the year that we actually do start using it more especially because web workflow is being more and more adopted so I think more and more people will rely on having a wireless thing and I don't think you're going to want to not have wireless circuit python kind of core updating without it I think what is true right now is that we don't have the OTA feature that support that's there is available only through circuit python it isn't available externally through some sort of out of band feature in the web workflow right like the supervisor wouldn't manage an OTA update for you right right we haven't written the code to do that right now you can write circuit python code to do an OTA update but you can't initiate one without having that circuit python code right which is not super clear to me what you like do we need it as a core feature or not I don't know yeah well I think if it's if you really can't have access to the USB socket for some reason then maybe it has to be a core feature but I don't know or it's much more difficult yeah and I was thinking about that like you need to make sure you also probably need OTA boot loading yes or at least you need core support of like if you safe mode in the updated version you can actually try by switching back to the old version that sort of thing right so yeah there's there's details here but I really I do think people are going to want it once we do it and so I don't want to be super quick to get rid of it and I you know micro dev added to things so the other OTA partition by default gets used for user file system now too which is a bit weird and we're going to have to deal with that when this happens as well so I guess another question is whether people are using the limited BLE feature that we're having we have on these four megabyte boards but I think very few people are using BLE also so I think the work the sort of the stopgap is to take that away temporarily so that we can make the boards more functional for their primary purpose like the TFT boards you really want to have image processing more than BLE that's more important right and maybe not even like camera stuff but just like GIF and JPEG support it's also true that we do try to pick modules that have the largest flash possible but as Anecdata points out the mini actually has 8 if you don't have RAM and 4 flash if you have 2 megs of RAM right so the mini which is what we're using on other boards is limited in that way you can't there's 8-0 or there's 4-2 or 4-5 it is 4-2 alright so this is just sort of a warning basically the heads up on this and those of you who think it would be nice to have BLE on the 4 meg version it's not clear to me that once we actually added all the support to make it complete we'd be able to fit it that was the other thing I was thinking about was like we don't know whether we can actually fit BLE IO proper to the 4 megs anyway and a lot of them haven't turned off anyway that was I did a number of them already this is just kind of making it a more uniform blanket state right it's making it sort of official that's a good point okay so now let's we can move on to Jerry's item which I think is interesting Jerry you want to describe what you're asking sure the learning guide things are so nice when you go through and you want to grab the code and just hit little buttons and you know download the bundle and and the but you know right now what they do is they generate a zip file with a build with all the MPY files for 8.x and a separate one for all the 9.x but I know I like to use the .py files so I just wondered if it's a trivial thing to add in a switch so that you know to generate that as well into the zip file is that not worth doing does anyone else care you know it's I find it is really nice to just download the zip file and going to use it but then I find myself usually just manually copying all the all the PY files onto the board anyway I do that all the time for debugging reasons anyway it's like I download the project bundle I try it it doesn't work and then I go and copy the .py file or the library and maybe you know for the general user maybe it's you know not worth it but if it's like I said if it's a trivial I don't know what the scripts look like to generate these things but if it's a trivial addition to just generate one more folder in that file I certainly would appreciate it I don't know anyone else I think it's not hard and I think that as long as it's labeled properly so people don't copy it by default we make clear it's you know Python source only or you know for debugging or something then I think it's okay and the question is really is it going to add to the support burden in some way right exactly it is and it's not worse than a lot of effort than anyone's part but in fact it also is true that people often we often ask people when we are supporting them they tell them to download the source version anyway and then we have to tell them where to get it so in this in this case they're getting the latest version automatically so I think this is worth bringing up I don't think it's going to be hard either yeah I think we just we have to ask Justin our internal person named Justin who works on LearnDev who wrote the card the request out there and you know it goes anywhere that's that'd be great but you know if it's not worth the effort then by all means don't do it one thing I noticed all of the builds have bus device in them and yet I believe now all the boards are there any boards that don't have bus device frozen yeah there's very small ones that don't okay then I guess it's worth it right and we have well there are many so many projects that are not going to run on the small boards like you know a matrix portal s3 project that's an interesting thing I mean I think it's even a little confusing that bus device is there but that's another that's sort of another thing to think about you can why don't you put that in the notes Jerry if you really and I'll or we can make an issue about it okay I'm not sure how to fix that but because the code that generates the bundles doesn't really know anything about what kind of board it's doing it on okay DJ Devon asks can it be moved to an Amazon s3 bucket like that we build you mean the bundles the bundles are generated dynamically when you click the project bundle download link it's done in the web server I thought the question was getting rid of it to avoid user confusion to get rid of apparently I am completely wrong ignore me okay okay right the idea is you want the MPY files there but you might also want the PI files if you want to do any debugging or instrumenting of the libraries just to make it easier to get the source files for the libraries that you're doing okay alright does anybody have anything else they'd like to bring up okay well I will say next week is US holiday presidents day if I'm not mistaken right so next week the meeting will be on Tuesday it'll be delayed a day since Monday is an official US holiday so I'll note that in the follow up and I'll put that in the wrap up here later so if there's nothing anything else that anybody would like to discuss if not I will stop recording