 Hello hello can you hear me can you see me just turned off my fan so we'll wait a little while if you're watching this after the fact check the description below there should be at least a few time codes there to help get you through the video um otherwise we'll sit tight we're waiting kind of for all of the pipes to get the video through and we'll start saying hi to folks as they pop into the chat oh i got a whole new cat cam and it doesn't work well i don't think it's the camera's fault i think it's um i don't know hi biata hi samuel thanks for hopping stopping by hopping by stopping by um yeah so we'll wait just a little while and oh i'll get or get myself in the right discord chat channel hello dcd if you'd like to join uh discord you could go to the url adafru.it-discord i changed my mind about what we're doing i don't know people notice that i changed the titles and stuff it means that the uh the newsletter entry might be a little wrong but that's that's what we get for adding it before we actually do the stream because never quite know what i want to work on i decided that the usb host stuff i really needed to hear back from tack and i didn't didn't overnight so i'll wait for them chat in french is cat hi feda2 hello david in the discords yep so on the left here we've got discord up here and then this is the youtube chat i guess i could put the re-stream chat but it's usually pretty quiet so almost weekend trying to tan the corner mark says good afternoon slash evening everyone hoping the storm gets me and near me gets closer so i can see if my lightning detector works that sounds exciting we rarely have um rarely have lightning here it's like we've got some folks hi gordy welcome welcome welcome dcd hope camping was good it was it was good it's a lot of work we don't camp that often so and it was a new tent so it was and traffic and lots of lots of new new experiences it was fun to see arie the my son the toddler enjoy getting he got dirty within like the first 10 minutes but he enjoyed it which is good and uh i think we'll we'll have worked out some of the kinks uh for next time so yeah that'll be good all right so uh i'll get started here and hopefully we'll get more people as we go although it's august and people are doing stuff um hello everyone my name is scott i work for aida fruit on circuit python um if you don't know what those things are aida fruit is a hobby electronics uh open source hardware company out of new york um where they manufacture some of the boards you see and design them all and then uh also fulfill your orders from aida fruit dot com so if you want to support me uh support them by going to aida fruit dot com um circuit python is a is a re implementation well it's based on micro python which is a re implementation of micro of python for micro controllers micro controllers are little tiny computers such as the one under this lid here on the esp uh good morning unexpected maker um yeah so it's meant to be super low cost uh low power computers that are easily accessible and that hopefully a good way to learn how to program them so uh that's what aida fruit and circuit python is you know i didn't actually look at my checklist but i think besides the fact that i didn't make a note stock um which reminds me uh thank you to dcd for making taking time codes for last week really appreciate that um yeah i'm hello mostafa on linkedin um so i was planning on i in the title originally said that i was going to do usb host stuff and i i do have a a couple issues that i want to file on tiny usb i i tried to bug tack on the like aida fruit slack and uh he didn't get back to me overnight um tack is in vietnam so it's usually a i work during the day and tell him the things that i have questions about and then um and then uh he'll get back to me overnight but he must be busy or doing something so didn't hear from him uh overnight so that's why like changed my mind i was like i don't actually know which direction to go with these things so um um i decided one one task that did get asked about on the stream last week or the week before that uh is something that i've been in so much in the weeds of usb hosts that i feel like doing an idf update so um so the idf is like the stk that uh expressive provides for those chips um and uh we're currently on for something and then they changed the number of things for 5.0 and they've had 5.0 and 5.1 and uh so a community member micro dev who does some really good esp work has uh a pending pr that is a little out of date now um but does update circuit python to work with 5.0 and uh we want to do this update to 5.0 and actually 5.1 which is now out for circuit python 9 because the idea with circuit python 9 is that um we can change a bunch of stuff and then give it some time for people to test it and confirm that you know we haven't broken too many things while we do it uh sorry i don't have a sneeze button although i could mute myself um samuel says i love circuit playground express you guys are amazing i just got four blue fruits great glad it's working um i was just i was at a hardware meetup yesterday and there was a couple folks that were doing circuit python so that was really cool to hear what their projects were and what their experience with circuit python was so it's cool to yeah i'm starting to get out and and all that which is it's fun to chat with people about it i thought maybe you'd be able to see cap nope um oh fed a two has a good question would this new idf make it easier to to support bluetooth on the esp 32 s2 and s3 um unfortunately i don't think so i think the bluetooth stack is still pretty much the same um and it has the same i would assume it still has the same constraint that makes it kind of hard the the the main thing holding up esp bluetooth support is that nimble which is one of the stacks that the idf supports um it doesn't it assumes that you're you create all of the the servers like the services that you present as a bluetooth device that you create those before you get going whereas in circuit python like will create one for the workflow and then later on you may uh want to create them in the user code and uh it's not really designed for that and so there's like some tweaks that would need to be made to it um which makes it a little hard and uh thank you to david for the reminder to talk about circuit python day so circuit python day is a day we do every year where we try to celebrate circuit python um and catney's been putting together a great schedule for next week um it's a week from today uh circuit python day is and so it's basically streams like the whole day i think um i haven't actually looked at it so this stream um the deep dive will actually be uh a little bit later than it normally so instead of starting at two next week we're going to start at two thirty i think um and let's just pull it up on the blog and also it shrines i yeah and unexpected maker says no bilia on this too uh yeah but general like i'm just thinking about the whole family circuit python so there is a new circuit python 823 release that just fixes some protomatter stuff so here's the schedule cp is circuit python magnetron fricando but i said that somewhere near correct yeah and the discord server is uh the url ada fru to it slash discord uh microprython have stopped on id f502 as they have lots of bilie issues on five one at the moment interesting yeah lots things need different things um i don't think bilie issues would would stop us but it that's a good point and maybe we do maybe we do want to update to 501st um and then move to five one later okay so here's the schedule for circuit python day so you can see john park's gonna kick us off at 10 eastern which is seven my time um and then special 3d edition of hangouts so a lot of the shows that happened during the week are getting shuffled to friday next week so this is like 3d hangouts is usually on um wednesdays but now it'll be on uh friday next week uh beeps and boops with synthio which is going to be super fun out with paul cutler is at 11 a.m there's a circuit python day game jam stream with phoma guy who's also a deep diver um so check that out matrix portal message board build with maker melissa and then uh 230 eastern a circuit python day chat with jeff dan and catney hi porky good to see you after a long time hey uh yeah i'm happy to be back um special edition john park's workshop at four eastern which is normally Tuesdays or Thursdays i forget which day john does that um deep dive uh this what you're watching now will be at 5 30 eastern which is 230 pacific and then we'll be followed by show and tell and ask an engineer after that um so just a heads up that we're gonna start a little bit later next week but there's gonna be lots of stuff on on friday for circuit python day okay so we have this open so what i thought we'd do is uh there's kind of like two major things that i want that we want to do so when we're when we're shifting circuit python to another uh kind of like major version number so from eight to nine for example um we want like that's an opportunity for us to to really destabilize things and also change some apis if we want to uh the main reason the main forcing function for going from eight to nine right now is that we are planning on updating well we're working on updating and by we i mean dan dan is working on updating the micro python core uh that we use in circuit python um updating to uh updating to micro python 1.19 which involves an mpy format change so um they don't change that major version number with mpy versions um but we we do in circuit python that's why when you see bundles and libraries and stuff you see like 6x, 5x, 7x like we we build versions of npys for every major version of circuit python uh even if actually even if you uh can actually use them across boundaries we just want to teach people every major version you've got to get the npys that match because sometimes they won't work across versions um hello dylan oh and gordy says jp's product pick of the week is on tuesday and jp's workshop is on thursday i'd expect a maker says 4.4 to 5.0 is a big change 5.0 to 5.1 is a simpler challenge i think micro python is on 5.0 too now but there are ps ram issues where ps ram only uses half the amount available interesting and bill says he has ptsd from debugging pystack issues on uh esp yeah i'm glad you can make it dylan thanks thanks for tuning in um okay so what i thought i would do is if we look in pull request here and we actually look down here to the second oldest one we can see it's update esp idf to version 5.0 and this was done by micro dev in september of last year so it's been a long time coming but we did decide 823 is out but not for the pico pad from main to 823 yeah so sorry if you've ever watched these before you know that uh i do get a little distracted so david's question is like there's a board there there's a board that was added after 8.2 was released and um so they're on main but not on 8.2 those ones uh if they if we do want to get them on the stable release they would have to be um they would have to be put into the 8.2 branch um which yeah is a little bit annoying but um that's kind of the world we're in right now and it's also a little bit of forcing function for people to use the latest for newer boards like main is really not that destabilized yet but um you know we're hoping to get like this idf update in and then also um also the microfiber merge okay so um this is update esp idf to the release 5.0 branch it's from september and we can see that like there's a bunch of milestone changes um but we need idf 5 yeah and as we turn the corner to 9.0 alpha this is in february and it's august now it took us a while to get to we to get to this point the ps ram issue is now resolved as march i don't know what that was this person actually done this so i pinged it on july and micro dev micro dev like comes and goes a bit so um but just totally fine they're they're not a paid contributor they're just a community member um but this is me kind of wanting to pick it up so i might be able to leave this open and um push to it we could try that it's in micro devs update update idf branch so let's try to pull it down here's my obs output this is what's happening when i try to do cat cam if you're an obs expert uh this is like this is why cat cam is not working as i'm getting this device or resource busy what's causing that okay so let's find a new tab here how about this one and i was working on this usb reset stuff do i have stuff that i actually need to change it looks like i do so i'm gonna just before i move i'm gonna get this stuff i was just doing some debugging this is debugging this is debugging this is a fix these are better error messages debugging to be debugging i think i'm actually gonna leave this and see if i can't just move branches because like one one is the imx port and one is the idf the esp port so hopefully it'll be okay um so let's do get remote the and i've actually like i have a lot of different remotes this is why this is a good example of why i recommend uh recommend naming your remotes based on the person uh who's it is so we're just gonna fetch from microdove and we're going to get switched to update idea these local changes would be rewritten and commit or stash them okay i'll just i'll just commit stage stage stage stage stage and then get commit and it's on this usb reset branch i need to be on my virtual environment so that the check works oh and it's gonna add these translations my signing key oh can i not move that off the screen i'm getting a password password password password paste it and i'm gonna just highlight this copy something into my paste buffer so i don't actually accidentally paste my my password on screen all right so i've committed and now let's do the switch again let's see get log and we're in a repository sorry uh my sub models are pretty messed up unexpected maker asks is there a reason dan is stopping at 119 and not 120 for the merge for nine point out just curious so the plan is that dan will do 119 and then jeff's gonna do 120 uh because one of the major changes that is in 120 is something that jeff's aware of i see my my camera is frozen comes back to life that's a lovely you can like the stream is looks okay just the mange well is not happy bill says sub modules are always messed up i just nuked them every time i go that between vastly different ranches yet it's annoying but my sub modules sometimes have more state than that which is unfortunate like i sometimes i'll actually like do edits in sub modules i think we'll crash if i unplug yeah see so here's an example where like i have changes in in tiny usb i'll climb under my desk in just a moment and unplug the camera it looks like it's still there we go now if only i could get cat cam working cat cam come back i can just does not like me i don't know what the deal is yeah my sub modules got so messed up all right well at least face cam is fixed maybe maybe i just need to get a mange well again okay mo air decay am i like half on i wonder what branch i'm actually on you know what i always say and i haven't said this in a long time because i have been streaming get status get status is your friend like because it's in a world where it has fetched sub modules even though it's like fetch all sub modules now so like the first thing i'm planning on doing is rebasing the changes that uh migrate of main so what does get status show get status shows fatal not a get not a get repository great huh that's everything you're doing in several times yeah well get status is not helpful if if you get some module speed descriptor fix get status yes it does we are in like because we're not on the re usb reset let's see if the switch works now there now we now we switched fully and our get status is a lot cleaner so now if we get log so we can see micro devs commits oh co-authored by kasey web nice oh and there's a merge let's do uh how adventurous how adventurous do we feel should we uh get fetch ate a fruit and let's do get rebase i ate a fruit main so that doesn't look too bad so these look like all of um just look like all of uh the commits from micro dev or the folks that were working on it um this is the like interactive part of the rebase thing so um what is rebase rebase is uh what i like to think of is like replaying or redoing commits on top of a new uh a new branch or like these changes were originally done in september of 22 on an old version of circuit python so now what we're going to do is we're going to take all the all the commits that happened after that and we're going to just redo them on top of the newer version of circuit python the current version of circuit python so that's what rebase does and it also gives you um this uh interface where you can change the structure of the commits as well um let's take a look at that okay so now what we're doing is we're we're somewhere in the middle so we could see like oh we're trying to auto merge all this stuff and now we're stopped so again um and you could see they could not apply five ebd and i guess we don't have our list but if we get status we can see that um the last command done is update to 5.0 and now we've got all of these other things to do quarky says think of rebase as control c control v on git history yeah kind of mark says rebase is how i always end up messing up my prs and having to ask dan for help oh and it looks like my camera died again didn't doesn't it i wonder if it's too hot in here for the camera maybe that's the problem um it's in the 80s i could turn the fan on but i don't know maybe i need to slap a heat sink on the on the converter anyway that's pretty much what i look like right now i'm maybe if i talk later i'll do it again um most i do before checking out is cherry pick rebase is essentially cherry picking in order so like this is the equivalent of cherry picking that first commit and now i have to deal with the consequences of it but it's important to note that like if you see and get status like it has this new message of like you're in the middle of a rebase like here's how to get out of this special state is to like skip this patch or abort an abort will set me back to the original thing um yeah so you so unexpected maker says same i constantly screw up my repos and i had to kill them in the refork my github food is very very poor so the thing with uh github and like prs and stuff is like you could always so a branch is just a like label for a particular commit um and so if you mess a branch up you can just like change it to point to something else that is correct um so we like i'll see people like open a pr and close a pr and open a pr and close a pr it's like no no no like you don't you can leave the pr open because a pr will follow um a pr will follow a branch let me just get back so now what we have to do is we have to do all of the merge uh fixes for these and i always get confused it says this says deleted by them i get really confused about which is ours and theirs like some terms that they use as well so that really definitely screws me up um all of these frozen things these are all sub modules i'm actually just going to ignore those ignore those for now what if i wanted those to not show up i would do like the make fetch sub modules sort of thing um but i know that i don't actually have to do anything for those what it's really asking me to enter to do is like these uh this set of stuff is what i need to be focused on so let's take a look and see uh supply merge will show us here what we have to do so and this is like a a tiny preview of what um dan is having to deal with these a lot of get reset i almost never get reset yeah some modules are tough i yeah definitely in that boat um that one looks kind of hard hello sorry from ukraine this live protomatter one i might actually run make fetch all sub modules just to so we should have this command because it's in the newer version of circuit by thought so this should handle the protomatter one for example like protomatter is not something that we're going to want to change for so this looks like a kind of a duplicate where um esp cameras support was added but under a different name and here again is like a parallel display camera conflict so we'll have to take a look at that if there's a to do in v5 remove the following include okay so we'll we'll take a a quicker look at actually you know what you know what i haven't looked at before what happens if we click resolve oh okay so here is i think this looks like kind of a different main and this looks like it looks like uh the the idf update what do we do now i'm new we're merging we're updating uh the the branch that updates the esp idf to 5.0 and sorry my camp's frozen i don't know why why it stopped working but i could turn it off and you can see a little bit more on my desk but i basically look like that looking at the screen um okay so we can just confirm confirm this by going to the source and we are in uh ports expressive cmake lists so let's go ports expressive oh i hit the wrong one ports expressive cmake lists so this is the current version so this here's a here's a change seven months ago that's move esp 32 camera to esp camera so this is one of the things we're seeing that a two points out that there's a act command that can run github actions locally i just push in i do the another push another push another push detached head scares all i know my cam needs a reset let me i'll do it again but i don't think it's it may not last long i've already done it once how about now there we go no audio means no closed captions i think you can hear me now confirm the the cat was meowing at me too so we see if cat cam works should we go go for broke oh my gosh cat cam works something happened we've got cat cam working we've got audio working again i don't know what happens thank you tim for confirming you can hear and see me vini you're gonna jump up actually both cats are what was it last week last week i had zero cats in with me and now i've got both oh that's lovely if i tap my hand come on come up i'll hold her up once she jumps on my lap and then you can see both kitties ready cat this is a cat interlude for everyone i'm thinking about moving out of this space at home into a separate office space and i'm i'm a little sad that i won't have cats to deal with although that's both a blessing and a curse it's kind of annoying as well oh i feel like i should be on this screen so you can see spook in the cat cam meow could you hear her all right um i am thinking i need to get a a heat sink for that like because i like i'm using a you an hdmi to usb converter for the main camera and it's been freezing up and i think it is because it's uh because it's getting too hot like it's 83 in here now and it's already gone down like half a degree with the fan on um yeah my cat commercial break um i have a feeling because i i don't usually have that problem with it i bet that's what it was it's just like i touched it i touched the converter when i plugged it back in it was like it's definitely hot so i need to have a fan on it or something um okay and uh that that concludes the message from our cat sponsor i don't know uh okay so let's go back to the desktop and now we know that like this circuit pi esp camera is is the way that we want to go for naming so we are going to take this bit and then um we're going to want this bit over here so how do i pick can you tell i haven't used this i haven't used this before how do i how do i pick it next conflict previous conflict next conflict it's probably a hotkey or this there we go gotta click the arrow okay so that's what we want saving stage let's go to the protomatter one let's not do let's do this make file one so again here we see parallel display and esp camera so this is a little bit trickier in the sense that we want this bit but we want to call it esp camera instead so we want this change here we're getting this change anyway but this also adds parallel display support which apparently we didn't have this change looks okay so there's more changes here so what we'll do is we'll go through do all this merge stuff and then um we'll start building it and see if it builds yeah so i don't know what to do about this build one let's just collapse that for now for the protomatter one let's look at this ulp change and here we are ulp dot risk five versus all of this other stuff and i'm going to assume it's the other stuff that we want this seems too simplistic to me um which yeah so these are the changes that were made for these are the changes that were made for 5.0 titus says oh my gosh parallel display support for esp s3 is on my need list great okay so let's see so here's um here's a to-do so let's um again like do a little bit of both where we do that because we do want this error i'm not implemented but we'll do the rest of the to-do although it seems to me that like yeah i guess we might want to check for the ulp as well that's okay this is this is just a first pass next one i don't see enable ulp interrupt again this looks much newer than this so we'll take that one save and stage next one save def config i wonder why that was deleted this is esp 32 defaults should we try that it's possible we'll want to delete it but i think we just want this left version and if not we can fix it save and stage let's resolve the config port stuff so we want the newer version of esp camera this we want and this we want save and stage again is stk config file auto-generated comment on top i didn't i wrote a script that tries to take so when you do a build it matches all the stk configs together and i made a script that tried to piece it out so k config is designed to just like have one version for whatever but what we want is like stuff that's common to all esp boards should be configured commonly and stuff that's for a specific board should be configured for specific boards and so there's a script that i wrote that splits out stk config settings into like different files that we then mesh together during our our board builds um so that in particular esp 32 one seems like it should have stuff in it but it's probably it's probably an easy shortcut to just empty the file because there will still be defaults they're just not laid out laid out anywhere for that so it's possible we'll just find that we we're setting stuff that doesn't exist in 5.0 okay so let's do a get status again and see where we're at so we have both modified so esp idf obviously we want to change to be the newer one um esp 32 camera we probably don't want to take the newer one we want to take the current one and then i2s lcd driver is deleted and that seems right to me that it should be deleted let's try that so i am going to go through all the commits and then see what what breaks um esp idf so this is just different commits i don't know how we select each side so what we'll do is we'll so those are sub modules and sub modules are tricky they're actually like files that have the commit in them and you've got to decide which commit to be at but you so if we go to ports expressive esp idf and just get log we're in circuit python customizations which is the head of circuit python 5.0 so let's see if we can find where this is because micro dev 1 esp idf is my guess it's either there actually you know what we could do is we could do get remote origins okay so we're in adafruit esp idf and then let's take a look at that branch branch so we have our 4.4 circuit python branch and there should be a branch for 5.0 but i'm tempted generally to move move us over to the plain one i don't know yeah so here's the here's the circuit python v5 thing so if we go to commits so here's an update to 501 and then here's the circuit python customizations commit that is what we're checked out to which we could just leave but let's let's just take a peek like this is a fix that i thought should be fixed um yep interesting okay so those are things that still apply um i think we just leave it as is so let's just leave it as as is for now and get kind of like the existing thing working and my camera froze again i don't know why it's so hot right now um i bet cat camp doesn't work anymore either okay so let's move out of this and it's where we want so we're just going to go get ad esp idf now let's move into 32 camera i wonder if i have a heat sink that could help handy i wonder if there's a fan in there maybe there's like a fan in there that died or got full of cat hair could be the case okay so what where are we here merge upstream updates for esp camera i bet that's not what we want so it was on commit adb because i know jess been doing a lot of work here so here's adb so we are behind so let's just copy this and we'll we'll uh check it out that's fine so both modified esp camera but i think that's what we want so we'll get ad we could always redo any of this okay so protomatter is wrong and again this is a like we probably don't want to be on like this is just old protomatter so we could just go to if we start going python ports or no live protomatter and you can see this is the start of the commit so we'll just copy that and we'll change it check it out okay and that looks right this is why it's pretty common if somebody does do a rebase um they may mess up and i may mess up the sub modules um okay so everything here looks good except for this build file has changed i'm not sure why let's look at it this way so circumvented that did a bunch of externalization of things so this is upstream this is the branch this upload artifact i don't think we want anything from the right hand side fetch id of tool cache this says i tried to i gave up trying to do esp builds on windows and that's so that's where we're at is that this is oh no this is build expressive but this is the windows build oh that's not well lined up i don't think it's there then okay that's just the complex we're on okay so that looks good we'll go with it now if i was good i'd try to build but i i'm not that good i think i'm more willing to just do it at the end like fix up stuff at the end so let's do rebase continue and that's what we'll call it still and so now we've moved forward in time if we do get status and sorry i'm frozen trying to think of it if i can think of where i would have a the heat sink assuming that's the problem now it's a lot cooler here it's just not oh there we go again and you can still hear me weird like last last week it didn't have a problem okay so now we have a bunch of board config changes that we're gonna have to merge in together it's interesting that there's a deleted by us board config but my guess is that these are all those same sort of methodical changes audio and video is still working great thank you dcd okay so we did update the idf we did conditionally include esp ps ram now we're trying to update to 501 okay so let's keep on well let's just say resolve esp 32 s2 spy ram support i assume we want that but i don't actually know like is that a thing in 5.0 or not so maybe what we do is we do what i said we were gonna do and let's move it over we want to save it but i don't want to stage it yet save without staging and let's just which board was that that was probably this first one okay so we're in a new esp idf so let's go esp express it and let's actually deactivate our current virtual environment because we're gonna do install actually we have to export idf path and then do in well i'm gonna do install because i haven't done this for 5.0 yet so this will download all the new tooling gcc 11 then nice that's better than gcc 8 now we'll do export and now let's try make board equals okay so we'll just do we have a couple um actually we could do pip install our requirements dev so there's some so the esp idf sets up its own python environment for building esp stuff but then there's also requirements that circuit python uses um so that's what i just installed is the circuit python stuff we need so it looks like it's just like checking more stuff out because it's it's like getting my copy of esp idf 5 actually up to date which is good how are folks doing do we think cat cams working still yep awesome spook is sleeping there that that is spook cam and then then is up over there and there's the fan so that now that's min cam okay so we didn't succeed the following python requirements are not satisfied requirement is cryptography less than 36.1 and greater than 2.1 but we have cryptography 4.41.03 installed and i wonder if that's something that we just um yeah we just installed it um cryptography 3602 i don't know why but let's see if we can't um downgrade pip install cryptography less than 36.1 maybe that'll work does not turn pi open ssl 23.2 requires cryptography greater than 38 so maybe we do did requirements dev change for this branch i don't i don't know i don't think so so i wonder if we can figure out it looks it seems like we're gonna have to use an older version of pi open ssl which generally i don't like to do i'd like to be on the newest one but it's this like what i think it was the javascript world where like you have all these pin dependencies and you just gotta figure out how to like work together 23.2 so cryptography maximum version has been increased to 41 maximum version has increased maximum version minimum version is now 35 minimum version here is now 38 and we need to use 36 so we actually want to use this is the version that we want to use for pi open ssl and the two equals or one requirement already satisfied but now we should be able to say let's see if it works externally managed environment is being enforced yeah it's tough no such file esp 32 s2 ulp does not exist anymore yes it does so fd is a a rest replacement for find i think so i wonder what we want i wonder if we want sock ulp or esp 32 s2 ulp so this is an imx land but well we'll get switched over here forks expressive common how esp ulp ulp.c ulp and ulp risk 5 yeah fd2 says i'm kind of liking some of the rest replacements for traditional tools specifically finding grep yeah i i think it's super cool that they're they're redoing and modernizing a lot of command my tools like i use rg now instead of ag and rg is ripgrep and i think it's written in rust as well okay so i think this is just a missing include so if we go to our make file and we see that we're missing ulp risk five where did we find it we found it in ulp fsm include so my guess was there two and you know stuff like this is stuff that could be fixed no problem unexpected maker have a good weekend too thanks for stopping by see i'm getting a little ahead of myself and so like i'm not sure whether i should continue to fix issues some contents of esp s2 ulp risk 5 has been merged with ulp risk 5.h include the latter to avoid the warning i wonder if this is fixed in a further let's take a peek at um like is this a new fix or something that i'm gonna have to fix anyway so we look at commits here yeah like we're not we're not down here to this update ulp implementation thing yet yeah so here's the change we just did and here's changes here so okay so we don't want to do this like this is taken care of later um so let's we really need to get through this merge first so we can do these and we'll we'll take our best guess and keep going so this is what we're going to discard actually leaving that would mean that we get a conflict we might get a conflict later which is annoying um okay so let's ram support we'll just save it and stage it cancel huh i wrote a somewhat nifty search wrapper using rg plus fzf great for large code bases or even searching through all your repos when you're looking for snippet what is fzf i don't know what that is i know rg but i don't know the other one resolve l what post name oh oh dang it i hit the wrong button so here we have esp camera optimization flags i don't know why that is this must be a size issue so let's just do that camera update and we'll include the patreon size fzf is a completion ui written and go so let's just do the same thing here we'll use the newer version but update the camera it's totally possible that like later on it'll update the camera like maybe there's a commit that does that here fuzzy search which is hmm s3 spam sram support this looks like more like i want i don't know we'll probably end up regenerating all of these anyway this is just a first pass just a first pass just a first pass fix it later i'm gonna get real good at this merge thing and then there is one that i hit stage that i shouldn't have so it probably has the diff markers in it still yeah this one unstage and oh come on okay feather s342 we need to go in here and do boards feather s342 just line down delete it there we go so we'll stage that as well we'll get status it up we'll see that we don't have anything unmerged and now we'll rebase continue fuzzy finder yeah let's take a look at that after the stream all right where are we at now three commands done nine remaining get status changes not stage for commit this is we don't have anything why so why did it stop us if there's changes that are not stage for commit i see the previous cherry pick is now empty possibly due to come conflict resolution if you wish to commit it anyway use get commit allow empty otherwise use get rebase skip um so the command we did is conditionally include esp ram and fix sdk config so it seems like that's been fixed already so i think we just want to get respace again we can always fix it later so here we have partition table changes probably don't want to do oh it's growing it to be bigger i wonder if it didn't i'm going to do the current version because if we could figure out how to get it oh i hit stage again um because that's something i'd really like to test so that that's something that i would like to do later because i really would prefer it if we didn't have to change it so anytime we change the partition table we risk like corrupting the user file system on the update so that's something and i don't want to take lightly to do so i'd rather like not do that if i could get away then okay so this is partitions for megabyte know you have two right so it would affect a bunch of boards config partitions for know you have two i just i don't we have to do it later we can do it later like we can always go back and reference the older commits as well status and now we can and now we have more problems so this is update you'll be implementation so this added s2 and s3 sport by giving it the generic i think we want i think we want this side and halt okay so here's halt based on this looks better to me because it is checking the the the right uh state machines or the right elp implementation is being used so again this is like the esp32 defaults being like trimmed down to basically nothing again which where are the elp settings on the left here they know where to be found this is why like changes like this are like the ulp hardly anybody uses so like will somebody even notice if we accidentally break it i think we're good and i'm moving still now we're in refactor board config is this before i wrote that script it might be let's say resolve and then we take both this one and sure so this doesn't this is spy ram and this is default ps ram my guess would be this way you pondered if this was before you wrote that script check history yeah i could i could or i could just keep going let's do this one but also this one my guess is that we're going to run that script anyway um to regenerate everything i think i even yeah it's been a while let's look that up browser window so what i'm thinking of is great get going down it's back the tool and the script i'm talking about is ports expressive tools update stk config or generate yeah update seems right right yeah so this this has like these settings go in the opt file these settings go in the target file and these are like prefixes board settings flash settings the least settings so we'll probably we may want to even update this for for esp5 as well let's keep going i don't know how many we have left get status we're ready to go so most of them most of them auto merged um we have three remaining which is good get rebased continue i don't care you know usually what i'll do is if i do want to redo the commits i'll actually get it all like smoothly rebasing first and then um and then i can go back and and juggle them if i want to i'm not super personicity about like structure of commits and stuff so okay what's this do this is oh it's rgb matrix uses supervisor allocation and the other thing we'll do is like once i'm done with this merge we'll then go back we can go back and look at all the changes as well let's just keep going s2 and s3 and tada we are now updated i think i'm gonna actually call this well i'm gonna leave the branch name because if i push it to micro devs repo which i might be able to do and that'll update the pr which would be kind of nice i'm gonna want to keep the same branch name okay so since we're here we've got about 20 25 minutes left um let's go back to the board that we were trying to build and just see what happens um so we've we've gotten up to date with the 5.0 update and now we can take a look at this so so here's the same morning that we had earlier i'm just going to do a quick clean just to make sure that i'm on the very latest version of the branch also note that i'm not doing any j command um i've never had great luck doing j which does some make tasks in parallel i've never had great luck with that on the espidf so i'm just like not doing that so it's going to take longer to compile but it's also going to um make it uh make it less likely to break like make it more reliable okay so we're still having this problem that we're uh getting this warning which is fine warnings are great um let's go to common how ulp and maybe we just try to it's saying it's being a little vague because it's saying don't include esp32 s2 you'll be risk 5 just do you'll be risk 5 so you'll be risk pppp so there's a regular include uh specific include the generic one my guess is they want us to do this so it's probably like that and it's probably that for s2 and s3 that have the risk 5s we could just include it once but because i don't like that esp32 doesn't have that mode i'd rather just have it per target so let's see if that fixes it the weather display crashed i just hit reset again i really like this weather display but i don't catch all the errors that cause problems so i have to hit the reset button okay unknown type name here's the i showed this on show and tell before is it gonna show me oh sorry that's cats gonna show the weather is it gonna show a crash right now to hit the reset button it's possible that the like weather service i'm using is down i don't see anything there i was hoping it was gonna magically appear so crashed must be having a problem key error okay so we're in parallel bus and we don't have the itus lcd config or handle types so let's go there parallel bus oh but we're in the dot h and this is trying to include itus lcd driver so let's just do a wrap and it looks like it is in oh interesting esp iot solution components bus i did see that so we are including itus lcd driver remember seeing it oh you know what there's this that could be the problem it could be including the wrong file delete it and try again desktop thank you at least you got some cat cam inka blinka one of the things about key error handler is that it'll just say here which is not as helpful as the actual trace back without the error handler sometimes yeah i did get a trace back to um you know discord now you can search for rep fcf search on gab it's the top result i'll keep trying to get this to refresh so you can see what i'm doing see my nice weather this way it looks like it's going i could do v1 let's show us what it's compiling so these are the sorts of things that it would normally do in parallel but to be on the safe side i like to do it not in parallel with the esp idea okay we have about 20 minutes left so let me know if you have any questions unknown target esp idf mdns live mdns dot a what could that be about so there's two things to look at for what libraries get linked or that get built for the idf one is there's a big long string somewhere here a big long list of stuff so here we see binary wi-fi blobs binary blobs and then components and i bet mdns is in here yeah there's mdns there and then components link add bluetooth add you will be add esp or ps ram expand it out to the actual directory and then expanded ends up in the link committed here so the question is is like did mdns move or did we fail to actually build it cmake lists so i think this component list is similar it also has mdns although here look extra component directories esp protocols components and dns so i wonder if um i wonder if the location of the live a moved so what if we do an fd live mdns dot a that should be in build some of these newer tools will ignore ignore get ignored stuff that are s2 viewers tft esp don't didn't get built at all i wonder if we could do that's the search a little string insert a rex you can also use glob not that all right so let's take a look in esp idf components so it looks like yeah so there's no mdns directory anymore so it's not going to be there we saw it in esp it was esp protocol wasn't it esp protocols oh you know what i think they moved it out of they moved it into a different directory so here's protocols yeah so does that mean that i accidentally or artificially restricted it so we're doing the reverse tft s2 reverse tft esp idf and esp iot solution i don't know where or how we would have built that make files so let's uh the next thing i want to look at is my fd tool is a re-implementation of find basically like done in rest i think if i remember it it's not a wrap around find it's a replacement for find so let's take a look at um this commit here there's a lot of changes i only update once every 15 minutes yep i only do once every 15 minutes as well i catch some errors just not all of them yeah so the esp protocols they split it out they they did some reorganization as here and then in the make file how do we handle the mdns changes so there's this new include path well display hmm so that's interesting there's no mdns stuff here maybe it doesn't work thanks fatty too yeah get lesson there's lots to learn to get you never stop it's kind of a giant thing all right we've got 15 more minutes or so if you have questions feel free to ask them otherwise i'm just trying to figure out this mdns stuff how do i get an mdns library out of this it's in protocols you know p stuff yeah the thing yeah just thinking about like they make they expect the world to be cmake and i've resisted cmake one because i don't like the language that it has and two it uh i want to if we switch build systems i want to do everything i really like that although our system is super clunky it's pretty clunky is like uniformly clunky um that that makes any sense and so like it's just a lot of work oh it's interesting so here's here's a cryptography limitation here in requirements as well so let's figure out how i am building these components link i actually need to build them too idf cmake targets that sounds promising idf cmake targets ninja idf idf cmake targets so it just looks like this was never the protocol stuff was never actually supported so what we need to do is idf stamp and ninja c build esp idf where is do we call i think we call cmake yeah here we go so we call cmake to build the sdk config with all of our defaults so we need to do something similar for protocols to get the protocol cmake s dot sdk convict let's take a look at this protocol thing you know there's the esp camera thing too probably has the a similar structure protocol esp protocols see like cmake will like merge these all all these things together like there's this extra protocol thing i wonder if the ninja file has it so there's two steps that we do we're doing the cmake call to generate the sdk config and to set everything up and then like cmake is two steps it's like one step generates a ninja file and the second step actually runs ninja ninja you can think of it kind of make but like even lower level so sdk config my guess is so let's look in this build ninja file which is super big i assume and let's just look for mdns nothing so like there's a cmake list thing that that we set to include the extra component but our cmake command is not these are all certified stuff yeah so we're not getting any and i did clean so i would expect that like this cmake list inclusion extra components durrs i wonder if yeah so that's how esp 32 camera is being built as well is by setting extra components component durrs so if we look at esp protocols components mdns cmake lists and think mdns networking socket i would think that it would show up in there i don't know i think it's time for me to take a break and come back to it with fresh eyes uh one thing i will do is i will i'm going to fix i'll commit these two to get add the common howl thing and it's a removal bill has a good question will there be some methodology in retesting everything or do we just wait for issues i'll do like smoke tests but the true test will be getting people to try it um so like i'll make sure all the boards build i'll make sure that everything that i think should work will work um and then i will uh then i'll commit it because i think we had this conversation before it is like it is really valuable to get it out to the broader audience to get tested so main main with like early early 9.0 is not going to be stable and that's just the way it is um you know we won't call we won't make a release and call it stable until until we uh we feel confident that it is pretty stable i appreciate you bill says i will be using main as always so expect me to find a few new at least yep yeah that's super helpful i really appreciate it and you know i find a lot of stuff too because i'm always working off main so there's already uh like there's this toy hacker board that is like inside the toy and really you need what the web workflow for um there are some changes that lumeur wants to make for that so that's a project that i can do after this update that will kind of like keep uh keep me working in esp land and and just like testing it and i'm sure like issues will come around that as well but that's a good question there's definitely a world where we could be more thought mathematical about it um but testing with external devices is like quite tricky automated testing with external devices is quite tricky uh it's something i'd love to see but uh yeah it's really hard especially when it's all networking stuff hmm dj debon three says 8.0 was really really buggy and an important part of smoothing it out was all the testing reports i don't remember 8.0 being that buggy but maybe i was gone i fully expect 9.0 to be pretty buggy because we're updating the idf and we're gonna be updating circuit python so that's gonna be a lot of churn soon but it'll be good okay let's go back here thank you all for joining me for this deep dive reminder next week will be at 2 30 so a half an hour later than normal um as part of circuit python day festivities that start early in the morning uh seven pacific 10 eastern um so keep an eye out for all that we'll have a day full of streaming stuff and uh yeah i'm excited that cat cam is back and uh keep keep an eye on my github and the discords uh if you want to follow along with this idf update stuff uh if you want to support me and you can do so by supporting adafruit by going to adafruit.com and purchasing hardware there one thing that's new and i think it is released but um maybe not i don't always keep track uh there is a metro s3 um which is super handy for development um so if you're uh into the expressive world like this sort of thing could be quite handy um so check that out if you want to support me and adafruit uh if you want to join me and a bunch of other cool people on discord you can go to the url adafru.it slash discord and check that out we'll see you there and with that uh i will switch to cat cam and maybe i'll move it so i can pet spook uh although i can pet into uh and we'll see you next week let's go to cats and maybe i'll pet both cats i was hooked you should have seen the the look here that spook gave me when she started meowing saying what you're gonna pet her that's cat time thank you all we'll see you next week