 Hello everyone, sit tight. We're gonna get going in just a few minutes. If you're watching this after the stream, make sure you check the comments for a link to the notes stock. The notes will be there. And it has timecode so you can see through the whole video in case you don't want to watch the whole thing. So we're gonna get started in a few minutes but first I will say hello to folks and get my tabs with my videos paused and all things like that. So I'll say hello in just a bit. We arrange things. Hello, Michael. Hello, unexpected maker. Hello, Randall. Hello, Pierre. Hello, electronic enigma zone. Hello, David. Hello, Beata. Hi, Paul. Nice haircut. Thank you. Somebody stole my hair. Oh, that's right. I got my haircut after the stream on Friday, didn't I? Hey, Hams Labs. Hams Labs. Hello, Luis. Hello, Paul. Hey, Johnny. Hey, Dan. You can barely see Spook in the top there, can you? He's enjoying the sun. Jeff asks, hey, what camera are you using? Hello, Hector. This camera here is a Sony ZV-1 with a, what's it called? I'm blanking on the name. An HDMI to USB converter. Starts with an M and I can't remember. Hello, Mr. Dahlgaard. Hello, Mark. Hello, Minnesota Mentat. And then the cat cam here, this one, is a Z, not a Z, a C920. 922? It's actually been like not working super well. I had to like unplug and re-plug it back in. Now it's started working again. No problem, Jeff. It's a common request, so it has like two different modes. This is eye-tracking mode, so hopefully the focus is really good. And then it has a product mode as well. So if I hold stuff up, it will definitely ignore my face. Hi, Keith. Hey, Charles. So I think we're going. It's pretty nice here today. It's in the 50s, Fahrenheit. Sun is out, went for a walk. I made way more progress on the ESP stuff than I thought I would. Well, not because of me, but because of Ivan's help. All right, let's get going. I don't see why we need to wait any longer. We'll probably still collect people for a little while here. So hello, everyone. My name is Scott, and I work for Adafruit, based on... Adafruit, particularly on Circuit Python. If you don't know, Adafruit is an open source software and hardware company based out in New York City, but I work remotely for them. I am in Seattle, so it's not always sunny here, but today's a nice sunny day. And I've worked remotely for them for, like, five years now. It'll be six in August, which is pretty wild, and I've worked on Circuit Python the whole time. Circuit Python is a version of Python designed for microcontrollers, which are little, tiny, and I'll show... I'll use my... Since somebody was admiring the camera here, this is product mode, and now if I go like this, it will show. So this is an ESP32C3 development board, and this is the S3 development board that I have on my desk. And these are microcontrollers, so underneath the metal tin here, there's a little chip, and that is where the microcontroller is. It's a little tiny computer. This, particularly, the S3 can do both Wi-Fi and BLE, which is pretty neat, Bluetooth Low Energy. And so Circuit Python was designed to run on these products that have native USB in particular, although we're expanding that to include native BLE as well. So it's a great way to get started programming. It's super close to the metal, which is like how computers actually work, so it's a great way to learn. That's what Adafruit and Circuit Python are. If you want to chat with me and a lot of others, this middle box here is the Adafruit Discord server, particularly the live broadcast chat channel. So chat with me and a lot of others all year long, all week long. There it doesn't go away like YouTube chat does and stuff. So if you want to join that, you can go to the URL adafru.it slash discord, and you'll join us there in the chat. This is a deep dive. It happens every week. Normally, Friday is at 2 p.m. Pacific, but occasionally I was doing it on Thursday, although I don't really do that anymore. It typically goes for two hours or more, depending on if I'm in the middle of something, and questions are welcome. So if you have any questions, I'll do my best to answer them. There's a lot of knowledgeable folks in the chat as well, and they can help answer questions too. So if you have those, go ahead and just drop them in. Those of you who have watched a deep dive before know that it kind of tends to wander a little bit, and we discuss topics as they come up. Last up, all notes are available on GitHub. There's a deep dive notes repo under the Adafruit organization, and what you can do is you can search that repo for all the back catalog of deep dives to see how I do different things. It's a great resource, so thank you to Patrick for putting that repo together, and in particular adding the links straight into the videos, which is super cool, because the videos are super long, but you can timecode them, so that's pretty neat. And then, of course, David, DCD takes notes pretty much every week, so thank you, David. My note-taking skills are much less useful, so thanks again. I didn't say how to Bruce yet. I saw Bruce come in, so hello Bruce. A number of folks in the chat are talking about how cold it is where they are, but today is not particularly cold here, so we did have, was it earlier in January, I guess? We had about a week of pretty cold weather, but not down to zero Fahrenheit. Pierre's going to go on a walk on the lake, so that's pretty cold. We don't have that here. All right. I guess the last thing I could say is if you are interacting in the chat and you find that the YouTube is a little laggy, we do have YouTube on the normal latency setting, which means that you get the auto captions, which is awesome and why I do it, but if you do not need the auto captions and want to have a shorter latency, go ahead and switch over to Twitch, and Twitch I think tends to be a bit quicker, so twitch.tv slash Adafruit has the same stream. Okay. I think that's all the housekeeping, and I haven't seen any questions. If you have questions, of course, ask them. That's totally cool. But I thought we would do similar to what we were doing last week. Last week, we went over all of the Circuit Python 2021 posts, and I thought we'd cover Circuit Python 22 posts this week, even though we're not completely finished with that. I hope more people will continue to send those in. Let me recap what it is. Every year, I like to do more longer-term annual planning. Hello, Andy Roberts, one, two, four, three. We do this longer annual planning for Circuit Python, and we tend to call it like hashtag Circuit Python in the new year. We're in the middle of doing Circuit Python 2022, and last year we did 2021, and we've done 2020 and 2019. 2019 was a little bit different, but if you want, you can go back and look at all of those kind of historical things that we thought kind of at the annual level. I did do a deep dive last year that went over, I think it was last year's that I went over all the way back, but this year the one we did last week only covered 2021. Thank you, Mark. Mark was the last person to email. If you do post, and the way that you can tell us what you want to do, we want to hear the projects you're interested that you can't do in Circuit Python. Features need to be in service of something, so we want to hear what you want to be able to do in Circuit Python that you can't currently do. The way that you can tell us is you can post it on your blog, you can post a gist, you can post it on the forums, you can leave a comment, and then to let us know that you did that so that I will re-blog it on the Adafruit blog, you email CircuitPython2022 at Adafruit.com, and I'll see that, and I'll say thank you, and then post it on the blog. I keep kind of a running list of things that have been posted, so on the latest blog you'll see all of the past entries as well. Good afternoon, Gary. So that's what Circuit Python 2021 to whatever is. And last week we covered 21. So I want to cover 22, and I wrote mine. Syllabus? Ron Syllabus? Not sure what you're asking. Hello. So I thought I'd cover mine first, so I'll pull that out. I posted it this week. I posted it yesterday. Deep dive review of Circuit Python 21 notes. I buried the lead a little bit in this. So if you want to follow along, I'll put the tag here. I'll cover mine, and then we can cover. I know the auto sticker thing is really annoying. I do smileys with a colon dash capital D, and for some reason it has me do head bang desk. And it's just like, I thought I turned the sticker stuff off. It's really annoying. Like the animated icon line for the... Oh yeah, yeah, yeah. It's kind of a syllabus for the coming year. I think that's a good way to think of it. Hello, Thomas. Yeah, it's always subject to change, because in a time where there's no chip shortage, we try to follow chip availability, and some days you'll just hear from a manufacturer that they've got this new chip coming out, and it's awesome, and we have to decide whether we want to put resources to supporting it. The last major thing we did was RP2040, just over a year now. So yeah, I don't know of anything like that this year, and I feel like it's died down a little bit, given the chip shortage. So I kind of buried the leads. This is my post. I buried the lead, but the major thing that's happening for me this year is that I'm going to be out a bunch. I'm going to be out a bunch because we're having a kid. So we were expecting a baby at the end of March, so not too long from now, which is super exciting. I'm very excited. Getting some congrats, and we'll miss you. Yeah, so what you'll see here is that, so what my year is looking like is in the middle of January now, we're expecting a kiddo at the end of March. So I've got about two months or so until I'm out. So I'm going to take six weeks off, starting when the baby's born or around there. Before the baby's born, I'm going to try to switch to bug hunting mode. Thank you all. Yeah, scary to you. Yeah, taking some classes. We've got some folks to help us, so we're excited about it. Microcontroller for diaper state detection. It crossed my mind, actually, because we were talking about doing cloth diapers, and my sister's been using disposables for her kids, and they have these blue lines on them. So it did cross my mind. You know how Adafruit sells the plant soil detectors? Just put that on the back of your kid to detect the moisture. So the plan is that I got about two months until I'm out, and then I'm taking six weeks off, and my wife will be taking six weeks off at that time, too. And then we're going to take, then I'm going to come back to work, and that's going to be like a 12-week period where I'm going to probably pick up one thing, one big thing, or I might just do bug hunting. We'll see. And then I'm going to, when she goes back to work after those 12 weeks, then I'm going to take 12 weeks off as well. So I'll kind of be out April, like extended April, and then it's looking like, depending on the due date or when the baby's actually born, it's like mid-August through the end of October, is like when I'm out-ish. Folkology says you don't need detectors, believe me. Yeah, thank you. I figure it, we'll figure it out. Disposable is all the way. Well, yeah, we're going to try, we're going to try cloth because we live in the city, and we can pay people to clean them and rent them and everything. We're going to give that a try. Just doing the diaper service. Okay, so that's the big thing that's critical to planning, kind of my involvement in circuit Python this year. So my hope is that in the next two, so it gets less and less clear than the later in the year we talk about. But at the start of the year, it's going to be ESP work. So I've already switched years from Broadcom into the ESP world and made some progress today on it, which is awesome, not really because of me, but because of Ivan's help. And Folkology says my wife and I did cloth for our last two kids. I recommend it, it was way better than I expected. My parents did cloth with me as well. My sister lives not in the city and does disposables, but we'll see. Your nose will help, you know. Beware of unusual bugs my wife screwed up and delivered eight weeks early. Yeah, so we're, yeah, we've got 10 weeks until the baby's due date. So yeah, it's totally possible that these plans get shifted. 10 pull, that's clever Drew. Okay, so my goal, Bealee on ESP by the time I'm out. That's my goal. So I think next week I'm going to be starting on Bealee on the ESPs, which is super exciting and it might just go smoothly. I don't know, we'll see. Mark says the important thing is to worry about the baby family number one and everyone else will keep circling going really busy. Yes, I didn't actually say that, but I wrote that, you know this, I've always had these kind of two sort of themes, say for college law. Yeah, we're starting that, starting to think about that too. So yeah, in my blog post here that you can't see because I wasn't showing it is I kind of have had these two focuses college, not college, community and Bealee workflow for a while. So the way that community, I frame it in my post is that community is, the circuit by the community is amazing and I already took short breaks over Christmas for the holidays and stuff and I know that the community is going to run without me and I worked to get to that point. I've not been a critical piece of this community for a while. I think we've done a good job of finding people that can keep it going. So thank you to everybody who does that. And yeah, Mark points out like Mark included will help keep it going. So I know that's going to be the case, circuit by thumb is like going really well. So it's nothing's, nothing's going to happen to circuit by thumb. I do want to say and I wrote this up that I don't think deep dyes we're going to continue. At least I'm leaving that as a possibility. So these streams will basically go through February, assuming the baby doesn't come super early. And then after that, like for me guys been doing a great job covering kind of this time slot. So maybe for me guy will do that. But I don't necessarily want to commit to when I return at the like in May. I don't necessarily want to say that I'm going to be doing deep dyes because I don't know how much time I'm actually going to have because I will still be here and there will be a baby here as well. And then also, I don't necessarily think that these deep dyes are the top priority for my time for Adafruit. So it'll be a discussion with them. It might turn more into like a random hackers sorts of thing. But we have the deep divers role and Discord I'd be happy to like ping people there if I ever think I'm going to be doing streams. But yeah, we'll see. Things are going to change a lot. And so I'm kind of just like once the baby's here, it's kind of like we'll see. Drew says, planning that far in the future is just too much uncertainty calculation. Yeah, I think that's kind of what I think. So, tangent. All the puns, it's good. When I picked the name Tandute I never saw those coming. Hello, Andrew. I didn't say hi to you yet. I'm sure there's people I didn't say hi to. Andrew Emab Emab on Discord. Yeah, I mean, there's still going to be lots of cool things. So, Kit has already got nicknames. Ron says, new to microcontrollers, what's the difference? Difference from Arduino. What is the difference from ESP? So, ESP so Espresso is a manufacturer of microcontrollers known for Wi-Fi stuff. Arduino is kind of a platform or a software software system and API on top of that. That is like a C++ sort of thing. And then CircuitPython is also built on top of microcontrollers but is Python instead. So, it's a more beginner friendly interpreted all on the microcontroller experience rather than where with Arduino what you would do is like write on your computer, your C code and then compile it and then upload it to the microcontroller. I think that's maybe the question you got. Patrick says, you can get back to those drone projects and track your kiddo. Yeah, I don't know. I think I'm pretty over drones. I discovered embedded hardware that was the problem. Kmatch has a question. Question about CircuitPython hardware testing for displays. It would be nice to query a display to verify the display showing what you expect. Is there a concept where the host device running CircuitPython could tell the peripheral display to dump its contents and a separate validation of code peripheral device could read that dump and compare with a known good output. This could be used to debug code issues with the revision changes and also debug any communication issues. For example, to identify the one glitch that was observed by too high of a display speed bus. Typically on displays the output that would allow you to read stuff will not is not connected. So generally you can only write to displays. I think the better option if you wanted to do automated testing would be to write to another microcontroller and have that microcontroller pretend to be a display. It's probably more worthwhile. We were actually just talking about a little more of it just came up with a similar idea to doing that. Foamy guy points out that there's the bitmap saver library. So this is asking display IO what it thinks the image is. So you'd use that and then Cpython code running on the PC can use the pill to compare it with the known good copies of the image. Yeah, so if you're worried about display IO then you could do that. Micah says maybe we'll get a lot of ESP32s as a present. I'm getting all sorts of ESPs. I just saw in the UF2 repo they just added an ID for an ESP32 C2 as well which is interesting. Yeah, that solves composition but not transmission issues. Yeah, it's true. I think if you really wanted to test transmission you'd be doing what Kmatch is talking about of like reading it back out. That's pretty hard. Sound Reactive sunflower baby crib mobile with Bluetooth control. You all think that I do projects. I don't really do I'm finding that the projects I do outside of work are not embedded related. They're usually, right now, it's a lot of like I've been doing a lot of just like data scraping and data analysis stuff more in Python more than embedded stuff as my hobby. It's like way easier coding. That's why. I can write a 50 line thing to scrape data and do something with it. The ESP has Wi-Fi and Python. Python is easy to read. I think Python is easy to read. Python relies more on it relies more on white space and less on random symbols which I think is really beneficial for newcomers. And you can use the Wi-Fi from Python. String parsing for a better world. Yeah. Unexpected makers prediction is by the end of 2023 Espressif will have 999 SKUs of MCUs and modules. How many do they have now? It might be that much already. OgreDry says, I mean, you do your 40-ish a week on bending embedded stuff to your will. Gotta have a little bit of writing. Yeah, exactly. Totally, totally, totally. Thomas says you should look into woodworking. I don't have the space for woodworking. I know that. I don't have the space for embedded electronics. And a kit. Crimson Ether says I have an Arduino Leonardo type board with built-in Bluetooth. I want to build a Bluetooth macro pad but I can't find any documentation that helps me. Do you know where I can go to find this? I don't know much about the Arduino Leonardo macro pad unfortunately. I don't. I know in CircuitByThumb we have human interface device HID support that would allow you to do macro pad type stuff but not with that board. You would need like an NRF 52840 board for that instead. Or once we get this other stuff going then ESP chips with BLE would work too. CircuitByThumb project work might feel too much like regular work needs something else. Yeah, the thing that I really want to get back to, and after I take a break I want to do more embedded stuff, I still really would like to do USB host on the Pi 400. So let's just, let me scroll down. So BLE workflow is going to be huge at the start of this year. We want to bring more platforms to it. We've got FileGlider deep in the app store now and then we have Code.CircuitByThumb.org as well. So bringing the ESP ecosystem into the BLE workflow stuff should be a big boost for that. Yeah, Pierre says Leonardo Bluetooth might be like a pro micro plus an extra module for BLE, not ideal. Drew says, I'm 90% sure there's an Arduino BT HID library out there but I do not remember where it is or its requirements. Good hobby is reading with your kids, kid. I used to read to my niece and fall asleep during some bear story. Yeah I plan on doing that. I'm excited. We already got kids books and we're getting more. Yeah, I'm excited to be a parent. I've always thought I would be so I'm excited. It's good. So yeah, things that I still want to do, USB host is something I'd really still like to do. I would love to have the Pi 400 be a self contained circuit Python box. I think that'd be really cool. So I still want to do that. The USB audio and video I think would be really neat. So being able to put like send audio and video up the USB link. So if I was working on something I could stream it just over USB it would act like a webcam basically. I think async networking. I don't think I'm going to be the person to do this but now that we have async turned on and kind of like validated it would be great to have like networking basics that were all async so that you could do network stuff and other stuff at the same time. So I think that I wouldn't be surprised if Dan took that on. Testing Kmatch brought this up earlier but more generally I think we are seeing a lot of regressions in circuit Python now and if I was kicking you know I meant to do this what I'd like to do is I want to track how many bugs that we fix are regressions. So a regression I would define as like something that used to work but no longer works. And those are the things that tests are really great for preventing or at least finding quickly so you can fix them again. I don't want to get an issue. I want a new label. So I'm just going to do this right now. Things that used to work don't any more. I'm sure it could be neon green. So I would like to start tracking this just to see how much we're missing. That's here. It's kind of a holy grail. I've worked on it. Summersoft has worked on it. It's really hard. It's really hard especially when you're wanting to do things like what Kmatch is talking about like validating the hardware itself. So, yeah. Sorry. I could turn away from my old mic but this mic is attached to me so hopefully it wasn't too loud. Pierce's automated testing of embedded stuff is not trivial. 100% HamzLab says I got my sister to watch this. I'm getting her started using a playground express. Maybe say hi to Jane for me. Hello, Jane. Thank you for watching. Is that the same Jane that was in the YouTube chat? Welcome to CircuitPython. There's lots of folks on the discord there that would be happy to help you get going if you need it. KeithyEE says reflexively says bless you and confusing my partner in the other room. Well, thank you. I appreciate it. Yeah, so that was my CircuitPython 2022. Basically, I'm hoping to do BLE workflow on ESPs and then kind of like we'll see after that. The other we'll see is like we could have new chips be announced and be available that we didn't know that we're coming before. So, hello, Rich. Patrick says have you seen that the regressions are bored or port specific or are they general regressions? I would say that they're generally port specific. General regressions, there's not a ton of code. Maybe that's not true. Most of the code that's shared amongst all ports is the Python stuff and the Python stuff is really well tested because of what the MicroPython folks have done for testing it. The things that I'm thinking of are, for example, PDM stopped working on SAMD and I think Pulse in and out are not working on SAMD as well. People will say I got this CircuitPlayground to express and this thing no longer works and it's like with the PDM in Dan fixed it and he was like, oh, I don't think it's going to work since CircuitPython 5 and now we're on 7 and probably going to be 8 at some point too. Mr. Dalgarde says I'm hoping non-i devices will get some love for BLE workflows. I've been unable to get code.CircuitPython.org working on either Android or PC. Yeah, I think there's some bugs with code.CircuitPython.org that I love to see fixed. I would love to see code.CircuitPython.org also support USB which it totally could do. But I just had a meeting with Antonio so Antonio was a contractor that Adafruit. Welcome, Gene. So Antonio is a contractor that Adafruit works with and does he does both Android and iOS and so we were discussing so he's going to look at this week to see what it would take to update some of the older Android stuff and then I'm going to chat with Phil and decide if that's where Phil wants Antonio to go is the Android app side of things. So it's an option but I'm really hoping that with the BLE workflow stuff I want to see people really experiment as well. I don't just want to see only Adafruit supported stuff like it's an open protocol and I would love to see people experiment with how to edit how to edit stuff. Patrick says maybe the community can identify port champions or maybe the chip manufacturers can step in here who would test ports. To some degree I feel like that's what we do and Jerry is really valuable to CircuitPython because Jerry tests a lot. But there's other folks that do tests as well. I think that I think we do I think we are already relying on folks to do our tests for us. That's a nice thing like you can kind of think of learn guides as like the learn guides are kind of also test cases right like and that's kind of the that's also what Adafruit says they support like we support the learn guides that are marked as active. So I think it's hard to be comprehensive I think it's the challenge if you're doing it manually it's just really hard to be comprehensive. I think that I think that's the challenge I think that's why automation is really nice. Automation is both comprehensive in testing every commit and it's also comprehensive like you can get it really broad like you can cover everything and the way that I like to do testing I'm not very good at testing but the model I like to introduce testing is when you find a bug you create a test for it and then you fix it. You see that it's broken. The test is broken and then you fix it. Keith says do you have an automated hardware testing repo or repos from your prior attempts? I do and then Summersoft definitely does as well. I don't know those off the top of my head so can I get back to you on that? The one that I did was called Rosie. Rosie CI and you can see it's like 2017 so it was five years ago and it ran on a Raspberry Pi and the Raspberry Pi had a bunch of stuff that was like USB to it but the USB was not reliable until like that's really hard. Actually this is something I was thinking it would be another reason to do USB host is that part of the unreliability with this original version was that the USB host stack on Linux would get messed up and then you kind of like you got to go restart the computer but if we had USB host in CircuitPython we could have a fixed version of CircuitPython with USB host testing another board with a varying version of CircuitPython which I think is interesting but it would work. Strangelet says this is fantastic thank you and then let's see if we can find, so Somersoft also did a lot of work and I never took the time to fully understand it unfortunately Fizzi CI is what he was calling it SummerBot it's clever RosiePy oh he has a whole organization for Fizzi CI whoa and a website I'll link this in so I would check that out okay there's more questions let me get to them Run says so using Python to develop an API for the ESP family of hardware yes so CircuitPython already has support for the ESP32S2 and it looks basically like what I held up earlier if you missed it, here's an example this is an ESP32S3 the S3 adds BLE support which is cool and then I also have a C3 and then at some point I think we'd like to support the older ESP32 we had no plans of doing the 8266 but the ESP32 can do BLE which is interesting Pierre asks is there anything that Jerry does other people could easily replicate for testing I think it's just what Jerry does is Jerry has a lot of different projects that he works on and he updates them regularly and so that's and this is an interesting contrast the benefit of doing it this way is we test the things people use and if people don't use them they don't get tested, they may break but it doesn't matter because people don't use them which is kind of like why I get a little scared when people want to use circuit python in a product but you know it's really on them to make sure that it's okay Oh, Zarnlin asked what is the timeline for ESP32S3 support the answer is I don't know the Arduino ESP support is done by Espressif but I imagine that it's pretty similar so I wouldn't I would expect it to actually be there now but I don't know, I have a month I don't use Arduino Ogre Drew says hey Scott, I've got a hopefully simple raspberry pi, circuit python bare metal question for you are the pi3 and or the pi400 on the map so the pi3 for pi3 model B doesn't it uses the usb peripheral that we're using for host and doesn't make it available for device if I remember it the pi3a plus doesn't have those host ports and so it should work if you wanted to try it you could just put the 02W build on the pi3 and it probably would just work the pi400 is kind of in the same boat where it doesn't make the usb device connection that available it might be on the usb-c I haven't looked but if you want you could just try another for build on it and it's probably okay so I would like the usb host is on my radar because usb host would enable pi400 to have the keyboard input into circuit python which I think would be really cool and kind of like a third workflow but I there are still a few bugs in the Broadcom stuff there's freezes that happen and I just like I couldn't find them when I looked before and I was just sick of it so I'm going to keep in this ESP vein for a little while longer I think this BLE stuff if I'm lucky it's actually going to go pretty smoothly maybe I'm jaking myself but I don't think it's out of the question that I could have like the BLE workflow working at the end of next week because in theory it all works it's just that I've got to connect the circuit python APIs into the ESP IDF APIs so yeah oh now I am lots of great questions thank you folks Todd Cox says any pointers slash examples of OTA update of circuit python devices I don't know but I would encourage you to join the discord server you don't want me to switch back to here there's a couple of people that I've been thinking about this I think it depends a little bit on what you mean whether you want to update the circuit python firmware itself if you want to do that there's a dual bank module that micro dev added that allows you to write to the other bank and switch to it I haven't tested it myself and we like kind of the way that Adafruit supports stuff so like most most of the well as far as I know all the paid development of circuit python is paid for by Adafruit so those of us that are paid by Adafruit support particular things and the things that we support are the things that you can find in learn guides and I don't know of an OTA learn guide that we've done yet the other thing that you could think about OTA is the files in circuit python and there's this set next code file function on supervisor that allows you to say like hey actually next time I run don't run code.py run something else and depending on what code.py does do this or that thing so that's the other option but I don't know really good examples for either of them okay I'm getting behind people are chatting Dylan says do you have any thoughts on doing simulated hardware tests I don't believe that it could be a complete replacement but from what I think I understand I could fill some gaps. I worry with any simulated hardware that the simulation does not represent the hardware so like I know there's the thing that's mostly FPGA I forget what it's called some online service that does emulation and I just don't trust it to be like the hardware I think it's built on QMU and I think one thing I noticed doing Raspberry Pi stuff is like QMU doesn't do like all the like checking that the hardware will do so OTA, Ron asks sorry what is OTA it's short for over the air and sorry I didn't say that earlier the idea being like updating your software on a device via Wi-Fi or Bluetooth would be OTA Hi Art Darasano Bruce linked to an issue for the Arduino ESP32S3 support it says it's just around the corner oh Ogre Drew says Pi 400 C port works for gadget mode I think yeah that sounds awesome so if it does work that way maybe I should have tried it but just throw the firmware for the Pi 4B on there and just see if it works and then we can make a separate board definition for it unexpected maker says S3 and Arduino has not even started on the publicly facing commits maybe work has started internally and they'll just dump a bunch of stuff but they are still working on more solid IDF support right now and says they didn't say what quarter it's coming around Bruce points out that S2 isn't working great in Arduino either well I think that's all the more reason to use circuit pipe on it's my bias and you might say oh it's not working S3 is not working very well in circuit pipe then well I checked the PRs I fixed I changed a couple things today came out says this would only replicate what circuit pipe then thinks is displayed on the screen what about knowing if there's a bus error it's just the challenge of interacting with hardware I think that is not watching the stream unexpected maker says I know not a priority but any more thoughts on allowing other file system access to the OTA partitions if folks want or a way to disable OTA to reclaim more flash space for those that want it I think it's I think it should be a bootloader discussion that's what I think I think that for folks that load circuit python over tiny uf2 tiny uf2 can be that code can be anywhere so if we were going to make a non OTA old version so for those let me take one step back so what unexpected makers referring to is the way that over the air updates tend to work is that you basically save twice as much space for your firmware so you're running one set of firmware and it's downloading a version and then it's loading it into a second place in the flash and then what you do is you restart and say oh next time run this other version but that takes a lot of space on the flash especially because like the builds are the builds are like a megabyte a piece and if you have four megabytes of flash you're using half or even more than half just for firmware versions I would say open an issue on the tiny uf2 that's what I would say because circuit python itself respects the partition table the only reason that we have partition tables ourselves is because those are for the builds that work without the tiny uf2 bootloader part is OTA strictly an ESP feature not strictly but it's common with wi-fi and it gets it gets really tricky if you're talking about using it as the co-processor hooverdrew says downloading cackles with glee there's not a lot between all the different versions of the pi boards so you could try that apparently there's an expressive discord channel rich says I had a patent related to semantics live update which is one of the very first over the wire update mechanisms in the 90s nice oh interesting that's a cool chart bruce where did you find that chart the following table shows espidf support of expressive socks system on chips we are on version 4.4 sorry I'm getting caught up there's a non-official expressive discord server I have a bad habit of DMing somebody I know it DMing on twitter somebody I know at espresso Ivan's been super helpful let me just cover that since we're talking about it let's switch to the back to the desktops unexpected maker DM me the invite lake you just sent and I'll post it how does one tell official from non-official discord channels one of the mods can post the invite too I'm pretty sure I can okay let's switch to the desktop let me show you so I guess what I should also point out is that I wrote a learn guide which I don't do that often but I started it in December on the stream and then I actually finished it so if you go to learn and look at new guides there's the circuit python on raspberry pi and this should hopefully get you started now I said that there are bugs but this will get you started with the circuit python on the raspberry pi so let me know how that goes if you have any way to replicate the bugs please post an issue because part of the reason the existing bugs are so hard is because they are because I don't know how to replicate them quickly so yeah I finished that and that was the last thing I wanted to do I'm not going to look at this feedback right now but this was the last thing I wanted to do before switching over to the expressive stuff so I showed I guess this is yeah so I have the ESP I have the ESP dev boards here on my desk and the new versions for the S3 are great one for the D plugs one for the direct connection to the chip and one for the USB serial converters bugs are dragons or have the dragons been slayed already how long will each session last so these streams last two hours so we got about an hour left that's what you're talking about that's why I can answer all these questions okay so I switched the expressive stuff and I discovered a thing where if you do menu config it was dumping a bunch of garbage in the config files so I fixed that and then there is this bug this one right here that nobody's reviewed but it's passed all the tests this is a fixed bug when enabling Wi-Fi there was this outstanding issue that Jeff had filed in December that basically says when you import Wi-Fi USB stops which is not great and then Dan said the S3 box has the same problem and then retired wizard was doing some debugging thank you retired wizard and figured out that it was this ESP Wi-Fi start call and then I bugged Ivan who works for expressive and he was like this sounds familiar I think we fixed this I looked I glanced at what they had done and I didn't see anything and then I filed an issue today and Ivan got immediately back to me on that issue and said oh like I think when we back ported the fixed from their 5.0 version which is like their latest stuff that they're working on to 4.4 which is what we use I think when we did that we messed it up tried changing this one line I changed the one line, rebuilt it and it worked which is great so I have this issue or not this issue but this pull request open I think Jeff is gone I don't think folks of you I'm sure somebody watching here can approve this PR for me that would be awesome it's like a very small change it's just changing like well I'll just show you so this line here so there's this ESP Fi Enable USB which says when you turn on Wi-Fi turn on USB as well and it was using this USB OTG supported thing but that is a refactor they did for 5.0 they don't have that in 5 so instead what you do is you just say oh if you're doing S2 or S3 which is interesting I think this might actually mean to be C3 well no C3 wouldn't make sense yeah S2 or S3 it's just a one line change I mean people will test it anyway Mike asks do you have the ESP32 S3 DevKit Cn8 R8 yet I got one but it has Octol PS RAM so builds online don't work yet hope it becomes a build target I do not I don't think I don't think I picked up this one Cn8 R2 this one is a N8 and then this is a C3 let me look you know how I know whether I ordered it I go to Adafruit and then I see I've got to sign in let me sign in off screen so you can't snag my two factor code I was gonna not log in but then I realized I need to be logged in so it can tell me whether I purchased it or not so the 8.8 one it's not in stock anymore unfortunately and I didn't order it so if we click this one it'll tell me I ordered it I was trying not to get them all I didn't realize that Octol Octol RAM thing was different Mike are you not the person that just the support for it because if you looked a few days ago I just merged in a I just merged in a change that I think the person who merged it in tried to get it working so if we go in expressive boards they tweaked how to number it and so you can see there's an N8 R8 build now which purples merged in tested on the N8 R8 it passes the basic neopixel blinking test so it should work give it a shot mention a two factor code reminds me to warn you about you may rely on those backup codes when you get a new phone well I when I got this new phone I switched to Authy which is a it's actually logged in so you can Authy to get access to all of them on a different device I think which is pretty cool Naradoc says it worked and Zarlane says it worked on it as well so it sounds like it works Mark did the review for me so let's go back and merge it in I knew people would be excited about this like it's not going to break anything it's fine if somebody wants to DM me DM me the link to the expressive one I should be able to put it in the Discord chat NeonDream says Authy is the way to go I agree it's been wonderful you can actually you can have it on desktop too but I don't end up using that I did actually test the Wi-Fi so I do know the Wi-Fi actually works so it's possible that the downloads page hasn't been updated for the renaming yeah it hasn't I should update that let me show you how to find it so if you go to actually if you're on here and you click here and then you go down to this Browse S3 for absolute newest S3 is in Amazon S3 not ESP what you'll see here is that the board name is here if you go bin and then find the board here you can see the newer versions are here so let me I'll just link you to that so that's how you can get the newest newest builds oh and you're ahead of me Ron asks what is Authy so Authy is an app by Twilio that is for phones and desktops it manages those two factor authentication codes I'll show you let me pull one up that doesn't really matter my NVIDIA account so here's an exit let me switch so this is Authy so it shows you like the number that you would type in as two factor and then it lets you like select which one you want to look at um yeah if you want to log into my NVIDIA account then so be it oh there's a link no problem I should be able to post it oh I'm not even in it let me complete the steps later and I'll post it on the YouTube as well Discord is great and Espresso has been good too ok so that's exciting that's merged in I'll be able to do Wi-Fi on the S3 now and then um I made so I reworked maybe I should show this I reworked the files a little bit so there's um the way that ESPIDF which is the manufacturer provided software library is configured is through a system that also the Linux kernel uses called kconfig and it uses these SDK files to store all of the values um in CircuitPython we try to instead of having one big configuration for every board that's independent we try to factor out the common things so that boards are similar we want as little variation from board to board as possible because it means that we can like support the whole group of boards kind of all in one go because we know they're pretty uniform um but now we've reworked our Espresso port it used to only be for the ESP32 S2 um which is the first board that we supported uh recently but now with the S3 and the C3 we've kind of like started broadening it again and microdev did a lot of this work um thank you microdev this is uh me reorganizing the kconfig stuff to factor in the target as well so we all we have a generic set of settings that are for all the boards and then we have two different options we have a like optimized version and a debug version um of those configs so the things that change will be in two files there and then we have different kconfig for every flash size um because that changes partition table stuff and then we're I added another dimension which is like what target it is and that's what oh I'm not showing it so that's what you can see here and maybe let me make it a bit bigger so the change here is that like in the list of configs so this is where it looks for defaults um it starts with the generic file adds the debug or not debug the flash version and then the target so s3 versus s2 versus c3 uh versus esp32 would kind of like change this setting and then um we used to have this fancy diff line that I had no idea what it did so it was like I'm just going to write a python script so I added a python script that allows you to say like I want to change the settings for my board you go make board menu config and then you can change your settings in the UI and then the things that you change will go in the board specific config to do that um and then I also that actually has a mode where it can update the other files as well so this is just me tweaking some of these some of these files and it's at the bottom so now you can see that there's like this sdk config esp32 s3 defaults um opt defaults that sort of stuff and the way that it works is that in this update sdk config we have like a list of like these are the configs that go in this file or that file and it kind of splits them out for you um so I did that um which should make menu config give you smaller changes just the changes that you actually do I also discovered that in espidf 5 they have a new command that allows you to write out a defaults file that only has the values you changed from the defaults of the idf which is great and we should do that once we get there we're not there yet but once we get there and then have one other pull request open I think which is this uh switch circuit python to core one on the s3 so the esp32 s3 has two cores and basically what we want is one of those cores will run all the network stuff um and then circuit python will run kind of like how it would normally run on a board that doesn't have network uh on the other core so circuit python and the usb stack will run on the second core as of this change um so yeah I have that going as well and the next thing for me to do is I think I just want to get into beli land um because that's the like major task that I want to do I don't know of any large esp issues besides that import wi-fi bug um so I think it's beli time and it's debating whether I'm going to start it after the stream or I'm just going to procrastinate and do it next week uh we'll see hahaha some kid from britain says the snake in the thumbnail is cute thank you some kid from britain the snake's name is blinka um it's the scott of circuit python which is what we're kind of talking about I like jeff's pr that says are these files even used continuous integration testing is really great we don't have great tests but we do build all the boards now um cropped ron says cropped is it slang it is slang um uh it's slang for understood and it comes from a sci-fi book that I don't remember it's it is kind of like a term it's like jargon kind of as well um it's jargon within like the software world as well like cropped is kind of like something I picked up when I went to college and learned software stuff um unexpected maker was that super loud can you hear me yes okay people can't see you they can or they cannot because I haven't popped you out yet uh surprise hi wait I can't see you so I have to do a thing another window turn on my camera I don't think it worked with sharing doesn't I have to like watch you on youtube so I can see what you're doing I have to mute it because it's like so confused okay cool I can't see your camera I could briefly oh really yes come on it says folks should be able to hear you preview camera seems to turn on camera turn on camera turn on camera turn on I'm getting the we totally like surprise people everybody thought they were getting record calls weird it's not um I see me I saw you briefly and then it went away do you want me to retry sure and beware everybody you'll hear the ring again because I have a desktop on desktop audio on or I can leave it open Phil says still on Travis no we're on github actions wait that's a shame being funky that's weird are you using the app I'm using the web what about that what is that it's not cooperating with me it could be me I don't know it says I'm screen sharing yeah I tried to click into it and I'm just oh I thought in the preview what the heck it could be me you're on fire wait oh you're in the app I'm in the app and then the stream wow look at that it's just totally not into it huh do you think I should use the app too I like the app are you in firefox or in chrome chrome should work I'll download the app and I'll see I don't know if there's going to be a difference we can chat over audio because I know kids can hear you yes happy new year everybody do you want to do that now or do you want to try the app first I can do now and I'll download the app in the background alright well I'm gonna think it's gonna be a thing I'll put myself big then great folks folks can hear you Rufus and webbsk said the term grok is from stranger in a strange land it is I had somebody somebody I said it when I was talking about something and Ron's in the youtube chat and asking lots of really good questions and ask whether grok was slang so it is it's sci-fi nerd slang but I think it's it's definitely infiltrated like the software world too yeah no it came from it came probably from mitzvahs the MIT science fiction society they picked up a bunch Heinlein and linian words and use them in you know nerd linguistics and it's sort of like emanated from there I think do you have any other examples of words that I may use that I don't realize come from that well there's like you know the standard like foobar and you know you're shaving ping to ping someone that's from I'm pretty sure that comes from the linux ping hmm well I will as I listen grok is it's interesting grok is not used by most nerds you really probably hung out with particularly crusty nerds to pick that one up this court is open like UW is University of Washington is pretty like there's some folks that have been in the industry a long time that I learned some computer stuff from well let me try to bump myself into the app okay I'll close it on my side too because I left it open did Lady Aida just call me a particularly crusty nerd I think she called all of us particularly crusty nerds so I can see you in the thumbnail and I can see you is that working I can't see you if I pop you out which is weird that's okay if I pop it back in I think I'm being small how do I pop it back in I think just close it oh dear discord crashed can you hear me okay we'll just do it this way anyways we're doing a bunch of hardware last week I'm kind of tempted I'd nerds tonight myself I want to try the the HDMI thing we were talking about oh good because I like I know Jeff also said like oh I'm interested in this I totally know how to so like Phil and I go on walks because like I have to like kind of like like shake my brain out and as we were talking about you know you did display IO for HDMI and what we wanted to do is we wanted to like build a video synth because it's going to one of the projects that I've wanted to build for a while because we were looking at the Zoxbox and we were like oh video synths are pretty cool oh hey I'm small and so we were like well what what uses how do video synths work and they pretty much all use Raspberry Pi they just have like HDMI output they're running Linux not circuit python and you've wanted for a while to have HDMI output and it's like every time I look and there's ways to get HDMI output from microcontroller but it's like super in elegant it's always like some weird-ass FPGA thing there is a we have the TFP401 but that's like the TFP 410 can take TFP and convert to HDMI but it's like okay now you need like you know 5,000 pins and so you know the ideal is to have something that's got a frame buffer and you just set the window of what rectangle you want to update and it'll just blot out the data and that's when I was like oh you know the Raspberry Pi can do it it does have a ton of RAM but it could do 320 by 240 and then you could like double clock it and then we're thinking like one core would do the HDMI generation although I actually have to look at the Pico DVI example I'm a little nervous that they use both cores I don't think they do my concern is actually like memory bandwidth I'm not sure how much memory bandwidth they've got left over just piping the frame buffer from RAM to the PIO well you know you might not be able to update the frame buffer until the hsync or vsync pulse so basically we're recreating Atari 2600 which kind of sucks but very small but you know our theme for this year I think is retro stuff yeah I mean I can get some FPGAs although you know none of them have enough memory you need like a ton of memory yeah and well the STM32F7 yeah okay well I can't get STM32F7s for like two years you can't use those you got some pi4 modules in I think I had a friend who was waiting for them we did but I want something I want something that's very cheap I want something that we can we can toss on so I'm going to experiment with it and I agree that it's mostly the thing I was most worried about is when can you get access to the memory obviously when it's HDMI it's HDMI blitting even though it's in a PIO you're not going to get access to the memory but I just don't know how the PIO works with RAM access and if we can buffer all your commands until the hsync time because the amount of you're going to be like blitting very very quickly I think it does for a second and there are enough gaps and like you don't change what's on the display that often for the stuff we're doing anyways I don't know maybe yeah so to recap for folks Lidia had asked me about this a few hours ago the idea being that we could use an rp2040 to produce dvi signals that happen to be over an h2mi plug I'm not paying them $1500 but what you would be able to do is you would the interface to that chip would be treating it like a normal spy tft display so you'd be able to take our stock standard circuit python code that shows up on a pi portal and put in this chip that would convert that to dvi dvi that was the idea and I think it's a really neat idea so yeah and if you're talking to me in the discord live broadcast chat I can't see it so heads up so somebody's like well you can use an ice 40 but actually 128k is not enough if you do the math if you want a pixel if you want a frame buffer if you want a frame buffer which you need because the whole point of this is that you don't you only access it when you need to change data so you need 150k because you need 320 by 240 times 2 bytes per pixel which is 153.6 k or you know whatever it does not fit in 128 and that's why the Raspberry Pi Pico is kind of nice it's got this like 256 so you have even a little bit of room you have a little bit extra room for your stack and stuff and it's cheap as hell it's a dollar so I think it's worth it's worth trying and then you know if there's ever an RP20, I know the RP2040 can do much higher resolution but of course it's dynamically generated which we don't want but it would be cool to get 640 by 480 but then you need a megabyte of VRAM so anyways I think 320 by 240 though is still a very nice resolution because again you can pixel double it to 640 by 480 which is a standard HDMI resolution almost all of our examples for display IO is 320 by 240 it's kind of a nice chunky resolution and it's a retro look but also if you want to wire it up to like some sort of emulator type thing then you would usually those are like NTSC and I'll put those fit within 320 by 240 so even though on computers we're used to like 720p, 1080p a lot of stuff doesn't really for my controllers doesn't access more than 320 by 240 right yeah well Eric who was suggesting the Ice 40 says it I know people getting them delivered in 3 months which is cool yeah I've got like grills of RP2040s right now because we're fabbing with them all the time so I'm not against FPGA is the right thing to use you can't get FPGAs right now and they're expensive and why use the correct tool when you can use the wrong tool the PIO peripheral on the RP2040 is really neat really really neat we need to have a spare PIO available I don't know if they use all of them for the DVI I don't think so because the BBC micro demo has DVI output and also does like USB host so they must have something something or not USB host they have the keyboard or USB but they also have a bunch of other things that I bet use a PIO so or like audio so I think might be good another thing it's like you know would be cool if you could stream audio if you had I2S coming in and then maybe you could like put that in over the HDMI stream that would be really advanced I don't think we'd be able to do that yeah I don't even have that working on the Broadcom bare metal yet on the Raspberry Pi they can do it it would be nice if you miss window your HDMI display like you over scan it you can actually see this little purple stripe on the left of the of the HDMI display and you can see it shifting as the audio comes through huh yeah anyways that's what I'm up to so I thought I would come by and say hi yeah that's super cool I think people are excited two other questions that are in the YouTube chat are like Greg asks about NTSC composite and I would just say HDMI TVs I mean so NTSC composite is quite tough because you do need to have you know an analog output and you know being able to do it to a DAC fast enough there is the AD725 which I have used and it takes RGB data out and will give you NTSC or S video output and it's actually a pretty fucking sweet chip I hope analog devices still makes it it probably got sacrificed to the silicon shortage but we used it in the fuse box which was like a little retro emulator and it looks great and it does all of your color burst for you and the really annoying like why calculations to get color data out of NTSC I did see that Rossum did NTSC out on the ESP32 I think by taking advantage of the DAC on the ESP32 but you need a DAC, you need a fast DAC I mean we did non color TFT the SAMD21 and SAMD51 I think we did the color math we did that as a cute little black and white demo like 60 by 48 pixels or something but you can't do it you can't do it well I will let you go because I know it's Friday evening for you there's a few more questions do you want to answer those do you want to look them over I can take them after you're off no if they're for me you can ask me I just can't see I can't see what you're seeing so you have to see okay so this is in the YouTube chat RetiredWizard says follow it up with a PS2 keyboard board with a level shifter yeah PS2 well you know what's interesting there is a PIO demo for PS2 but honestly I think the USB host example is funner most people do not actually have two PS2 keyboards anymore we sell one and it's people don't like it because it's 5 volts it's got that weird interface it's not fun better to do USB host to be honest I want to do USB host too that's perfect that was on my Circuitbython22 thing Ron asks what BRAM is it's BlockRAM on a FPGA it's like one big chunk of RAM George asks is Adafruit going to embrace ML at any point we have tons of ML tutorials especially for the Raspberry Pi 4 which does quite well with TensorFlow Lite we have like the only good tutorial on how to install it Melissa's done a bunch of projects including one to detect when a cat is on the kitchen counter and it plays a loud bell it plays a return yes that's the case in my house well can you train the cat not to jump on the kitchen counter she does a bunch of other projects we did a couple with Microsoft they have a training system we did a couple with TensorFlow Micro which was enjoyable and we did get it working we did a couple demos from machine learning but honestly I haven't done anything lately I've been super interesting to me although I'm doing some camera stuff so we might have some machine learning camera but you really want to have a Raspberry Pi 4 yeah I think so too George clarified I'm thinking chip level like ARM or ASP32 and I think you just answered it we do have TensorFlow Micro tutorials TensorFlow Micro does not work as well as TensorFlow Lite and I think there is a little bit of incongruence or cognitive dissonance where people they look at TensorFlow and they're like yeah I want that they use TensorFlow Micro and they're like what do you mean it's like I have two tensors and they're like 32x32 how come I can't have like 5000 layers it's very constrained you can do stuff with it but it's not it's not magic it's put that way and a lot of stuff you have to port by hand and you have to classify by hand which is a lot of work I think that's something a lot of people are going to learn it's like ML it's just programming computers through data and it's a ton of work and it's very frustrating because it's not easy to debug you don't know why it's not working you just know it's not working and so you have to just change your data collection so you're still programming it's categorization WebBSK says on Twitch ML is statistics in disguise which I totally well I'm not even technically it gives you a probability in the end even with this much accuracy I think we will do and another thing is we're waiting for a couple more powerful chips the thing is you need a powerful chip and you can't get powerful chips right now like the STM32 7 series would be great for that kind of stuff you can't buy it because you need a very strong arm cord to take advantage of the the TensorFlow Lite for Micro is really a very arm focused there's a lot of stuff that's optimized for SIMD, instructions on arm that's how you can actually get reasonable throughput but like it's really not the same as TensorFlow Lite a lot of people when they think of machine learning they're thinking of TensorFlow Lite capabilities not TensorFlow Micro and I think I was just going to say I should own up that whenever we talked about this I've kind of poo-pooed it myself I've not seen a lot of reasons to do it Interesting you know I think there's something there I just don't know what yet it's interesting but yeah I don't have a there's a couple of projects and I'm like well you can do this like recognizing your cat jumped on your cabinet type stuff but it's tough you know there aren't there's not a lot of purpose right now and I think that it's um there's a lot of marketing around it but you know nobody really no customer is like here's the problem it solves right yeah and I think I think your Adafruit strength because of you it's always been like I wanted to write a guide for something and therefore I know I have a reason to use it yeah what is what does this actually solve solve yeah it's not just cool tools it's actually like this is a problem I have that's that's fixed yeah yeah there's some good I think there's good art that can come out of machine learning because it's always kind of interesting to see you know randomness come in but yeah it's like it's still changed but you know what I'm very open-minded and you know I'm always keeping an eye on it and there's a lot of other people doing it and so I don't feel like I have to jump in and do it which is actually kind of nice like I'm glad it's like I don't want to be the one who does it all yeah well George says George says I'm working on something very cool and once I get it working I'll share it and that's perfect we've got show and tell on Wednesdays we'd love to see your ML projects and what you're doing with it that's what it would take to convince me that we should do it in a certified way if I can see a really great compelling example but again also a lot of really good machine learning demos are closed source you know you can't modify them or update them and that's frustrating just why TensorFlow Lite is so great there's a lot of tutorials on how to train models with it so yeah well I'm going to go because it's 630 I'm going to try to bang out some emails and I might get a Pico wired up and just sort of you know I want to see if I can get DVI output from Arduino because I really don't want to program in the SDK I love the SDK it's wonderful but like I just don't need it in my life I got nothing wrong so I'm going to see if I can get it if I get this yeah Pico SDK I know what you're talking about it's no I mean that's how I feel about CMake yeah no that's the thing I just don't I just don't need like a make file and I you know for all the for all the people say like oh Arduino is you know so simplistic it's like I've never had a toolchain problem with Arduino that wasn't like totally my fault because I fucked something up yeah like if you install Arduino IDE and you don't delete files you're not supposed to delete it works and I'm on windows and and it's always a mess for me like I still don't have ESP IDF I have to start over every time and I'm not looking forward to that yeah yep I just went through that this week and I did you see I fixed well Ivan helped me fix Wi-Fi on the S3 love it yeah and then Mark just did the review for me so we have a couple of I have the ESP32 S3 feather maybe I'll try it out oh there you go okay I want to go thanks everybody thanks for hopping in yeah we'll be posting videos have a great weekend thanks Scott and happy weekend long weekend to anybody here in the US that's right we're not shipping on Monday but we'll be back on Tuesday thank you alright I will get my discord back up and I'll go through and answer any questions that I missed it's been a little while since the board joined the the stream so that's always fun she just pinged me on our internal slack and was like do you want me to come and I'm like sure if you want to you can yeah I can talk forever though as all of you know so I gotta make sure and let her go hey I'm slaps Randall says what happened to the IMX RT 1011 and it's basically we can't get it I think I think the gist is that we can't we can't get it and so it's it's just because we can't get them right now I believe that's I believe that's the case if you want to ask Lady Aida you can ask on Wednesdays you can ask an engineer people asked is it possible to get to the high-rise camera on the Raspberry Pi I assume that we can you can use it through I assume you can use it through that Ron asks when is your next dream it will be next Friday I don't think there's any reason not to do it next Friday so it'll be a week minus two hours ish from now um west coast nerds all grok can't confirm west coast has some very crusty nerds um see circuit python 8 chasing the beam did you see there's a pull request for floppy IO that Jeff has let me switch back to that desktop you'll see here there's add floppy IO so this allows you to use a floppy disk as you're not as a circuit pi drive but as like an a drive um um yep are doesn't have linked to the pico dvi uh maybe some lady aida deep dives in 2022 that's really what uh that's what uh desk lady aida is a deep dives lady aida are doesn't know it is currently exploring hdmi audio embedding and de-embedding on an fpj it's not an easy problem to solve yeah that's why i want to use the frisbrick pi to do it um i have eliminated micro sd issues we have sadness never gets past the rainbow screen um ogre drew that's when gdb could help you or prints um to figure out why you're not getting past the rainbow screen figure out where it's getting mike asks three and a half millimeter millimeter floppies three and a half inch floppies versus five and a quarter uh both i believe i i believe we are both working i have my uncle has eight inch floppies that i'm gonna probably pick up for him at some point and try to get the data off he wants to back up data that he has from those five and the eight inch floppies almost sent them to lady aida but he didn't want them to get lost in the mail um if you're interesting to get a sample data on a micro transfer it to pc model the data on pc and push finalize smaller model back to the micro um unexpected maker says but if you move to see make the idf issue would go away no it wouldn't it's a problem in the cake and thing it would still be there um i i know you're right though i know i know my life would be easier if we were doing c make dcd says i have an eight inch hardware in my garage does it work um see grover asks are the decimal and fraction modules in consideration from future versions uh not that i'm aware of i would suggest i don't think we have an issue for it so i'd suggest opening an issue hmm i know you're trolling there's a speakeasy in austin called the floppy disk repair huh nice okay i think i've caught up we've got 20 minutes or so and what do we want to do in those 20 minutes any suggestions 8 inch floppy drives they probably take a couple amps amps to power up my the drives that my uncle has are they're dual 8 inch floppy drives they're these like huge chunk and things where it has like two slots everything old is new again oh using jebler's micro decimal yeah just use that uh ron it's k is in the letter config or k is in kernel i think it originates with the linux kernel oh um jr the ogre which is also ogre drew on discord asked in twitch the touch glass has decided not to stick to my tft um considering how much i wasn't using the touch capability is there a problem disconnecting it i don't think so i think you can just remove it it'd be fine because i know you can buy tfts without it so i'm pretty sure it's it's fine to just remove carestring says decimal from the standard live you can look at what pi vi uses there's there's this standard live implementation in pure python i think that should work i think that's what micro decimal is micro python has a really good there's a micro python lib repo that um a lot of the standard libraries were actually ported to eight inch were used to boot the vax 11 7 80 he has it my uncle has it with a h 89 a heave kit 89 kit thing and also cpm yeah i think it's running cpm sounds like there's going to be an austin meetup patrick says i couldn't think of any reason to use circuit by them with a floppy and then i think uh pt or lady had said for archiving stuff and i was like ooh and i got out a pile of floppies i brought home for my parents this summer uh oh nice david said that's what my drive connected to the h 89 um we tried to boot it up and it fried unfortunately like the power supply one of the capacitors blue um that was going to be our first first attempt but he's he like did work in the 80s for the city of seattle and has some cpm stuff that they have pierce says i remember cpm on the commodore 128 hmm she says trying to ask lady to herself uh if you want to ask i would just say uh put it on the support form is a great place for a question like that too ron says some hackers claim they got to the root of ps5 i think it's only a matter of time randall says 80 columns are best lots of people have eight inch floppies thanks for the warning probably will let out magic smoke here too yeah i think it's i don't i i would hope that if i fix that part of the power supply it would work again there's like actually schematics so i bet i could get it going i was kind of surprised that it's basically like two computers and one it's like one computer that's actually the computer and then the other computer is like the terminal part but yeah i'm i'm like you know i have a place in my heart for this retro stuff i think there's a lot to be said for learning computing on computers that are single task we've talked about this before but like that's why the raspberry pi stuff that i've been doing is really interesting and yeah it's a bummer that the pi 400 doesn't work but i was really interested in the pi 400 because of the keyboard and the keyboard doesn't um isn't connected that way it's connected over a usb host chip on the pc ie bus so there's there's more work to do there to get usb host working and that's really what i wanted to do so if i kind of think if i if the bilie stuff works out faster than this two-month period then i might take a look at the usb host usb host stuff because i think that'd be really neat but i want to make sure that the esp s3 in particular is in good shape before i switch off it supposedly eight inch drives are also in use in minuteman missile command capsules but never got into one to confirm if you need a hardware specific beta test or you know how to find me i have a couple pi 400s here as well um because i really like that is one of the main reasons i did it but it just took so long to work on and it's not documented that well there's a lot going on so i just kind of ran out of steam you know what maybe what i'll do the the thing i was thinking i could do today oh yeah and it's a short week next week because taking monday off um the thing that i sometimes what i like to do is i like to just um start reading up on topics so i was just starting to do to look at ble on the esp so that's kind of what i was thinking about doing um yeah bruce says ble workflow for esp will be nice yeah i hope so i think it could be really cool so i so there's let's just let's just talk over ble on esp if folks have questions go ahead and ask them uh tab this tab down here i have a second browser offscreen where i can see how many people are watching haha bruce is on winter ski hiatus meaning i ski then sleep then ski again so not much coding is it going okay because i was listening to a thing about steven's pass here in washington where they don't have enough staff this week has been more of a sideways dive i'm liking it yeah we go where the questions take us nice um randall says anybody remember bubble memory that is before my time johnny says i remember having to boot into cpm on my comodore 128 just to use some word processor was working for a home computing magazine and they required the articles in that format haha ogre drew says oh dear bubble memory uh rainy and warm now yeah it was nice and cool earlier um pierce says beli on esp will it support all the same beli functions hid in mind that's my plan so the nice thing about uh beli at this point in circuit python is we have a standard api right so we have we have the api that that is kind of like defined by shared bindings and then it's just up to the uh and then it's just up to the lower levels to implement it so my hope and beli is pretty standard like beli five means that it does these things um so yeah my hope is my hope is that once we have beli on the on the esp chips it'll basically do everything the nrf stuff does what you won't have is like nrf is really good at low power and like that won't necessarily uh carry over but like all the functionality should shouldn't be a problem um haha david says now we have fram and chips hi alvaro alvaro did I say I don't know where the emphasis is um solid state but we're kind of like old school drum memory you had to wait for the address you wanted to come back around to the read right section to deal with it this tech support included just formatting it oh yeah australians can't travel so they can't send their college kids who are on summer break to the great white north to work at resorts hands lab says did anyone use forth I had out my c64 there's some people that still like forth like there's a fourth version of fourth for microcontrollers I know folks use fram I'm not sure what fram is david will have to be more specific um okay so we can just keep chatting this is probably I'll probably just read over this and then call it a weekend um so there's like two there's two parts to be elite a bluetooth stack and oh that you know that's better so there's like the be elite application this is circuit python and then there's like stuff on top of that and then there's the host code and then there's a trans kind of a transfer layer transaction layer into the controller and the controller is the thing that's like really time sensitive and then the host is a lot less time time sensitive um and we actually have our own host stack that we cribbed from um we have the host stack that we cribbed from uh arduino that's what dan added for the uh dat dan added for like the be elite with external chip um but the espidf is set up to use nimble which is a be elite host stack from the minute project and pier is asking esp uses minute for be elite support they use nimble from minute I don't think they use all of minute they just use the nimble stack and the nimble stack is actually use like micropython uses it as well so I think it's it's either like there's kind of these two there's these two modern free or like our toss projects that have be elite stacks there's minute with nimble and then there's also uh zephyr and zephyr is just like this giant project that has a really good bluetooth stack in it but it's like not easy to split apart and so espidf uses nimble the micropython folks use nimble I think we kind of want to go towards nimble um in circuit python as well hmm handslab says it's kind of interesting circuit python does a lot of what forth did making it easier than assembly or c um ogre druse says fram is the same principle as dram but it uses rust instead of a dielectric and as nonvolatile uh david says fram is a new generation of nonvolatile memory it's an acronym for ferro electric random access memory um new to me who builds it I don't know Patrick says maybe an in the weeds maybe a deep dive but I'd love to chat about libraries that use network services and how to properly support on board network and peripheral network access where we seem to pass sockets there's a design pattern there I don't crock had to ban somebody from the twitch chat um it's interesting uh going back to patrick's question about network patterns I think it's going to change some with the asyncio stuff I like I think anything network related we're going to want to shift towards asyncio world because asyncio is great if you're waiting on IO like network traffic um the what I remember is that so the history of network support is that there's the um the esp32 spy library came first and then after that came the native support on this too which I did socket pool with and socket pool is this non-standard cpython api but it's pretty uh it's pretty close to cpython socket the only difference is that cpython socket has basically like all the functions itself and it's a global um so regular python code assumes it's running on something with native networking and I didn't want that to be the case um and so what we did is like you have to initiate instantiate a socket pool and then you pass it around and you can treat it like you would treat a socket module um and that so generally what you want to do is like pass stuff in so that you can use it and that that way that in theory you should be able to pass in ESP32 spy stuff but you should also be able to pass in the socket pool stuff now the I had always intended on going back and updating the apis from the ESP32 spy side of things to match uh ESP32 spy things to match the apis that we came up with for socket pool but I don't think I ever actually did that fully so that's part of the problem um I don't know I'm kind of wishing when I did that socket pool work I was very much in the camp of like we're not gonna have a wi-fi workflow um did I open an issue on it? I don't remember it was a while ago I was pretty set on not having a wi-fi workflow like MicroPython has this web web REPL thing um that didn't work well with soft reloads and I just generally didn't don't have a great experience like provisioning wi-fi stuff like telling a wi-fi chip what your credentials are is a huge pain um but um Brent has been doing a lot of really good work for Adafruit I.O um in particular with whippersnapper about getting people going with wi-fi really quickly and so he's kind of like his success like Brent and Lauren's success with whippersnapper and making it easy to do wi-fi has really made me start to brainstorm start to think about what the right what a good circuit python over wi-fi workflow could look like um Alvaro saying heart and web REPL yeah so I think I I may have gotten that wrong it may be worth going more towards what what micro python does where micro pythons networking support is like a lot more native um which is interesting for bluetooth they kind of went the opposite direction they they made bluetooth less native but I think they kind of I got the impression that they want to go the other direction they want more native bluetooth um so I don't know I think um Ron says what is the difference between sockets and ports um a port is like the the number you assign a socket socket I guess is also like a tcp term so it's like ports are generic like it's like one round lower it's like lower level than a socket a socket is like a thing that tcp does to talk between servers whereas port is generally just a number for the network interface I think I'm not a great I'm not a great networking person um there's some other folks in the circuit by the community that have done a lot better network stuff than I have including Patrick um so know that I'm open to rethinking it and I think I think asyncio is a good chance for us to like revisit that a little bit more um Andrew points out that infineon and cypress offer cypress offer some fram devices it's on some of their dev boards um there's a there's an msp430 from digicube fram as well randall points out that 4719 a different product 4719 is an fram breakout uh uh uh terahertz processors that's wild um all right I think I've successfully stalled are there any final questions um um carestring points out that socket doesn't necessarily need to be a tcp socket on unix there are local sockets that don't go through the network stack mark says one of my first co-op jobs years ago is all low-level networking wifi still confuses me at times yeah yeah networking is complicated I don't particularly enjoy working with other computers like other communication so I uh I tend to stick away from networking if I can artesano says I think it's the reverse sockets are os-level objects and ports are networking stack addresses ask patrick's gonna go change the flat tire thanks for the stream and deep dive notes will auto publish in a couple hours okay cool I'll get those in there um socket are bound to port so socket is one endpoint of a communication link all right everybody's piecing out thank you all so much um there's a lot of networking theory if you're interested that this is not a great place to get it let me switch and I'll recap housekeeping thank you so much for hanging out with me and particularly being supportive for the unknown future of deep dives uh but not for the first not for the next couple months so work next week we'll deep dive um on the s3 stuff we'll see how far I get on ESPB Lee um if you want to chat with me and a lot of others you can go to the join the adafruit discord server by going to the url adafru.it slash discord um we'd love to have you would love to chat with you there um that's all day so not just the youtube chat but that's whenever you're watching this um if you want to support me please support adafruit by going to adafruit.com they pay me to do these dreams they pay me to work on circuit python and sometimes procrastinate um so thanks to them uh deep dives happen every week we'll plan on next week at 2 p.m. um on friday which is the same time we started today uh all the notes are on discord now so thank you again to patrick and david for taking notes and maintaining that uh maintaining that repo of all the notes I really appreciate it and I think all I have to do is take my mic off and pet the cat and we'll be out of here thanks again and I'll chat with you on discord and uh deep dive with you next week so are you ready for some pets thanks again everybody