 Hello everyone, if you're just turning into this app to the fact make sure to check the descriptions for time codes Or if you're you're on YouTube obviously that check the scrub bar. I guess is what it's called to you They may not be as detailed today, but they'll be there nonetheless We'll get going in just a little while I'm gonna let folks that get notified that we're on and and have people chime in so sit tight If you're watching this app to the fact that you can hang out or you can skip ahead Like I said the description has time codes for different things that we talk about Hey Bruce I'll say hi and and we'll let things get started here It is hot look a little sweaty. Haha. Hey PT Thanks for letting me take over your stream. Hope all those well at HQ Hot and smoky here in BC. Yeah, Bruce. It's smoky here as well. That's why it's kind of hot You can see in the cat cam. There is no cat in the room today because they're both downstairs where it's cooler But I'm trying to like Keep it cool in here without letting the smoke in I let the smoke in overnight because it got relatively cool overnight Oh, yeah, that says it's hot and smoky down here as well Yeah, it's that time of year August for us in the northern hemisphere where we get fires and smoke everywhere But yeah, they're usually in Seattle when it's hot you can just open the windows and get it cool, but When the air quality is bad, that's no good Good afternoon, Gary Z. Yeah, I don't have a Like most times I don't have a huge plan on what we're gonna work on I Didn't like get stuck into anything before I was there. That was yesterday. Yesterday. I was gotten They're getting the smoke all the way down in New Mexico. Whoo Hot in New York City, too One of the times I was in New York. I was like July It was very hot not smoky at that point though. So folks have questions I'd love to take them because I have no plan. I Have a plan to go through issues If we don't have anything else to do I'll wait just a couple more minutes and then do housekeeping and I'll try to take notes. So David is gone whoop John Franco says it's 100 plus in California, but it's a dry heat Yeah, I saw a thing that said we were I think we were supposed to hit 95 but Because of all the smoke they thought it would temper it to more like 90 It is 50% humidity and 89.7 Fahrenheit in here right now It's so hot here you can air solder without any solder iron. That's that's intense Hey, doctor. Hey mark Good afternoon Everybody's hopping in because it's two o'clock My brain's kind of fried It is Friday afternoon. So we'll see what we get done. So asks ask some questions and this will go by real quick. It'll be great Hi, Jim Hendrickson. Thanks for hopping in the discord. I Guess I should say hi to la mistra 007 Who is soldering without a soldering iron and the Roberts has a great question? I'll get into it. That's I was just thinking about that today actually But let me I'll do housekeeping first it's two o'clock I'll do housekeeping and then we'll get to your question and the Roberts And if folks have questions, feel free to queue them up. I can scroll back and take a look But first a timecode hi Linux three happy Friday All right. Hello everyone. My name is Scott and I work on circuit Python for Adafruit Adafruit is an open-source hardware and software company based out of New York City I work remote for them. So I'm in Seattle Which is why I talk about Pacific time because that is my time zone Circuit Python is a version of Python for embedded microcontrollers. So microcontrollers are really small inexpensive Computers that are typically placed on what we call boards. So here's an example This is a metro and the microcontroller is here They are like tens of megahertz generally So they're really great a great way to get started into stuff. So that is If you want to support me you can support Adafruit by going to Adafruit.com purchasing hardware there The chip shortage is hitting us a bit So if things are in stock that you're interested in please snag them We can't make any promises about when things will be in stock And that's why we don't take back quarters either because we don't we don't want people to have like their hopes up If we don't know when things are gonna be available If you want to chat with me and a lot of other folks You can check out the discord server by going to the URL adafru.it slash discord That's where one of these chats this lower middle one is coming from the live broadcast channel there This is a deep dive. It happens every week. Normally Friday is at 2 p.m. Pacific, which is now so this time every week Occasionally we shift it to Thursday if we're doing something on Friday But that's not been true for a little while We were skiing in the winter and taking Friday's off for that, but I haven't recently They go for two hours or more we'll probably hit the two-hour mark today And we got some questions here. So that's great I'm gonna go through those and that's where we'll start questions are welcome, especially today It's gonna be super casual if we run out of questions What I'll do is I'll just take a look at issues and see if there's anything I can do real quick That's my plan. I don't have to talk about the cat because the cat is not in here So I'm sorry the cat cam is gonna be a shredder cam Shredder cam today. Anyway, okay, so That is that and let me take another timecode and we'll answer Andy Roberts's question and I think I might have missed one on live broadcast Let me say hello to folks first though I Think that Keithy Hello, Netherkitta is new and Dexter starboard. Hello folks. Thanks for hopping in Okay, timecode time The question is what is the status or strategy slash plan of an RTOS or real-time executive? So I assume this is the talking about putting an RTOS underneath circuit Python For those folks who don't know an RTOS is a real-time operating system and There tends to be kind of much smaller than what you would think of like Windows or Linux But their goal is to execute stuff kind of a very detailed time scales So if you have a thing that you want to happen every tenth of a second You are guaranteed or or strongly guaranteed that it will happen every tenth of a second So that's kind of what an RTOS is and they tend to run on microcontrollers because the kind of first uses of microcontrollers were all about timing sensitive tasks a Computer like a Linux computer is like not as great for timing sensitive stuff. So it would talk to a microcontroller to do that We do have real-time operating systems underneath circuit Python if the vendor uses that so We have one for ESPs, which is the free RTOS is used by the ESP IDF So we do run within that and then The nrf port also has what is known as a soft device, which is kind of like a little bit of a hybrid There's not necessarily a full RTOS, but it does have like some timing constraints that it manages on its own I This is something I think I would like to do at some point And but the problem is is that like one of the more popular ones right now is called Zephyr And it's just a monster of a project. Oh and I To need from Switzerland hot here tonight on twitch said hello as well Yeah, so I think the challenge with The challenge with an RTOS is that some of the more popular ones are really big and And integrating two big projects can be really Really tricky So I would go towards more like a Ideally a smaller real-time operating system in order to just give us that like kernel of like the tools for concurrency In circuit Python right now. We kind of fake concurrency with our notion of background tasks But really like we are kind of running up against the How helpful that is so I don't know I think I would love to find a Modern small RTOS to use that's liberally licensed. It's not GPL One thing I just found is chopsticks. I think Yeah, I was just looking it up and you can't see it else which is just a sec Hi, Andrew Reed Here so that I just did I forget what I was looking at that was talking about this But here's an example. It's a GNU project So it is GPL 3 which I wouldn't necessarily want to integrate because micro Python and circuit Python are MIT Which are are live more liberal licenses But this is kind of what I was thinking like they say it's it's a real-time thread at library for these things While most RTOS has come with many features drivers protocol stacks chopsticks just offers a simple Real-time thread library. So like kind of that is the way that I would go but the other thing to consider is that like The reason that you need threading is usually protocol stacks and networking And so that's why we see like free RTOS used on the ESP and then like in Zephyr We don't need the how like the driver side But like they have a Bluetooth stack and they have like IP stacks as well. So I Don't know the update is is like we have no update Andy Robert says I would like to have something like free RTOS so that a proper LoRa WAN stack could be supported transparent to the user If you have experience in free RTOS, I think if somebody came along and said like hey, I'd like to run I would like to use free RTOS for Circuit Python and you have the skills like we I think we would be open to that I think part of the challenge is that like I don't have the that skill. I don't have that experience with free RTOS and I Mean I got a little bit from the IDF, but If somebody who had more experience with an RTOS came along and said like here. Let me do that for you like Yeah, I would I would I Would be open to that. I think we we would be accepting of it I just don't think we have necessarily the experience to do it Okay, first question down. Hopefully that answer that if you have follow-ups, I'm happy that answer We're gonna take another time codes. So I'm doing time codes myself John Franco asks what was the first computer language that you learned and what is your all-time favorite? Good question So I I learned programming Kind of from the website first so I I started in like 2002 and What I wanted was like a dynamic web page and at the time the way to do that or one of the ways to do that was through PHP and my sequel So I learned I learned HTML first, but I don't consider that a programming language And James points out ti basic anyone and you know, I I hadn't counted that I think I learned that after PHP, but I did actually do like a a game on a ti calculator at one point And I'm sure it's lost now, which makes me a little sad, but Whatever So I did do that. So PHP is what I considered to be my first language because That's where I learned like if statements of for loops and I even have I showed this before I have the book that I learned from and then they took about like I Did that and then I did like I had forgotten about this period Like there's a two-year gap before I started doing Python and I know this because I had source forage projects So you can actually find these old source forage projects that I started with And we could do that if people are interested I can pull those up, but It was about two years between PHP and Python and then I in that period I did a project called Dynamic Flash Forum, which was a flash front end to a PHP MySQL stuff To do like PHP BB style forum software, which you know Flash was flash was the the thing at that point, but it's it's gone now Not really a thing anymore, but flash was cool at one point And then the second part of the question is what is my all-time favorite? I think I Mean this won't be surprising. I think Python is my favorite like I don't do Large projects of Python, but Python is just always the place to start and That's really valuable. So I think I think Python is my all-time favorite language It's also great because like it it ramps up really well, which is great, too So no surprise there. I've known like I've done Python since 2004 and like it's always kind of been the project that I start with The project there are the language that I start with the language that I Prototype in the language I explore and experiment with and that's like Leaves it a large place in my heart All right, okay, I didn't miss any discord questions Next that we have one from Lamistra 007 What are the arguments for switching to circuit Python versus the usual Arduino IDE and arguments against? Hello LinkedIn user. Sorry. You were late. No problem for some reason. It's not showing me your name LinkedIn user, but we'll call you LinkedIn user and it'll be fine um Okay, so Like I was just saying about Python circuit Python has a strength as well as like Circuit Python when you're just starting a project start with circuit Python for embedded stuff Because Python strength is that it will Tell you really quickly. You'll either complete your project really fast or you'll figure out what constraints you have within circuit Python or your hardware I've heard that like people really like micro Python which circuit Python is based on because they can like Test everything really quickly So the the argument for circuit Python is that it's just like way quicker to get started We kind of like in terms of drivers, I think we're basically have parity now So like you're not going to have like a driver argument What you might find though is if you start with circuit Python, and it's just too slow If it's too slow The first step is hop on the discord show people your code and there's more often than not ways to change your Python code So it is fast enough, but there is a chance that Because Python executes more slowly than C, which is what Arduino is There's a chance that you would have to move to our Arduino after that but If you started from Arduino from the get-go you get you would Have a larger performance window although the the same Programming mistakes you would cause you do you would write in Python to cause it to be to be really slow are totally possible In C as well in our Dino So it doesn't really save you that and the cost to iterate on our Dino is a lot of us higher So it's like slower to code with Arduino So I say start with circuit Python It's going to get you going and you're going to figure out a lot about the problems that you're having with what you're trying to do And then if you have to if you if you really need more RAM You need more performance. Our three nose is something that you can go to later But yeah, that's what I say start with circuit Python and of course try it as well Hello, Andrew Reed. Hey, Johnny de Bergdahl and I go Hi James foe No waiting for compiling no needing to install complex drivers Foley guy points out in the chat for why do you circuit Python? Doctor says I haven't done any real Python yet, but really enjoying circuit Python. So it's important to know that like Circuit Python is Kind of real Python like it. I don't think you need to actually caveat it the core things about a language like if statements and for loops and Classes and functions all of those are the same. So I think in terms of the like core Python language You're doing that with circuit Python Micah says with Arduino, you mean C++ instead of Python, right? Yeah, I was saying C, but yeah, I Think I might have mixed that up Okay, let me look at discord Okay, next question This is the last question. I think I have queued up so folks have more questions. Please ask away I like answering questions so John Franco is asking how many circuit Python boards have has a different ever made Do you mean like how many individual boards or how many boards have we designed because how many boards we designed? is Kind of like do you just go to circuit python.org slash downloads and that'll show you all the designs that we have I Kind of assumed that we have crossed the like a million sold, but maybe not We might be in the hundreds of thousands, but I know that we've sold like Easily tens of thousands I don't know the exact numbers, but I yeah I would say we're easily over a hundred thousand boards that run circuit Python I'm gonna skip ahead to this question from doctor that's what what is my favorite board I don't have a single favorite because I do different things with it if I'm developing for circuit Python something with a Something with a SWD port is a is it must So yeah, okay, we have more questions. So thank you for those Gary's got a question here Gary asks, how do we as a hobbyist debug circuit Python other than a bunch of print statements? so Do you mean? C code of circuit Python or Python code in To debug Because those are two very different things I I do a lot of print debugging. So that's kind of where I start There has been some work in upstream micro Python to support set trace. Yeah, Gary says Python so print debugging is Is like I've been doing programming for over ten years and that's still my go-to I did listen to a talk from Nina Zakarenko on real Python about like doing debugging with a debugger But I think it requires Like if we go to micro Python, I feel like Set traces like the somebody told me like PDB is basically like based on set trace Um Had means for accessing locals when micro Python is built with set trace so Yeah, it's early days. There's not really like a There's not a great answer and it's largely something that like Belongs in micro Python. Of course we could add it But there is like print statements are just incredibly Useful in my opinion and the reason that I the other reason I like print debugging is it's kind of universal like Regardless of what programming language you're doing like you can Print debug So I think it's a reasonable skill to rely on It's kind of like where where you start but it sounds like there's just not the mechanics in micro Python yet To really do more detailed debugging Dr. The cat is downstairs because it's too hot in here. So Dexter said how about that Star Roids game If folks haven't seen this, this is really cool. Let me pull it up and so here's Todd bot on Twitter and I think it's on here. Yeah, so here's this awesome Star Roids The video and I think you So this is a clone of asteroids by Todd bot who's on the discord. I don't know if he's around It's running on four different boards Gdb is the way to go if If you want to do core stuff and I'm happy to help with that Pie badge is way easier to play than macro pad or anything but the smallest way It's not asteroids. It's Star Roids and Todd is in the thing. So props to Todd. Thanks, everybody Could you freeze a circuit pipeline image and install it via say ESP tool dot pie Like including pipeline code probably if you just read it off Oh There's another video. Oh, yeah, this is the one that shows you on all the different devices it works on That's so cool, I'm it took so long to get display IO to the point that like people really liked it It was one of those things where it was like so much code and a huge lift And then like I got sick of it and I had them. I wanted to move on to something else So, yeah, it's a lot of other people have followed up with me about it Or followed up since then for display IO stuff and really made it What I was imagining when I started working on it And I would love to see this is another reason I would love to do Raspberry Pi Circuit Python so that like Star Roids could end up on your TV Right, like there's no reason that it couldn't be on your TV as well. I think that would be awesome Okay, so Let me see Paul says I mostly said a global Boolean my debug and all the debug printing statements with the if my debug in front Yes, we can talk about this Another kid it says I still don't understand in Python why curly braces needed to be removed versus using spaces Even if you're working in a language that uses curly braces people expect you to indent them like in any professional setting you're gonna still indent and so I'm like if you're gonna still indent just use Spaces now I do recommend for folks new to Python get an editor that shows you characters for white space And that makes it easier to make sure you're not mixing tabs and spaces Because that can be a pain but honestly indentations the way to go because you're gonna do it anyway Doctors asking Todd but how to make suggestions for Star Roids. All right, Keithy has a question here Keithy asks actually that prompts a question. Are you a developer that needs new challenges constantly? Does that drive the new projects like the balance board? Dexter Starboard asks four spaces or two Whatever the existing file does It's a cop-out. I Very I don't knew one or the other consistently and Actually that prompts a question. Do I need new challenges constantly? Does that drive new projects like the balance board? 100% you know how embedded FM always asks like finish one project or start a dozen like I'm definitely in the start of dozen camp Definitely, but I've been really lucky in that so like my personal projects don't always make a lot of progress But I am actually able to finish things if if somebody's paying me to finish them So I do I do better having somebody asking or Kind of wanting me to to finish things I think part of it is that I really like to learn so I Find it easier to work on things or topics that I haven't learned about before And that's kind of why we're even getting myself like I'm getting myself into like these hobby projects that are more about like Broadband policy and government and stuff like that Because it's a chance for me to learn new stuff around that as well I just like I think a lot of this is just driven by the desire to learn Which is why a lot of my projects I get I get over some hump and I haven't finished it, but I've learned everything that I would need to know to finish it And then that's when I like get distracted and work on something else If this balance board wasn't so big I would like maybe do it on the stream, but it's kind of a pain to So poke at I'm really sad like it maybe I Might have my we moat around here somewhere, but I'm pretty sure that like Oh for those of you don't know like a we balance board is like a a big scale. It's got four Load cells in the quarters, and I want to use it to measure stuff and There's a on the board, which I've already clipped out There's the this is the battery board from the balance board It's got ur tx and rx there, and I thought oh that would be great like I could just talk to that But I haven't figured out how yet unfortunately, and I'm pretty sure that the we moat Also exposes tx and rx, so there's got to be a way. I just haven't figured out what it is yet Which is frustrating because I would really like to use it. I have another balance board Underneath the litter box already. That's what I want to do is I want to weigh the cats I Consistently with that, so Keithy says have you gotten a signal from the board at all over the urt? I have not I have not but I have found a paper where people say they've figured it out, and I I did some digging Wednesday about it and like the the module Definitely has like a debug urt mode Yeah, I think it does so Keithy says give me a moment to find my we vote to see if I it's got the urt expose Let me show you what I found so on spark fun We moat Like this is like from 2006 or something But there's this tutorial. I think Nate did it. Yeah, just by Nate from 2006 it takes a we moat and it tears it down and There's this picture Here That there's this picture here, and it's like hey like these two test points are our clock and data for an ice-cream sea line And I'm like, okay, that's great But look at these test points this one and this one test test point 103 and 104 I Bet you those are you arts and you will want to know why because if you look back up Into the case See here, there's two screw spots, and then there's these two holes. These two holes are actually Like accessible from the battery compartment exactly like the holes on the balance board So it's got to be the urt like the module itself is like pretty basic it's an 8051 I found a dump of the firmware, but I couldn't figure out what the firmware meant So, yeah, I don't it's not that complicated But yeah, so if you have a we-mote, I suspect that these two are tx and rx in some form And it's probably the same so the balance board is essentially the guts of a we-mote with the accessory for the weighing built-in But yeah, I haven't gotten a signal from it at all, but I suspect that Right Greg says you are or SWD well, it's an yeah It's an 8051 so it's gonna be you are and like it's a it's a broad come Like even here you can see that it's a it's a broad come 2042 on this chip here and that is the The balance board has a module, but it's got the same chip in it. I think Did the we balance board work before will it flashes like it should But no, I haven't actually tried it on Bluetooth. I did buy it from Goodwill or not goodwill, but RePC in Seattle here So I I didn't actually try it Over Bluetooth, which maybe I should have I have a second one that I haven't messed with yet But I got really excited when I saw the labeled uR pins As I think most of us would So yeah, if you don't have a balance board, but you do have a we-mote that you want to poke at Then let me know. I like labeled uR pins. I know right you know the thing I haven't tried yet I haven't tried swapping them That's kind of the next thing when I like get a chance to work on it I'm just gonna swap TX and RX because I feel like that's always the problem Hi, unexpected maker. Hi, Michael I Bet you that's it. I Bet you I haven't swapped, but you know Ah, all right. I think I'm caught up on Questions if folks have more questions, let me know There are three pads exposed on that we mode Interesting there's two by the screws and then one Further down But this one doesn't have that interesting only two on the standard slash original white ones Ooh Dexter Dexter Sarbar asks, what was the biggest change in 7.0? Take a timecode because it's been a while since I have That's a great question the biggest change so Keith E says I was working on getting the balance board to be an IOT scale So I have a bunch of wee stuff at my desk Yeah, poke at the uR and see if you can't get it to respond, please Like I found a couple people in the Arduino forums that are like Trying to figure that also want to know how to do it and then I found documentation that somebody figured out how to do it And I've emailed them, but they haven't got back to me What's the biggest change in 7.0 so 7.0 is really a chance for us to change things So so that's the reason that we do it But I also have definitely a recency bias like Dan fixing audio playback on the RP2040 is a huge deal Because I it sounds a lot better. I think so that's really cool And oh look at this. I haven't even read the release notes But when you guys says that the two that come to mind for me are our max sizes removed for display Oh group and gamepad going away in favor of keypad um Todd Todd bot points out the Disableable USB devices. Yeah configurable USB stuff That Dan Dan worked on that the max size thing. I think I Let's see support the development workflow over BLE, so that's included That's what I've been working on camera support on ESP 32 s2. That's from Jeff He also had QR IO for QR decoding keypad from Dan Runtime customization of the USB devices from Dan We did the huge merge from Micro Python, which I did largely Probably yeah, Bruce S points that out as well Custom hit is available I'm waiting for somebody to see To figure out the custom hit descriptor for plugging into the Nintendo switch I know somebody was working on that when the RP 2040 first came out and we couldn't do it So that would be a challenge for anybody who wants to do that Hi Dave Let's run down the rest of this while we're at it Underscore pixel buff is now a to fruit underscore pixel buff that way it can match the the library The color wheel routine was moved to rainbow IO There's now supervisor tix ms to allow easier timekeeping. It does roll over so be aware of that I think Jeff has a tick library to make that easier to work with Simplifications so the RGB status LED codes I did that and that's the like minimal blinking A clocking fix for a few samples of the RP 2040 Rework of vector IO and some of its API's vector shape is no longer needed for user code There's now a get pass module and a trace back module Catney did the work to do board LED on everything that has a single LED Pulse out no longer needs to get a PWM out passed into it And we also have supervisor dot get previous trace back Ha ha ask Patrick Gerber W asks, what is the rough schedule for the final release? I'll tell you how this is gonna work You go to issues and you click milestones and you click 7.0 And you say 26 open issues So we'll release when this list gets to zero Which I have been working on so I have a pull request out for this move one wire to one wire IO And I should check on that There's definitely been some ESP 32 s2 weirdness that I know unexpected maker was hitting as well So two deep dyes and it's done you think I get work done on deep dyes Not that efficient today's like it's been really hot and smoky yesterday and today so like They're just not gonna be as productive as normal cuz it's just Not not that wasn't in here Today's a melt day like doctor it says yeah totally One thing I did I barbecued earlier in the week and I was going through longer-term issues So that was That's really helpful too There's some old issues that are just like have been fixed or no are or are no longer relevant that we can close to So we're actually like I'm complaining about this 26 open here, but like we're actually down to 425 So we're down to smidge overall, which is good Patrick says I'm running the portable AC and the air purifier. Well, you're lucky you have portable AC We don't have any AC in this house But yeah, so the ESP 32 s2 stuff is pretty rough And then yesterday yesterday. I was actually pretty productive in terms of focus not in terms of actually fixing anything Yesterday was focused on the issue with the IMX RT port, which is the that teensy It just doesn't work on USB right now So there's some USB problems with it and I looked and looked and it was like really into it yesterday and just configured out What I did is I ordered Beagle 480 which is a Beagle USB sniffer, but for high-speed. So I'm gonna get to it next week when I get that Yeah, luckily I don't think this folks gonna last too long knock on wood All right, I'm gonna take another time code So I'm gonna answer this other question Speaking of status LED I noticed the Pi portal matrix portal and the ESP Wi-Fi manager have a neopixel status LED for Wi-Fi Curious why the Wi-Fi shared bindings library doesn't do status LED one thing that We were really trying to do with the the status LED rework is to to minimally use it because it requires because it requires power and Because we had done all that low power work It didn't make sense to get you in a state where like we were doing a lot of aggressive stuff with the LED So by leaving it up to user code like the Wi-Fi manager we can incorporate things that like Managed turning it off when powers is off So I think I think the user codes the right place to do it Maybe we need to rethink that as we get into wireless workflows Like there's certainly a case where like blinking when BLE is in pairing mode or something might be really useful And if we have kind of an equivalent for Wi-Fi, maybe maybe we'll get there just for like very basic Basic stuff, but generally I think I Generally it's better to be quiet on the status LED Certainly that you like we had that piece of code that was doing like line numbers and stuff over the LED And that was never useful like it was a response for me knowing that like Finding the error code stuff is really hard for people And so I was like, oh, like that's why I spent all that time on blinking the line number But the reality is is that it's not useful enough. It's just like It's just The first thing you tell somebody if they tell you how many flashes it is it's just like just connected to its over serial like that's gonna be Way way more better So yeah, unexpected maker says I definitely appreciate having the RGB LED touchless by a circuit Python It's a terror for battery projects totally and the nice thing about what what I realized when I was doing that We work for the RGB LED is like the way that we out used to have to do it internally Like we we'd initialize it and then we kind of like have to hand it off to user code and back and like what I realized With the new way we do it is like we only use it when user code is not running Which means we can actually initialize it use it and then de-initialize it and then we don't have to worry about this like complicated sharing logic that we had So I was really happy with with that Making it simpler The mystery of 007 says I hope one day circuit Python and electronics get so good that if you query a capability that doesn't exist It will 3d print it at runtime and add it to your project 3d printing has a lot of long way to go for different materials. I would say in order to be very versatile And I think like There's always room always room for improvement in terms of software as well Well, let me print you an IR distance sensor. I Mean that would be cool. Then you'd be able to like basically make your own chips, which would be cool Hey, yeah, Todd got says flash all 128 LEDs full bright red is battery for batteries low Right hi hands lab a lot of time thinking about a new contract. It looks like I'll be working on it. Awesome I sounds like you're excited. That's cool Okay, let's take a look at issues And let's just see I think most of these are assigned so if I hit a signee and then assigned to nobody Crash on autoreload on ESP 32 s2 include board ID. I know somebody's working on this PWM generated tones may be off-frequency at higher frequencies Yeah, cuz I saw this PWM generated tones, maybe That's something it's audio so like Dan's been doing all the audio stuff recently But maybe I could take a look at that and then this hard crash on iSquared C display I'm kind of like avoiding the ESP 32 s2 actually Jess been doing a lot of that work and I know he took a look at another issue. I Do have some BLE work, but like I I don't want to pick up anything That's gonna require a ton of focus. So I just don't have it today Let's check on my pull request increase TX power requires a review Anybody has review privileges and wants to review me changing Numbers do that merge it for me I meant to look at the boundary feel like I had signed it to somebody else Move one wire to one wire IO. So this is another kind of It's not breaking anything yet, but it will break kind of in the future. So We were looking at space for We were looking at space on the Proxivity Trinkie based on one of the some of the other Did I fix my brain is gone I fixed I fixed PWM reset. So if you have a board, it was like the PPU M4 where It doesn't have pulse IO enabled I need 5147 reviewed is really simple It's just changing the TX power of the broadcast for the circuit Python BLE workflow It's raising it up a little bit because Antonio was testing it and he couldn't like even put it like directly on there On his device, so it needed a little bit more All right, so I fixed this and there's two more in progress But yeah, so I fixed the pulse stuff and then there was another sandy 51 thing that I fixed that I can't remember See So oh, so the other one was Disabled BLE workflow eight days ago and then oh The other one hasn't been merged yet switch sandy ticks to the periodic event So there was an issue that said if I use pulse in on samd21 I can't like auto reload no longer works And that that was because on the sandy 21 we were kind of like mixing tick tracking So ticks are a thing that you can turn on internally and it will call This supervisor tick code every 124th of a second and that's used so when you write when a file system right happens we count down a Delay because we don't want to do it on absolutely every right in case there's another one coming But there were some fixes to pulse in that was stopping ticks which meant that auto reload didn't work So I fixed that and with that I was changing I changed the sizes a bit and so That got me looking at bus IO and bus IO has one wire in it Which is useful but not as useful as the other three things in bus IO So I was like oh we should move one wire out So in eight so in seven here, we'll have it in three places, but in eight it will only be in one wire IO And that will allow us for new boards to just turn it off or for boards where it's not useful at all Then we'd be able to just turn it off So that's like sure what we try to do with circuit Python is have like One release that has the new API and the old API You can merge markets fine Don't be scared of the merge button I merged lots of stuff that probably shouldn't be merged You can always fix it later. So yeah, this is coming This is actually a pretty great change because we had a lot of duplication So this is moving it from it was in bit bang IO and bus IO and now it's just moving to one wire IO So that'll be really nice And it's it's adding less code than it is removing so that's always good Um, okay, so I'm doing that For me guy did boundary fill Come code format version checking. I'm gonna review it micro dives on there Said looks too good to me But then Jeff had to change it Let's just take a peek at this right now check on crustify version If version is less than that is there a scenario where that doesn't work? Like that's a string comparison It's probably fine So this will all be the same And oh it will break Once Once this first digit is more than two digits More than one digit I think it's fine. I'm willing to risk it We can always fix it later So we'll get this version Patrick says this is always interesting to hear dev explain What do you typically look for when doing a pr review? Let me take a timecode because that's a great So I don't consider so so the question is uh, what do you typically look for when doing a pr review? So I don't consider myself a great reviewer. Um I think that Some things that Good reviewers will do is they'll actually like try to understand the code as if they It was theirs, but I um I think I struggle with that a little bit like if something simple like Then it's pretty straightforward to see um And like I guess here what I was like making sure that the logic was actually Correct So I'll glance at it, but I won't I think a lot of people who are detail oriented may kind of Hold off on doing it the kind of like me encouraging mark to just merge it is um Like the nice thing about it or any other source control is that you can always undo stuff You can always uh fix stuff as well Um, so like this is like yeah, it's not perfect like yeah, you should parse it and like under it But parsing version numbers is really complicated Especially when you don't know what scheme they're using or their scheme is not consistent So like is this perfect? No, is it adequate? Sure um so I take a I'll take a look at all the files usually unless it's like a giant merge and then I won't um The thing that I am really a stickler about Then the reason that I do reviews is uh or the reason that The thing that I look in most detail for reviews is api changes And what that means in circuit python is it means, um Um Public api so so apis that impact or that are available into python um those and in Circuit python world all of that code lives in shared bindings. So The first place that I will start is I will look in shared bindings And I will see How the apis are changing because those are the things that are Harder to change right so so I kind of when I do reviews I'm prioritizing the things that are hardest to change so The Apis are one of those apis are one of the things that are hardest to change So those are the things that I'll think about the most um And it's important to kind of have a gauge for like what you consider public and what you Don't consider public. So what I mean by that is, um Um What apis am I okay changing on a major vision boundary like 7 0 those are the public apis Those are the ones that we feel like we have to be careful about And then what are the apis that we have internally? Oh what or um Those are usually characterized by like we have control over all the code that uses that particular api Therefore if we want to change it we change all the code and we're fine um So Yeah, I think uh, generally that's really what I'm looking for. Um I look like for logic and it if if it's a driver and people are adding things I'll look at the comments like sometimes people don't think about like what the What the like read the docs will look like, um I am too probably too much of a stickler for like how you document properties Um, which I've definitely bugged some people about But yeah, I uh, I hope that answers it I I generally fall on the like I'm less detail oriented and I merge things that at the risk of not Not having or not That I shouldn't have merged it. I think generally if you're too cautious, you just end up with things piling up And a lot of the testing that we do in circuit python relies on people trying it. Um, so There's an expectation that things will have to be, um fixed up as well, um Yes, this reset timer separate from pwmio is broken One failing check. Let's see. Oh, this is because it needs to be merged So we'll get we'll kick this we'll do a merge and then push it Ha ha ha ha That expectation that there will need to be fixed as later is good to know about I mean, I think that's true for all coding, but that's certainly what I try to push Um, yeah, I tried to rerun it because I thought I fixed this later, but we can do this right now. That's super easy Mark says I do a lot of walkthrough of it in my head because I won't always be able to set up a test Depends on how complicated the PR is. Yeah, and I'm really a terrible person When it comes to testing I rarely I don't often test Which is really bad and like a little more as the opposite. Like she's very good at testing Like I'm I I'm on the worst side of that spectrum for sure I'd rather I'd rather merge it and then if it fails, I'll fix it I'll test my own stuff, but for other things I'll I'll usually probably just look Okay, next up That's a to do we can do that on the stream. I'll do that Get that Get that build going But first I'm gonna answer James foe says is there any performance to be gained from having many instructions on one line opposed to spreading things out vertically which most seem to do Uh, not usually no Um, it depends exactly on what the contents of those lines are but Um, as christian Is or as la mistra 007 says Is many instructions on the same line is proven to cause early dementia Generally you want Before you think about optimizing performance, you should prioritize optimizing readability Uh, because the reality is that and this is why circuit python is kind of like Popular as well is that uh or python in general is that Python prioritizes the developer experience over performance right, so like it's actually more costly for a company to maintain Unreadable code than it is to buy more expensive hardware that can run maintainable code faster You know what I mean? Like there's a performance trade-off to running python, but people would rather Buy beefier hardware to run python than pay people to maintain highly optimized code um, so yeah, there's definitely like Optimized readability and if you ever do if you ever do performance work Make sure that you measure it This is like there's this notion in computer science called premature optimization, which basically means You are making decisions and trade-offs uh For in the name of performance without measuring it and that risks making bad choices meaning writing code that is You could write code that's actually slower than the the other thing But also that is like less maintainable. So if you do get into a situation Where you are doing performance work? Make sure that you are instrumenting it first Right make sure that if you if you need a function to run faster Make sure that you're measuring how fast it runs before you ever try to optimize it There's there and the other thing with premature optimization is that it's likely that you don't actually know what the cause is so like If if you measure first and then change it and you'll discover that it doesn't actually help that much Um, then you could like Then you'll have that feedback and you and you won't spend a lot of time doing something that doesn't have the impact that you want Linux 30 says pilot and black my code might not work, but it will look pretty I mean Yes, and there is like some basic analysis about like variables That can catch variable type of names So like there is a little bit of stuff That's right Christian points out the reason line breaks by themselves don't matter is that it's all compiled to the same bytecode Yeah, assuming you took the same exact code and just like added semicolons to make it on the same line It's going to be exactly the same But if you have like a variable that you saved it in that you didn't before there's a slight chance that it changes performance But again measure it before you ever make that tradeoff Um back to reviews I just want to Handslabs says I worked at a place that had a really in-depth review process And you could spend the time to understand it not only to review the code, but so everyone was familiar with the whole system Yeah Um This is one thing I was thinking about I sit on the zephyr committee And let's just look at like this polar bus I don't know what it is, but look at this This is a a request for comment Uh from april for this poll request and it's got One two three four five six seven eight nine ten people listed on reviewers Three have commented three approved and four who haven't interacted with it They have 379 open poll requests. Let's look at this new one This new one. It's got four reviewers listed Like I understand I understand that reviews are important and I agree with that um And I have not worked on safety critical systems. So that is my bias but That's a lot of reviews That's that's like if we think our review load is bad in circuit python Imagine having each were each thing reviewed by four people Like That is a lot This thing has 30 comments. Look at that one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen And at least two approving reviewers are required Like That just would frustrate me to no end um Yeah, I just I think one reviewer like one reviewer is fine Um, it doesn't have to be perfect. We could always fix it later Um, if anybody is using circuit python for critical code, you are responsible for making sure that it fits The bar that you need. I am not doing that Pierre says lots of reviewers equals too many opinions equals takes forever to get things in Yeah, yeah, I mean like Zephyr is very consensus driven They spend a lot of weeks talking about topics and like I think I buy is too far the other way So it's good to have other people like balance me out but like that's a lot in google When I was at google it was you had to have one reviewer and you might need a second reviewer if um The first reviewer didn't have like they had this notion of code owners So if your change touches a lot of different places in the code base, you may need multiple and maybe that's what this is I don't know um And then they also have a constraint about like making sure that you have like a Readability which is like a reviewer that knows the programming language that you're in if you yourself do not have readability Um, and that's just a style consistent Todd bot's answering questions about starroids Frame rate is highly dependent on the number of colors in the sprite bmp's So they have a pilot person. Yeah, basically I I remember the go the go readability thing is essentially run go format though So like they're definitely moving to this world where it's like you let the computer world about the computer worry about formatting And that actually makes for better code reviews as well. This is why we have black and pilot is like Coder viewers can fall into traps of saying this needs to be indented that like this this comma needs a space after it Like that sort of stuff and like that's all things that computers can do like there The if if as a reviewer you come into a code review and say I got to figure out all of the like nitpicks things All of the formatting things like you're definitely not going to look at like the logic Or the apis or like the higher level things at all. So like having black and pilot are like Very very useful The so going back to what you should do as a viewer Do not tell somebody to put a space somewhere Like that's the job of pilot. That's not your job Your job is to to look for bugs and and to make sure that everything is explained well Both in the like api itself and the documentation for it. There was so We're going we're circling around two topics. It's just great There's one in there um La mischa 007 says circuit python is compiled and not just interpreted So it is interpreted Um, but there is a process that ends up in bytecode. So even interpreters usually have an intermediate representation um So it's not compiled as in like gcc runs it. Um it's it's Circuit python will slurp in the human readable version of the code parse it and then structure it into bytecode, which is um data structures that the circuit python vm knows how to run But are not attached to like what the cpu knows knows how to run There's actually like a big loop in c that like reads a bytecode and figures out like Big switch statement that says like okay, if it's this bytecode, this is the code path we're doing in c Um Dave asks could optimizing corrupt your code Optimizing I don't know corrupt. I think in the sense of like Make it not work Yeah, I think if you're so concerned about performance that you change it in a way that actually causes it to break It's totally possible Corruption in the terms of like file system corruption. I don't think so Like ideally python circuit by then doesn't allow you to do that. Of course, if you're doing file manipulation, then maybe um Yeah, you could break it you could break your code accidentally If you're trying too hard to optimize Um, yeah christian says compiled on import of the device And mic mic causer says this is why we have tests Yes, so this is this is another thing i'm bad at It's hard to do on hardware um It says this is why we have tests Um, i'm bad about writing tests it it google they require you to have unit tests for every all the code that you write Now so much of the code that I write interfaces with like hardware registers that that's trickier to do it's not impossible Um, but but it is Tough And then pier asks, uh, where do hardware drivers written in c fit in like keymap? um In terms of I think you're talking about in terms of like compiled versus uh time coding again, um They are not Done on import so so hardware drivers written in c in the circuit python repo They get compiled along with the rest of circuit python And then there's a way for you to basically call that c function From the vm so the vm will be running around in a loop and it will see like oh, we're going to do a function call And it will look it up and say like oh, yeah, like, uh, I found the name of that function And the thing that it points to is a native function not a bytecode function It's like c compiled in the core stuff and so what it will do is from the vm it will say like okay, let me pass the arguments in And then it so in circuit python the vm Does passes the arguments into the functions that are defined in shared bindings the shared bindings functions c functions convert python objects to c objects generally And then call the implementation that is on a like purport basis in common how um, and then the reverse is like the c code runs it finishes it returns A c like object or or a micropython object depending on what it is Shared bindings will then convert that return to a python object if it wasn't already And then that gets handed back to the vm and the vm says like okay, that's my return value and let me keep running bytecode from there um So yeah, maybe hopefully that kind of made sense Neurodox says regression test saves lives as in hours of work. So if folks have um, a good c level unit test framework, I think we should actually start having uh C level unit tests in circuit python. I think that would actually help a lot so Micro python has really good python level tests, but they don't have c level tests And so I think it would actually be helpful If if somebody's a testing guru and wants to help Establish something like I'm pretty good at writing tests if I have example tests to like copy and paste um, but like setting up testing infrastructure is like a bigger task and so if anybody has a Has done embedded c unit testing before um Then uh That would be cool to get set up in circuit python And and the micro python folks may be interested as well Um, all right. Pierre, I see you another question. Let me timecode it And I have that build issue to fix too Um, Pierre says make sense. Uh, is it possible to add your own C code drivers? Uh, technically yes Um, although I don't recommend it. Um, uh Actually, they say they specified not in the core um, so I When we updated circuit python to a newer version of micro python one of the things that we got was the ability to do native modules Which is a way to wrap Uh compiled like arm code Um that gcc is generated in an mpy file. I think it still ends up as an mpy file so There is a way using like the native emitter and stuff um To write c code that is compiled into a separate file that can be loaded by Micro python I don't I think it's very limited from what I've heard. I haven't tried it myself um It's very limited in the sense of like calling out to functions and Micro python is like pretty limited Because it has to essentially link your code when it imports it and then also, um The nice thing about mpy files as they are is that they work across architectures And so like a native If you have a native compiled module It may not work on both an arm chip and an esp for example because those are two different cpu architectures um So it is possible. I don't recommend it. Um, if there's a particular reason Or functionality that you Need written in c. I would I would encourage you to just add it to the core um In the same way that we have like bus i o i squirt c bus i o spy is like There's a reason we have stuff in the core and it's so that you can do things you can't from python um Well mister says every time a cool chip comes out. I'm like, but it's not dip. I can't use it on arduino and I quit Why do you need a dip chip? I mean supporting arduino software on a chip is a lot trickier but I don't know. I I've I've done a lot of smd work and I don't think this that too bad What is the current value of time dot monotonic if it's been running for a day? It might not have millisecond precision That I don't know Dan knows that Unexpected maker says smd for the win talking to doctor Cool, okay, let me fix this uh pr because I thought it was merged in already Um, so let's pull up the branch. It's the fix sandy 20 sandy Timer leak One wire leak I don't have the physical dexterity to solder smd. Unfortunately um is The other thing I would think of I mean that's that's a bummer. I'm sorry to hear that um I think Just like the smallest dev boards are probably the best bet otherwise how do you do? soldering a 0.1 millimeter 0.1 inch pitch like standard breadboard pitch stuff like a Itzy bitzy size or or a cutie buy size stuff Um Pure says native modules sounds like a deep rabbit hole. It's not too bad. They're well portioned out Yeah, native modules that you that you can import um are definitely tricky nrf specific Set up to wake from sleep saw something for esp I think so I think we have the nrf sleep stuff merged in as well um If there's a new type of alarm you you would need to add then yeah, maybe you'd need to change the core but We have like time alarm and panel arm usually and that's usually about what you get in the lowest sleep states peer points out that if you're doing smd if you can place the stuff and then Using solder paste and then a toaster oven you could do that too Instead of having to do this like a soldering iron z-axis tape instead of soldering Uh Keith I see your question Let me just finish this. I'm gonna forget Hold that thought. I think you're gonna be around. Let me just let me just do this Yeah, I don't think it's gonna take me very long. It's just Good flux helps a lot Okay, this has 3 000 bytes free So why in the world? I think it should have been fine Viada says I'm in the same boat not very good eyes or steady hands I think the the only reason you need to use small chips is if um If you're trying to build something small Um, oh is the french translation. Thank you Thank you christian. That was so so helpful Okay, so 1264 so I have a setup here on arch where I actually I'm always building smaller builds because Like the standard library is built with os on arch whereas it's o2 from arm So I always this is right about where it it starts to overflow But I think what I could do is I can um get merge a different main I think if I just merge main in And update my sub modules So now this this change now has The fix I did for my other pr that is merged in And so if I do the same thing and I'll add the translation back in a sec Dip seems to be obsolete in every dip chip. I find I have a cheaper better option in sfd Yeah, I think so like the reason things are cheaper is because like it's used by a lot of people and The things that they use them in are small um But that's why I'm like like dev boards. I guess are more cheap. They're more expensive than chips, but they're still um You can find pretty small dev boards and they're not that expensive Which is why I was asking about soldering A cheaper sfd one has 10 24 instead of 32 watch gates. Yep All right. Well that that merge did it So this this is why I was like, let me answer your question in just a second So we got 800 bytes back Because of the changes that I made in main So I'm just going to push that and it will hit hit here If I pushed it the right place did I not? Oh, it's just slow. All right, so it hit here and that should be okay um Okay, that's good And of course I forgot to take a timecode Keithy had this good question and yeah, I have all these formatting issues that I'll fix um Keith asks How do the core devs or circuit python divide up the work or knowledge of base of the core? How do you dive in and learn more refer to someone else when it's not the problem you're familiar with or experienced with? etc um This kind of goes back a little bit to uh I think to some degree dan and jeff work in a similar way That I do where it's like I can work on something for so long and then I like Tire of it. I think that's true for them as well and that means that like We'll kind of like orbit a little bit into different places. Um So that will mean that like We'll know like somebody worked on something before but that doesn't stop us from having somebody else work on it next um It's kind of just a matter of like What we plan on doing who's waiting who like needs to pick something else up um I know that jeff kind of like biases a bit towards like really like doing the like c low-level stuff Which is why you see him. He's got like a a draft pr for like changing argument validation for example Like that's kind of like where he Where he migrates to um We do have a couple meetings during the week We have a private one and then we have the public circuit by thumb weekly meeting and that will be like a I make sure and know what's going on and if I have done it before I might say like hey What have you thought about this or that? um for example One thing when I was talking with dan about the audio playback stuff, which I did A few years ago was like One you should really try to get use i2s because i2s is great because You get the exact samples out since it's digital if you're looking at the output of an adc Like you don't necessarily know the exact number that's being sent to the adc Whereas with i squared s like you actually do because it's digital output And then the other thing that really kind of helped dan a lot was like getting to the point of twiddling bits Uh, and what I mean by that is like outputting different things on the line One of the challenges in in embedded debugging is that like It's timing sensitive, especially like usb beli and play it and um Audio playback are all timing sensitive. So the the way that you debug it You can't just use a debugger because the debugger will stop the code And like you lose all your timing reliability if you do that. So For beli, I tend to do a lot of print debugging because print debugging Um Doesn't it slows the code down, but it doesn't prevent the beli stuff from running. Um, and Audio is more sensitive than that and so Dan was doing like setting individual pins high and low when certain things are happening because you're like the challenge with The audio debugging that he did is like Figuring out how different pieces of the code are interacting and what time scales they are Because like the way audio playback works is like You load Some samples off the disk and then you queue them up to be sent to the output either i2s or dak and then you While you're doing that you prep the second buffer and when the first buffer is free again Then you can fill it again and like you you do this like ping pong buffer system Where you have two buffers in memory that you're switching between and you're trying you have to keep them loaded To keep up with the output pace um and so doing that is uh Is handy um For debugging uh, so so twiddling bits can be handy and uh, that's what the cla logic analyzer is really good for is it it can tell um Like for these given pins. Here's when they're all changing relative to each other um, and you can then copy uh Then you can like capture the actual output to go along with that too Just kind of wear out. I may have to be for usb Yeah, that's that All right, let me take this new question Keith's got so many great questions And it was on the next spot Um, Keith says other than this alie what tools you use to help during during this so I have kind of like I would say First I print debug which means I don't need any tools I even load over uf2. You've probably you've probably seen me on deep dive do this. It's like double click load the file print To is great because to is like the thing that you uh It auto reconnects to the serial so it's it's great. So first I just do print debugging um, if that doesn't work There's a couple ways to go One is through gdb so gdb is uh the canoe canoe debugger and it is um I said I say salie for how I pronounce it so gdb is what I the tool that I will bring out when I'm debugging a hard fault or some other crash um, that's really nice For for being able to do that um So that's where I'll do gdb is if if there's a crash gdb will give you a back trace and that's like super valuable um If that doesn't work like the uh Salie is really great for any sort of timing. So if you're talking to an external device Salie is great. Um And I have the logic Pro 16 like the top end of it Which means I can actually do 16 lines at a time, which is pretty awesome and it can do basic analog So even if you're doing audio you can still see Basic analog traces as well. So I like I like the salie a lot Um, if I'm doing usb stuff like I was doing yesterday Uh having a separate capture device like a beagle the beagle 12 the beagle 480 Is what I have coming for high speed, but there's also a crowd supply project called luna Um, that I'm very excited about it's been I've known about it for a long time And it sounds like it's actually gonna be a thing at some point Um, it can do it's open source and can do high speed debugging Um, let me show this So for usb This is the future I think Um, I gotta sneeze Oh, sorry Am I saying it wrong salie a Copy link. I probably am How do you pronounce it salie uh Salie uh Salie No, that's how I say it Salie a salie Haha Um Nice I thought I was wrong Salie a Um, yeah, so luna is from great scott gadgets and I know that um I kate tempkin did a lot of the work for the luna um And so I'm very excited to see a Hit crowd supply and then talk about their open source protocol analyzer um And you can see that it's the same functionality as a special Expensive commercial usb analyzers like the beagle 480 which I just did um So yeah, so those are like Some things I go to let me talk about the salie a little bit more Um, I don't use the leads that come with it Because the the the thing that you plug. Oh, it's on the floor. That's why it's not in here. Um The plugs that come with the salie are uh They're like it's just a two by five two by five two by four um one-inch headers that you plug into and then uh the default ones are Are like sockets and then they have um like clippers to go on it. Those clippers are the worst um They hardly ever stay on the thing that I care about. Oh, here we go So this is like kind of what you would get when you start me You can see the top of my monitor, but so this is what goes into the salie a is this two by four and then This is kind of what you would get Otherwise, it's just these individual ones now. I only Half half of these are are ground, but I only usually do one Um, so the black one is grounded then the other four are the signal lines So I use these a ton and I made these um and the Yeah, so the clips I don't like it all. Oh, here we go. So if you're doing flash work Which I do from time to time flash chips are so I see eight Get one of these Get one of these they will save you from tearing your hair out What they do is they they clip on the top of the chip Clip clip clip And then you can plug your clia leads into the top And now you don't have to worry about having those little things Uh talking or doing to the so I see eight um This is super helpful. I also when I was doing the rp20 40 I actually bought some of the so I see eight sockets Which are nice as well that actually allows you to swap to a different chip And uh Little more carries that I don't know if they're in stock, but they're great. These so I see sockets are really handy um Yeah, these are really handy You can solder them in place as long as they haven't butted out for everything. I think on the Feather rp20 40 I had to like remove a capacitor resistor or something so I could Fit it, but um, they're super handy if you're having to deal with multiple chips And uh alvaro says there those clips are excellent for infosex stuff, too Yeah, because I think spy flashes are used like by boot stuff pretty regularly Um So yeah, those are super helpful for debugging flash chips. Um somebody said The problem is the individual pins on a dfn that are like 0.3 millimeters across So you have to solder really precise one thing I have As a tip for that is if you are having to solder to a signal Don't go straight from the place you're soldering to the logic analyzer Um, like if you're dealing with a dev board go to a pinhole that will have a floating signal by default so like If I was to like if I wanted to actually scope Like one of these pins here I would do a tiny wire from one of these pins to one of the holes and then Put a pin in the hole that I could just plug into then um Good night, Dave Haha, Beata says I looked for one of those for a parallel smd flash. It was so far out of my budget Yeah Hamzab says I've done a lot of embedded audio and used pyocd to debug I was about to do bitwise testing a dsp algorithms by setting an ingress breakpoint injecting a test signal Setting an egrace big point and gather the results and check it against my python model Nice Yeah, like pyocd is really cool I think it's really neat People should look at it if they haven't I wish they had sandy sport But it didn't work when I tried it eye tracking mode But yeah, I think in terms of what tools I use Like I've got kind of more of a classic workstation that's now behind me So soldering iron bench top power supply is really handy If you're powering something up for the first time it can current limit so it doesn't blow it Fan oscilloscope hot air set for my fix it All great stuff, but I do mostly software and so I rarely go Behind me so to speak The mystery 007 says what is the most expensive chip you guys ever bought considering that 600 dollar flirt chip? I don't know I probably haven't spent more than 10 dollars on a given chip Uh, but I do buy a lot of dev boards because that's where I usually start Like I just spent 60 dollars on the nvidia nvidia one It is now 93.7 Yeah, luna looks cool and May of next year This we kicked Doctor says the most I spent on the single chip was 800 dollars. Oh, yeah, if you count cpus I spent about 800 dollars on my cpu I fix it has a power supply. No, I was talking about the screw set The power supply I actually got I was gonna say Adafruit, but that was the hot air station I don't know where I got the power supply, but it's really handy It's a siglin I don't know. I would just google it. I don't think they're particularly But yeah power supplies are really nice to have current limiting and they can tell you how much uh Back to the Glasgow and I have to wait until next year for it to imagine luna's hitting the same supply issues. Yep Ryzen 5950x was 900. Well, that's what I have z-axis on 40 millimeter qpf chips Let's look this up Conductive tape. I want to know your full system specs. I have A Strix ROG motherboard with 32 gigs of RAM I think it's 32 I was thinking about 64, but it's way cheaper as rose who's in our community suggested to just pay google pay google for a system with a lot of ram when you need it for like 10 minutes or something Arduino Raspberry Pi scale chips I think 10 you tend to get FPGAs are really expensive the higher ends sts and P socks are more expensive we could do we could do a uh 128 gigs of RAM It's a lot. I don't know how I don't know how I would use it. The only time I need it is with um Like if I'm doing Python data science stuff. Oh VMs lots of VMs. I don't do stuff in VMs. I haven't understood. I don't understand it z-axis conductive tape. That's pretty neat. I hadn't heard of that Keep it under 100 milliamps Oh, I have some of these chibi tronic circuit stickers It's like a computer in your computer. Why do I need more computers? All right, let's close this Chrome hold my beer Yeah Finally fixed that gdb issue. So this is the main bug. I was working on as this tt 401 Here's how I searched digikey for new microcontroller chips my uh not-so-great-search Development boards kits and programmers If I'm ordering from digikey, this is what I'll take a look at Like ncu in stock, which is going to whittle it down Apply oh, I also do new product VM is basically the same as a cloud instance You need VMs to run those things that won't run on macOS on the m1 chip So I do that and then I say price what is within my There's a weo rp20 40 module from seed the fez flea That spark does new Hmm Not a lot. Hey look macro pad Oh Somebody was asking me about when it would be in stock There's a twitter conversation about this pro tip if you haven't if you can't buy something off Adafruit check digikey There are 88 macro pad bareboards Bareboards that must include hardware I assume it includes the uh The back plate as well new nucleoboards Going to digikey now. Yeah, there you go Copy link have I thought of making a macro pad timestamp generator? So jeff figured out how to get the timestamp from obs And I thought about doing that. I also thought about Maybe even doing like a discord bot that would like run on my machine and be able to access OBS But who am I kidding? I don't know. Yeah, I don't know exactly what's in that bare bones Whoa arm cortex a7 single board computer interesting The imx6 That's not too bad of a price. Ooh Maybe I should pick one of these up Those look really neat Oh the back plate is a separate skew Well, it's possible digikey has that too It's 5103 5103 accessories There you go, and they don't have any Womp womp What is the full kit? I'm sure you could get creative though Oh look, it's 35. It's only 30 on Yeah, it's actually cheaper to buy from digikey Than ate a fruit That's hilarious Oh, they're in stock They're in stock from ate a fruit They're all in stock 5128 Digikey can be better if you're uh Right so the Not in the full kit is not in stock But they it's all in stock on ate a fruit right now. There was definitely a Twitter thread That said it's not in stock This thread Has this awesome Not somebody said it wasn't in stock Don't worry. I'm just Selling my product products on the stream. All right, that's enough Twitter Get back to work But yeah, you don't need to buy a digikey. There was actually uh Only wish they were velocity sensitive keys Here an accelerometer would help achieve the behavior I'm sure the keys velocity sensitive keys would be a lot more expensive I'm sure than these switches For some reason all ate a fruit boards on digikey are Marketed as evaluation boards for me like I'm getting a shareware version That's definitely the category that they're in because like most of them are designed to go in other things Um It's kind of where what it grew out of see anything else interesting. This is kind of interesting When we do esp 32 circuit python And these are kind of interesting too because I I would like to get into the cortex ace level stuff And these are under a hundred dollars, which is kind of neat I think that top connector is hgmi, which is the thing that I'm curious about Arduino edge control Yeah, these are these are outside of my impulse buy although this one I might pick up Uh the imx rt series. I have most of those already Zinc Arduino portenta machine $3,000 for his eye links Are there mx compatible keys that have a pin for key up because then you could do velocity sensing by measuring time between Key up and then key down begin Uh, awesome as patrick ordered the starter kit I have to say I do actually have a macropad on my desk that I use and I use it for one button Which is the kitty paw button that I have and I'm using it for playing and pausing spotify because I Sit down listen to music Stand up. So I hit it again. Hands up says it just happened today. I got the email today saying it was back in stock awesome I think the macro badge really cool. I'm I have like What 11 more buttons to figure out why I'm going to use it Um Yeah, the bealy workflow stuff were super close where our goal is to have um Our goal is to have test flights available for testing for ios by the end of the month and Melissa is picking up the Uh, web side web bluetooth side of stuff that I did, uh That I started so so it's going to look a lot prettier real quick Any recommendation for arduino compatible risk 5 mcu boards Uh, let me take very cut take a timecode because I have stopped Any recommended arduino compatible risk 5 mcu boards. I don't know of any Um I don't know of any to be arduino compatible. You have to have like the board support stuff Um, I wouldn't be surprised that the esp 32 c3 was the first thing to do it um But sorry, I don't know risk 5 Oh, you know what there is a risk 5 core on the esp 32 s2 Oh, and dexter starboard points out the red 5 board Which is a spark fun board. I think spark fun Oh, that's right. The sci 5 people did do arduino compatible I think Yeah, so You could start with us Honestly, I don't think risk 5 in and of itself is that interesting It's very cool, and I'm very excited to see it But like there's so much more to these chips than just the cpu core So I I think risk 5 is is trying to become this thing that you just assume and and build upon And that's great Risk 5 is awesome, but I think if you're buying risk 5 for a reason If you're not going to write assembly code, it really doesn't matter Because the compiler is going to take c and produce whatever assembly you want So yeah, sorry I don't I don't know what you expect to get out of a board this risk 5 Like the reason that we don't support this chip is that it This sci 5 chip doesn't have usb on it And what you can see here is that there's actually a bigger microcontroller As an interface chip to it that's running arm like risk 5 is great, but Unless you're a cpu designer, it's really not that interesting and as alvaro points out the vector extensions are pretty cool Yeah, so if you're in a cpu design risk 5 is great, but if you just want like a system on a chip Like it's not going to matter as much Generation generation says my area of interest is implants development boards very hard to find in stock So some of them have a year pre-order boards for medical implants communication service ism Micro semi Yeah I think those are they're hard to find because they largely are just like you already had like the medical device company has a Already has a like working relationship with the place you would get the development board from The larger chips in it an m4 My stm32 eval board used to be fewer microcontrollers usb interface exactly Then that's kind of like the purpose of development boards is development right so like The chip manufacturers are making them so that you can use this really inexpensive chip Once you've finished out finish the software and you want to put it in a device Eric points out the gd32 vf103 Let's take a look at that. I haven't looked at this in a while um Pine likes to use it like in the pine soul, which is a kind of dev board I think it does have usb on it. I'm not mistaken. Oh the small portable mini soldering iron interesting Yeah, so this is what's neat about risk 5 so risk 5 is actually just the api of the cpu So, uh, the bumblebee core here is telling you that it's like what specific implementation of risk 5 it is Which is cool. Yeah, I think for a lot of dev boards the extra mcu is like hooked up to jlink So does this have usb? It does usb full speed I might have one at ease around it would be cool to get circuit by done on it Although it's only 128 k flash and 32 k s ram Which is less flash than the samd 21 and the same amount of ram um Hamzab says a good board for multi-core is the m7 and 4 is the stm 32 h747 disco for about a hundred dollars It's also got a touchscreen and audio in and out Psypeed have support for Arduino calling it long. Do we know? all right All I wonder if they have let's I haven't looked at their products in a while Let's just see their risk 5 microcontrollers They just have the one that took me to the same page Yeah, they have ones that have smaller amounts of ram 108 is nothing to slouch at Up to three megabytes of flash That's pretty cool m4s are great though 560 says I love my pencil best 25 I've ever spent $25 even though it took like three months to show up basically ts 100 with open source firmware That's pretty cool And schematics are available Bruce says as I use platform I out for a little risk 5 stuff I've played with And hamzab says the esp 32 c3 is cheaper than the other esp 32 chips All right, I am melting so let's wrap it up Yeah, John Franco says try getting an m4 It's true I didn't look at that You could buy it from these depth boards and thought I'm off Cool lots of cool stuff. Thanks folks I'm going to go downstairs because that's really 94.3 in here It is too hot So let me wrap up and We'll call it a deep dive This is why I don't know if anybody looked at my blog post, but I said like wear sunscreen because it's going to be a hot one 202 25 Wrap up All right, everyone that was another deep dive. Thanks for hanging out. Thank you everybody for lots of questions. It was great to Talk about all of that stuff Um, thanks for yeah, it is in Fahrenheit Mike. Sorry. That's what my thing is set up as It's been a pleasure if you want to support me support Adafruit by going to adafruit.com and purchasing some hardware there they run circuit python That's why they pay me because we write the software and If you wanted to pick up a macro pad last I checked a couple of minutes ago They were available. So macro pads are great. They're a 3 by 4 keyboard that you can program which is awesome If you want to chat with us outside with me and a bunch of other folks outside of The the youtube chat or the twitch chat Join the discord server by going to the url adafru.it slash discord Check that out. Um, and that's where we hang out Um Next week should be on friday again. Um at 2 p.m. Pacific. Hopefully it won't be so hot Uh, and we'll be able to have the windows open and getting a breeze going Um, and hopefully we'll be stuck in something you may be doing bealy work workflow work and making the uh The interface is a little broader. We have some stuff that would be nice to get into the api the workflow api So might be doing that by this time next week Although I have the imx port to to finish debugging because I say it's alpha support, but I would like it to actually at least start up On usp. So we'll look at that next week as well And and with that, uh, we'll see you all next week. Have a great weekend. Stay cool for anybody in a place where it's super warm like it is here and uh, stay Uh, stay safe. If you're not vaccinated and can't get vaccinated, please get please get vaccinated Uh, and with that, I'll see you all next week No cat to pet He's downstairs laid out on the floor. I'm sure