 All right. Hello everyone. Happy Friday. I've made it to another Friday. Let me take my phone out of my pocket here. Let's put that right there. Okay, let's shuffle around some chats and see if there's anything else we need to do before we get going. I can close these things. Those, let's pull up circuitpython.org. Talk about that there. And then we've got Discord chat. We've got YouTube chat. We can close down the OBS, but we don't need to see that one there. How's it going? Be out of graph? Happy Friday. Thanks for tuning in. Let's see here. What's this? What's a hack tablet? Yeah, good question, Tim Seed. I will explain that. And there is good news for you. If you are interested in one, there is a chance for you to enter to win, enter a giveaway to win one. Just all this notification on your app. Interesting. Nice. And I guess, thank you for subscribing for notifications if you did, as long as I didn't bother you, in which case, apologize, but you could probably turn it off somehow. How's it going, Paul SK? Happy Friday. Okay. So, let's do quick introductions. How's it going, Mark Gambler? So, hello, everyone. My name is Tim, and I go by FOMIGuy on the GitHub and Discord. This is the DeepDive program. This is a weekly stream. We are going to be looking at circuitpython stuff. That's what we're deep diving into is circuitpython stuff. For folks that don't know, this was a stream started by Scott Sharcroft, the lead developer of the circuitpython core specifically. And oftentimes, during the stream when Scott did it, it would be working on core circuitpython stuff, adding new features, fixing bugs in the core, doing new things inside there, stuff like that. I work a little bit higher level. Typically, I'm not, obviously, not as in depth into the core as Scott is being the lead developer in the core. I have dabbled a little bit. I'm getting more and more knowledge all the time, but I am still at the level where I can do only relatively basic things inside the core. But I do also do a lot of work on the libraries and associated infrastructure like cookie cutter and some of the other actions, utilities and things like that. So, this stream is all about working on circuitpython stuff. If you are brand new to all of this and you actually don't know what circuitpython is, you can head over to circuitpython.org to learn more. This is a great place that has some high-level information about it. But I'll give you the quick rundown right here. Circuitpython is basically an implementation of Python that can run on tiny computers called microcontrollers. These little main chip right in the middle there and this main chip here, this main chip that's under this little metal cover on this one. These are called microcontrollers. They're basically just tiny computers for all intents and purposes. And they can interact with other electronical hardware via the pins. So, like on this Raspberry Pi Pico here, there's lots of pins on either side. The circuitpython code that is running on this device is able to interact with these pins. You can connect buttons and lights and beepers, displays, levers, pretty much any kind of little electronic widget you can think of. You can connect up with these pins and then write some Python code, save it on this microcontroller and have it run and interact with that thing. Get the results from a sensor, display it on a screen, do something when somebody pushes a button, that sort of stuff. So, that is what Circuitpython is all about is writing Python code on these microcontroller devices. This is the downloads page where you can download Circuitpython for your device. And one thing that you'll see, there are lots of devices that support Circuitpython. We have 328 devices right now. And they come in all different shapes and sizes. So, we have a circle here with some nice alligator clips. We have, of course, the Raspberry Pi Pico with its breadboard header, pins that are unlabeled on the top side. We've got feathers, which are also breadboard pins. There's a macro pad there, which has got some built-in key switches on it, multiple key switches that you can plug in there. All different shapes and sizes, some big, some small, some in between different peripherals on board, all kinds of different stuff in these different devices. But the thing that ties them all together is they all support Circuitpython. So, we can write this code on them to interact with our devices. If you're interested in learning more, again, head to circuitpython.org. The other thing you can do is join us on the Discord, which is linked down below, ADAFRU.IT slash Discord. There's a Circuitpython dev channel there. There's also a help with Circuitpython channel there. Those are great places to get involved if you're, if you don't know more, if you want to ask questions or if you want to learn more about what Circuitpython is or get help on doing something with Circuitpython, that's a great place to go. If you are interested in supporting Circuitpython, there's a couple of ways you can do it. One of them is by contributing code or testing or reviews or things like that. Circuitpython is an open source project. All the development occurs in the open on GitHub as well as communication and the Discord, which I mentioned before. So you can get involved with this if you would like. A great place to go if you want to do that is circuitpython.org and then click this contributing link right at the top here. That's going to list out all the currently open pull requests and open issues across all the libraries. So this is all Python level code. This is writing and reading Python code, either implementing new features or fixing bugs or just reviewing changes that somebody else made. These tend to be like the places where we first get people involved when they want to start helping contribute to Circuitpython. So head there, click contributing. You can find those open issues. Again, if you have questions about anything, head over to the Discord and ask inside there. Another thing you can do though, if you want to help support Circuitpython, but not necessarily contribute to development or testing or anything like that, you can actually just purchase hardware from Adafruit. So this is their website Adafruit.com. Adafruit is a hardware and software company based out of New York and they're the company who pays the team that works on Circuitpython. So Scott, like I mentioned before, the lead developer as well as a couple other folks are full-time work for Adafruit on the Circuitpython project. There's a couple other folks on the team that work on it part-time, like myself, and Adafruit is the one paying us to work on this open source project, Circuitpython. So thank you to them and thank you to anyone who wants to help support the effort by purchasing hardware from them. They sell all kinds of the microcontrollers as well as all the different kinds of stuff that you can plug in and do with the microcontrollers, you know, the screens and lights and buttons and knobs and beepers and wires to connect everything up with, alligators, breadboard jumpers, knobs, all that kind of stuff they sell. So you can go there and get yourself some toys, have some fun with that stuff. They also of course have the learn system learn.adafruit.com which is where there are thousands of different projects hosted in here that you can make with the devices that they sell on adafruit.com. So again, thank you to Adafruit and thank you to folks who want to purchase hardware from them in order to help support the Circuitpython project. So let me catch up a bit on the chat. Can I use it with my flipper? I don't know for sure what your flipper is so I couldn't say for sure. Nope, just got off work so I'm good. I can't wait for my new hot plate to get here Tuesday. Nice, you're gonna do some soldering with that. Is that like surface mount soldering? Is that what you got going on there with the hot plate biota? Is there a link for the hack tablet and does Adafruit have a physical store in NYC? Good questions. There is a link for the hack tablet. I will drop that in the chat here in a minute and we'll talk about that as well because today's a special day for the hack tablet. Does Adafruit have a physical store in New York City? To the best of my knowledge, they do not have a physical store in New York City. To the best of my knowledge, the general public is not necessarily welcome to just come to Adafruit. It is a factory, first and foremost, they ship all the products out of there so they do have a factory in New York City. They are physically located there but it's not a place where you can go and actually shop for products. You have to purchase your products online and then they ship it to you. So there's not a place that you can go to purchase things but there is a physical location there. That's where they're based out of. That's where they ship all the goods out of when you purchase them from the website. Let's catch up here a little bit more on the chat. Mark Gambler, how's it going? Hello all. Hope the day is going well. Yeah, thanks Keith Lee. Hope your day is going nicely as well. Thanks for tuning in. Paul Cutler, how's it going? Okay, so a hack tablet. Let's talk about the hack tablet. A couple more items of housekeeping and then we'll dive into the actual coding and deep diving for the day. Next up is the hack tablet device. I'll drop the links for this in both of the chats right here. This is the link to the GIST which contains information about the hack tablet giveaway as well as a link right here to the entry form. Today is the last day to enter to win a hack tablet. I will be doing the final drawing to give away the remaining hack tablets later on tonight. My plan is after I get done with the deep dive stream, it generally goes about two hours. We got about an hour and 50 minutes from now. After I get done with that, I'm going to shut down the stream, go and eat something because I'm already a little hungry. I can tell I'm going to be definitely very hungry by the time I end. I'm going to eat something. I'm going to get the new entries all together, get the little slips of paper created for them and then probably like an hour or two after this stream, I will come back, stream on my own channel just for a short period of time to do the final drawing. So if folks are interested in watching the drawing happen this evening live, you can follow me on Discord, excuse me, on Twitch or you can find me on YouTube as well, FOMIGuy underscore Twitch. I'll drop links to that stream in the same Discord here when I do get started with it later on tonight. So there will be links later on if you want to watch that. But that's what you can do if you want to watch the final drawing. If you would like to enter to win the hack tablet, now is basically your last chance. So I recommend that you go to this link that I put in the chats right away. Read the information about it. There's information about the device and about the giveaway, how it's going to work, all of that sort of stuff. There's information here. So read that, click yourself over to the entry form and fill in your information because you basically have, I'll say pretty much until the end of this stream. So about an hour, hour 50 minutes, give or take, you definitely want to do it sooner rather than later though if you want to get in because you don't want to miss it. So get your entry in and then, like I said, after I get done with this stream, I'll eat some dinner. I will pull all of the latest entries. So that's kind of when we're officially closing is when I pull those entries after I eat, then I will come back do another stream on my own channel where we will pull the names. We are going to be giving away three hack tablets tonight. We're going to be drawing names for three hack tablets. The original plan was to do two, well, the original plan was to give away three on the first drawing, which has already occurred a couple of weeks back and to do two tonight, the remaining two because we had five total to give away. One of the folks who did get selected on the previous one never did get back to me. I reached out to them a couple of times, never got any response back. So that one kind of goes back in the pot, if you will, that one's back in the hat. So we're actually going to be drawing three names tonight for some lucky winners of the hack tablet devices. So that is the hack tablet. Again, I dropped the links for that. And like I said, we're closing that tonight. So if you're interested in that, I would recommend you go fill that out right now. Don't necessarily wait to do that until after the stream or anything you want to get that entry form in right away, just so you don't miss it this evening. So thank you to everyone who has entered already the giveaway. Thank you to everyone who has watched any of the streams about the hack tablet or just been interested in following the project. And then of course, obviously, thank you to Kmatch Kevin Matocha, who's the one who created these devices and did the initial work inside Circle Python to allow them to be supported with Circle Python in order to draw on these particular displays. So thank you to all of those folks. Again, get your entry form in. I know I said that a few times, but I just want to stress that I just really don't want anybody if they're interested in it to miss out. I would hate for somebody to reach out to me after the drawing and say, oops, I missed it, missed my chance, but I wanted to enter. So go ahead and get those entries in, follow the link, go the entry form, get that done. Next up, small piece of housekeeping. Actually, let me catch up on the chat here real fast. I don't think they have a physical store or at least used to offer same-day shipping in New York City. There may be a reseller in New York City. I know there are resellers in different parts of the world. I don't know about New York City specifically if there's a different reseller there or if they just ship straight from there. I have heard before about same-day shipping. I can't confirm that necessarily, so this is not a promise of same-day shipping or anything. I should mention too, I contract with Adafruit part-time to work on the Circuit Python project. I have nothing to do with the shipping or anything like that, so I don't have any kind of inside details or honestly really know anything about the shipping process other than when my own orders get shipped, when I buy my own toys. So I can't say for sure. I think I have heard something like that in the past as well about same-day or quick shipping if you are inside New York City, but they do ship all over the U.S. and to many parts of the world as well. Anywhere where UPS will deliver, they tend to be able to ship your stuff there. There are resellers though in other places which might make it easier in terms of the shipping fees, especially if you're in a different country for instance. Joel H. & Co. Bon appetit from the guy when food happens. Yeah, thank you. I appreciate that. That's gonna be dinner. Okay, so last item of housekeeping. I just wanted to show this. This is a couple of different videos that I have put out the last couple of days. So folks are interested in this project. I'll drop this link to the playlist as well. You can head here and watch these videos if you're interested. This is basically a Feather RP-2040, the pink Feather RP-2040, which actually happened to have loaded up in the camera right here as well. This is a project where we're basically linking this actual physical real pink Feather up with a virtual one inside of Minecraft and then tie the two together so that we can actually interact between the pins on the Feather and then the pins inside the virtual one inside Minecraft. So that's what this project is about. And the news on this is that I've been publishing the videos that show you how to set this up. So I showed this a couple of months back on show and tell and I have finally done the work to make it reproducible for other people for the longest time. It was kind of hard-coded to like my device's serial port and my own setup. And I kind of had some placeholder names on some different stuff that didn't make too much sense. But I've done a lot of work to get it ready to actually be, you know, replicated by other folks, make it more general so that you can put in your own serial port and all that stuff. And the first three videos are out. So I wanted to just take a minute to point to those. The first one is probably the one to watch if you just want the high-level introduction over what this project is. So check that out if you just want to learn more. That'll show you what it does and what it's for. The next two are basically how-to videos if you want to set it up for yourself. So if you watch the first one and decide that looks pretty cool, I want to make one of those for myself, then you can follow along with the rest of these videos as well. Right now, we have two of the how-to videos. One of them is getting the server setup. It uses a server application called Spigot, which is just a Minecraft server. You have to get that set up. And then you also, the next one we have is pasting the feather inside your world. So that's how you actually get this giant feather into your world. You don't have to build it block by block or anything like that. So these two videos are out. They'll show you how to do those two steps. I still have more on the way that will show you the rest of the process. So keep an eye back onto this playlist. If you are interested in this project and you do want to replicate it for yourself, keep an eye on that playlist and we'll be adding the next couple of videos here in the coming days for actually getting the script loaded on your feather and then actually initializing it so that the two will talk back and forth together. That's the bit that's not covered yet in any of the videos. So that is the last bit. And with that, I will catch up on the chat one more time and then jump in. That's thermally inactive. Cool. Nice. I like it. Thank you. Okay. So I'm going to start today by just making a pass through some PRs. So one of the things that I do in the CircuitPython land and the CircuitPython community is review pull requests. I like to do that on stream from time to time to show folks the process to let people kind of see behind the curtain, if you will, to see what reviewing is like just to try to get the word out there, let people see how it's done, what it's like and that sort of stuff just to encourage people to get involved themselves. So if people watch me review and maybe starts to make it look like not such a daunting or intimidating process, then hopefully we can find new reviewers that way as well. So that's what I'm going to start with today is doing a couple PR reviews. And I like to do it just from the contributing link. I talked about this link before. This is really nice because it shows you all the pull requests and it lists out how old they are as well. And of course, these are links on a web page so they turn blue and purple when I click on it. I know which ones I've seen before, of course. So that's where I'm starting today is just working on some of this PR reviews. And so I'll just jump right in from the top. We have a PR from seven days ago, RS Bone. Thank you for this. Basic BME 280 provides a simplified interface to the device. Advanced BME 80 provides additional functionality. Each of these classes have subclasses for I2C and spy buses. User will instantiate the appropriate subclass based on their connection. So you use either BME 280, I2C, excuse me, or BME 280 spy, for example. Pilot complains that there's duplicate code. Yeah, so that I'm definitely familiar with pilot complaining about that. Who's not familiar with pilot complaining right though? I guess that's kind of its job. Pilot complains that there's duplicate code between the base and advance. The code to instantiate, read and write the device is duplicated in both implementations. This pull request provides a single implementation of I2C and spy. They use the star.imple. I added the parameter to the init to get the selected implementation class. Questions is protocol the right name for the containing file using the different bus specific and limitations. Is there a better name than star.imple? Is there a proxy or perhaps a delegate? The data attribute in a different BME 280 should be renamed accordingly. I can't say as though I understand the last one. I'm not really sure what it means a proxy or a delegate here. Yeah, so I don't know that I can, I don't know that I could necessarily comment on that one all the way. So I'll take a look over the code though because that's what reviewing is all about is just taking a look at the code, try it out if you have the device for it, which I'm pretty sure BME 280 I think it's built into some devices. So I will, I don't think I have one just as like its own thing. BME 280, let me open this page in my other browser here. It's one of the nice things about the site data fruit is if you're logged in it will tell you if you purchased a thing in the past and what date doesn't look like I have one for that. I don't think I did purchase that but I'm pretty sure it's built in on something is it is that on the feather sense or the circuit playground blue fruit pipe portal not the titano is that the one that's on the pipe portal there is I think there yeah there is a temperature sensor on there BME I didn't say let's go into the guide check pinouts if nothing else we could just look at the library because the library will have to import BME 280 if that's the kind of device it is. BME we got nothing here so does that does it actually say temperature sensor does it specify back on the product page temp Richard not just says temperature sensor ADT 7410 is the one that's on here so it is a different one we'll check out a couple others though I have a sort of playground blue fruit right here I think there's one on the funhouse I have a funhouse somewhere as well I'd have to run and grab that one but I could definitely do that blue fruit let's head to shop also actually or I'll just click this one temp Richard sensor oh this one says thermsister thermsister I think that's different than a BME I don't think it's the same thing I think that's analog maybe now whereas BME is a I2C so it's basically sending not binary but like sending text data back and forth kind of thanks for the review by the way yeah for sure thanks for all of your work across everything right all the libraries all the core I've seen your name pop up quite a bit so thank you for all the work you do um let's check feather sense I have a feather sense also feather sense yeah feather sense mine's blue I don't know for sure temperature BME all BMP BMP 280 is that different does this cover does this cover BMP doesn't look like it I get it now entry form on the github page is clickable link it's one of those days for me I guess uh yeah yeah entry form on the gist is a clickable link that will take you over to a Google form basically where you can put your information in also I should mention I should have said this back when I was talking about the hack tablet and I forgot it then one thing that will happen for the people who are selected I'll reach out to you to ask for a phone number also it turns out we actually want to get a phone number for the shipment these things these hack tablets they're shipping from the Adafruit factory factory they're in New York and the standard shipping process is to include a phone number as part of the shipment details for tracking and such so I forgot to put that or I didn't realize that we would want that when I made the initial form so that is not on the initial form but I will reach out to folks in the email that you submit in that entry form so make sure that's a good email I'll reach out to you to ask for that and then I'll pass that along to pt at Adafruit for the shipment so just be aware if you do get selected that's one thing that I'll ask you for is a phone number that can be attached to the shipment give me 280 so let's do check fun house I do also have a fun house let me catch up here I have one just hadn't had my office put back together so I haven't gotten to this beyond trying to figure out if this pull request basic but still a small memory footprint I gotcha let's go fun house temperature temperature EPS 310 baric mastic barometric pressure in temperature sensor oh I wonder I'm running out of devices that I can think of that do have a sensor on there is it not a built-in device on anything really thought it was give me 280 what device would it be the clue maybe I mean I think the clue is going to be pretty much the same as the feather sense BMP 28 so is that a different library this is probably why I'm thinking it's built in is I'm surely just thinking of the BMP 280 not the BME 280 yeah this is its own library hmm I may not have one I may not have one we'll have to take a look feather oh feather tft I didn't know there was a sensor on that okay I definitely have one of those this is quickly become you kind of like my go-to device for testing and developing on the fact that it's a small feather footprint with a built-in display and a pretty fast processor and a lot of RAM this has basically just become my like go-to device I just need to test a random thing I've always got one of these on my desk actually always got two of these on my desk at this point and it's just right there within arms reach and I grab it and test stuff on it all the time this back under here you can actually see a bit here that's worse isn't it that we'll get I guess that's pretty good there screen is small enough we don't get too much glare thank you who was that see Grover thank you for that I appreciate that quite a bit yeah I had no idea there was a temperature went on this device which honestly makes me like it even more as a as a just a random grab and test device so to start with let's just grab the stock version of this library let's get it set up so we have some code to test with a big part of reviewing is looking over the code another big part of reviewing is testing it out if you got the device for it gotta step out for a bit maybe back for the stream ends but if not hope everybody's weekend starts off well yeah nice thanks for hanging out for a bit Keith and same to you if you do end up not making it back before we're done then I hope you have a nice weekend as well for sure thanks to my friend um let's see here I was able to run the M0 QT Pi when it used the MPY file I gotcha okay um yeah QT M0s do have fairly little RAM so I could see needing the MPY file there so what I'll do I actually have got old I probably don't want this open do I but it's probably gonna open itself again when I click on this isn't it so so what we'll do is try to move this can I move this nope slow can I move it now sorry this is non-circuit Python stuff you don't necessarily want to show that get to circuit Python land here I got my pie charm open I was still open from the work day go nice workspace we'll start there first thing is I'll go ahead and just update I have no idea what version is running on this it's probably some crazy random build of something I don't I don't know we'll we'll level set by getting a stock version just make sure we're not having a weird version that does something differently and ending up with false like red herrings essentially where something doesn't behave the same but it's actually just because it's a different version grab that we'll open it up we want to go to bootloader which is uh is it double click reset or is this one of the ones that's reset and then boot double click reset so we'll copy that we will put it on our boot drive there so we install the slaves version of circuit Python uh 8.0.0.8 beta dash beta zero let that install while that's working let's see if we have uh this project cloned already bme280 let me open a different one actually though oh that's stuff let's go to this one new window I just did this window nice workspace new window here well it's not gonna be a recent open we have a bme280 got a bunch of libraries but is that one of them emp only the bme so let's clone that that's interesting full of firefox did this thing got control back you're gonna clone this you can now open it now open it from the other one though so I'm gonna start with just taking the simple test put it on my device and just run it with the current version of the library so we're gonna just test the baseline um control essentially you know control group we're gonna test the one that's normal with no changes before we look at the pr one just to level set this is something I was using to test something else it's a toford io example I think put it in here and I'll save it um we'll connect most likely this will have just crashed or maybe not how he crashed crashed that's not good what happened there I wonder okay well I'm gonna press reset that's more like what I was expecting so can we make that happen again if we just ripple and then back no I can be able to see that one again that was a ghost we'll copy it to our device I will just use the python one so I should have plenty of ram shuffle my things here I started trying to find broken firefox windows and I got my chats covered up so we should now not get the same error now we get our no device at 77 next thing we can start doing is figure out if there's different addresses or anything like that or if possibly it's not connected on the itc bus maybe it's connected on spy bus uh the pinouts page which sea grover so kind of linked us to before probably we'll have that information for us unpopulated oh okay it's not actually there is it there on the s3 I think they have an s and thing empty space oh there's a separate one that does have it populated I think I got one of those well and this one doesn't have the screen of course I don't show a purchase history for it and go pi m0 is it built into the cutie pi m0 probably have one of those somewhere connected through semiport or something probably there okay I can't think of anything else that might have it okay we may not be able to run it may not I may not actually have one I will take one quick look I don't want to just step away and go digging through all of my stuff I'm gonna take one quick look though I'm gonna go look in my box which has got a bunch of these stem of things uh I will be back in just one moment and then uh if we don't have it we'll just review the code and see what we can do from there I think we came up empty but I got a couple things to check and I'm thinking perhaps most likely but still maybe not is metro uh is the BME 680 I saw that in the results I think is that the same library so we could maybe test with that I did I think I saw one of those 680 has its own yep okay so then really the only chance is if it happens to be built into one of these other devices that I grabbed and I'm not sure that it's gonna be but we'll take a look I have one on a spark fund breakout oh interesting I have mainly spark fund microcontrollers have a couple different spark fund microcontrollers but not much in the way of their peripherals so Metro ESP32 S2 I know there was a couple of the other ESP32 S2 devices like we saw that feather that has it as an option so maybe there's one on here this one's connected at least yes demo built in halloween halloween has got some sensors I think but sure about that one in particular as an accelerometer has a light sensor does not have temperature sensor unexpected makers well I think we won't be able to test it apologize for spending that much time on trying to track down a device but I was I was almost positive this was built in I think the BMP key for Paul really threw me off so I was thinking that was e but it's actually not that he's here for now and we'll just take a look at the code so is you see impulse by impulse typing union so it can be one of those two things proxy okay this is maybe where it was saying proxy is this a proxy or perhaps a delegate so I get okay this is probably asking about the name of this argument that would be my guess let's see I would almost think just like bus bus simple impulse is short for implementation and this is basically an object that holds the implementation that we're going to use based on which bus it is so I would almost think just bus impulse or bus implementation might be a good name for it if that's the question that is being asked here with the last one is is this a proxy or perhaps a delegate again I'm not a hundred percent sure if I understand what's being asked but if it's essentially about the name of this bus simple or even spell it out of the way I don't know that we would need that one and we could certainly save RAM that's another project I've been working on is measuring the size of libraries so stuff like this does actually make a difference in the size of the libraries see so then this just calls through the new super of that impulse we no longer have to define all of this stuff here because it happens inside of this we get to cut out that code basically we do have a new import inside of here because we need to grab the correct implementation how's it going k-match thanks for checking in I hope you have a nice day and a nice weekend and all that stuff we I talked about it a bit earlier we've got the final drawing coming up which will be after this stream so the plan is after I finish down this one I'm going to go and get some dinner and then I'm going to collect all the final names and we'll do the the next drawing for the remaining pack tablet winners later on tonight after that probably about an hour or so something like that after the stream so I reminded folks I let them know that if you are interested in getting your name in for the giveaway you got to do it now there's still time but not much so do hit that link from before get your entry in if you would like a chance to win one of those tablets and again thank you so much to k-match for making those devices doing all the work to build that custom board and work on the rgb.clock module inside circle python core hacktab we'll give away later tonight yeah thank you paul there's three hard problems in computer science cash invalidation and naming things yeah I totally agreed with that one naming things I definitely struggle a lot both with like coming up with good names sometimes but also sometimes I feel like I'm spending too much time trying to come up with a good name so it's hard to hard to strike a balance right registered by register interesting I wonder why these weren't implemented before but are now I guess maybe the not implemented is inside of here now probably that's probably it yeah because then I guess we're just always going to be calling proxy on that protocol this was another one of the questions was this protocol the right name and I do think it's worth some consideration I do yeah I do kind of like I I do kind of like protocol I don't have a better idea there I mean we could go towards implementation the same way like this could be called implementation dot pi or bus implementation dot pi or something but I do actually I kind of do like protocol here better because protocol to me suggests like you know either i2c or spy which is exactly what this file holds this file holds the i2c impulse and the spy impulse they're both here for us to use um I think protocol is good for the name on that one at least my own two cents on that um I'll leave another comment out where I reference that one as well and mention the uh I input on that interesting it looks like actually these don't raise the non-implemented so I wonder if there's actually some stuff now that we didn't used to be able to do I will say read and write functions were implemented in the bus specific subclasses oh right okay so those were not implemented because that was like the parent class whereas really the subclass is the one that did it I see um with you there now okay looked over the code don't have the sensor to use for testing I will put the my input on this one is protocol the right name I think this is how you make quotes I should definitely definitely check the preview because I'm not 100 certain what was the third question in here was is there a better name than underscore impulse I like implementation for that as well because it's basically the implementation of the type of bus that we're going to be using so I I mean I know I have seen other things in software where they use this underscore implementation I will admit I don't necessarily have a strong grasp on I guess like what pattern that is or when that is used you know in that in that pattern so I don't know if it's a like quote-unquote strictly proper usage of it or if there even is a proper usage of it to be honest I know I've seen it before and it seems like it fits here to me so yeah I wouldn't be the one to know like the actual rules around it if there are any any more guidelines or anything but it seems fine to me how's it going dock thanks for tuning in okay and now we'll hit the next one down the list which is the bm e 680 which I do think I found one of I will have to go back and get it this one's draft so we'll skip that for now this one draft also this one's actually draft also a patch I don't know if tech tech is looking for reviews on this one it does seem okay to me I used a checkout version 3 and something the other day when I was working on memory memory size check tools so I happen to know that this does exist and these all seem fine to me yeah for sure thank you for working on it again as always yeah for sure like I'm I am always happy to try to get feedback on on people who want to contribute stuff so yeah thank you for thank you for contributing thank you for everyone else who does reviews I should mention like we're looking at a tech trick pull request here tech trick has joined the team more recently and does a lot of reviews for us so thank you to him thank you to everybody who submits contributions and everybody who submits reviews you all are what what keep the project wheel rolling if you will so huge huge kudos and thanks for that so those were both drafts I'll leave the review on the one there and we'll call it good on that keep bouncing I did look at this one actually this one is failing action so we'll need to get it passing actions before it would be ready to merge anyway Tammy did leave a review if force states gonna behave the same way as when the event organically happens does it need to also set last bounce ticks last duration ticks or state changed ticks would it be tidier to design this so it can call update and let all of the state change logic be handled consistently whether it comes from a state change event or from the environment I do think that's probably a pretty good idea to have it have like the one function that both use essentially so right now this has force set inside of it which just says if the current state I'm pretty sure is what that's gonna do if that is not equal to the new state that the user pass to us then it's calling set state and it's calling toggle state actually it's calling set state to changed state just just a constant changed state I guess changed as in the value has changed and then it's also doing toggle state ebound state which is actually also a constant but I guess inside of one of these it must be doing the actual setting of the Boolean okay I do think feeding that through update probably does make sense we do have update that we could maybe set something that just says inside update we want to force it to go to the new state without having actually flipped the value of it without having it actually flipped so we wouldn't look up the new value but we would change the value to whatever the user said we would also let the rest of the stuff inside of here occur which does make sense because then everything that this does would just continue to work the same in the event that you force set it sounds to me like what you would want but I guess it depends on how you're trying to use it I could see a world where what you want might be the other way around this one is mine so I can't review it I will point it out here if anybody who's watching is interested in getting involved in the review process if you anybody who uses display oh oh just worrying about its status merge domain oh thank you tech trick looks like merge this in appreciate that anybody out there though if you're interested in reviewing a display oh this is a display button library and though what this pr does is it does two things actually it splits the library to be a package so it's today right now the current version of this is a single file ate a fruit button within that file there is a single class called button and this is the whole library today is this one file with this one class in the PR what I have done is switch it over to being a package so it's now a folder with multiple files and there are now two classes there is the original button class which works the exact same as it used to the functionality is the same but there is also now this new one called well there's button base which is actually essentially ties back to like that BME 281 we were looking at that the whole point of that PR was to remove duplicate code this button base is the exact same thing this button base is to remove duplicate code all the code that works the same for all the buttons goes inside here they then extend this and then have their own customization so that's a new class as well the base to avoid the duplicate code and then the actual new bit which is not just infrastructure the actual new class is sprite button which allows you to use a three by three bitmap as your button and it will stretch it to match whatever size it needs to be for the button and there is an example in there as well so if anybody's interested in getting involved in reviewing be happy to have anybody try that out and leave any any review comments or anything thoughts ideas on there on that display button one I will chunk along I think this one hasn't moved for a bit my guess is we're still waiting on the last bit of changes one of these days we'll probably come back and just make the just make the changes I think that the original contributor here mentioned they might not have as much time for it moving forward so and there's a couple outstanding suggestions from Tectric but they haven't come back to do them or commented anything so I think maybe they are probably not coming back to it at least anytime soon there are some merge conflicts and they'll be taken care of and the last couple review comments need to be taken care of and then if it's passing after that we should be able to get it merged I think but that's where that one's at and that's so it's still kind of waiting one of these days we will put that stuff in but I don't necessarily want to do that today ESP spy stuff I've looked at these things I think there is no new movement on these some of these are drafts like this one is a draft terrible socket I did try this one out but I am stuck on it for what to do next I tried it out and I found that it was not able to download images correctly the images get like out of order or something I don't know the right way to describe that but they get messed up in that way right there this is because so there's something there's something that I recall right there's a weird bit of logic this bit here yeah yeah this bit here it used to have this logic that said if buff size zero and then it did something here I don't remember exactly what it did it turned out that it shouldn't have been doing it it seems like it's not part of what CPython does but that's the way that ours behaved and because of that when we took this out then we end up with this problem so we need to figure out why this happens get it fixed to have it match CPython but that's a little bit over my head I don't know really the inner workings of socket and stuff like that so I'm not sure I could help too much with that troubleshooting deeper in it first tab at png support so this is pretty awesome either way I'd say that's cool I mean it's definitely up to the shippu if you want to have a tech trick pick it up but it looks like it's missing maybe just annotations I think it's passing actions so that's a good sign at least for format and all that stuff um I'm interested in trying this one to be honest with you have not tried this one out yet I kind of want to why don't we do that um we should be able to do this on the hack tablet as well actually I've got my hack tablet here I figured it'd be good to do something on it and this seems like the perfect task because it's it's display stuff so we could leave a review for functionality on this one we know there's outstanding stuff it seems like just the type annotations if I saw correctly on the review page there but we could test out the functionality and see see how we're going there so one thing is I had no idea what state my hack tablet is in I'm not quite set up with the display stuff in this one this is just touch only and let's display initialize what we'll do is get that new version of image load if anybody doesn't if anybody's interested in like reviewing and github the github process of like pull requests and reviews and issues and all that stuff I cannot recommend enough the github cli github command line interface allows you to do stuff like this we could go ghpr list that's going to show us all the prs also you're going to tell us our thing is out of date so we could go download the new one I'm not going to do that right now here's the pr though there's one open it's number 61 this is the name of it this is the person who did it uh or the person and then the branch and then the date how long ago so then next year go ghpr check out right there 61 boom now we've got the code from that pr we don't have to worry about going to download it from that branch specifically or anything like that this will take care of all of it for us and just basically check us out to the branch that this is on so what we'll do is then grab image load from here put it on our tablet we do have a copy there I'll delete that one we'll paste this one you will eventually add some actually let's go ahead and do it now I think basically we'll take a simple test which load already imported oh yeah yeah yeah it is okay group I think oh we already actually we already have main group we're gonna append this to main group instead of making a new one show a script today okay and we have all true here so that should work and I'm gonna move it a bit this will put it just in the upper left corner um I don't know we may as well move it in a bit though right something like that just get it out of the corner but we can see the whole picture and then we'll need a test png dot png and we'll need to make that so let's go again we might as well use a picture of blinker I think right see here's why not this is kind of a big one I mean we may as well try it though right let's try this png so what we'll do is copy paste it to here I think it needs to be indexed but I'm not sure I'll assume this needs to be indexed still this one also has a big background we could of course cut that out if we wanted and then we'd have a much smaller file I'm actually curious if this is going to fit in memory though 800 by 480 um I'm curious if we have enough frame for that so let's give it a try save this I will just uh I'll just save one of my downloads basically for now and then we'll copy it from there rough the space minor game where can I find the module display list select uh yes good question it is in I believe the circuit python org github.com slash circuit python and I believe I don't know if it's in the bundle yet we should probably add that to the bundle it's not there yet only a couple in here so far but it is on this org I believe or my misremembering list select it's not on this one is it in the community bundle did I add it to the community bundle um or did I I only just push it to github I created it with the name as though it will eventually move into the circuit python org but I have not moved it into there yet so it is under my github now um not the circuit python org but it will eventually move over there it's kind of like circuit python org one of the things that goes inside there are a bunch of these uh display widgets they don't fit within one of the existing libraries and they tend to just be like their own self-contained widget in these ones um and a lot of these live under circuit python org and are supported by members of the community so this one will eventually move over to there for right now it lives here though um and yeah it is not in the bundle yet eventually when we move it over um it would end up in the circuit python organization bundle which I'm pretty sure circup will install from successfully so and the project bundler on learn guide and all that stuff which is how most folks would probably end up getting the library but this is the one here um but from here for sure yeah thank you uh let's go here so we did save this let's look at our device um test png this is not in images it did hard fall on this one so that's one of the things we need to fix so far still is the uh when the device resets it's not handling the display properly so one of the things about circuit python is the display uh continues living after the virtual machine is done so like after your script is done executing the display stays alive uh which none of the rest of the hardware does really the rest of the hardware kind of gets reset but the display actually stays alive um and there's something that needs to be done with the way the memory gets copied it's a bit over my head i'm planning to try to dive into it a little more i don't know if i will for sure be able to solve it but that's the gist of what we're seeing on that is the reset not copying that memory properly which is then where the uh hard fall comes from just not randomly a true why are oh force refresh we never call show definitely need to do that so we'll probably get the same thing again i just hit the reset button to let it actually run oh look at that that's a fun one speaking of like memory copying stuff oh oh my feet's dead got a lot of blinkers let's do hit the reset though i wonder if that's a clue the way it duplicated down the side there there we go look at that we showed a png uh it is kind of big though so i guess we probably will want it actually zero zero this might actually be the exact size of this tablet wouldn't that be crazy if we just accidentally the first picture we found was the exact size of the tablet i can't remember if this is 480 by 800 or if it's something different there we should be able to find out though right we can just say display actually it might be in the initialization it is it is exactly 800 by 480 look at that okay so we'll put it at zero zero which actually we don't need to set it at all it'll just start at zero zero by default so we just remove those say that again and then we'll hit reset to get it to run i got a couple of delays and it does take it a second to initialize the screen so there we go and then i assume actually it will also probably take a second to load this into memory and show it on the display but we made it right there look at that that's beautiful let me try um rgb i'm curious if that works i'm curious what it does with transparency i'm curious about a lot of things um this is awesome though thank you first first and foremost thank you to the shippu for adding png support i had my eyes set on trying to tackle this at one point and i started reading into the the actual specifics inside the png spec uh and quickly found that i was out of my depth so to speak for deep dive lingo it was i was not it was too deep for me couldn't breathe and uh couldn't really understand what was going on with the way the format works so i hope one of these days i will get to the point where i understand enough about file formats and the way that graphical data is um compressed and put into the image but i was not there yet i i looked into it and it was very quickly apparent that i was not gonna really be able to make a meaningful difference truthfully um this is awesome though that it supported let's try a couple of things why don't we uh let's take blinka out of this so that does select the i weird huh a couple of things weird actually maybe we'll just find a different blinker actually first things first let me just try with the same one but let me just put this on mode and see if that breaks mode rgb this is like normal for pngs is rgb or more common at least i think indexed i assume it's going to need to be indexed i know the bitmaps that we use have to be indexed and so i would guess the same for pngs it would be really sweet if not see what so we'll go png rgb try this one out here oh hey it did this vertical thing again interesting there's an extra line at the top and we're missing the top bit there which is interesting for what that's about it will have hard faulted again so we'll just do reset jpeg png is a hard place to start for how it's compressed yeah i was uh yeah i looked inside bitmap files and i was like you know i think i kind of get what's going on inside of here you know it's not too crazy and then i got into uh png and was just like whoa i need to understand a lot more concepts basic concepts than i do filters not supported yeah so okay rgb doesn't work interestingly we ended up with this i'm not sure what's up with that probably just because we didn't display anything like we created the display but didn't end up showing anything on it since we didn't successfully get this input initialized so to the best of my knowledge you cannot have an indexed png with transparency does that sound right yeah if i oh not actually if i delete that we are still indexed curious what's the color map you like there's a lot of colors i don't see like one that would represent clear transparent i don't know how that works let's see what it does nice awesome i'm glad to hear thanks for pulling it up thanks for trying it out if you end up tinkering on it any definitely feel free to share online if you're comfortable with that i'd be happy to see if folks build on top of that so this game that's in the chat here that paul sk has mentioned this was what i created during a game jam for circuit python day so we streamed the evening of circuit python day and then i streamed a bit the next day i mean i spent both of those streams working on this game um i'll call it a game proof of concept it's it's got the main like game iteration loop in it but i will say it's not a fully fleshed out game yet like it's not balanced and the points are not set up quite right and there's still other stuff i want to do with it at some point in the future but the bulk of the actual core game loop um the feedback loop of the game all of that is working we got that knocked out in the two streams for the game jam so thank you paul for uh pulling that up playing around with the tinkering getting around and on your device that's awesome um we went back to hard fault uh did i change it in codepie i would assume this won't work right i guess but curious to see what it does if it crashes or if it just looks weird in that section or what or if it just works or it could just work that'd be cool too is that actually working is that actually transparent if we put another thing behind that will we see through because that would be that would be very cool let's make uh can we find an adabot it's one that's transparency too can we put a background in it or does it matter i think we leave it let's leave it and see how they layer you need indexed we did find that so i'm going to make another one actually the second tile grid we named that one there we go that there save that so well this is actually going to put adabot on top i guess we should probably do adabot first that so then it should be below link uh and it should also be at zero zero which is top left corner so if the transparency we have in here works then we'll be able to see through the adabot quite but maybe we messed something up let's change eventually but it does not show the adabot so we saw the adabot initially i assume when you saw it while this one was loading but then once this one actually did load and got shown it appears to me we don't see the one beneath it let's put another thing beneath it that's not a png um let's try this out uh we could just make a vector i o shape and throw that back in the back there and see if we see that oh this is interesting we say we're finished before we basically say we're starting seems kind of weird right that makes that a little more accurate doesn't really matter anyway it's just pronounced but blue i guess blueish this is the center point so we pin the circle first then we put adabot then we put blinko transparency curious to see if we see anything through oh hey look at that we got some of the uh lower level stuff in there interesting okay there's our circle we don't see it through we don't see it through adabot and then my assumption would be we don't see it through blinka either oh interesting the display is starting to uh decay or whatever it's like it's ghosty if you don't keep updating it oh it did crush i think maybe it reset a second we might also be out of out of memory right this image is huge 800 by 480 is a lot of memory and the adabot one is actually pretty big as well this is 32k for the png file this is another 10.59k so first amp before before let's go f strings i like to use f strings these days got a graph a mild laptop we do that every time when you shut it down it is uh it's apparently a quirk of the display technology itself the display essentially expects that you will just continually send it the same picture over and over again so other kinds of displays like lcd displays i think but also i'm not an expert on displays this is my understanding of it so bear in mind i might not understand it correctly but my understanding is other kinds of displays like the one on the pi portal for instance you send it uh the data of what you want it to show and then you don't send it that data again until you're ready to change something so if you want move something to a different location or if you want to change the color or if you want to draw a new thing then you send the new data again to tell it to draw the new stuff um but in between you don't actually have to send it that data on the pi portal on those other types of displays on this type of display though this rgb.clack display it seems like it's actually different it's expecting that you will send it the image um you know all the time like just constantly as fast as you can it's expecting you to send that image to it and as soon as you stop sending that image it starts fading away so you actually have to keep sending it in order to keep it from looking like that so it sounds like your laptop probably had the same kind of display and then after you shut it down of course you know eventually the graphics processor stops running so therefore it stops sending updates to the display um and therefore it would start kind of ghosting fading away like this that's your understanding too okay it's good to know i'm at least on the on the right track or at least yeah you know i'm uh within the realm of reasonability so a good step for me i would say so let's go after put this one in here so we'll see my guess is we actually are probably running out of ram honestly and maybe when it tries to throw the ram error we are actually ending up in a hard fault we shall see though so we did get our dot vector uh vector i o by itself works we do start loading the blinka okay no i finished so we do see all that stuff so the one other thing now that i'm curious about it does not look like we do get to see through the transparency um which like you know that is cool that makes sense right we don't have the ability to do that today so that would be like an amazing and awesome new feature for sure one of these days i'm sure we'll get there but we're not quite there uh with this one what it does is just allow us to use the pngs uh it does respect the transparency by trying it um black oh that's interesting we got our okay we i think it reset again i think what happens is um something on my computer occasionally writes a file onto this i don't know if it's pie charm or something else i think i've tried to disable that in pie charm so i'm not i i don't think it's coming from there but something on my computer i think is uh writing to the drive occasionally and then that causes it to reset and then with this device um until we get that reset logic for the memory fixed um that will cause it's hard fault um the next thing though that i was curious about is if we shift this image out of the corner will we be able to see the vector i o so as long as we don't cover it up will we still be able to see it um so what i'll do is i'm actually going to get rid of second image for now that's adabot we're just going to roll with blinka and the circle and what i'll do is just move this even though it's full size i'll just move it to 20 50 50 all right now this one's fading black yeah the this screen here fades interestingly it fades like dark at first and then uh or or or but it looks light sometimes like eventually it starts looking like it's fading to white but it's it's really if you let it sit a very long time it ends up at kind of a dull shade of gray somewhere in between doesn't quite go all the way black or all the way white um it ends up on a gray in there somewhere our circle so we're trying to move blinka down to here and then we should be able to still see the circle i think yeah but if we didn't do as much here if we just did like 25 for instance then we would only see the top half of the circle and this must be a clue about what's happening during the reset the way that this is uh duplicating down like this i wonder this probably tells us something inside the core i don't think i'm smart enough or no enough about it yet to know what it is that it tells us but that is probably that is probably a clue that's telling us what is actually happening the reset occurs compared to what we need oh oh oh oh oh yeah yeah we would need this let's try like this interesting that time it got only the bottom half i think can we see the top half but not the bottom okay so basically transparency draws as black seems like transparency in the png gets translated to black on the display now one thing we might be able to do might be able to make transparent don't know if that will work it might as well kick the tires while we're here though right this is part of the fun of testing new features is figuring out where the bounds are at so if we say palette dot make transparent you can make individual indexes transparent so i'll start with just zero let's see if that's the black or not i don't actually know so this one may not change anything what i'll try after this is uh i'll use looking here i will use a for loop and just do like zero through 17 or 18 or something those look like all the blacks the shades of black up there at the beginning of the palette i'm curious to see what just make transparent zero does as well though that did work yeah zero allows us to see the circle and we could actually probably put this back to zero as well and so we can actually see through that so then i guess the next question though i wonder if zero is always the transparent color or if that can move around within the palette okay so this is actually pretty sweet we can use the transparency and we you know we have to add the one extra line of code or whatever but we can actually still see through the stuff below it if we were to put adabot back now we would actually i think see adabot as well and if we did um in here if we did zero i think in this case we might actually be able to see all three of them stacked let's find out what's zero here looks like it has black at zero as well so that is awesome so the rest of those like zero through 17 or whatever those must be black from the outline of blinka blinka's eye and stuff like that the zero index black though is what was occupying this side over here the transparency and that is working on all of these adabot works the same the transparency is zero as long as we do make transparent like that we're able to see through the stuff below it which is awesome was there a um example i only feedback really would be uh providing an example would be pretty nice but i would be happy to work on the example um for the shippo so they doesn't have to mess with that right if he doesn't want to i am super stoked for this capability i would do anything i could to help help move it along for sure so tested this successfully on then we'll say uh on um tablet and then i'll put the uh the actual stuff that this device is which is is its own kind of custom build and stuff so it's you know we would want to probably also test it on a quote unquote normal device if you will but it's just what i've got loaded up for now we'll leave what we tested with here and then i'll just mention my only other feedback which is just that it'd be nice to provide an example also we will definitely get an example one where see help however i can to maybe let's go slightly more complete senses i realize i'm just starting senses randomly try to load a png and i got uh filters not supported i saw that earlier as well that means well in my case what that meant was that my png was rgb mode i had to change it to indexed so if you are using gimp it's under image right here in the mode rgb tends to be the default so if you just got your picture off the internet or somewhere most likely this will be on mode rgb already you can just swap it over to indexed if you're not using gimp then search like whatever program you are using so like photoshop i assume if you're not using gimp it's probably photoshop um and so you could search something like photoshop convert png to indexed or something like that probably get the steps in that tool or whatever tool you're using but that would be my guess um i think that error technically pretty much just means that it needs to be indexed instead of rgb as far as the color mode type annotations tectra cas taken on this one a little while ago i guess saying maybe this one too feedback searched previous animation definitely like catney review that one led animation is definitely uh i don't know kind of a pet project i guess of catney catney and uh rose uh worked on led animation closely together catney did the guide for and stuff so there's a lot of experience working on it for sure as a capability to use fifo buffer fifo buffer huh a surprise pylon didn't complain about this not being at the beginning i guess i don't i still have not quite learned all of the ways of piling yet but i feel like i sometimes get errors that are like this input should go or uh this import rather import should go before this other import this one looks like it moves it down though so i guess whatever's in my mind must be backwards from how it is or something fifo enabled fifo mode raw fifo fifo acceleration the acceleration value stored in the fifo buffer plus the three two equals x y z sine flows what is the difference what does this way of doing it what is the functional difference is it basically just that is it basically just that it stores a historical list of acceleration values that way if you don't pull for the new values soon enough you can still get the last couple values like maybe the old way of doing it was when you pull when you pull poll when you pull the chip maybe you get the current value and that was just it but this one stores them in the buffer that way if some motion occurs but you didn't happen to actually pull right then and there in your code and maybe your code was doing something else updating a display or something but then you check it after the fact this what it seems like let you get that old value which with the old way it would have been gone by the time you check it again you know it would give you the current you know current acceleration values but you might miss that one from in between that's my best guess as to the actual like nuts and bolts physical difference like actual difference this makes it's my best guess the code seems fine to me um i can't say as though i have a ton of experience or expertise inside of like these i2c driver libraries just yet so i don't know that i would necessarily be the one to spot like an inaccurate or uh uh you know if there was a better way to do this with these bits and stuff like that like i don't know that i would necessarily be the one to be able to know that but as far as the code that is here this does look pretty standard to me for i2c slash spy drivers this looks pretty similar to what i see in all of them where it's reading bytes out of the registers sometimes unpacking data from a struct it's often very you know very common that there's like a raw data function and then you know an actual property i guess this one could be a property that's that's probably my only feedback as far as the code itself i think um let's take a look at the current file file is this lsm 303 excel so my guess is there will be value and value will be or uh acceleration acceleration raw acceleration yeah acceleration is a property generally we like to use properties for accessing data and setting things and it looks like if i understand right actually well no no this is mode though yeah yeah yeah here we're not passing anything in so i do think this could be a property and i'm pretty sure that i do have an lsm 303 errors try to load uh yeah index not rgb then thanks yep yeah for sure um what's the third one determining if your program oh this is back to the quote from before the three hard problems what's the third one determining if your program finishes even when you do the orbiting black hole trick and off by one errors would be the answer yeah off by one errors definitely a whole class of its own errors i still run into off by one errors sometimes 303 agr is that maybe that one actually does say agr on there is there an lsm 303 that's not agr 60s this is another one where i'm getting tricked i think i have one of these but maybe i'm wrong i could have swore i've used one of these before in my own stuff that's only just say agr part of it okay i'm gonna check i'm gonna run and look well let me see what i'll look in the ones i brought because i did bring this case down no accelerometers in this one this one has got a lot of more weird stuff like rgb sensors the fan controller digital potentiometer the trust chips eprom ram okay one more second here i'm gonna see if i do have this device uh prom so i won't be gone for too long thanks for hanging in there okay i have lsm 60s this is the wrong one i think but this was one of the ones that is making me think i have it you have this lsm 303 dlhc like this for now so does this one use this library it is weird it doesn't i guess discontinued ah okay yeah there's what we've got right there okay ah okay an agr is the new stemma version i also grabbed this little breadboard with a stemma connector and take three to five volts safely so we should just be able to use the stemma port you know what i never remember is which color is sda and which color is scl blue is sda and ground v in so this will just use i was about to say did i just find the one thing that this feather tft doesn't have does it really not have stem port but no of course it definitely has some port is everything i just have to look that up yeah i've probably whipped up that color code under time oh maybe not a hundred at least a dozen times so we've got this connected to the stemma port i think we're hooked up here i think i'll head out after this but i will try to test this out so if anybody has last thoughts comments questions interaction anybody wants to do any of that now is the time because i'm going to head out after i do this and like i said before then it's dinner time and after that we're doing the drawing so again last warning pretty much we're pretty much to the last warning here if you want to enter the hack tablet giveaway and you have not done so yet you need to do it pretty much now because you are running out of time quick i don't have this library yet catch up here is that a fish elephant when i learned to see us the teacher said that halting problem is undecidable unless you're orbiting a black hole unlimited time to this day i'm not sure if that was a joke or not i can tell you there s c lemon s c azure even then it wouldn't work for factorials algorithms and such because being a black hole would disape first missed most of the stream we'll watch it later how's going dj devin thanks for tuning in if you're here and yep you can definitely catch the bot and i thought i'm in c s not astrophysics hacktab we have a way still going on i thought that finished up on circuit python day nope not yet today is the last day we're drawing the names this evening so if you have not entered and you want to enter you need to do it pretty much right now so after this stream concludes which is coming up here in a few minutes then i'm going to go and eat dinner after i eat dinner i'm gonna get all of the entries together put them into the hat so to speak that i pulled the names out of and we're gonna uh i'll pop back on the stream on my own channel and we'll pull the remaining three names where is the entry system for the hack tablet yeah i'll get the link again let me do that uh huh this was on gist looks like i closed it and it is only one entry per person so if you have already entered you don't need to enter again um if you did enter before we did the prior drawing a couple weeks back then you will just automatically be in there this time unless you won one last time so here's the link again i'm dropping that in both the youtube and the discord chat this is the page that has the information so head here read the information and then this link right here entry form that's what you want to click and then fill out the information that is on this form it's basically going to be your email and a couple of questions like if you're willing to help us out testing builds and what your level of comfort is if you're like building your own stuff or just installing one we do or something like that um and then answers to a couple of their questions to make sure you understand the nature of the project and stuff so head there again you want to click on entry form it's about halfway down that link that i shared you and again we are running out of time fast so if you again haven't done that and want to be entered now is the time head there right now and enter because there is not much time left i'm going to be dinner and then i'm going to basically close entries by pulling all the details and putting them into the hat to draw so do that asap copy this we'll put it on our device inside lib though we'll get the example sample test there we go we got our values one thing we'll check is is there an example in the pr because if not then i would say basically some of my feedback is the same as the previous one which is it'd be nice to include an example i'm going to don't see one in here so i will leave that comment as well see drawing be on stream or offline after stream kind of thing it will not be on this exact stream that you're watching right now but it will be on stream i will stream over on my own channel twitch foamy guy underscore twitch on twitch and then foamy guy on youtube i'll drop links in the live broadcast chat i'm pointing over there because that's where it's out on my screen although it occurs to me that it's not over there for all of you but that's all right um yeah i'll drop links in the live broadcast chat it will be technically a different stream i'm going to shut this one down i'm going to go and eat and then i'm going to come back stream onto my own account and we'll do the drawing there but it will be live on stream for everybody to watch along and see if you want but just on different stream technically not this one i think it would be nice if we include an example inside of the examples directory that shows how to use the new functionality didn't know there was a stream going on yeah yeah we're streaming right here well i guess probably you can't hear me if you didn't know there was a stream because you're probably not watching unless you are now in which case hi and thanks for tuning in um yeah let's do that submit review i will test it out though we should be able to just do what um set the mode set the fifo mode one of these fifo mode fifo so let's print once before the loop live broadcast topic that's uh oh well yeah that's true it is live broadcast inside discord that's a good point yeah generally this chat is this this channel or whatever they call it in discord this one is typically just for live streams so this was fifo mode equals oops we need to go like this again we need to get the modified version ghpr checkout 14 that's actually the one we want to copy to our device so once we have set the mode we should then be able to say fifo acceleration this should give us back a scaled fifo which is a list method right i suggest to changing it to a property but it's not a property yet it's a method right now there we go there's our list i again i don't necessarily know what i'm looking for i will say one thing that i do find odd is these aren't changing i'm moving this around and those numbers appear to be the exact same every time i don't know i don't know if that's what we are expecting or not will report what i saw though is to read did she done how discord first works the gh tool is amazing yeah i 100% agree the gh tool uh makes a lot of review stuff a lot a lot a lot easier i used to like always go find the right branch and have to add a remote and check it out and do all that stuff um this makes it a lot simpler we are calling this over and over so we should just gonna say maybe it's not updating itself or something but make this shorter i need the comment or the doctrines or anything just for a sample code inside of a issue on github or a port across whether okay so we'll leave that comment we'll see if the author of the pr can add any more details about like if this would be expected to work and print different values or if it's expected to do exactly what it is doing which is printing the same value over and over same list of values actually because it is a list of values you know it is actually a list of the exact same tuple over and over again i didn't see that before but it is actually a list of the exact same tuple over and over interesting maybe you need to take acceleration values also the only thing i could think i'm still seeing the same ones over and over so this one here is my print that's coming from this and then the these are the same tuple i'm guessing i either have not configured it correctly or i'm just not understanding how it works or the other option is my sensor is weird or i don't have it hooked up right or something like that one thing i will do is go back to the simple test and just make sure we're seeing differing values with that i don't see five-fold acceleration in the library code so not sure what it's calling that is the pr yeah so the currently released library doesn't have five-fold acceleration but the version inside this pr right here pull number 14 i'll drop the link there that is the pull request which has the modified version of the code and if you want to actually see the code you could click through to this branch right here timber 77 main that would allow you to actually look at the code that contains the new stuff ifo if you search that up you could find it yeah that's the new stuff there or if you're familiar with the command line tool um there's a command line tool called gh gh cli the github command line tool which is what i used and it allowed me to just clone the repo uh and then run this command like gh pr check out the number which is 14 and then that downloaded the code for me so that i could copy it from here to my device so those are the ways to get to the code it is interesting that this is printing the same thing every time um maybe my sensor is just wonky or something i don't actually know oops i'm gonna give it one more sanity check and then i think i am gonna head out okay yeah the uh the sensor my sensor is wonky because even with this version we're getting the same thing printed every time and actually it looks pretty close to the one we had before in the list so something weird's going on i don't know what it is well okay one more thing we'll try is back to the stock library speaking of awesome command line tools circuit would you adjust the rate and bandwidth could you adjust the rate and bandwidth just in case um i i don't know how and unfortunately i am about to head out i don't necessarily want to spend too much more time so it is possible that i like i don't know enough about the driver to say if i could or couldn't or how to do that so for right now the answer is going to have to be no i can't necessarily do that right away but i will try to look into it when i get back to this but for yeah for right now i am about to head out and and run and get food and then like i said earlier uh get all the entries together and do the uh final drawing for the hack tablets yeah see now i have stock library and stock example and i'm still getting the same thing which is this is not changing so i am thinking something weird is going on in my setup i must not be set up correctly or maybe my hardware is broken i guess that could be possible as well but most likely there's just something weird in my setup believe that there we may poke around at that a bit tomorrow as well for folks that don't know i do stream saturday mornings as well so uh in addition to the stream a little later tonight on my channel for the drawing i will be back on my channel as well tomorrow morning saturday at ten a.m central time um that is the time of my normal weekly uh saturday morning stream so if you're interested in this kind of content um you can follow me again on twitch foamy guy underscore twitch you can also just head over to the live broadcast chat which is the discord that's showing in the window right down there and i will post links in there when i get started on my own channel uh the ate a fruit channel is a little bit bigger it has lots more subscribers i don't tend to drop the links in there because folks know when it's going on um for mine uh you know a little bit smaller don't have as many subscribers and stuff like that so i drop the links there just to make it easy especially because youtube it changes from week to week um if i if i could make it use the same url i'd be happier to just set it once and not put paste it every week but it actually does update every week so i'll paste those so i'll be back tomorrow for that i'll be back here in about an hour or two uh to do the final hack tablet um drawing so again this is like your absolute last chance right now if you're interested in the hack tablet and you want to get entered into the giveaway you pretty much need to do that right now because i'm going to be closing that down here very shortly so uh head to that link i pasted it earlier in both of the chats um get to the link follow the entry form link fill out the form that'll get you entered to win the hack tablet um if you're if you haven't done that within like about the next 20 to 30 minutes then you're going to lose the opportunity to do it because i'm going to close it down to get all the names together so please do that thank you again to everybody who did uh thank you to everybody who's watching thank you definitely to kmatch for all of his support with the hack tablets generally creating those devices uh and making enough of them to be able to share with the community um huge hug report for that and yeah i think that's going to do it for tonight so thank you for watching everybody um i'll be back here in about an hour or two for the drawing stream it'll be a short one but i'll draw the names on stream um we'll give away a couple more hack tablets and that's it for me so yeah thanks again everybody i'll see you all next