 Hello, hello, hello, hello, hello. Hi, everyone. This is your first time watching Deep Dive. We're going to take a few minutes to get going here, so sit tight. Also, check the description below for time codes to search in it. Hopefully things will be better than they were last week or two weeks ago. Remember that the video is having problems on Twitch, so... I don't know. Yeah, it's not... It's supposed to be a constant bit rate, and it's not. But YouTube's been going pretty well. Hello, LinkedIn user. So... As recently, if you don't need the closed captions, you can hop over to Twitch if Twitch is going OK. It is having some trouble with this bit rate stuff that's changing, and I think that's just a bug, I think. Folks say it's going good, so look over that. I've been struggling with my computer this week, let me tell you. I've been not too pleased. I finally got fed up of the sleep not working anymore. It'll sleep, it just won't wake up. Which means that whenever I step away from the computer and come back, I've got to open all my windows again. I haven't lost any files, but it's just really annoying. So if you're a Linux person and know how to debug Linux power management sleep issues, hit me up because I'd love to get it fixed. So let me say hello to some folks. Hi, Dave. Hi, unexpected maker. Hi, Randall. Hi, Palaf. Hey, David. Hi, Dishapoo. Hello, Anikdata. Hello, Bruce S. Hey, Mark. Good to see you. Hi, Susan. Welcome to the deep dive. Oh, I feel a little rusty, even though it's been only two weeks. The camera's going to not like me quite as much. New computer bits are in the supply chain. Hi, Xmicron. Hello, Cedar Grove. Hey, Gary Z. I have a used motherboard, if anybody wants a used motherboard, because I bought that replacement when I thought the USB had given up the ghost. They sent me a different one, just another copy. Instead of fixing it, they just sent me a new one. Well, maybe a refurbished one. Hi, Quarky. All right, let's do housekeeping. Let's get this show on the road here. David said he'll be around most of the time. Maybe. Biada says, generally it just works, or the manufacturer didn't bother debugging the BIOS and fixed it in Windows. Yeah, I rolled back the BIOS last night, hoping that would fix it, and it didn't, unfortunately. I do suspect that it's BIOS turned due to Windows 11, though, because it was super solid for a while. It was super solid for months and months and months, and then just in the last couple months, starting in. Yeah, I tried to look back and see. I wanted to look at all my boot logs for a long time so that I could tell when I started doing Cold Start boots a whole lot more. Unfortunately, my logs were rotating out just like the last two weeks, so I changed that number. But I can't go back and figure out exactly when it started happening every time. It's just been really frustrating. Yeah, even Windows has these issues. I don't think it's actually getting to Linux. There's a code indicator on my motherboard, and it's zero now when it's running OK, but when it doesn't resume, it gives me a code. Hi, Hamzlabs. Yeah, it's annoying. OK, so sorry, that's not what housekeeping is. But thank you. Makes me want to go back to Mac, but at the same time, I like having a desktop with 16 cores. OK, so actual housekeeping. Hello, everyone. If you're new here, my name is Scott, and I go by Tan Newt online. I work for Adafruit. Adafruit is an open-source hardware and software company based out of New York City, but I live in Seattle. So I am on Pacific time, basically. So I work remotely for them. I have for a lot of years. It's not just a COVID thing. I've worked remotely since I started working for Adafruit in 2016, and I've started kind of the whole time I've been working on CircuitPython. And CircuitPython is a version of Python designed for microcontrollers, which are like little inexpensive computers. Here is one with a bunch of wires connected to it. So there's a chip on there that has a full computer, all embedded in it. And the chip itself is only a few dollars. That board, the full device we call a board. And they're like $20, $100, depending on what setup it is. But it's still a lot cheaper than what you would think of as a regular computer. So we get Python running on that. There's no OS. There's no Linux or anything. It's just Python, which is pretty neat. So if you want to chat with me and a lot of others, you can go to the Discord server. The middle box here is the live broadcast chat on the Discord server. To join it, you go to the URL, adafru.it, slash discord. This is a deep dive. Deep dives happen every week, except when I'm taking weeks off. They normally are Fridays at 2 p.m. Pacific, which is this normal time. And it typically goes for two hours more, and questions are welcome because we've got plenty of time. Today, I'm going to try to wrap up just a little bit under our two hours, because I actually have a thing to do. At four, which is tasting sake. It's not anything serious. Yeah, I tried that. Sorry. Bruce is linking me to the Verizon FreeZone Resume thing. I changed the power profile. Just all I want, let me tell you, I'm a printf debugger. What I would like is a serial output. I would like a serial output that I can use my laptop to read that tells me exactly what it's doing. How hard is that? How hard is that? Turns out, desktops are a lot of proprietary stuff. Anyway, the last bit of housekeeping before I get distracted is next week is on Friday, and I was looking at the schedule, and it will be the last one of the year as well. So next week on Friday will be the last of the year. And then there's three weeks where we're not going to be streaming, so it'll be really rustling. In January, when I come back. The reason being is that the last two are Christmas and New Year's Eve's, and then the previous one is before we take a weekend away for our anniversary, which is also in December. So next week we're on Friday, and then we're gone. Then I'm off for three weeks, and then I'll be back January 7th, unless I change my mind. So if you want to get notified of the new year, so if you want to get notified about whether we change anything, make sure you join Discord, and then Discord asks you to be added to the deep divers role. I can ping that when we're changing stuff around. Let me say hello to some folks that have just dropped in. Quirky says, reach out to Wendell from level one techs. I'd love to find somebody who can help me with this. Minnesota Mentat says hello. Paul says hello. And Simon says hello from the UK. How are the cats? Cats are pretty good. Spook's just chilling. Vinn's upstairs. My partner has a space heater up there that Vinn really likes to stay near, because it's kind of chilly up here now. Hemslow says hello. Hello, Andrew R. Hi, fellow from Canada. I eventually turned off some of the sleep states in the BIOS, and I randomly ended up with something that worked. I couldn't figure out how to do that. So if you have suggestions for an ASUS, like I'm running on the dark hero now. Hello, Ecoscope from Twitch. Yeah, so I've got an ASUS dark hero. If you know how to change the states that it's OK with, let me know, I'd love to try those. I'm OK not sleeping as deeply if I can wake up, because it does sleep. Like it shuts down, it blinks like it's sleeping, and then I press a key, and it notices the key. The DVD drive starts up, and but the blinking still stays, the fans kick on, but then there's a code on the motherboard, and I don't think it gets to Linux. I don't know. I will tell you that we've been showing all of this Raspberry Pi-Circified on stuff, and it makes me appreciate the desire to have a simple operating system on a more complicated platform. So I'm happy to be working on that. So, yeah, one thing I wanted to say was since we're almost to the new year, we'll do CircuitPython 2022 in January again. This is a chance for us to kind of all think more broadly about what we want to accomplish in that year, and post it for everybody to see and share it and discuss. I linked in the note stock to the roundup from last year, and I'm looking forward to doing it again for 2022. So expect to see that in January, and think about what you'd like to see for CircuitPython in the future. Hey, Jeff. OK, so that is a note. The next thing, what else did I want to cover? Oh, there was a couple of suggestions that I had, one or Dexter Starboard asked for an update on the Broadcom port, which is what we were talking about. Mark says, it sounds like a BIOS bug. Is there a BIOS update for the dark hero? Maybe a new GISA update. I updated it last night, so I'm on the latest. And I also tried the version that I was using on my regular hero in January that I think was working. I tried switching back to that, and it did not work. I did realize later today that I hadn't set. I hadn't set my RAM to use the X and P or the overclocking profile thing, which is like a gigahertz faster, so I should have been doing that, but I didn't do that yet. OK, so David has a question. So for those of you new to the stream, like we love questions, and I like to answer them. So David says, actually, let me switch to this off-screen thing. David says, I have a question that maybe you can touch. I found an RP2040 with only one megabyte of flash, so too small for your decision to reserve the first megabyte for firmware. Would it be possible to have that as a parameter for board? Yes, you should be able to set that. Yeah, I mean, I'm happy to edit it, if that's the case. Just add a board def and add the tweaks for it. They should have used more flash. Although I, yeah, the one megabyte thing's hard-barred right now, but the RP2040 will automatically detect how big the flash is, I think. Oh, Dexter says, my Broadcom wish list, Control-C handling, Async, and ULib. So Async and ULib should be things that you just need to turn on. And then the Control-C handling, I think you're talking about Control-C from the UART, and I was working on UART today. And I noticed that that wasn't in there, so I'm hoping to add it. So there's two, so the, if we go in kind of reverse chronological order, the last thing I was working on was adding, yeah, sorry, one more thing about the motherboard bias thing. It worked really well with the Crosshair Hero 8 a lot. Like it worked for months on the motherboard that's like an older revision of basically the one I have now. Yeah, so Mark, the memory training unstable RAM can cause an issue with return from sleep. So the code that the motherboard shows is 0D, and if you look at, if you Google it, it says it's a RAM thing. So it's possible my RAM has started misbehaving. I could find some other RAM to swap in and try. But it's suspend the RAM, so the RAM shouldn't be powered down completely. Hello, David. Yeah, so the last thing I was doing was, yeah, we should take this BIOS stuff offline. Like that's, it's a pain. The last thing I was doing for Broadcom was I was working on adding full UART support. So the BCM283567 for everything before the Pi 4 has two UART peripherals. And there are different types of peripherals. There's UART 0, which is a standard ARM one, and then UART 1, which is like their mini UART. And I had originally implemented just the mini UART version, because I knew that was kind of like always what it was connected to and blah, blah, blah. So I've been working on adding support for the ARM standard UART, because the not only is there that second UART in the older Pi's, but there's also four more copies of it on the Pi 4. So you could have like six UARTs going, if you really wanted to. So yeah, I've been working on that. I just pushed it to my branch. So if you want to follow my work, you can always go on github.com. slash tan newt slash circuit python. Click the branches button, and that'll show you the most recently updated branches that I've been working on. And then before that, I was doing pinmuxing information. And so all the pin objects in the Broadcom port will now have alternate function information so that we can do searches for like, given these two pins, can I do I squared C? And if so, what I squared C peripheral am I using? And so I added that. Although I did basically a similar work for the UART stuff and decided a better way to find the instant stuff. So I was doing that. And before that, if you didn't realize, the Broadcom stuff is checked into main as of two weeks ago. I guess this is a two-week update because we skipped last week. So it's checked in, and it's actually in the latest beta release. So that's great. And Jerry was trying it and found that the Raspberry Pi 4 is not working. So if anybody has gotten it working on the Pi 4, please let me know. I've only done it with the CM4 network booting rather than booting from the SD card, so there might be a bug there. Dexter's hardware is using it on the Zero 2W, which is neat. And yeah, so what I've been trying to do is get all of the core bus IO buses going. So spy will be the next thing I work on after I do UART. And UART is compiling. I just haven't tested it. So I think it's pretty close. So that'll be cool. And it's live on circuitpyton.org slash download. So if you do want to try it, you can get it there. Now this segues me into what I was probably going to talk about today, although there is another topic that it was kind of requested for. So the other thing I want to do is I want to create a learn guide on how to actually install and then use circuitpyton on these pies. So that was what I was thinking I'll do today. And I would actually give kind of a behind the scenes view of the Adafruit learn system, which I don't think has actually been shown by anyone. But I thought I would do that today, is create a learn guide for circuitpyton on the Raspberry Pis because there are some gotchas around what USB to connect to, for example, can be a trick as well. I've been trying to get WPE running on the Pi Zero 2W, and that has been almost impossible to figure out. What is WPE? Ah, oh, this is a good thing to point out too. So the Broadcom stuff was pulled in before the Thanksgiving break last week. And there was a number of people who tried it, which is awesome. The problem is that the submodule for the firmware, so for the files that go on the disk drive next to the kernel, that Git repo was like 20 gigs large. So there's somebody on DSL, which I feel really bad about. They were downloading WebKit for Embedded. Interesting. WebKit for Embedded. That is interesting. Could we have a browser in circuitpyton? Hi, JF. So yeah, so the original way that the Broadcom stuff got checked in, the people who are cloning would have to download like 20 gigs worth of old files because of the Raspberry Pi firmware folder. So some of the work I did on Monday was to change the way that we do Git submodule checkouts, because I actually had found this issue in the CI already when I added CI support, like the GitHub action support to circuitpyton, where it took like 10 minutes just to start actually building stuff. And so it already kind of like discovered a way that, so usually what submodules would do is usually when you clone or Git repo, you just get the whole history. You have a full copy of it, but with this Broadcom repo, because it's a bunch of binary blobs that they build, it's just gigantic. And so one thing you can do is you can tell Git to do a shallow checkout or clone, which basically means that start on the branch and only get the latest commit. But the problem is is that submodules allow you to say what commit you want, but that commit doesn't have to be the latest on the branch. And so if you do a submodule, a shallow submodule, you're going to get one commit, but it may not be the right one. Hi, Pierre. So what you can do and what it's not easy to do, there's no easy way to do it from Git. But so I added make at the top level of circuitpyton, now you do make fetch submodules whenever you want to update the submodules. That'll be the best way to do it. Because what it does is it says, for every submodule, let me just fetch the commit that I know I want. Because it turns out that newer Git servers, you can request the state of just a single file. You don't actually have to download everything. But that's not true for all Git servers, so they don't have default support for this, which is silly. So what it does now is it does a submodule update and knit shallow for all of those submodules. But then it usually errors because it can't check out the right thing. Because shallow is always the newest commit, not necessarily the commit that you actually want. And so there's a follow-up command that this make thing handles for you, which then goes through each one of them, fetches the commit we actually want, and then switches to it. So instead of downloading the entire history of something, you end up downloading the newest commit, and then you download the correct commit, and then change to it, which is clearly something that Git should do. Like, Git submodules really should just fetch the commit they know that they need. Pierre says, that was a great update. Went from an hour-long download to a quick one. Yeah. It is something that you only have to do once, right? Because once you have it, Git will only get the new stuff. Are you working with GitHub only, or do you run with multiple Git servers in parallel for redundancy purposes? So we're basically GitHub only, but the nice thing about this property of Git where you essentially have everything is, like, if GitHub ever went away, like, I have a full copy of the entire history of Circuitbython and Microbython. Well, Microbython is what I've fetched. But that's the advantage, and that's why Git is kind of called a distributed version control system, is because everybody actually has their own copy of stuff. It's always been somewhat of a mystery when my Circuitbython clone breaks. Yeah, so if your submodules are ever out of date, you should be able to do just the Git. But I remember the thing I forgot to put in there. So Git fetch submodules should work most of the time. The thing that it won't handle right now that I should have added is if you change the remote URL for a submodule, so say we're using an Adafruit version of something for a little while because we needed to have a bug fixed, and then we're going to switch back. That's when you actually need to Git submodule sync, which that command does not handle right now, and it should be added. If Git went away without notice, I think the world would implode. Well, GitHub, but I mean, they're owned by Microsoft now, so it's not like they're going to lose money or anything, or shut down because of money. Yeah, there's only one cat. We usually only have one cat. I gave up on the keyboard system with the tripod mount thing, so I do have the cat cams actually on a tripod mount now. That's why it's a little bit different angle. OK, any other questions before I try to get my brain in learning guide mode? Oh, you know, the other thing that I think Fome Guy was asking you about was debugging Circuit Python. And I think that actually should just be a guide as well, like general techniques for debugging Circuit Python specifically. So if we switch to the desktop here. Oh, man, I got that window exactly right. So here's the note stock, and I don't need this stuff. That's Christmas present stuff. OK, so we've got to learn. And I wrote this guide a long time ago now. There is this debugging Sandy with GDB. This is meant to be more of a generic, like how do I? Oh, man, I have Arduino zero there. It's old, and it really should be updated. But it is very handy. And I, yeah, really nice guide to have. Yeah, and yeah, this came from Fome Guy and I talking about doing the MP printf. So there's this guide, and then there's, we also have a building Circuit Python guide. But I was thinking we should probably have a debugging Circuit Python guide. That can link to the GDB one, like, oh, get GDB set up. And then I really should update that too. So let me show you something. So I wanted this. I thought this would be cool as a deep dive for learn. And so let me actually just point out the things that you typically don't see, because I'm logged in here and I have access rates. So here we are on the building Circuit Python page. And you can actually see page status here. And oh, I should also say I'm a newbie when it comes to Adafruit Learn. There are other people that are much, much more proficient at learn themselves. So I guess I should take a step back as well. So what is learn? So if you go to learn.adafruit.com, this is I think of it as kind of like the core marketing machine for Circuit Python and Adafruit in general. So I think the value add for Adafruit is that not only do we make stuff, but we also teach you how to use it. Yeah. Pierre says, for the debugging, you might have to differentiate between debugging the Python code versus debugging the core. Yeah, so I think it would be a guide for specifically debugging the core is what I'm thinking of. So learn is a system that stores project tutorials. And this idea of this, so how should I say this? This is really core to Adafruit's business, right? So if you click something and then in the guide what you do, you get these featured products and you can add it to the cart. So the value add proposal of Adafruit is that not only do we sell you awesome products, but we also give you sample code and tutorials and drivers for it as well. So we're not just selling you the board. We're selling you the support that comes with it and things like that. So I got a question from Mento. Any idea why DAC output in ESP32 is responding with three different voltage levels with 10 seconds latency sent to signal instead of linear 256 levels? What system are you using? I don't know why it would be only three different levels. Sorry, I don't know. I haven't done ESP stuff in a while. Oh, you reflashed it and it worked better? That's good. Yeah, so learn. And if you go to, I think it's ladyata.net. The story goes that, so this is ladyata, LaMoure's website, even before Adafruit existed. So the story that I've heard is that Adafruit came out of these projects that LaMoure would write up. She would say, oh, I want to write a guide for some of these things, like a TV be gone. I guess, yeah, so here you can see it. It says it's been moved to learn. So the idea of teaching people to build things with electronics via a guide is like it predates Adafruit. So we have ladyata.net. And the story that I've heard is that people would find these tutorials and then want to buy all the stuff to build the tutorials. And so Adafruit started as a kidding business where you would put all the pieces of a tutorial together and then sell that to people. So learn is the evolution of ladyata.net, which is showing you all these tutorials. Yeah, so this is my understanding is that this is kind of Adafruit origin story as I understand it having not been around when I was a customer for a little while, but not this early. So that's an important context, I think, for learn. So this guide component has always been a part of Adafruit. And then at some point, we needed a system. Adafruit needed a system to manage all of the guides. And at some point, it's no longer just like LeMore is ladyata is the first person that's guide writing. But over time, you get more and more people. They start paying guide authors to document their projects because that's what Adafruit does, is they write guides and sell the products to make the guides. And so from what I've heard, Justin and Tyler are brothers that I don't know when it was, but they were going on show and tell pretty regularly. And I think they were the first two remote folks to be hired by Adafruit. And they were hired to work on learn. So learn is a system that stores all the version history of different guides and serves them to folks and links it to the product pages and reverse. So just like you can go to a learn guide and see what products there are, you can do the reverse as well. So if you go to Adafruit.com and then pick a product like, let's pick something a little older. If you click here and then you scroll down, there is a link to learn guides. So you can go both directions. You can go from learn to products and from products back to learn. It's relatively recent that we've had this notion of primary guide. And that's like, these guides are cat, he's bread and butter. So thank you to cat A for that. Yay, first Python project. Welcome, Anthony. Hi, Michael. OK, so this is where learn is today. And like I said, I'm not a huge user of learn. A lot of what I do is not learn. I've written a few guides, but I've not written a ton of guides. And in fact, we might be able to see. So this is just like me looking at a guide. And here's the extra stuff I'm seeing. So there's page publish. There's draft, moderation, and published. So this is there so that someone like Lady Aida or Ann LaMoure or Ann can, if it's in moderation, Ann and LaMoure will look at it before they get published. Mark says, these guides were invaluable for me to get into all this. And I still refer to them all the time, for examples, on how to do things. Well, that's the other value that these guides have is that LaMoure has learned from the start that having it documented what she's doing is a great resource even for herself in the future. So that was one reason the GDB debugging guide was written from me. It's like, I want to remember how to do this. And so I'll write a guide on it too. So learn has evolved a lot. Tyler and Justin are still kind of some of the core devs. The team is actually bigger than that now. There's also Sheehan. So it's at least those three that do learn. I think that's primarily what they work on. So you can see here, there's like secret. You might see some secret pages here that I can see that are not publicly available. Both, I think, Grabe, also like the red ones, I don't think are published. If we click this red one, we can see that the page is actually in draft status now. And then I can switch to editing it too, but this is not. I don't want to edit this. And what's it say about resources here? Page status private. So that might be like internal notes and stuff as well. So let's go to back to one of my guides and just see what else there is. Actually, I think I have it open still. Yeah, so there's a little bit of this is Dan's guide. 52 saves, that's awesome. The saving thing is relatively new. And guide type and difficulty, it's cool. They've done some really neat stuff. So here's my guide. And I want to show this component. So here you can see maintenance. So if you've ever written something on the guide, usually there's this feedback corrections link. It will take you to a place to give feedback on a guide. And I want to show you what that looks on the other side. And also show you that I'm really bad about responding to it for my own feedback. So I should be better about that. But there's six unresolved feedbacks here. I'm going to drag this just off screen to just make sure that there's nothing nasty, which there probably isn't. No. OK, so let me show you this. I just wanted to make sure there wasn't spam or anything, which I don't think we usually get. So here's the feedback that we're getting. New versions of Brew don't use cask. You only need Brew install GC arm embedded NIO. Well, that's pretty wild. So I think I'll actually just fix these. And the other thing I wanted to point out is that, oh, cool. So if I click software installation, I think they said this bit here. So I like markdown. So the way that guides are structured is that there's multiple different types of elements kind of sorted out, I guess. And they made a markdown one for me, which is what I'm using. But it means that it's not particularly nice to edit. So I think what they're saying is that we just do brew install now. And one person said to do the cask thing. So I'll just hit Save. So that should be done. So this is me in editor view. Hey, Matt. And I should say, hey, to Andy Roberts, too. So we still have the published stuff, but we have more settings. And then if I hit Preview, it will take me back to the original page. And then on the left we get, I'm kind of exploring this myself. If you have questions about this, Catney's the person to ask about all this. So mirror existing pages, template pages, Catney's a wizard with all of that stuff. So you can do some fancy things. There is stock standard tutorial stuff for getting CircuitPython going. And so you may write that once and then one in the guide for every single board that we have. So that's what mirroring allows you to do. And then templating allows you to make some adjustments on that as well. I'm not a, I don't know how to do all that. And translations must be new, too. I think Fed A2 is, Alvaro is the person to thank for that. Here's some interesting, I didn't even know there were stats here. Let me look, how do people like this? Average time on page, 5.68 minutes. 3.44K views, 38 views a week. Oh, that's for the guide. So that's new, I haven't seen that. Okay, so we were doing feedback. So let me go back to the feedback. And does anybody, is anybody on Mac? So the most recent, or I guess this is the most recent as well. Do we actually need the dash dash cask? Does anybody know? Cause this person says you don't need the cask. Anyway, I'll just, I think, I imagine it's without the cask now. Well, three of the four say to have it. So maybe I'll just add it. Let's go back. It probably doesn't hurt. Oh, and I wanted to point out that there's editor status here and connected. So it means that other people can't edit it at the same time. So sometimes we have problems where like if you leave your browser tab open, it will keep you locked. Whenever I use brew on my work laptop, I don't use cask. Cask is, was traditionally for things you don't build, things you just download and install, I think is what the distinction was. Like RMGCC is just a zip that you download. That was as now I need to know. Okay, so here's, I think part of the frustrating part with this feedback stuff is that once you do it, all you do is delete it. So that's, I think frustrating, I don't know how to contact the people that filed this to tell them that I actually fixed it. So let's delete that. Would it be possible to add a photo of a cable connection to the JLINK 80 mini on this page? Nothing that prevents the cable from being on backwards. HTML entity has been, this is not actually what I was gonna do, but I thought I should at least go through it. Management of GUI applications. Well, it sounds like they're talking about the JLINK, JLINK 80 mini. So this just has this connector that doesn't have the shroud. It does have pin one though. So I think that's the thing is what I can do is if I go in, I don't really wanna take a picture because I don't have that. That is, this is the section we wanna do it. The EDU mini, the one label to the straight of the cable. Okay. I turned up specifically for the snack on the thumbnail. We have cats. We're, we'll do circuit by thumb tutorial stuff shortly. PhoneMeGuy says I have one and we can get a photo of it this weekend. Sure. Can you, do you have moderation right? Can you edit this guide or should I add you as an author? If you wanted to add it, that would be awesome. Okay, back to the desktop after our cat break. Okay. Yeah, go ahead and add that. I'm gonna delete this feedback though. Let's go back to my feedback and we'll delete that. I assume that when we delete, it actually just marks it as deleted. What are the differences here, actions needed? I mean, I see this ampersand, I love the cat, thank you. So this is an on page. For what type of measurements are you using oscilloscopes most often? I usually only use it in a oscilloscope to just get a very brief idea of what a signal is. Like if I wanna just poke around, I use, I'm a software person so I use logic analyzers way more than I use. That's what they're talking about. I use logic analyzers way more than the oscilloscopes. Yeah, this is like a rendering bug because it's correct in here. So I can't fix that myself. But I think I can, I'll just drop it in. I can bug the learn folks. I don't know how to link to feedback. I'll do that later. I'm in the internal slack. Some scopes have logic analyzer stuff built in. That's true. Mine does, I think. I never know how to use it. I'm more of a salient person. Okay, so we've got about an hour left. Are there any other questions about, well, let me just look at these. This tutorial's superb. Oh, these are all the feedbacks? These are all the pending feedbacks. That's not what I want. What is that? Hit here, but it gives me all the feedbacks. Your guides. Let's look at my guides. Creating and sharing a circuit by the library. What does this say? Cookie gutter prompts for Adafruit product ID. Need to update this doc. Drivers.rst doesn't exist anymore. I don't know any of this stuff. This might be another thing to see if Fomy guy can fix for me. All right, I can't do this stuff. Let's do a new guide. Create a new guide. And I'll close my tab viewer thing. Circuit Python. The problem is that if we look, when we think about what to name it, and we search for Circuit Python Raspberry Pi. Circuit Python on Linux and Raspberry Pi. Maybe this should even be no Linux. That's true. A few months ago, I found all spy pins on unknown microcontroller or the multimeter. Yeah, that's a good idea. Here's your Raspberry Pi Circuit Python device. No other OS needed. Use the word native. Yeah, we've been thinking about what the best way to describe this has been. Is bare metal not meaningful? I don't think bare metal makes sense to people. But this is where I thought it would be good for me to do this on my stream. To get all of your feedback on what I should talk about. Circuit Python 7.1. Run the simplicity of Circuit Python Raspberry Pi hardware. Yeah, regular Raspberry Pi on bare metal. Meaning it doesn't operating system. Circuit Python OS directly. Bare metal to me means setting all the registers by hand. Yeah. Yeah, I mean, I am trying to use language that people would... In this, this admin circles bare metal usually means not virtualized. Yeah, I think that's hilarious. I was watching some of the videos from the KVM Summit or something and heard him say that. I was like, what? What does it mean to run Linux bare metal? But yeah, not virtualized. Okay, my options. It's not a product. It is definitely not beginner. Oh, it's not a primary product. One, search rank. I don't want to take too much time, right? Like I don't have to get this perfect. I can edit it later. Which is my MO for just about everything. Circuit Python, it doesn't go under microcontrollers. It can go under programming and Raspberry Pi. No OS. I mean, in Circuit Python, it's kind of like the OS at this point too. Minnesota Mentat has that point too. It's like no other OS? Okay, let's just go. This is the way I like to do things. I like to just brain dump, right? So, this is not something I do very often. Overview. Let's not do it as hard down. Let's do this. Raspberry Pi single board computers are normally used with Raspbian OS. This provides, hey, G3 holiday, no penguins. Should we like have a circle with a cross it out for it? Great for gaming and web browsing, but isn't designed for microcontroller tasks. Circuit Python designed for microcontrollers. Tasks like reading, script C and spy devices can be trickier. Furthermore, Linux system maintenance can be Circuit Python OS name. Can anyone write these learn guides? So, we do need to add people, give accounts. So, if you're interested generally what we'd like to do is like see what project you're working on or what you'd like to write a learn guide for and then we will give you access to it. And for Raspberry Pisces, they have an MCU part. Yeah, I know the RP2040 blurs the line a lot. That's why I said the Raspberry Pi single board computers can be tricky for beginners. Instead of using, instead of using Raspbian, you can now write Python instead. This greatly simplifies system maintenance, makes it easier to treat Pi a microcontroller. Hey Christopher, on the flip side, I'm not a writer. Folks used to direct unrestricted access to the hardware. Yeah, aka it's not secure at all. Although it doesn't do any networking right now either. Although Lady Aida pointed out it may not be too hard to add Wi-Fi support. Hopefully, maybe anecdote is watching. I'm hoping they'll take on the challenge. So if anybody is interested in Wi-Fi support for this, Lady Aida pointed out the fact that the micro, like the MicroPython Piboard D from Damian uses an STM chip but then has the external Wi-Fi controller is the same or similar Wi-Fi controller as what the Raspberry Pis use. So if you wanted to try to get that working, what you would do is you would take a look at how the Piboard D works. Yeah, yeah. Christopher said, howdy boys. And David rightfully points out that there might actually be other folks, not just boys watching this. So, good point. On the flip side, folks used to, CircuitPython will be, CircuitPython on the Raspberry Pi brings increases, the amounts of flash and RAM to CircuitPython programs. Yeah, C Grover says a huge benefit is the added system capacity and performance for larger and more demanding CircuitPython projects. Yes, totally. Also adds the ability to use display IO, HDMI displays as status sections. Do these overviews limit things like what it will not do? Christopher, you don't need to say gendered things either way, CircuitPython support, Raspberry Piboards, SBCs in CircuitPython 7.1 and it's done broadcom. Yeah, just say folks, SBC, single board computer. Thank you. And I meant to add that under development, still has bucks, critters. I've found the Adafruit Neo Slider. Do you have any experience with it to rate reading stability? I have not used the Neo Slider myself. Mensen and Dutch literally meaning people. There you go. Okay, what else should we have on the status page? Cause I think like I'll do another page which will be installation. So, so on installation we're gonna say, oh, you know what, Python builds, Raspberry Piboards, on CircuitPython.org slash downloads. One thing that a lot of learn guides have is, I get the pronunciation right? Nice. What's in the overview? Let's say, it's clear, SBC there in parentheses. Okay, so for installation, let me just look and see. So, we're kind of mimicking the welcome to CircuitPython, downloading the latest version. Always back up your code before installing or updating. Click here to download CircuitPython from CircuitPython.org. Download the latest software for your board by clicking the green button. This pivot just like, oh, you know what I should do? If folks have more questions, I'm happy to answer them. Oh, what I was thinking is I should add a thing about, okay, let's go back to the system. Typically known, I'm not a writer. Wanna say this, let's maybe running, in CircuitPython standalone because the computer itself is too limited by, by, I think we can, I think I can set keywords. Lovely A72, first time seeing behind the scenes of Adafruit Learn. Yeah, I don't, I'm sure a little more has shown it. But yeah, this is, I'm clearly not here very often. Let's move this though, let's put this in here. Filming guy says, I stepped away a minute. I'm not sure if he understood it. I think it's single board computer though. Yeah, yeah, I answered in the stream. Tell us how to do that. I love how the editor is just that tiny little window in the middle. Well, so that, Learn has an interesting paradigm where it's like a bunch of page elements. It's not like one large thing. I don't know, there might be other ways that people do it. Oh, but let's link to the other Learn guide here. Like this is meant to really get people going. Like it's designed for like not computer programmers. Right, it's designed for guide authors. It's not designed for me, it's not designed for me. Okay, let's save that. Yeah, I could start on a bigger thing. Clearly don't have the words flowing from me anyway, but I mean, one of the key things with guides though is it's also like screenshots. So if we look at how like installing CircuitPython is, I'm sure Scott thinks in Sublime, right? See, so there's like the screenshot here, what you should see. So I should take a screenshot of just the Raspberry Pi boards. I don't need to talk about drivers. I don't need to talk about bootloader. But I will need to show like, if you download this file, this is all really, Kenny's a really good author. Well, there's like one, two, three, four, five different authors of this page. So, there might be a full screen version. I don't remember. Like I'm a relative novice newbie at all this stuff. But let's do a screenshot. I don't know how big pictures need to be. That's just, I wonder if I can, should we upload the window go? Shot, okay it's in downloads. Wonder if I can drag and drop. Be nice, drag and drop. Hey, oh, sure. Looking forward to resuming sloppy memory management and coding techniques again. I know, right? Oh, you know, I didn't even check. I have way too many Firefox windows open. Okay, so we click here. Okay, and then it, so let's take a screenshot of this. I don't think I can add an arrow from learn. I don't know if I've done, can ocular add arrows? Draw a straight line in red. Can I change it? Thickness? Oh, it's gonna make me arrow settings. Open arrow. I like closed arrow, but it's not filled, is it? Maybe it is. Can I control Z? I can also circle it. That what I should do? But the current file format does not support what? I can draw an arrow, but it can't save it to a PNG export as plain text. That's not what I want. Discard. I'll do that later. Next, click on the board that you have. Oh, on GIMP, okay. Oh, cool. GIMP is a derogatory term. I mean, somebody that doesn't walk well? How would I say it? That'll be my placeholder. Media drag and drop. I'm glad drag and drop works. That's awesome. Yes, that's my third page. Flameshot. Ooh. I'm sure I could download it. I kinda like the Firefox screenshot thing, but it just doesn't let me do the annotation. Be stable or unstable version of Certifiedo. You can select. Oh, there's a fork of GIMP called glimpse just for that reason. Is it updated? Also select a language. Serial messages including it's slang, twisted silk, worsted or cotton with quarter wire running through it. Oh, text to speech censored me too. I assume it's like GTK image processing or GNOME image processing, something like that. It's probably how they came up with it. Two different disc.image.zip. Early open source devs are known for poor judgment when it comes to language. GNU, oh, I was wrong. GNU image manipulation program. Is a full file system image. It is typically imager programs. Can't read the small text. Is this text too small? Hopefully that's a little better. This is code of the image. Copy directly and existing. Mm-hmm. So we show both. I think we should at least show, like I was planning on showing the RPY imager thing. Disc image is best to start with but may overwrite the circuit Python file system if used for updating actual behavior based on the imaging program. Mm-hmm. Am I late for the SirPy, Raspy, no OS stream? You're not late. We've got another 20 minutes or so. I'm gonna have to finish that. I'm gonna have to finish this next week. I did think of, we're gonna want another page while I'm thinking of it. Connecting to USB. Raspberry Pi boards are typically designed to make it easy to connect USB devices. Typically designed to make it easy to connect USB devices like mice and keyboards. However, circuit Python is usually on a device itself. Usually acts as a device itself. That's how it presents as a circuit Pi. Rive, for example. So I wonder if I should have a picture of like USB-A versus USB-B, micro-B. There is a USB guide. I think it might just be USB-C though. Like Raspberry Pi zero and the USB gadget. The gadget is the term used by Linux. USB connectors. So just USB connectors. Oh, there was. Maybe it's only USB-C, which is confusing. Case, the Raspberry Pi itself is known as a USB host. Circuit Python is not in my spell check dictionary. That assumes I know how to add words to a spell check dictionary. Rectangular USB-A connector designates the host guide out of a cable. Be smaller, micro-B style. Plug newer boards, device or home. I wonder if I should have instructions here for different boards. Probably makes sense. This is just another deep dive where I'm out of my element. That's kind of my MO, isn't it? Showing new stuff. Circuit Python on the Raspberry Pi. USB. There was a guide for USB-C cables. Ah, thank you, David. Yeah, that's what I'm thinking of, but I'm covering more than that. Circuit Python on the Raspberry Pi. The USB device capable connector varies for board. Example on both the zero and zero to W. USB micro-B connector as a device. The great thing about USB-C is it contains all the protocols. A lot of protocols are moving towards PCIe though. The whole idea of like different power capabilities for USB-C cables, it's just like kind of wild too. CM, IO board as a micro-B. Good night, Dave. Indicate either USB device or host. Did I mess it up? USB device or host. Thank you. WM6H micro-B as well for the USB. The Pi 4 is trickier. I feel like maybe this should just be a list. I should probably just do it as a list. Or either do it as a list or I do it as, like ideally it's images with like arrows, right? I could just have like zero, zero to W, blah, blah, blah, blah. That's really what I should do. Okay, let's just do that. I have some boards. I mean the official CM4 IO board. I mean the chunky one that I've been developing with. I don't mean other CM4 boards. Those will be separate board description. CircuitPython.org includes instructions. What are these info for supports? Official Raspberry Pi boards. That's a good way to do it. Okay, let's do some images. What was it? Fire? What did Bobby guy say? Hey, that's right. That's what he was saying. I could do it in the GIMP, which it probably. I don't think I get dinged for saying it. Does it make it not child friendly? I didn't, I didn't market it as child friendly anyway. Okay, I need to download some images. So let's just pull them up on Adafruit and download them. To W. Oh, I always put a space there. So let's download this. How do I download? Oh, you know, it's in the learning guide, isn't it? 29, 90, 52, 91. Flameshot. I'm gonna need that. Let me just install it, although I'm just about done. Oh, can I open other files with it? Oh, cool. That's not quite what I want, but not for editing an existing file. Should I do just a very basic pencil, red? How big? This USB. That's pretty. Not a circle. Know what I can do instead. I could probably do a better arrow. Drawing with a trackball is hard. What kind of did you say to do it? I think it was just on YouTube. Had to do a shift, right? Hold down shift and click where you want it to end. Click, click, shift. Nope, not that, or a pencil. Wait, that was what I wanted. Look at that. That'll do. Try to fill it in. Oh, trackball's so hard. This deep dive is Scott does graphics. Scott writes and does graphics. Okay, overwrite. We don't need the original. Hidden non-obvious features? Never. Certified then does too. Somebody was like, I just need a thing to write a few bytes to non-violetile memory and I was like, you mean like N-V-M? Sketching with Scott, that's a great idea. All right, so let's add another, well, so this is why, so now what I can do is if I hit text here, I can say pi zero to space W. Connect to the micro B USB and code save. But now watch, I can go like this and reorder the elements. Just print out the picture, draw on it in a red sharpie, take a picture of that and upload it to the servers. Easy. Yeah. I think that is a very clear picture though. Could be worse. Okay. We could do it as a side too, I think that's fine. Yeah, put a blink on it. This makes me appreciate the work that all the other Learn Authors go through. They're much better at this than I am. But okay, so let's do text again. Let's do pi four, model B USB twice. USB twice of the USB-C power connector. Also device capable to it. Use a powered USB-C hub, USB hub to both power and connect it to your computer. Although it sounds like it's still, Jerry wasn't able to get it working so it's broken right now. This probably shouldn't be heading ones. It'll be heading twos, but that's fine. All right, let's do the same thing. Let's do some more art. Sketching with Scott, pi four, model B. Hey, it's in stock. I don't care which RAM one it is. Save image. 429.96, open it up. Let's open it in the game. And if we do boom, put some happy little ports over here. I was like, wait, what? No, those are HDMI. Should really get a mouse out for this. But we're right, export. I'm sure folks like Katnick make this look easy. Writing and teaching is a great skill to learn alongside all the tech stuff. Yeah, and I think it's important to note that like use bucket fill. Yeah, too easy. It's important to note that like this really, it makes, it's hard for me, but the value that we get out of it is actually a lot. Like it's worth me doing. It's worth sharing the knowledge that you have on how to do stuff. All right, last call for questions, since we're gonna add in about five minutes. Fence also bucket fill, we'll sort it. Yeah, that would involve switching. Let's do the IO board last. Here, Raspberry Pi, CM4 IO board, has a dedicated USB micro B for USB device. So we do this heading too safe. So if you go and learn right now, you won't be able to see this, but I think I can dump a preview link. How's the Kat? Still asleep. Makes me think I should do a GIMP tutorial. That'd be cool. Hope we can find another time code taker for next week. David can't do time codes. You wanna see the Kat? Well, we see the Kat right before the end here. Let me do one more board first. And then we'll do the Kat before we go. I don't have a desktop plus Kat cam. I think it's a compute module. Yeah, here we go. Let's see, image 4787, put it up, oh, put it up. Oh, it's already over, it's here. And we can do a fill. Too easy. Okay. Yeah, so let's see, what else do I wanna do? I wanna do Raspberry Pi imager images to show you how to pick the file from it. And then maybe I should do the HDMI display just to show how to switch. So if you have ideas on what I should cover in this guide that are Raspberry Pi specific, not just generic circuit pipeline stuff, let me know. You're welcome, Minnesota Men Tat. All right, let's wrap up. This is enough. I think if folks do wanna see it, if I reset my view, there's more options here. I think this preview token, open it in preview mode. I'll dump this in discord. I think the preview token means that you all would be able to see it too. You are console connection. That's a good point. Let me just take some notes. Should we have a debug? I assume USB hostiness is not yet part of the circuit pipeline list. No, unfortunately there's like three different ways that you can do USB host from a Raspberry Pi 4, at least. And the one that I care about the most is the one that would work on the Pi 400. And that involves a USB host chip that's connected over PCI. So I've pointed that out to TAC with the hope that he'll take it on. It's an XHCI chip, which is like a USB standard. But it's not a simple thing to do. So we wanna take that on, that'd be awesome. I don't think I'm gonna get to it before I switch over to doing some Espresso stuff. So I think kind of my plan for this Broadcom port is to do the guide, to do spy, maybe PWM so that we can do display backlights. And then I'd like to do zero. I'd like to cover the whole range. I'd like to get the tooling for all of them. So the original zero works as well. But I don't think I'm gonna be able to get to Wi-Fi or USB hosts in the next few months, unfortunately. I'm gonna, I wanna switch off and wanna do the BLE workflow stuff in the ESP system, starting in January. That's kind of my goal. The goal is to switch to the Espresso stuff in January. So yeah, USB host would be really cool, but it's just, I've been in this mess of Broadcom for a while. So I'm gonna try to extract myself a little bit. There's bugs that need to be chased down to so yeah, please help, please help with that. Okay, let me know if you wanna take notes next week. So let me know. And this has been, let me go to here. Thanks for watching the deep dive. Happens most weeks at Fridays at 2 p.m. Pacific for goes about, oh, you can add the same preview token to the next pages to see them. And what else? Next week, next week will be normal time on Fridays, but then the next three Fridays after that, we won't, I won't be streaming. I'll return probably most likely January 7th and we'll talk circuit-by-thon 2022. And I think that's it. Is that the housekeeping? Thanks to David for taking notes. And thank you to Patrick for getting all those notes. In one place in the deep dives repo, if folks have, keep an eye out for this, I'm gonna try to keep working on it next week and go ahead and bug me about it too. With that all, quickly pet the cat and then I gotta get out of here. So I promised cats, I'll wake him up. He likes pets. He's definitely sleepy. All right, have a great week and everybody. We'll see you next week.