 I did update titles, didn't I? Oh, we're going to take a couple of minutes just to get started here and then we'll start. Looks like everything is cooperating. Hopefully you can hear me. It looks like YouTube is going as well. Good, good, good, good, good. Happy New Year, everyone. I guess that's what I should bring up on the screen. Everyone is okay. Thank you, Jeff. Hi, DCD. Hello, HandsLabs. Good morning, Viada. Hi, HandsLabs. How are my holidays? They were filled with family, which was good. Yeah, we can get into that. We'll talk about that when you say I'm again because that's professional. I'm buying time a little bit longer while folks are here. This is the first deep dive we've gotten this year. I believe so. I was planning on doing it last week and Ari, who's my toddler, got a stomach flu. He stayed home and then I got it on Sunday night, which was pleasant. I'm jumpy a bit, like how I'm acting or it looks okay. Oh, actually, no. I see that OBS is dropping like 25% of frames. Hmm. Reastream says, excellent. OBS says I'm dropping a quarter. Can I change the profile? Yeah, I do see an issue. It's stomach flu time of year for sure. Okay, well, I've never seen this issue before. I do see that it is saying that it's dropping. It's using the software encoder and it does say that it's dropping like 23% of frames. You're pausing like a few seconds every now and then. Is dropped frames due to network? Like I'm only using 5% of my CPU, so I don't think it's that. I'm not sure. It looks smooth and OBS. Maybe we just go with it. Oh, see now it dropped down to maybe it's not me at all, but no audio. Your network connection seems a little unstable. I should have fiber internet here. It shouldn't be, but maybe it's a restream. So I'm going from, I do see my frame rate dropping in restream. I was hoping the audio would be okay. Quite know what to do about it. I think maybe we'll just have to go with it. Video is a bit laggy, but nothing major. Yeah, we'll be all right. Maybe it's not me. I've not seen that before, but so the setup is like my computer is OBS and OBS is going to restream and then restream is sending it to YouTube. Sorry. I don't, I'm not sure this is something. I think we can't hear you. It says to ship. My mic is right here. It's also possible that my mic is having problems due to the salier being here. Oh, you know what? Maybe let me, let me turn off the salier. It could totally be that. Sorry. It was me. Okay. Great. I closed salier. And in fact, I'll, I've had problems with the salier before, but OBS still looks like it's just as no audio issues. Yeah, I'm wondering. I don't know where this drop frames is happening. Restream stuff. I assume a lot of people more like listen to me than they do. You listen to me more than you actually watch it. It could be an OBS thing. I don't know. Anyway, we'll just go. Hopefully it's not too bad. And if it is, uh, is this YouTube asks, um, actually let me do the intro and then I'll answer your questions, um, since I'm getting distracted. It's been good for a few minutes now. Okay, great. Um, hello everyone. Thank you. Sorry for the hiccup. Um, my name is Scott. I work for Adafruit on circuit Python. I go by tan newt online. Uh, that's T A N N E W T. Uh, I've been streaming, uh, deep dives since 2020. During the pandemic is when I started, um, I'm a core developer on circuit Python. So, uh, circuit Python is a version of Python designed for microcontrollers. Uh, it's designed to make it really easy to, uh, program them. So what is a microcontroller? Um, I've got plenty here and I just can't decide which one to show you. Um, this one, this is an ESP, uh, chip. This is actually, there's a smaller chip underneath this, uh, can here. That's for, um, RF radiation, um, mitigation. So it's a wifi chip and, uh, there's a microcontroller to there. Um, this board is under $10, I assume, or at least under 20. Uh, it's a really inexpensive computer that makes it really easy to, uh, work with the outside world. Um, so circuit Python makes it really easy to program those devices by, uh, first and foremost showing up as a USB drive, if it's possible. There are a few places where, um, you don't have native USB and then you can edit over wifi or Bluetooth or, um, the serial link. Uh, Adafruit is an open source hardware and software company based out of New York City. I work remotely for them. I'm in Seattle, um, but they do really, really awesome work. They put a lot of money towards open source hardware and software. So I, please, uh, support Adafruit. This is their channel, obviously. Um, Adafruit.com, uh, buy some cool things there and, uh, support me and the rest of the Adafruit folks, uh, and the software and hardware that, that we develop in the open. So, um, that's what Adafruit and circuit Python are. Um, hello to everyone. Uh, thanks for joining the deep dive. So what are deep dives? Um, generally I'm working on the C, uh, underbelly of circuit Python, uh, that implements, uh, or allows you to do all these sorts of things with microcontrollers. Um, for example, um, what I was just working on is this is a, this is not an Adafruit board, but this is a, a Lily Go board, um, with an ESP32S3 chip on it. And somebody pointed me to this, uh, development setup because this display is connected over parallel. Um, so, uh, we need to add that to circuit Python 9. So I've been working on that. Um, that's just one example of kind of what microcontrollers can interact with. Um, so yeah, usually a deep dive is me working on some project or talking about something, um, that I've been working on for circuit Python. And I am also happy to take questions. Uh, so if you have questions, uh, go ahead and ask them. Um, yeah. Uh, I already got a, a question from, is this YouTube? Uh, they say, hey, uh, probably a stupid question. Are there any plans to add interrupts to circuit Python in the future? So this is a common, um, question, especially for folks coming from micro Python, um, or the, the C embedded world where, uh, they want, uh, interrupt access. So what an interrupt is, is, um, internally to the microcontroller, there's not only is this, the CPU that's actually executing your code, but there are other kind of chunks of circuitry that are doing different tasks. And what they can do is they can send a signal to the CPU and say, hey, like this thing has happened and the CPU will stop what it's doing and run some other code instead. Um, and micro Python has the ability to say, hey, when a signal comes in from a pin, um, run this Python code. Uh, like even if you're in the middle of running some other Python code. Um, this, this is the Lily go T display. I have the box. I had two boxes for it, the Lily go T display and the, um, there's a touch version. So the one I showed is the touch version, but I also have the, the non touch version. This has had some wires on it. The non touch version is here as well. Um, the only reason it's interesting is cause so in circuit Python, we're working on circuit Python nine. Um, and I had to basically disable the parallel display bus. Um, and so this is a way for me to test it, retest it on, um, on circuit Python on ESPN in nine. So I don't, we don't like to regress. We don't like to remove functionality. So I don't, we don't like to regress. We don't like to remove functionality. So, um, I'm working on adding it. Um, okay. Back to pop the stack for the question for adding interrupts. So, uh, there is no plan to add a Python level interrupts in circuit Python. And, um, if someone were to add them, like make a PR to do it, I would, I would allow it. I really think that, um, concurrency is really hard. And, uh, what can happen is that you can look with what makes concurrency hard in my mind is that you can have a piece of code that's like this and then this and then this and then interrupts can actually happen in between. And so it makes it really a lot more, uh, difficult to reason about what your code is doing. So, um, I don't, yeah, that's why I pushed back a lot on, having interrupts, uh, in circuit Python is that they're, it's, it's really hard to manage and reason about, um, internal to circuit Python and the C, the C level of, of circuit Python, we do use interrupts. Um, but we don't expose those to the user. So no, there are no plans. Um, but generally we try to provide native modules that implement the things that you would need interrupts for. Um, anyway. Hello, DJ Devon three. Thanks for joining. So, uh, it looks like my connection is still bad, but I don't know what to do about that. Um, like my CPU is not taxed. It looks like it might be a network connectivity thing. It's been a while since I've streamed. So I don't know if this is like normal or abnormal. Um, is this used to has a follow up question say, what about using the second core? So, uh, micro Python on some boards does allow you to run Python code in the second core. I also have, we also have no plans on adding that to circuit Python. Um, again, because concurrency is hard, but also, um, also, uh, there's other stuff that we can do with those cores instead, uh, internal to circuit Python, which is kind of like, I would say more useful. So for example, on the RP 2040, we've started, we do use the second core. If you're doing USB host, or if you're doing, um, Pico DVI on the RP 2040. So there's like, yeah, we're, well, for second cores, we'll use them internally instead. So the S three, the USB 32 S three also has two cores. Um, and that is, uh, the way that the S three runs is the network, the low level networking stuff runs on one core and then circuit Python runs on the other. So generally we only run, we only run Python code on one core and then internally we might use the second core for something else. There's, there's a big long bug about this or issue filed about it if you want to follow it. Um, the one thing that I was proposing was like having some way that you could say like run this code on the second core. Um, and there's a little bit of that on the ESP as well because the ESPs tend to have three, a third, uh, ultra low power core, um, that we actually do have support for. Um, in circuit by that eight, that's a thing that's broken in nine and there's an issue for it. Um, Mikhail Picoosa says, is it possible slash are there any plans to add support for LED matrices in different sizes than 16 by 32 and by 64? Uh, I think I don't, I don't know much about it. Um, but I don't see it, if it wasn't a power of two, I assumed you would just use the larger power of two and then it would just get cut off because I know you could, yeah, I know you can chain LED matrices and stuff but I don't, I've not heard of them coming in non-power of two multiples. You're welcome. I'm happy to answer questions. Uh, is this YouTube? It said, thanks for answering my questions. Yep. Happy to mark who's done, uh, RGB matrices stuff says I can't recall a proto matter supported or not. So proto matter is a C library that does the RGB matrix stuff, um, that, uh, circuit pipe on and are doing no use. Jeff says the multi core question and the interrupt question need like an FAQ because so many of us think of embedded coding as interrupt driven code. Yeah. And I think it's, I think you're getting at an important point is that circuit python is designed for people that don't have a background in embedded stuff. Right. I kind of think of a, like, are you starting from scratch from the outside or have you read the data sheet and circuit python is designed so that you have to, you don't have to read the data sheet. You don't need to know that stuff. It's trying to, it's trying to abstract things away from you. I've heard the argument for both interrupts, the second core at least that, um, oh, that means that I can't use everything that the chip can do. Uh, and the reality is that there's a lot of stuff these chips can do that circuit python doesn't enable. Um, there's all sorts of different modes and stuff for the different peripherals. So it's, it's really a game of like what do you want to do with it. Um, and like I said for, if you are coming from that embedded world and there's something that you want to add and we're happy to entertain that. Okay. So DJ Devin 3 was being kind enough to give me a segue. So the title of, uh, this talk today and I'm sorry, I don't know. Yeah, looks like my frame rate is dropping still. Anyway, at least you can hear me. Let's go to the desktop. So circuit python, uh, 2024. I said both 23 and 24. Um, what we've been doing is we're doing kind of every year we do this annual planning kind of step of like think more broadly, um, about what you want to be able to do and, uh, with circuit python in the coming year and like make sure that we're going the right direction. Um, so circuit python 2023 was what we were talked about last January and circuit python 2024 is what we've been talking about this year. Um, and I've, I've got to be honest with you. It's not clear to me. We should keep doing this. Um, I've made a post on the, on January 1st and have, we've gotten very few people to participate. Um, and I, I was kind of giving it the deadline of next week on the 31st. So if you want to post circuit python 2024, please, that would be awesome. Um, the other reason that I'm kind of wondering whether it's worth doing or not is, um, because I pretty much, I pretty much say the same thing every year. Um, which is not a bad thing. And I have to tell myself that every year. It's not a bad thing that, that the goals that I have for the project aren't changing. Um, and to say that they're not changing is not quite the right thing either. Like we are making progress towards those goals and their goals that we'll never really fully achieve. Um, so would you like to start talking about what we did last year or should I just dive right into my, my 2024 post? Oh, the other, the other bug bear I have about people wanting the second core is often, often they want to do it for performance reasons, but that's really not going to solve their performance reason. There's usually some other reasons that, that their code's not running as fast as they want. People can see it as a, as a, the optimization they need to make when it, in reality, it's not the one that they need to make. Like they'll do, be doing some I squared C transactions or something. And it's like your core is not slowing you down. Yeah. DJ Devon three says, um, it'd be cool to cover, uh, 2023 as well. Okay. So well, why don't we go in reverse and, and we'll go from there. So, um, this is on the blog with the circuit Python 2024, uh, tag on it. I should say that if you do post something, um, email circuit python 2024 at Adafruit.com. And then that goes to Phil and I, and then I'll blog it up here. So we'll see more, we kind of collect them all in one place. Um, and you'll see that, uh, soon when we hit the circuit Python 2023 stuff. Um, yeah. And I'd love to hear you. And I, the other thing I was thinking about it is like, what has changed in the last year. And you'll see from my posts, like what changes is more of my personal life than it is, like circuit Python, which is nice to have stability. Um, but I was also thinking in terms of like, what has changed for circuit Python? Um, and I, the obvious one is chips that are available. Um, and I'm excited to see like, maybe the ESP 32P4 will actually come out this year, which would be neat. Um, yeah. Okay. So, uh, here's the kickoff post. Let me just drop the, the link to there in the chats. This tells you kind of like, hey, this is what we're doing. Like, let us know. Um, we did get a couple other ones, but they're very short. One is just like, Blinka and motor kit, which is not quite related to what we do. I work on, I should say. Um, and then DJ Devon three did post on the, uh, emailed, uh, saying, now that we have the S3 working quite well this year, it really jacked up the amount of CPU and RAM capable of circuit Python. I think it's unlocked a lot of graphical projects from matrix portals to AX to large qualia displays. I'd love to see more display IO progress for touch, GUI projects. Can't wait to see what. 2024 has in store as 2023 was quite amazing progress for synthetic cameras. Um, so yeah, thank you DJ Devon three for that. Um, and now let's talk about my own. So the big thing here and last year, yeah, last year, I didn't let my previous one. Um, the big thing for me is, and if you watched a deep dive in the fall, you knew that my mom was sick. Uh, she got diagnosed with late stage pancreatic cancer at the start of November. And, uh, the conclusion to that is that she passed away, uh, just before Christmas. Um, like two days before Christmas. So that was, that has been like the brain space for myself. Um, and it continues to be, um, although, you know, I have stability, a new stability in my life, which was good. Um, but it also made like looking back at 2023 pretty hard because I had this big life event happen at the end of the year. Um, I looked at my 2023 posts and I'll just pull that up. Uh, but it was talking about rebalancing because, um, I had a kid, uh, in 2022 and I was like out a lot for paternity leave in 2022. Um, so I was talking about getting back at the groove and things. And I think I say this at the start of this, this post here that I did do that, right? Like I'm in a new space, which has been great. And I like, I can focus better. I don't have a cat glued to me, which I worked for home. Uh, like when I was sick earlier this weekend, like I literally had the cat on me like all day. And it was just like to the point where you like shift and then like she, she got back on me. It's kind of annoying. Um, so I'm really liking the space. Um, Ari, my kid, uh, our kid got into daycare in July and day care has been great. Um, he loves it. Um, so that's been, that's been great for stability. And then this, my mom died and, yeah. Oh no. Sorry to hear that, Jeff. Lost your wife and now your job. I missed the cat. Might be time for another cat. Cats are basically water with fur. Well, humans are basically water to you. Um, okay. So that's that, that is something that I always cover is like where, where in my personal brain space I am for my personal circuit file on 2024 post. Um, but I did say in here that I, you know, with the big loss of my mom, I'd say like, am I spending my time the way that I want it? Right. And I basically think like, yeah, I think circuit pipe on where it's like, not everyone in the world is going to use it, blah, blah, blah. But like, I do think we, we, we push the needle and we make people's lives better with circuit Python. Um, and, and that's because we make a technology. And I think I was thinking about this in terms of right to repair as well as I think it's really special that if somebody gave you a device with circuit Python code on it, you'd be able to like introspect it. Like just like you were given a car with an engine, uh, like a combustion engine, you can open the hood and you can look what's in there. I think that the fact that circuit Python allows you to do that is super cool. Um, and really, uh, pretty, pretty game changing. Um, and yeah, following right to repair stuff and you know, you get these blobs of software, like it's very cool that, that circuit Python is so open and, uh, I think it's worth it. I think it's worth pushing those boundaries and making, um, technology accessible, which is, is largely what Adafruit does. Um, one of the areas that I've always pushed in, in my circuit Python, my annual circuit Python post talk about this is, is how you actually edit circuit Python code. Um, for a while it was like, we need to be able to do this over BLE so that phones and tablets can do it. And then in 2022, I think we actually added that so you can do it. And then 23, we added the web as well. So we do have wireless programming, um, capabilities at four circuit Python devices that have wireless capability. Um, and I think that's super cool. Um, Antonio and Trevor and Liz have done like a lot of work to, to get the mobile apps working. Um, um, uh, Mike Jones says, want this stuff to be accessible. How, how about some newbie tutorials? I have no idea what you're doing. Uh, yeah. So if you go to learn. Adafruit.com, um, that's where the tutorials are. Uh, the work that I do for Adafruit is more under the hood and it is more technical. Um, but that's where you should start. Uh, if you're looking for newbie stuff. Um, I should also, I didn't plug the discord. So above me, uh, there's a YouTube chat and then there's also a disc, the, well discord chat and then YouTube chat. If you want to join the discord, that's a great place to get help. It doesn't go away when the stream goes away. Um, and you can do that with ADA, the URL, adafru.it slash discord. Uh, we'll get you in there and you'll see that there's a bunch of different help with this or that, uh, channels in there where there's like really helpful folks to get you going. Um, and that is also the place that we discuss circuit python development. So if you're wanting to, uh, peek under the hood of circuit python itself, that's where we're happy to help you get started with it. Um, and here you can see on the learning system that you can, uh, see different, um, projects that, that people have been working on and how to do it. Um, David says, I almost never used Billy and wifi workflow, but I think being able to upload a file like an image to a project is very important and desirable feature. Yeah. So that's, uh, that's where I'm going with the 2024 stuff is, uh, just because you can do it, it doesn't mean people are doing it. I see we have numbers in terms of like how many people use and have downloaded pie leaf and file glider, at least on iOS. Um, they are available on Android as well. Um, and it's not a lot. It's not a lot at all. Um, so at this point to me, like there's bugs and stuff that we're going to have to refine, but, um, it's more a question of, um, it's more a question of like letting people know that you can actually do this, uh, and teaching them how to do it because it's not normal to be able to program from your phone or tablet or wirelessly. Uh, areas of recluse, uh, on Twitch says, this is indeed the first I've heard about mobile slash wireless editing. I may have to try that. Um, yeah. This is kind of the crux of my, uh, the top part of this circuit by the 2024 post for me is like, this thing I've wanted to do for years that we can do it, but now nobody's doing it. So, um, what are some ways that we can teach people that you can do it and, and really push to make sure that it works really well. Um, so I want to, I applied to a conference. Uh, PyCastCades is here in Seattle in April. I applied to present there. Um, I might apply to PyCon. I got to decide, I got to decide when I'm going to travel because I have a small kid and I can't, uh, kid, uh, be gone too long. Um, I think that we'll, we'll hopefully see more projects this year that really lean into the wireless programming of it. Um, I should say that not only can you do Bluetooth from a tablet, but you can also do, uh, web workflow is what we call it. So you can, uh, if you have a device on your Wi-Fi network, uh, from your laptop, um, you can do circuitpython.local and that will find one of the circuit Python devices and you can kind of click between all of them to see, uh, or edit code straight from the web browser. Um, so it works on a desktop as well is what I'm trying to say. Um, and that's my third bullet point in this thing as well is that, um, I think we've seen more adoption on the web side, the, the web workflow side. Uh, and I think that will lead people to realizing that, um, you can do it on the BLE, uh, like on the go sort of, uh, model as well. David says, DCD says, memento camera might get me into wireless. Mike Jones says, I mean live, it would be cool to have the tutorials live. There's a million of them waiting to be watched, explaining everything, but live would be something else. So there are, um, there are, yeah, there are other folks on the Adafruit channel that do more, like, tutorial-ish live videos, um, that are, like, beginner-oriented. Uh, this is not really one of them, but if you have topics, I'm happy to answer questions. Um, is this YouTube? It would be cool to be able to do it as an add-on board. Like, if it's on a blue fruit, it can import a module, strap on a blue fruit, it could import a module for beally editing. Yeah, um, I was thinking about this a little bit. I was thinking about this a little bit in terms of USB host as well. Um, which is the second part of this bullet point. Um, but it actually will be, would be easier for circuit by the devices to edit other ones. Um, Jack Frost says, circuit by the unload the entry bar for people to get into these hobbies. The community is thankful for everyone that contributes. Yeah, that's the goal. The goal is to make it easier and easier and easier. Like, it's never easy enough. There's no such thing as easy enough. Uh, why doesn't it matter what side the resistor is on the LED and you'll win a Nobel Prize? Um, it doesn't matter what side the resistor is on because the current flows on both sides of the LED. The same amount of current is on both sides of the LED. Uh, strap on a Wi-Fi board? I had this heart that's right in the way. Wi-Fi board on Scorpio, but that doesn't exist yet. So you want a Wi-Fi capable board that can do eight Neopixels out at the same time? David says, even if I follow closely or participate in the community, I still sometimes discover features which there's not a lot of marketing. So maybe there's a problem with promoting some feature. Rather than a circuit Python parsec that talks about a Python trick, there could be a longer section on a feature. Microlab reading image from files, sleeping mag tag. Yeah, if you have ideas, David, for topics for parsecs, I'm sure John Park would love that. Um, suggest those to him. Um, I was thinking about this also in terms of, uh, data box. Uh, actually, I should say, uh, let me, let me touch on the, the workflow that kind of excites me for this year is also one where you, you plug a USB keyboard directly in a circuit Python device and a TV into the other side, and you can edit, um, all directly on the device. We're getting there with better display support and USB host support. Um, but we kind of like have it made that really nice and like work well with like an editor and things. Um, so, so aida box has been on hiatus through the chip shortage. Um, aida box is the quarterly subscription box that aida fruit does where it kind of like puts one projects at the center of it. And, uh, that really both leads to the development or guides development that we do is aida fruit funded folks on circuit Python, but it also, um, it also, uh, leads to a number of projects that go along with the box. So that's a great way, aida box is a great way to highlight new capabilities of, of circuit Python. Um, so I'm hopeful that, um, I'm hopeful that being able to do that is, uh, going to be, do a better job of teaching people, um, what we can do. When it starts at Mr. from one side or the other, she doesn't flow through wires, but in the magnetic field. Like Jones, you're asking very low level questions. My understanding that is that it does flow through wires, like electrons move through the wires, but not it. Yeah. Not at the speed of light. Okay. Let me catch up on the discord here. DJ Devon three says, I didn't know much about electronics when I started. I learned a lot. How to design a PCP. I learned about repel.pi about four months after it got added. David says, can we have a USB host feather and a DVI feather plus a little cable in between? I think, I think we'll find that like with some new chips, like the, maybe the P four will be able to do it kind of all on board. Um, Jeff says, I think so many of the learn guides have good circuit by the code to learn from an art often beginner level. DJ Devon three says, John Gallagher, who's a professor also has some good YouTube videos. I just said both sides at the same time, like elect electrons flow from one side. I said that you, you asked whether you could put a resistor on either side of an LED and, and yes, you can put, you can put the resistor on each either side of an LED and it will have the same effect because the resistor is functioning to limit the amount of current that goes through that wire by resisting the flow of current. Which direction it goes is kind of confusing because like there's a conventional direction, but then Mike Jones, it sounds like you're kind of getting to, it's, it's interesting. And this is kind of what I was going to say about the, I took like two EE courses in college and, there's a conventional notion of which direction current goes, but the electrons actually go the other direction. So I think it's important to, it's important to separate the, like what is happening at the microscopic level or the electric level from the like practical, how do I analyze the circuit to understand what's going on. Right. Like conventional current direction is not actually the direction things like electrons are flowing, but I think you're rabbit-holing. I'm not going to be able to get you out of it. Yeah. DJ Jackson is saying, imagine you have a water hose. You can put a cutoff valve at any point in the hose to control the flow. That's your resistor. Right. The water analogy is quite common for, for electricity. I didn't say it flowed from both sides at the same time. Resistors don't have a directionality to them, but LEDs do because they're diodes. Okay. So this, this is what I posted for a circuit by then 2024. I'd love to hear it from other folks. Yeah. Is this YouTube going back to circuit by then a different stuff? Yeah. Oh, and David knows about this veritasium video. Yeah. I'm not, I'm not aware of it. Is there a proper place to make a request? Yeah. So if you, if you want, Oh, please make X feather. Um, if you have suggestions for feathers and feather wings, you can email support at 804.com. And they'll, they'll hand that over to a little more lady to, and she'll say, hmm, and put it in her list. Um, but yeah, you could also make them yourself. You want to get into making them yourself. There's no such thing as the wrong side. Um, when it comes to which side the resistor goes on of an LED. Cause that's not how it works. Um, so, so in 2023, let's recap what I said. So I made a much better post in 2023, which was like, I'm not going to make this again. So, um, I actually did screen captures because I was also trying to do what I said we'd still need to do, which is advertise what you can do for wireless stuff. Um, uh, so I would refer you to my circuit by then 2023 posts. If you want to go see more about the mobile stuff. Um, because I have these, uh, these gifts here. So there is a, there is two, two main goals that we had with the, on the app side. Um, well, maybe I should step back and say like BLE programs really programming circuit Python is really weird because there's no standard way of editing files over BLE. Um, which is what we have for, uh, what we have when we have, when we talk about USB, we have all those things that it's kind of like already known. Um, so there's two, two apps that Adafruit has funded. Um, the first one that Adafruit has developed, PyLeap is the, I want to take this learn guide and I want to get it on this device and just use it. Um, so that's what PyLeap is doing is it's loading set projects on your device. Um, as easy as possible from your phone. And then there's also, um, file glider. So file glider is this kind of weird thing. And they're both, they're both available for iOS and Android. Um, file glider is this bridge app where, um, it knows how to send files to and from the device. And it also knows how to tell the operating system about those files. So you can, um, you can have a third party app that can edit files through the operating system. Editing files that are on the Bluetooth device. So that's what this is showing. Um, so file glider is the like, I just want to plug in this, this protocol into the, this other world. Um, and then we also have code.circuitbython.org, uh, which works for Bluetooth and USB in Chrome. Um, the wifi one's a little weird because, uh, uh, the device itself, uh, has to be what hosts it. So if you have circuitbython.local, you can do circuitbython.local slash code, and it will load the same stuff that's on code.circuitbython.org, but from a different domain because browsers care about that. Um, other things, uh, the watch, and I still wear it and it's still not turned into a project and I haven't optimized it for, uh, battery life, but I still wear it. Um, I would love to do more circuitbython on a watch. Um, I do use file glider to edit and kind of poke it, uh, if it stops working. Um, USB host, uh, we actually did. So this is a circuitbython 2023 thing that we actually did manage to do, which is super exciting. Um, and this is, I'm hoping we'll see more projects with USB host. Um, new chips are a wildcard. Um, which is what David's getting out in the chat. Yeah. He says, so in 2024, you'll port circuitbython to the new Raspberry Pi, whatever. I'm not in secret. I have no information except that 2024 is bringing us something different than our 2040. What other microcontrollers you think you'll work on? Um, well, like I say here, it's a wildcard. I've got to tell you, I'm really liking the ESP 32 S three right now. Um, it's a great, you know, it's it's a couple of 100 megahertz. It's got lots of RAM with PS RAM. It's got wifi. Um, it, they just added a feature to the underlying BLE stack where we can add BLE support now for circuit by phone. So that's like high on my want to do list. Um, and it's got native USB. So like the S three is great. Um, I just saw an email from a expressive where they were talking about new chips, which is cool. Um, so let's just pull those up. Um, but I think. Yeah. See, like they have the landing page. That's their new chip. I think it's important to remember that just because a chip is announced doesn't mean that you can, um, you can actually get it. Um, so I think that, uh, Oh yeah. Lady, it was showed off in 33. So that might be on the horizon. Um, that's just one billion chips. See. So let's see. Let's just go through here. S two, S three, C two, three, C three, C six. Oh, so it's, um, it's interesting. Like even though it's announced, it's right here. It's not even listed here yet. Um, so I think it's, um, it's, um, um, um, um, um, so I think it's, yeah. Whenever you see chip announcements, you have to really, really take it with a great assault. Um, also because in my 2023 post, I mentioned the ESP 32 P, P four, and I still don't have it. Um, Ham's lab says, since matter is supported by a stress of on their ESP 32 devices, are there any plans to support that in circuit by bond? It's not been clear to me. That matter is being widely adopted. And it hasn't been clear to me that, uh, how exactly that would work for a circuit by bond. Um, so it's not like top of our list to do, uh, but I wouldn't rule it out. Uh, DJ Devon three says M 33 is easier to remember. Yeah. So let me add a word of caution. Um, this is something I've thought about a lot, especially because we used to call. Like M four boards when they have a samdy 51 on it. Now the M designation is the CPU core that's in the chip. Um, so the M 33 is a cortex M 33. Um, which is like a, I think it's an equivalent to an M four. Um, but it's, it's important not to just think of the chip as that core because there's a lot in a chip. That's not the core. And the cores that are from arm are licensible. So other manufacturers also provide them. Um, yeah. Uh, so, so yeah, it's, I think I didn't actually watch this. Let me just, um, I think it was the STM 32 U five series. Um, I think she actually picked it because I had mentioned it. Um, I'm sorry, I'm cashing on the YouTube chat. Yes, I do want to work on the Maya little hacker board. And in fact, I don't know if you can see him, but I have two, I found two of the little toys on a goodwill. Yeah. So, so yeah, the reason that I think I inspired that I on MPI, one thing I really like to do is cause a lot of the work that I do for sacrifice on is getting it to work on new chips. And, and it's important also remember that the reason to get it on new chips is because they, they may allow us to do something that we couldn't beforehand with the stuff that we already support. Um, so when we're deciding what chips we want to work on, it really is like, what does this chip us allowed allow us to do? Um, sometimes it's like, is it going to be really popular and people want it sported, but most of the time it's like, what does it enable us to do that we couldn't do before? Um, you know, wireless capabilities are obvious, uh, like that for like the S2 and the S3 were great because they were the first chips that had native USB and Wi-Fi. Um, so I like to keep my eye on the development kit, development boards and programmer. It's because this, the development boards are usually one of the first things that's actually available when a new chip comes out. Um, really? Boards. So what I like to do is I like to look at, um, this category and if you know me, I'm game to, uh, splurge by. So here's in stock, new products, and I usually short by, sort by price because, um, I don't have a, I like to sort by price because I have like an impulse buy limit. Um, which some things will end up being under. Oh, I want to exclude marketplace. There we go. I just want to buy from Digikey cause like Sam buying something else. So the STM32 G4, which is a Cortex M4 core, somewhat interesting. Um, some of these are not even 32 bit. Uh, but this is what I saw here and this is, I think what the Ion MPI was, is this U5G9, um, series which has like a ton of RAM. Um, but it's not clear to me like what, at what cost. Um, it's this U5F9. I really like ST's site because they make it really easy with, like what you can get. Um, and it's like four megs of flash and three meg, three megs of RAM. It's like totally designed for graphics. Uh, and low power, which is really cool. Um, ultra low power profile, but advanced graphics capabilities. Um, and to go a little bit further and talk about, um, why core is not the only thing that you're wanting to look at. Like if we click into one of these specifically, there's usually a diagram and they're saying it in words, but there's this a diagram, something like this, right? So this, this is the M33 portion of this chip that, that was on the ion MPI. Um, but everything that's around here is going to be more unique to the vendor. Uh, which is also really interesting. So, um, high speed USB with a PHY integrated is really interesting in power delivery. Right. So that's puts it kind of more in the IMX, like scale of things. Um, three spy, six I squared C, totally standard. Can FD might get some people excited. Um, we don't usually use the digital cryptography stuff. Um, but it's good to know that there's analog, uh, things, including a DAC, which is great. Um, touch sensing controller, camera interface, which is really cool. Um, so all of the stuff that lives kind of around the core is actually potentially more interesting than the core itself. Um, Oh, yeah, display. So display is really neat. Mippy DSI is a like a high speed, um, display protocol. So potentially there's like phone displays and stuff that we'd be able to drive from circuit Python, which would be awesome. Um, a TFT dash LCD controller. That's like the qualia dot clock stuff. Um, so we'd be able to drive the bigger dot clock displays from a chip like this as well. And then I don't actually know what this parallel interface thing is, but I guess it's for like TFT LCD SRAM nor NAND. Um, NAND, so NAND flash would be kind of interesting. Um, NAND flash is a technology that's used for larger flash chips. Um, and it's the type of flash that's actually in like an SD card, cards have controllers, um, kind of on board with it. Um, yeah. So, so when we're talking about new chips, it's not only, well, first is it available? Like, can I get a development kit from it? If you just announced it, I have no idea when it's actually going to be available. So it's not really worth the time. Um, and then what makes it interesting, what makes it unique, uh, in the like portfolio of, um, in the portfolio of, uh, like circuit by phone supported stuff. Um, yeah. So DJ Devon 3 says, is it mippy what the Raspberry Pi uses, or is that the qualia and DSI CSI capability is nice because of the displays it can drive. Exactly. So, what was happening is like, uh, peripherals. So the things that are around the core, uh, are migrating from the Cortex-A lands that Raspberry Pi single board computers live in, and they're, they're migrating down the microcontrollers. The, the IMX RT, they sell as a crossover product, uh, where it's really trying to squeeze the, the difference between full Linux operating system stuff and like RTOS, uh, microcontroller stuff. Um, so yeah, mippy DSI is, so mippy itself is like a standard body, and then DSI is the display stuff. And then there's also CSI for cameras. Um, but I don't think it's the same thing as the display port GDI interface. I don't, I don't know what display port GDI is, but that would be neat. Um, the, the Pico DVI stuff we have is, is doing like DVI level stuff, which is like, uh, the like preceding standard to HDMI. So things that support HDMI tend to support DVI, as well. Um, yeah, so it's just feather shaped ESP chip. You can buy something like this from Adafruit too, and it actually pays for us to support you and make this cool stuff. Um, that's really the pitch I'm buying from Adafruit, is that you get to, you get to support us and we'll support you. What about the idea from Ann to have circuit by the run on the 8886 computer? Yeah, she emailed me about that, and, um, I think it's possible, it's just a matter of like the compiler. Um, it's not something that I care to work on. Um, but yeah, the easy 80 might be 8 bit, you, you still would want a 32 bit, uh, CPU. Is 8086 32 bit? I don't actually know that. I think it is. Yeah, you, you'd have a lot more trouble going to something that's not 32 bit. Uh, that's less than 32 bits. 64 bit we can do, 32 we can't. Um, okay, should we do a quick gander over, let's see, yeah, we did all this stuff. High speed USB, a note on the high speed USB front is I mentioned being able to do video, so Jeff, uh, Epler who works, uh, is also funded by Adafruit has been doing some experimentation with video over USB. Um, and I'm very excited to see how much success he can have with the IMX RT chips, uh, because it's high speed USB instead of full speed. So you get a lot more frames and a lot more pixels up, up that link, which would be cool. Um, but I think that, um, all the code that he does, um, for it should, should port over pretty well. Can it do DVI? The Raspberry Pi Pico is a little short on RAM. Can what do DVI? Oh, this, um, this, this U5, you know, I don't, I don't think so. I wonder the, the, I don't know. I don't know, but you're probably more likely to be, be able to find a chip that can convert DSI to like HDMI or display port. Like there are, um, you know, let me just look. So there's another chip, this SEM32 MP2, and I wonder if this is available now. So this is the other side of this gap, um, of this, uh, like crossover market gap. So it's a Cortex A level series chip, um, which is like more of your, um, more of your run Linux sorts of class of processors. It's in your phone, that sort of thing. Um, on the other side of that, but I was looking at the, the evaluation chip, which I guess is not the evaluation board that's not available yet. Right. So don't, don't really trust it until the evaluation boards out. Um, and maybe I have to look at the MP1, but basically the MP1 has HDMI output on it, but the chip itself doesn't do HDMI. There's a converter chip. Um, and that converter chip takes in the, essentially what the qualia displays are taken, uh, plus I, I2S for audio and then it like puts it into the link, like it encodes it into the, the HDMI link. Um, so that's the really neat bit. And you can see here like, um, these MP1s, even though they're a, a class, they only have TFT LCD and MIPI class, uh, display outputs. Um, so on this board, which I, pools and software, I think is what it is. Oh, these are other people's boards. Where do I find that? I know they have one because I looked at it before. Ah, here's the new evaluation board for it. So if we look here, it's, these are USB and can, but I don't see, I don't see HDMI on here. Does it say HDMI? USB host, four port hub, OTG high speed. See, it has a TFT panel instead of HDMI. Interesting. Maybe it alluded that it might be possible for DVI on the STM chip, but it's far too early to know for sure. Yeah. Only when you get in your hands start prototyping, you'll, you know, 80 of these six is only 16 bit. Yeah. So I guess I should, I should tell Ann that. I don't like, the circuit by that is pretty much untested under 32 bits. David asks, how much development time is on making new features or supporting new microcontroller and how much is on fixing such maintaining circuit by done? Is it 50 50? Ooh, good question. There's, I immediately thought of like two different ways of separating my brain, my work time for that. One is like how much support work do I do every day? So I usually get in, I check my email, I go through all the pull requests and issues. You know, that's an hour or two a day. And then, you know, three or four or five hours of development. But then there's also the like, are we in bug fixing mode or are we in feature mode? In terms of like the release cycle. So, you know, release cycle tends to start with feature work. And then you get to a point where you're like, okay, we got to get this out. Let's fix bugs, which is where we're at with 9.0 now. And that can last, I don't know, like four to six weeks, maybe. And then, so I think, I wouldn't say it's 50 50. I think more of the time we're spent on new stuff. That's really not that much fun to work on is like re, like when you're doing a new platform, adding support for things that you can already do, like adding spy support to a new platform is really quite boring. Because it tends to be very similar, but not exactly the same to something you've already done. Whereas like, you know, just doing the UBC work, which is the video over USB, like that's pretty exciting because that's the first time we've done it. And the nice thing about using, doing USB is that it then can apply to all of our ports, which is cool. Yeah. The DVI stuff on the, the DVI stuff on the, RP2040 is really clever. It is really clever. Okay. So I was, what I'm trying to point out is that there are chips that do, like display protocol conversions. And maybe they're all discontinued, 157D. 2024 will be the year of UBC for Circuit by then. It's very exciting. I hope it's not the main, I hope it's not just the only feature that we do in 2024. Cause I think it's just making great progress. I think it's going to be done in not too long. I, one thing I did go back, and we haven't talked about Circuit by then 2023 that much, but I did kind of look back at all of the releases that we did throughout the year. And I hadn't realized that Circuit by then eight was actually released at the start of February of 2023. I don't think nine is going to come out at the start of February, but hopefully by the end of February, we'll get nine stable as well. So I think it's interesting that we're kind of on that, that pace, which I think is, it's been good. David says, David says, I feel Jepler is getting a lot of the cool stuff. Frequently it's adding something to Circuit by then. Could be the floppy of the camera, UBC. It might be like universal video class or something for UBC. Yeah, Jeff, Jeff likes to do projects and feature work like that. Dan tends to be more interested in bug fixing, which is great. And I kind of live in the feature world too, but I think I may do a little bit more like new microcontroller bring up than Jeff does. And Jeff did all the Synthio stuff, which was amazing. And that's actually something that I was thinking we should play around with too, because we could do audio up the link as well, up the USB link. So you could like have Synthio playing music up into your computer, which I think would be neat as well. Does this not have HDMI either? I wonder if they had to discontinue those older evaluation boards because maybe they can't do HDMI that way anymore. There's no way that's all their evaluation boards. Network of Regress B could be fun. Have your web server for configuration. You know what something I want to do related to Synthio is? And maybe I can convince somebody here to take this on. I want to be able to make a system where you can have multiple Stem-A-Qt devices that just detect when you are doing like a plug here to a plug there, so that you can kind of like have patch cables and know what is plugged into what, and then use digital stuff to actually change what that means. But we have buttons and switches and sliders and things like that, and I feel like the plug this into that mechanic is something that we haven't made accessible. It's all analog-y stuff. It's not digitally stuff. Gordy said, so it would run the Synth and present it to the computer as a USB sound card. Yep, that's right. As an audio input stream. Just like, you know, the microphone on your camera. Oh, here we go. DSI to HDMI adapter board. I wonder if it's still available. Because this is June of 2016. Discovery Kits. DK2. Yes, he said that has HDMI on it. HDMI is kind of like my holy grail. To make your own, like a Commodore. Like to basically make a Commodore version of, like a circuit by thumb version of a Commodore 64. You need HDMI to do it. Like people say like, oh VGA, but it's like no. Yeah, it uses this HDMI transmitter chip that takes in 24 bits of digital RGB, which is what, which is what like quality displays are. They're not, they're only 16 bit, but the other however many bits are just set to zero. Wi-Fi, web server, yep. 315. Any other questions? Everything you plug into would need a unique ID. Yep. HDMI has licensing fees. Yeah. Yeah. So I don't know exactly how that, that would work. But like HDMI, I mean you could do, I think DisplayPort doesn't, but basically I like, I wanted to work with every TV. Yeah. I mean the other thing that makes this interesting is just a gob of RAM. But also if you look at like the IMXRTs, they have this good table. So Circuit Python currently supports up to the 1060, which has a mega SRAM. And I'm pushing more. I'm excited. I'm hopeful that she's going to make some Adafruit boards with these on it as well. This is the same chip that's on the teensy. Teensy 4s have the IMXRT 1060. So if you want to run Circuit Python on a 1060, you can. It's just on the teensy, not on the Adafruit board. And there's development boards that are available for this too. But like these, the 11 series, are pretty wild in terms of Cortex M7 and a gigahertz, two megs of SRAM, that sort of thing. 1080p DSI. I think you can do 1080p DSI. Although that thing I was just looking at was only 720p. But even then, like Circuit Python rarely goes up that large. Even if we did, we'd probably pixel double it to get that chunky. Like trying to be retro, but not exactly retro. And I'm still losing like a ton of dropped frames. That's so weird. Fritter and waste virtual MIDI instrument. Virtual fretboard MIDI instrument. Oh, nice. I was thinking you were going to have to like plug one thing into another. Anyway, so that's my digit key shopping for the day. None of these actually look very interesting. It's still pretty early in the year. I'm hopeful that, you know, next, like only six evaluation boards that are new, that are in stock. I guess we could look at ones that are not in stock. How many are there? There's 18 that are not in stock. Hey, look, Adafruit stuff. Metro RP2040. An M zero and a nucleoboard. My headphones. The other place that I haven't looked that I was trying to remember to look is there is a separate category for RF evaluation boards, which is where you would find things like ESP chips, like new ESP chips would be here too. And actually this is the category where Adafruit boards fall into as well. So I got to just kind of skip over those ones. So let's sort price again. Here's a new board from Sparkfun. Quick pocket dev board. So it's a C6, which we have support for, but no Adafruit boards for antenna evaluation boards, which I don't care about. A new CYW chip, which is kind of like what is on the PicoW. Yeah, not a whole lot interesting. Look, $900 for that one. No, that's a little above my impulse buy. Yeah, so new chips are a wildcard. Even if they're announced, you don't know when they're going to come out. I think I thought they announced more than the C6. C61. Oh, here they have peripherals again. The C series only has this USB serial J tag on it. So it's going to be pretty much the same except it has like more Wi-Fi, different Wi-Fi stuff. I thought they announced some other ones as well. Company, the 61. Some MicroPython robot, but it looks like the 61 is the latest one. The real, the other real place you want to look at is the IDF and see what they're actually adding software support for, because then, you know, they have started getting chips. Right, any other questions? Either I can go over more CircuitPython 2023 stuff, or I can go back to the debugging I was doing before I started streaming. And I'll show you, maybe as a teaser, having a long USB cable so you can actually see a board that's plugged in. So this is the Lilligo board. I'm trying to get the display working. It doesn't work. I'm trying to figure out why it doesn't work. It comes up as a CircuitPy drive, but the display doesn't show. I think the colors are right, but something's wrong with it. So that's what I was working on is the parallel display stuff. Dual concentric rotary encoders. That one is a display I owe a project specifically on the feathering I used, so very interested. I like to talk about e-mail boards, new chips, and the dynamic memory stuff. Did I say Lego? The robot, the Arduino robot thing. Oh boy, we're still talking about current in the circuit. Oh, Lilligo, yeah. Still talking about current and electrons in the YouTube chat. Okay, let's see if we can't get this working. My drop frame rate is still pretty bad. I don't know why. I think it's all up to date. Of course, I was happy it just started up. Let me see if the CLA will work alongside me. I want to do the debugging, so I'll do it when the stream ends otherwise. So what I have set up here, and the cat cam I don't think is working. It was working, and then I tried to change this as frozen. If anybody has a webcam that they like, they think Linux will actually cooperate with. This is a Logitech C920 or something, and it just has frozen up on me. It used to work pretty well. For some reason, the Linux video stack does not like it anymore, which is annoying. There's a back trace. The main cycles 1, data cycles 0. Let me pull up Logic. You can't really see it. It's way down here, and I don't think I'm going to be able to lift it. Maybe I can lift it up. I've got this big mess of wires right off screen that I ran out of USB cable for. This is an ESP board, and I've got a bunch of salier wires. Instead of hooking it up to a display, I've hooked it up to the salier to be able to see what's sending it. One of the convenient things about this display stuff is that it doesn't actually read anything from the display. You can tell CircuitPython, hey, there's a display here. It doesn't actually need to be there, but it'll still send all the signals. What I have instead is I have the salier hooked up here to do a capture. I've been trying to figure out why it doesn't work. One thing I'm seeing is I will recapture it here, and hopefully my audio will keep working and the stream won't get any worse. I've got a logic analyzer, and what it's doing is it's capturing what is being output to the parallel display, except it is still crashing really, really. It only sent these three commands before an abort was called. So something that I added, yeah, I don't know what the issue with the webcam is. I feel like I bought even a refurb one, and it still didn't work. It's just really annoying. I think it's Linux related. I should just buy the cheapest possible thing, and it'll probably work better. It's crashing. We can look. Tools, decode. So I don't think it made it as far as I was hoping it would. I can actually debug the thing that I was trying to debug. Basically seeing five clock cycles when I expect to see four of them, which I think is part of my problem. Yeah, so I'm doing a log, and it's unhappy that I'm doing a log. One thing I can do is there's a... When you're logging with Espressif, this is the log here. Maybe what I'll do is I'll just say, and data is greater than zero. Maybe that'll get me as far as I want to get. Let's just try that first. So unfortunately, because this is in the IDF that I added this logging statement, I actually have to clean and recompile every time, which is quite annoying. But that's because we've hacked together the built system for a circuit by then. Display with the logic analyzer. Oh, is it a driver issue? You suspect it's hardware-related. Oh, it's a software problem, I'm sure. So this is just me adding the parallel code to it. Now I did have a problem earlier where I was like, this pin's not working. And I was about to switch over, and I realized that I had plugged it in one pin different. I just misplugged it in, and then it worked, which is really annoying. Yeah, logic analyzers are great. If you are ever doing driver development stuff, it's just invaluable. There's one pin in the parallel bus that is like the data slash command, where if you're sending a command it's low, if it's data it's high, and I had switched it. And the only reason I found it is because I was able to look on the logic analyzer and compare it to the notes of the data sheet. And I'm like, oh, I'm backwards. And that's when the display started to turn on before that. So what we're seeing now, and I guess I was thinking about trying to get this other... I don't know, I have USB troubles if I try to do too much. But I do have an overhead cam that maybe... What I need is I just need a USB cable that is longer. Speaker. This one's my mouse. This one's my camera. So many USB cables. Okay, so we downloaded it and let's do another capture. Yeah, the confusing part here is they do have cell screen labels, which are great. But the labels are kind of between pins. So I had picked the wrong one next to the label. So let's do a new capture and see if we can get to the point where we're actually going to see the data we want. So I'm holding the reset button and starting the capture and then letting go of the reset button. It still crashed and it still crashed pretty early, unfortunately. So the other thing we can do is there's an early macro. It's trying to do some locking. It's no fun when your debug prints USB. I really don't really like doing network work. Networks are very unreliable and unpredictable, which makes it really hard. Like really not fun. There's a lot of error checking if you're doing it right. So hopefully this early log will get us the logs we want. So in the worst case, I just delete it. I don't know what context this start transaction is running in, but it could be kind of special. It seems like that early, I actually remembered what it was called because it wouldn't have compiled otherwise. So I've got two screens here. This is the logging output and then this is the build where I run make and flash. This is not the same dev board, but it's nearly the same. These ESP ones are great because they've got one that's connected to like the UART and one that's connected to native USB. So it makes it really easy to have debug logging going. Yeah, there's the pretty pin graphics. They have a script to do, I think. Any other questions? I hope to see more circuit by the 2024 posts. I'm excited to hear what people want to do. Let me know if you like this idea of being able to do plugs. I'm personally like very curious about it. Oh, third time's a charm. There we go. So now we got more to show up and we are seeing a lot more things here. We're getting a lot of output. Command cycles, data cycles. So if it's minus one, it's doing, so let's see. We should be able to see the problem that I'm thinking is the problem. So display initialization, display initialization, all of the rest of the display initialization. And then this here is the start of the update. And this is kind of annoying, but this is the command to a is the command for setting like the row bounds. And then the value. And this is how you can see how slow circuit by Thomas between the command and the value is five milliseconds. Of course, we're doing logging. So that's slowing it down. That's slowing it down a lot. But we're getting five clock signals. We're getting one, two, three, four, five. When we should only be getting, we should only be getting four clocks because it's two 16 bit values. And the 16 bit values are actually this one E is a red herring. So it's these four values that we should be sending. So there's one, one extra bite that's being sent that I think is causing the updates to go the wrong place. And I'm trying to figure out why that is because we can see here we're looking for. Yeah. So here we have our very first to a and it's data is 023 0cc. And here we're doing 23 zero, which is swapped 0cc. I'm pretty sure it's like Liz that does the pretty pin stuff. There's a script to do it. I know. I think cat me did it while too. Yeah. So this, this E1 is wrong. And then the four values here. Oh, the other thing I was going to check is the address. If the address for what I'm sending is not aligned well enough that could cause this problem to. So we're seeing zero command cycles. Command minus one, zero command cycles, zero dummy cycles. Data cycles is one. I showed up on your watch. I like that picture. So the question is, if it's one, there's this blank cycles. Number of data phase cycles is controlled by the DMA buffer length. So I wonder where that is set. So I'm not surprised that it's zero or one. You know, let's just print the pointer to the data. Like maybe, maybe it's not aligned. That's the function we're calling. Command bits command cycle. Prepare command buffer. Trans descriptor. I don't actually know where it updates the DMA init DMA link. Configure GPIO. Trigger a quick interrupt event by dummy transaction. Start transaction. See, I don't know what this LED blank cycles is. Like cycles over just a second. Yeah, hopefully not on that. I mean, it's a very weird errata, right? Like that it does one extra. If anything gets around. Walk cycles of front blank and back blank. Yeah, see, so here's interesting that it's on the P4. So like there is code in here for the P4 now. Front cycles, back cycles. One and one. Blank enable. Oh, let's just look at this. That's P4, but. Oh, interesting. It enables it if either one is one and then it subtracts one from it. You know, while I'm doing this, I should get it printing that pointer. Because it could be a, well, five is so weird still. Have a good one, DJ Devon 3. Thanks for stopping by. And Beata came over to Discord. Do I need to dive into the DMA section of the data sheet? It's so weird. Oh, you know what? I didn't clean. So I don't forget. I don't actually know where this buffer is coming from. So it is possible it's not aligned. But that shouldn't change the number. Like it shouldn't make it. I mean, I could try to just set blank cycle zero. I wonder if, you know, I had the S3 data sheet open. What I really want is the ESP. Does it have the LCD controller in it? I guess I can search. This might be a, it's March preliminary. This one's from my drive. USB. LED. Pre-release zero. Okay. Expressive. Support. Technical documents. S3. S2. Hardware design guidelines. Last time I tried to check this, it didn't work. You don't want S2 or S3. I don't know why it doesn't work. It's like not actually filtering it. That didn't work either. There's the S3 data sheet. The technical reference. Here it is. Yeah. See this is version, this is version 1.3. Oh, and it's got a nice LCD and camera controller. Here we go. Six o'clock. LCD clock. UV. Blah, blah, blah. To do. Update this. The data sheet. There is a register summary. RGB configuration mode. That's not what we want. We're in this I-8080 Moto 680 TX mode. Command dummy data. But we saw that we had zero dummy. Configure data length and cycle length. It's possible that it's off by one. Start to transmit the data. Rules must be followed when accessing internal memory via DMA. Pixel clock frequency must be less than 80 megahertz. Okay. That didn't tell me anything. Register summary. Misc register. The setup cycles in LCD non-RGB mode. No blank region. Right. Maybe that's the other thing I could try. Okay, so we compiled them and we did it. So let's take another capture before we move on. Do, do, do, do, do, do. It's like, why are we getting an extra clock? Like, we're not really who's to do it this way. Let's start with the wrong place. That was a... Yeah, see, so there's a little five there. So we are still getting the like one E, 23, zero, CC, zero. So we're still getting one extra. And our pointer address has a nice zero at the end of it. So we're not misaligned. So I think what I should do is I'm going to stop printing that. And I'm actually just got an LCD start transaction. Let's see what... It could be an errata thing. It totally could be. Like, it doesn't work if it's not there. Bus, DMA channel. Thummy cycles with zero. But I don't know where it's getting that one E. Maybe if you don't set the command, it repeats the command? Oh, you know, I wonder if that's it. Set command, command value. So there's phase cycles. Command cycles. Okay, so it is disabling. So it's saying yes, yes, yes. Thummy cycles minus one and two cycle enable. Okay, well, we set it to zero. Let's see if that changes it. I'm like not quite using this API like it's meant to. But this still seems quite weird to me. The other question I still have is, where in this code is it sending up the DMA stuff? Buy strategy. And knit DMA link. And this does it say GDMA transfer ability. Like where is it? Prepare parameter buffer. Prepare command buffer. Like, I think I might have to flip it back, even then. New panel IO. Start transaction. That's a knit link. Good night, David. Thanks for hanging out. DCD, I'm not exactly sure what error codes you're thinking of. Like there's this GDMA start, but it doesn't say DMA buffer length. That's it. Clear interrupt status. Switch devices to the swaps. Mount DMA data. Start transaction. So it's in this. Oh yeah, the alignment issue. Like if it was really like a length issue, then I wouldn't be able to see it. Or like that's common code. The DMA stuff is common code. I'd much more believe that like the parallel stuff is not quite right. Like by having that blank B to A. Hey, it's four now. It's 1E0000CC. Oh, and it's five. It's still five. I can't count. It's four in the middle. Let's do what DCD was talking about. And then we'll call it a day. Let's go back to our technical documents. And ESP32 series Arata. I don't know why. S2 Arata. I don't know why I can't get it still. The program is still crashing, and just the display is corrupted. I think the display is corrupted now. The crashing was due to, hi buzz games. Welcome. I'm glad you could stop by. I'm just about to wrap up. So if you have any final questions, ask them now. When the RGB format is used, and the clock divider is set to one, if the clock cycle of the LCD core clock before data transmission is less than or equal to two, it can result in incorrect value of the first data and the subsequent data quantity. That sounds familiar. Clock cycle of the LCD core clock before data transmission is less than or equal to two. It can result in incorrect value of the first data and the subsequent data. So that sounds like what we're hitting. Like it's starting to transmit before it's loaded the right data. Clock cycle before data transmission depends on the following factors. Clock cycle length during the VFK phase, clock cycle length during the command phase, and the dummy phase. Three variables are defined. Total pixels is cycle length, command cycle length plus dummy cycle length, if a head cycle is larger than two. Like I have no idea. Okay, so maybe that's why it's fixed in 5.1. So I wonder if we go to... Interesting. So that's maybe what the blank is doing. It's not actually running a clock. Expressive ESP IDF. What file are we in? We're in ESP LCB panel I80. So let's see if we can find... Sorry. I should have looked at the Rata. The rule of thumb, look at the Rata, if you're having weirdness. Like 5 is a very weird number. Like it's starting, it's doing a transmit and then loading the remaining 4. And then it loads the 4, so it does 4 more. Enhance the check of a valid data phase. History. Presupport on the ESP32P4. Raise, press new level functions. Reset CS on. Align before cache sync. Support skip command phase. 2022. Delay 1 microsecond before DMA start and LCD start. I was thinking... I mean that sounds like the problem. And I'm definitely not using it like I'm supposed to. Like I think their assumption is that when TXColor gets called, it gets called with 1. What is the blank forward skip command phase? So it adds one blank cycle. I wonder if... It's not... Yeah, I'm looking at slightly newer code. I'm looking at master instead of 1512. But it's pretty close. Oh, and even there there's a 1 microsecond delay. Does a blank cycle mean that it not run? Maybe a blank region when LCD sends data out. Is that... The question I have is whether it's clocked or not clocked. Unfortunately these docks aren't spectacular. Good luck, Jeff. Alright, let's wrap up. I'm going to keep working on this, but... Take a break first. Alright, thank you everyone for joining me for my first deep dive of 2024. Planned on being around, but like last week, I am at the whim of my health due to having a toddler in daycare. Thanks to FoamyGuy for filling in for me last week on that. Email CircuitPython2024 at Adafruit.com if you post. I'll re-blog it up as we get that. If you want to support me and Adafruit, you can go to Adafruit.com and purchase stuff there. If you want to join the chat channel, the Discord chat, so that we can keep chatting even though the YouTube stream is going to go away or the other streams are going to go away, you can go to the URL adafru.it.discord. Check that out. And I think that's usually all it is. So hopefully I'll see you next week. Otherwise I'll let you know. There is also a role on Discord for getting notified about what the plan is. Go on Discord as to be in the deep divers role and you'll get paying very sparingly, I promise, about what's going on with deep divers. Anyway, thanks again. It's a pleasure being here with all of you and have a great weekend.