 Alright, hello everybody. Happy Friday. Let's see some of the stuff set up on back camera. DJ Devin, how's it going? Time for some road running. There's like a little gap between the chats. Alright, I'll get the rest of my stuff ready to go here. All folks are tuning in and then we'll have a quick introduction to get going. Oh, nothing, huh? Oh, yeah purple submarine time. How's it going? Let's see, it's a little small. Let me get to the actual chat. There's an axle over there on YouTube. How's it going, Biata as well? Good evening. Happy Friday. Let's go flashlight. Let's go focus. That's probably good for now. How's it going, Dexter? I'm doing pretty good. Going great. Just finished a couple projects this week. Got a lot of compliments on them feeling outstanding. Yeah, that's nice. Got great stuff going on. I saw the the requests PR you put in as well. That's on my list to check out either this weekend or definitely on Monday if not this weekend. I usually make a big pass through PRs on Mondays lately and then I do some in the evenings and on the weekends but I'm still kind of like getting out of the teaching mindset. I just wrapped up my class last Tuesday and I've been like doing a lot of stuff for class outside of Python so I've not been in the evenings once I finally get done doing stuff. I've not been wanting to do more circuit Python stuff lately but I'm getting back into the swing of things now and I've been doing Mondays the whole time so thank you for putting all those new examples in. I'm always happy to see new examples get PRed pretty much to any library but requests in particular I think there's lots of room for new ones. Good afternoon Paul SK. How's it going? Ship shape in Bristol fashion. Okay so a quick introduction to anybody that might be new. So first of all let's say hello to everyone who's watching whether you're new or not. I appreciate you tuning in. This is the deep dive program on this program. We are getting our hands dirty with circuit Python stuff. Sometimes working on circuit Python libraries, sometimes working in the circuit Python core, sometimes working on circuit Python projects just depends on what I have going on for the week. This week we are going to look at the same project I have done a couple of different variations of recently which is this trivia one. I have some enhancements in mind I want to make to this and then I think that that will not take all of our time for tonight stream and so with any time left over what we'll work on is back into the core specifically into documentation land which is kind of an unsung hero of open source software so I'm happy to kind of do some of that on stream and highlight it. There's an open issue that's in the core for some documentation improvements. It's a relatively good first issue so if folks are interested in getting involved this issue that I'll take a look at a little later is a good one to start with and I'll walk through doing some of it so you'll have a chance to see how it's done. How's it going Dale Echols over there on YouTube thanks for tuning in. So taking a quick step back though if you are brand new to this you probably don't know what I'm talking about with all this stuff so let's give you the kind of super high-level look at it. We are working on a project called Circuit Python. This is the main website for the project circuitpython.org. You can go here to learn more about the project. Basically though this is an implementation of Python that runs on these tiny computers called micro controllers. This one here is a Raspberry Pi Pico W microcontroller and we're running Python code on these devices and then of course we can interface with external hardware. So in my case I have it plugged into a display. I also have these four cherry compatible key switches here. These have NeoPixels inside of them so like the Python code that runs on this device can control all this stuff. It can draw stuff on the screen. This actually happens to be a touch screen as well so you could be touching buttons and stuff and the microcontroller could be reacting to it. And then of course on our cherry keys we can from our Python code read when it gets pressed. We can set the NeoPixels do all that fun stuff. So that's kind of the high-level look at what we're doing. Again circuitpython.org is where you can learn more. The downloads page in particular has the actual downloads for all the different devices we support. There are 340 different devices that support circuitpython right now. So if you have a microcontroller already there's a decent chance that if it's relatively new that circuitpython support probably exists you can find out for sure by going to circuitpython.org slash downloads. Search in here and if you find your device then you'll find a downloadable file that you can flash onto your device in order to use circuitpython. Circuitpython is an open source project. All the development takes place out in the open on GitHub, which we'll be headed to later on today. The repo is right here though. GitHub.com slash Adafruit slash Circuitpython. This is the main project for the core. There's also hundreds of library projects which are Python code that run under Circuitpython and give access to various hardware drivers and other helper libraries and things. All of the development for all this stuff takes place out in the open on GitHub. We encourage folks from the community to get involved. If you'd like to do so definitely hit up the repo, look through open issues, open pull requests. Again the website circuitpython.org there's a contributing link which has more information for folks specifically interested in contributing. So do all of those things and we are in the last few days of October which means we're in the last few days of Hacktoberfest. So there is still time if you'd like to get Hacktoberfest pull requests in. I believe you can still do that and get credit for them pretty much across the entire Circuitpython project whether it's the core or the libraries or Blinka. Everything is fair game to the best of my knowledge. Everything is fair game for Hacktoberfest. So a couple of days left to do that stuff and then I should say also this upcoming is it Monday? Let me double check. Let me double check. I want to say it's Monday because it's Halloween evening. I do want to get the date right though. Let me double check. Yes. 10.31, 10.31, 7pm Eastern Time. So Monday evening at 7pm Eastern Time. Tectric, community member and member of the team that's working on Circuitpython in the libraries and things. Tectric will be streaming our community help desk which is kind of a thing we do where folks are able to come and get help contributing if that's what they're interested in doing like if they want to contribute but don't know how. Need pointed in the right direction. Need a pointer to something at a beginner level that they can work on or just pointed in the right direction on a problem they're seeing or not understanding how to use Git or version control or any of that kind of stuff. During that stream you can get help on all of that sort of stuff. Hacktoberfest ends October 31st. Ah okay, 7pm Eastern it is. Oh really so it ends it ends before the or at the same time as the stream. Anyway though that help desk stream will be going on Monday evening so check that out if you are interested in either getting involved or just want to see behind the scenes at what goes on for the folks who are involved in working on the project. And again Tectric will be streaming that on Monday. And then lastly before we get going let me just say thank you to Adafruit. Adafruit.com this is their website. Adafruit is a hardware and software company based out of New York and they are the company that is primarily funding the circuit python project. So it's an open source project it's free to use for all the users. It's permissively licensed so it's free for you to fork it and modify it if you would like to do so. And you know Adafruit is paying the team who works on that project full time. So they're paying folks who work on the actual code for the project. The libraries, the documentation, the projects, the streams, all of the stuff around the circuit python project. The folks who are being paid to work on it are being paid primarily by Adafruit. So thank you to them for sure. And then thank you to anyone who wants to purchase hardware from them in order to help support circuit python and the rest of these lovely projects. So you can buy hardware from their website Adafruit.com. They sell microcontrollers like all the little devices that run circuit python. They also sell all sorts of add on devices right you know breakouts for sensors and buttons and in this case it's breakouts for memory. You can store arbitrary data on these little chips here. So these are just the new thing of the week. They sell all kinds of different hardware that you can interface with circuit python and other types of microcontrollers. So head there and buy yourself some toys and again if you do you are helping support circuit python project. So thank you for doing so. Okay let me catch up here. Trying to get a t-shirt if it's possible but none of my PRs are counting scroll through Hacktoberfest filters but it's just nothing getting approved. Hacktoberfest filter. I don't know the exact time. If you look through Hacktoberfest there are simple html issues too. If you can code yeah yeah there's documentation, there's typing, there's documentation that it's ultimately html although it will be inside a code in an interesting way but how to find Hacktoberfest repository. Oh there you go that's a nice tip. So from YouTube there's a way. To the best of my knowledge all the PRs should count across any projects and the like kind of technological thing that to the best of my understanding makes it work is this I don't know if do they call this okay topics. It says topics down there. I think technically they called us a topic. My understanding is PRs that are on repos with topics of Hacktoberfest during the month of October will count. That's my understanding of how it works. There's there's a couple of different ways like you could also put a label I think they call them labels. You could also put that on the PR itself that's a different way to do it. The topic on the repo is supposed to count for all the PRs I believe though on that repo. It's kind of nice. Oh nice trivia running on the Fun House. Sweet cool you got this adapted to run over on the Fun House. Open that up with the same one by four NEO key there. Nice you know I haven't seen much of the Fun House in horizontal mode. I kind of like it though actually like a landscape. Oh we got these things again huh that's cool. By cool I mean be cooler if it didn't. I see Todd bots. Yeah yeah everything I mentioned is is circuit python essentially Adafruit and circuit python repos. Yeah individual members they could choose to or choose not to it's totally up to them. I suspect most people would be fine with it if you asked but I don't actually know. Did you see did you do the color um what's that Dexter? I guess politely you might be willing yeah that I I guess would be maybe Dexter yeah thanks for sharing that. Did you do different did you do colors on the answers to match reopen or is it gone? Oh okay it's gone. I guess it would have been in a different tab. Did you do colors on the answer labels that match the yeah looks like it colors on the neopixels is that right so you've got choice C Tommy Lee Jones is like sort of I can tell if it's yellow or orange I guess probably orange it matches matches this light. Is that the way that you've got it set up? I do like that that's one of the things that I'm going to work on today I'm going to do a different take on it I'm just going to draw a little colored box instead of the the text but I like the text color as well. I'm understanding that right. Community bundle? It'd be interesting I think community bundle I don't know if it would be interesting if there's a way we could add it to the community bundle if we could add that topic to the community bundle and have it count for all the sub-repos I have no idea though how Hectoberfest interacts with like sub-modules which are what the bundles basically are just a big list of sub-modules so I do not know how that works out. Okay so I will start with the colors coloring answers to match the leds that's on my to-do list for sure. Oh okay I got you it looked like it was there maybe it's just quite picking up to my eye. So I would like to do I think just little squares next to each answer with the color that matches the button and I've got a grid already I'm adding my labels to the grid so I think what I'm gonna do is make a group for each label and then add a little colored box to the left of the group to the left of the label inside the group. I would guess the community bundle does count but for adding things to the community bundle that's the part I would be more confident in saying I'm pretty sure that's gonna count not so much updating a repo that is a part of the community bundle that one I definitely do not know. Catton you may have some idea though as well so it's good to ask but adding a new one so like if you were to create a repo and add it to the community bundle I don't see any reason why that PR did not count or put another way I don't know of any technological reason why that would not count I haven't looked at the topic maybe it's not there but I would assume it is and I would assume that it should count. So let's make a group for each of these answer one group and then we want to get a little colored block which I think I'm just going to use VectorIo for just like I do as examples I gotcha so we'll just go like answer one color color icon color icon color block color color icon let's go color icon and I don't remember the VectorIo API off the top of my head I end up having to look it up pretty much every time I use it this time is no exception it's like VectorIo.rectangle xy with height maybe color I don't know you need a palette pixel shader okay rectangle so pixel shader with height xy I was pretty close I was pretty close VectorIo.rectangle so so we'll need to make the palette first I guess answer one I'm gonna make a lot of new objects for this now we need the same palette need one palette for each one as well you don't be nice as if VectorIo we could give it a index within the palette to use that way like if I want four different vector shapes with four different colors I could make one palette with four colors in it and then tell each one to use a different index it would be pretty convenient maybe we will jump into the core and try to tackle that seven-segment display I have one of those seven-segment displays to play with but if it's the the stem of one is the one I got I'm a total noob what editor are you using good question this is the pie charm editor yeah pie charm and then I have it set up in kind of a very particular way where I have a project on my local PC but I also have it showing the connected thumb drives you know thumb drives external storage which in this case includes the circuit python drive although most specifically it's not actually plugged in so we'll do that then it will show up down here as an external storage a circuit pie drive which means that whatever we're editing here this is not this is not uh what we want to be editing assumed this was code pie on the device but it is not this is code pie on the device first to the newsletter also don't count I got you so we'll just go new palette uh it just takes a number for the number of colors we're just gonna have one and it's gonna be green now we can go pixel shader uh documentation counts I think and I would argue any documentation counts no matter like yeah like I don't know it's I don't have the final say uh so so to speak but I would argue for any any documentation change is is valid for Hectoverfest in my mind so if somebody were to make one and it like a documentation change and it were not to count somewhere I would offer up my opinion that I think it should yeah documentation improvements are always good even I mean even small stuff relatively speaking right it's it's helpful for the people who find it like that's definitely the kind of stuff we want to encourage especially new folks we don't need to install anything we just need to import that this is one place where pie charm is not so smart because it's like trying to look for these modules on my pc these modules don't actually exist there are stubs for them which I need to get newer ones but that would help some not all the way newsletter yeah no newsletter I think is its own thing not not documentation I mean specifically though if you do docs for a library or the core I believe that should count if you're doing documentation updates newsletter is not not a repo I do a whole lot with like I don't you know that's kind of ands ands domain certainly um so I cannot speak to that one but documentation in libraries in the core I am personally in favor of uh counting for sure we'll say we're going to give it the palette we're going to give it just width I think let's try just 10 by 10 or something like that just get something nice and small um x y I guess x y I mean we could probably just leave it default but I guess we'll go zero zero and then what we want to do is actually add both of those to our group so answer one group append the color icon and then after that append the label and then what we want to put in the grid is actually the group not the label and then the label we also want to go anchor position zero zero anchor point I'm going to say 10 zero maybe 11 11 or 12 because we want it to be to the right of our little square I know blog posts don't count but I saved it for just midge of embarrassment once when I spelled out discs I gotcha typo in the blog I was in the twitch room and not on discord oh sorry about that evil evil day if I appreciate you tuning in yeah on this stream I do not actually have the the twitch open unfortunately yeah so I won't see anything in there I've got the youtube and the discord both pulled up and those are the two that are on the screen but I can't I can't focus well enough and I don't have enough screen real estate honestly to keep milk to keep more than two that's up and I'll get distracted if I try I will say for folks that are interested I stream on Saturday mornings as well so Saturday morning at 10 a.m central time I also typically stream so that's like tomorrow morning on those streams I'm on my own channel rather than the ate a fruit channel and on those streams I I don't use the youtube chat and instead I do use the twitch chat and so I do watch the twitch chat on those Saturday streams I know that's weird maybe to do it differently for the stream versus that stream but the ate a fruit ones tend to all of them use the youtube chat so and deep dive was started by Scott he was already doing the youtube chat so I just continued on with that for my streams though I do I do keep an eye on twitch and I don't use youtube as much because I think their moderation tools are lacking all right so I think this should pretty much work for one of our answers right let's take a look at this and see if it does syntax error so we have an actual syntax error now or did we just have a syntax error while we were writing our code and it was halfway broken it's like we do currently still have I miss a comma valid syntax line 150 is a parentheses icon equals vector IO rectangle pixel shader equals palette width equals 10 height equals 10 x equals 0 y equals 0 it's got a closing parentheses do you want to go back to terminal IO font I think or maybe I did by change okay I did by changing this here so not a very good programmer though and I didn't rename the variable uh syntax error what if we just didn't make the icon group object has no width yeah so the well one of the problems we're having I still don't really quite understand the syntax problem we're having the next problem that we're having though this one specifically group has no width this is because the grid layout which is what we have put the answer labels into the grid layout is attempting to access the width in order to place it within the grid cell but groups do not have a width show times and add hectare first accepted a PR so they all count nice there are a list of commands somewhere uh I do not know of a list of commands I show times is the only one I know of um it is like a public one there are moderator commands but I think those come from a different bot but I'm not actually sure how it all works I'm a peek and poke typist let's see I'll have to learn Python because I want to make a custom mechanical keyboard on an 8 by 25 grid I'm a peek and poke typist and I want my own layout I plan to use Adafruit's 5 by 6 Mx key grids and just about four units to test 12 by 10 grid nice yeah the the big 5 by 6 that's definitely a good way to go if you're trying to get get a big old grid like that so the problem is we can't use group you can't use group for this so the next question is like do we want to use something else or do we would want to just change our approach here I think we change our approach I think we change our approach instead of putting instead of making an answer one group and putting the answer one icon and the answer one label both into the answer one group what we will and then putting that group into the grid instead of that what we'll do is just put the label back into the grid we don't need a group at all we do still need a palette we do still need an icon we're gonna have to figure out our syntax error on that on the icon we are not gonna append this we're not gonna have any of these and then our grid though we're just gonna move that grid over with x here by to 12 and then on the rectangle let's go y equals let's start with that so are we back to syntax error group object okay so we don't see our colored box the reason we don't see the colored box is because we made it we didn't add it to any groups get rid of the other group we need to add it to the at this point the main group now the answer group is this called game group game group it's autosaving I feel like it's not showing me the star sometimes I think it just gets messed up though I don't know logitech's logitech k845ch with mx blue is nice tech what does that one look like I use a I use a weird keyboard kind of I use a kinesis advantage which is this really bizarre split keyboard the official keyboard of the men in black I'll have you know this is what I use which it's took a little while to get used to but once I got used to it I really really liked it and I have trouble going back to standard keyboards like this now all awkward like riding a bike for the first time in a really really long time now looks like pie charm yes definitely is pie charm the ide for sure yep cost me 90 canadian dollars our condition does count but they're pretty strict on not allowing compiled repos libraries full of a bunch of other things it's not what's happening here some people will create and contribute to repos that are like add your name here our guys have all the code to and there's different ways to make them with matrixes learn guys are awesome and watching jpeas videos playing to use mx blues with rgb keys nice yeah the jpeas split one I think uses those five by sixes also no no liking pie charm over there biota like are you a vs code is code fan or something different or vim you vim person so it'd be nice if we had a little bit more padding between the text and the color but that's pretty much what I wanted was the little box there just a little bit more padding maybe like let's try 16 instead of 12 nice I've known a keyboard without a calculator button for 20 years it's a requirement for me once you used to having it you don't have a calculator button my calculator button is windows key calc u c a c a l c u enter unfortunately because Libra office calls excel calls their version of excel calc which is actually kind of a bummer because I really want calculator way more often than I want Libra office calc even though it is a great replacement for so I don't really feel like that moved did that move did I not move it right oh well yeah okay this isn't doing anything actually the grid here this I see your programming computers back in 1981 nice I was not born yet but I did start programming computers I mean I guess not that early after I was born maybe like I'm gonna say nice 10 or 11 it's the first time I played with QBasic not quite a great way to do this with the glare of the camera and everything that's pretty good though that's basically what I'm looking for as far as the box goes and now one thing that's gonna be weird is we have to like know the right number of pixels to go down I mean I guess we could just guess and check it right it's not gonna be that hard I don't have a macropad though before macropads existed we've got plus one on the LibreOffice calc I wonder if there's a way to change it maybe I can like change it to something else also licensed ham that's the devil's ham nice we have a couple of folks that are interested in ham radio stuff I think in the community more of a free software enthusiasts not that I won't but I prefer not to if I can help I see okay well that's fair there is I mean there's a community version of PyCharm which theoretically would be fine for the circuit python project my understanding is it's licensed for open source projects that being said you know full disclosure I definitely did pay for PyCharm I've paid for PyCharm for several years now they did actually give me a free a free license for the bundle a couple months back they saw me streaming apparently the idea folks is that idea no no IntelliJ the IntelliJ folks they watch twitch I guess they saw me working on something offered me that I do understand though wanting to use free software I tend to be that way with most things but my IDE is one of the few things where I am not only willing to happily pay for it I am actually willing to happily pay a decent chunk for it right like the the cost of my IDE I look at is just a cost of my line of work basically I make essentially a hundred percent of the money I make using my IDE to develop software for the most part so it's like I'm willing to willing to slurge a little bit on it and I just got really used to all the stuff that PyCharm has lots of folks use other stuff too though like VS Code is pretty popular I see folks asking about that all the time I know Scott uses the Sumatra text on the right one I don't I'm not sure if that's the right I think that's no that's not right that's a that's a PDF thing I forget what's the name of that other text editor it's like a pretty widely used text editor is a plug-in for it for version control and it's less like a fully featured IDE I'm drawing a blank on the name so we can pretty much make these icons for each one of these now yeah I've I've gotten pretty good at it over the years I mean it's been going on I mean honestly going on going on 10 years at this point because I started using PyCharm around the time that I started the full-time job that I essentially still have and that was in 2012 so yeah going on 10 years I've been using Python which PyCharm specifically is actually really crazy to think about green and red is going to be yellow we want just these things over the years though I've definitely picked up lots and lots of the tips and tricks and things that lets you jump around quicker and I'm always discovering new ways that it will do stuff for you it's always a pleasant surprise well it's it's bittersweet sometimes because you discover like a helpful feature but then you like think back on 10 years worth of using the project and imagine all the times that if you had known about this feature that it would have saved you time it's kind of bittersweet because you're like well now I know about it and now I think it's really cool but also have done this manually about a bajillion times it's always good though to discover new stuff retired back in 2000 due to Y2K hard to teach an old dog new tricks there's a recently released open source project for CLI for the stream deck interesting the stream deck oh the I see stream deck the stream switching thing does anybody here have this is totally off topic but I'm curious since we have a nice group of folks around is anybody here have a Nintendo switch and if so the well really whether or not you have one does anybody know about the hackability like is it reasonably possible slash easy to like make your own games for the switch or is it pretty much locked down and you like need some kind of you need to work at some kind of game agency have access to some private SDK or something I have no idea how it works but I'm suddenly have more interest than before in getting a Nintendo switch because Factorio the video game Factorio came out on the Nintendo switch and happened to like that game quite a bit so I was thinking about getting a switch but it seems like I don't know that I want to get it for just that one thing but if you could make games on it that might be kind of fun Nintendo so you need to use it route it and use homebrew I see last console I own was the Genesis nice but full PC yeah as far as games go I am full PC as well I have not I mean the last system I owned was a PS2 I think is the most recent gaming system that I owned maybe Wii was Wii newer than PS2 I think it was I owned a Wii Nintendo Wii I'm not owned anything since then and I do all of my actual gaming on PCs these days well I will say too I bought a I got it I have a what's it what's the not Game Boy they don't call it Game Boy anymore but whatever their handheld one is that's not the switch it flips open Nintendo DS they called it I still call it a Game Boy honestly it'll always be a Game Boy to me even if it's landscape and it flips open and all that stuff like it's still pretty much a Game Boy I have one of those and I do like that the switch seems pretty cool though only play PC cities and skylines I've rid of a 2DS XL and it's actually pretty nice it runs most of the emulators oh that's pretty cool I think that might be the one I have 2DS XL I know you can side load for things like the Quest there's a community for it but not sure about the switch never owned a console okay like hunting for hunting for reasons pulled a trigger on a switch like if it's just just to play Factorio it's kind of expensive to buy a Factorio playing machine but if I can find a few other things that I'm interested in doing with it what we'll do is just go minus and it's going to be like another it's going to be like 22 each or something no it should be plus actually someone I follow on Twitter that makes Game Boy clones that might be in MicroPython I don't know look into that yeah yeah Dishupu I knew has got a couple little Game Boy like devices I've got the Pupu M4 this is like a new one though I haven't seen this one yet this is the newer one that you're working on Dishupu you game 22 oh that's the music yeah I mean honestly your Hackaday I.O. stuff that you posted on I.O. like the original original micro game and like Pupu M4 and all that stuff like that stuff was a huge inspiration for me to get involved in CircuitPython at all to be honest so like I don't know if I've ever expressed that before but thank you for all the stuff you've put into the world like truly finding this stuff and seeing different things that have been done with it was a huge part of me getting getting involved this one looks pretty sweet how big is is the of like components or anything how big is that a 2.8 inch screen is that a bigger screen it looks like it's bigger than the Pupu M4 which I think is like one 1.8 maybe the same one as the Pi Gamer yeah it must be bigger right please Pupu Pi oh okay is this a RP2040 is the main brain on this one be my guess nice 3.2 inch sweet still work in progress figuring out details for fabrication it's a resolution it's probably the same as the either the Pi Portal or the Pi Portal Titanic that would be my guess RP2040 because you can't buy Samdies yeah I don't know the resolution off the top of my head my guess is the same though as either the Pi Portal or the Pi Portal Titanic whichever one is the same size and I I think one's 320 by 240 and one's 480 by I don't know the last bit I'm not very confident on the last bit but okay do we save this we should have our blocks now so let's go down questions oh no we didn't add them okay let's add them to the group Z32 okay no that's a that sounds like a different one I guess maybe different pixels oh they're green on all of them I guess we put the wrong palette on them probably right I'm at 1080p LCD for the Pi yeah if you want HDMI is the way to go for that rather than like spy or we still have two greens let's see did we do level lower resolution I do two by two pixels pixels are a blessing and a curse in some ways it's nice to have nice big screens with lots of pixels but in microcontroller land it takes a lot of memory to store a bitmap that fits on that screen it also takes a lot of time to update all the pixels on that screen so smaller screens make some stuff a little bit easier for that reason it's the roman numeral for 500 oh we don't hide the answers the wrong answers is that fine or should we hide the hide the answers we probably should right or especially like here you know and actually speaking of here the true false questions this will crash could fix that while we're here actually as well let's fix that so on true false it uses only the first two buttons 3d3 so we basically need to catch index error or yeah I think let's just do let's do the entire thing as um try to catch X error yeah actually we could just pass we don't need to do anything so if there was not an answer on button with index two then just ignore the press don't do anything about it same thing for button three actually as well I believe it's hard to make nice looking sprites in high resolution but you could draw 16 by 16 that's true the amount of time it takes to actually make your own at 16 by 16 is doable 500 equals C I believe HDMI yeah I experimented a bit with the HDMI output with games and that was what I was finding is they don't they run too slow to be practical to encryption to get back on my Laura project after Halloween and have your own encryption scheme if got some some encryption built in I think you can use if you give it a key that should stop us from crashing if we choose buttons three or four on a true false so the question I guess is should we hide we hide the icons as well I guess it would probably be best if we did hide the icons as well so enumerate these and then go answer icons this is going to be tougher than I thought isn't it I think these don't support hidden directly by themselves I think we've backed ourselves into a thing that's not going to work here maybe we'll do that instead of documentation in the core maybe we'll go dig in core code and work on hidden for vector IO so I'm pretty sure the thing is that vector IO objects they can be hidden by their parent group but I think they cannot be hidden directly by themselves okay super hacky workaround super hacky work around is the we want to do hacky work around or do we want to go inside the core radio to receive cosmic radiation iPad I made a most likely very insecure encryption algorithm I was younger one of the that was one of the things I made more early on when I started learning how to code that made a text encryption thing which at the time I thought was probably pretty strong but in hindsight probably was not pretty strong use the alternating side to side cipher for an rpg this one time it's fun watching people try to decode it I don't know the name to mine there probably is a name it felt it felt novel at the time but probably it's not actually probably it's just a thing that exists I used like I used like substitutions but they were off by a dynamic of a dynamic amount so like for the first character of the entire string you know a maybe equals g or whatever right and so that's off by whatever that is five or six or seven or whatever so it's like you know count forward by seven and that's the rule but instead of it just always being count forward by seven for every letter it was like the next one counts forward by six the next one five and the next one four and the next one three and the next one two and the next one one and then back up so the one after that is two again and then three and then four and then five and so like did this zigzag offset thing jumble up the letters it was like basic substitution but also you have to know the zigzag pattern otherwise you still end up with nonsense other than every like 14th character being correct or whatever the count was I don't know if I actually use seven or not but so we could see if we just made a group and put this rectangle in a group then we'd be able to hide the group it'd be nice in the core too though and torn alternating side by side yeah that's more that's similar to how mine worked kind of it counted further up and down further than one on each side but it was that same deal where like if your input string was the same character over and over your output string would actually be different characters because of the rule to count up or down by the dynamic amount that was my plan when I made it at least as I was like I wanted to make sure if you if you encrypted just g g g g g g that output would be not obviously coming from an input with a single digit and generators are great one of my favorite implementations I think is in the late 90s or early 2000s was using your mouse to create yeah I do remember that move your mouse around I mean that was still in use definitely later than that I remember a a crypto wallet of some sort I don't remember which one but one of the crypto wallets definitely was like when you load it up and start a new wallet it was like move your mouse around the canvas for 30 seconds or something to generate random stuff to make your seed phrases with or something that's a pretty neat idea we could turn them black that's true that's true okay that's less of a hecky workaround than making the group so yeah let's do it I would like to make vector IOs hidden noble hideable hideable directly is the parent can hide them but the thing itself cannot but it'd be nice if it could maybe that'll be next week's project seems like a decent deep dive topic so we definitely be going pretty deep into the core code for that encode your seed inside an image definitely that's one way to do it but we put our palettes in this thing and then when we enumerate we're gonna not call hidden we're gonna say palette oh it gets weird though because how do we turn it back to the right color I guess I mean I guess we just have a list of the colors right or we just use them can you access colors from pixels can I just go like neokey.pixels0 and get the color back does that work that'd be pretty handy do that or like what I need hex or I don't know if this works like this also I have no idea which part of the code does this I mean I guess we should see color I guess maybe it's not until we oh start game okay yeah we need to go okay yeah it's a tuple instead of a hex but that should be fine okay I'm surprised it's not hex kind of it's tuple because they're easier polyphonic substitution harder to correct but quite easy these days with programs somebody added color index did I I would like that that's something I want for sure that exists heavy sweet oh but I think you can yeah it seems like it is like it is actually okay how is that newish I do that I did that that's definitely a thing I wanted to do um so so we could just update the index but then our palettes need to be bigger too bad though I think I'll just I'll start let's start with this way let's do it this way so we'll go hide incorrect answers so we're gonna go palettes I zero equals black and then when we do this stuff here we're gonna go I zero pixels I that should give us the color which we then put back into the palette we left it scrolled here did we get I guess is this did not work more specifically this was unable to be measured for the purposes of wrapping the text to multiple lines we should probably change wrap text to pixels to ignore characters that it can't you that that be specific characters that are not in the font because I think what happened here is it it came to these characters in the string which are Korean I guess probably right um this one is the one I recognize and I believe that's Korean when it got to there it tried to find it inside the font which in our case is the built-in font doesn't have that character therefore it got back like none but it tried to then access the shift x of none but it really should it should have a check like at this line of code or this line of code or somewhere in there it should have like if the thing is not none then try to get this if it is none then skip it or use a question mark in its place we don't have very many good options per se but we could definitely do something better than crashing Japanese okay I was wrong hiriganga Korean is more angular okay my my symbol recognition abilities or lack there of come entirely from magic magic the gathering cards it has been many many years since I did anything with them but there was a time where enough people had either Chinese or Japanese or Korean cards I was encountering them on a regular enough basis to start being able to tell them apart so we got our colors but we did still not hide those two which I would like to be able to do we can check the crash though right I can click these buttons and it doesn't crash now so that's good and this is a Team Fortress 2 question which means I have a decent chance in Team Fortress 2 the bills hat is a reference to the game Dota 2 I don't know how old Dota 2 is but Team Fortress 2 is really old so I kind of doubt that I mean they didn't have hats at the beginning though I guess but they had hats pretty early I'm gonna go false okay so now let's see if it hides the colors who turned who tutored Alexander the Great I don't know um Plato no Aristotle and it does hide the other colors so it shows you which color was correct and then they all come back afterwards perfect that is exactly what we want so let's make it hide the colors when it is true false ah okay in order to they use Apache language I have heard that before in different native languages as like um sensitive communication basically wartime sensitive communication Scout always had a hat I think in his weapon yeah that's true yeah Scout I well he always yeah when I say hats I mean more generally like hats that were that are items that you can switch out yeah the the the scout character always had a hat uh does engineer have a I don't think so does he a couple a couple of them do have hats like soldier always had a helmet that demo man has like a head wrap or something which is pretty much a hat but I mean the hats where you can actually like get them by crafting and then change them out and like you can decide which hat your character is wearing so on true false here this would be where we want to hide I'm gonna go I mean I guess we're just accessing the four of them here not using the loop so we should probably just keep it the same and go answer hey cat scratching uh we want palette though I'll be back in a minute chasing a clothespin around is the answer what the cat is doing so four zero so we'll go black black on those and then they'll just get set back whenever we are inside show current question here so that should be fine that should be fine now we got to get a true false is it going to spend americium mericium puck against a webcam sensor sounds bad for the webcam but I don't actually know does the webcam keep working perky has a cool alphabet we just go five I don't we got to get a true false is the problem with this now and I just have to keep guessing good play but it's going to take too long very good at trivia we can keep guessing there's a true false okay and it is correctly hiding these you got that right went to look up the word once and got hooked on salagi laggy so that's working klingons respect their disabled comrades and those who are old and helpless uh I don't know much about klingons but I don't think they're villains so I would say probably true nope correct maybe there are more villains than I thought seems like just a kind of cool thing to do so the fact that they don't is not a good sign any notes are there on a standard grand piano oh I don't know a lot 180 what the most that one for zero so another thing I would like to eventually add to this is a all-time score that gets stored on the sd card is this display breakout has an sd card slot it could be cool if we put an sd card in there and we can just save a json file on it with like all-time score every round you will play it will just look up the all-time score and add more to it I think I'll hold off for right now though I don't think that's what I want to work on right now I do want to get into the core of it there's a 320 by 200 sensor so it wouldn't be a big deal if it did I got you have you seen um is it cloud flare I want to say it's cloud flare they have like a big wall of lava lamps that they use for random number generator the button colors also be blanked for true false should they also be blanked for true false flash the correct one they should be is that a is that a question of like they didn't behave that way and you're asking if they should I think they do I think they should do that as of now oh interesting we only have one color so they're so they're gone now green and yellow so let's say we'll do false and it hides the one that yeah yeah hides the one that's not it hides the text and the color icon for the one that is not correct so I think we got that of course that also could just be from a few minutes ago before I had it seen the lava lamp yeah the lot that's super cool the way they have that it's also obviously just very pretty because it's a giant wall of lava lamps but it's fascinating to use that as a source of randomness fair of fluid yeah okay let's go into or land a little bit so this is an open issue on the core documentation add more links for built-in modules the gist of this is that there are some tutorials and other documentation pages that exist that would be good to link from some of the circuit python docs and not all of them have links yet so this issue generally speaking is like find ones that don't and link to the most relevant place which stage we have have a shippu and chatter did at least a little while ago both pew and stage although they are underscore ones are there non underscore ones also there are not so maybe those are lower on the list but there is I want to say there's a guide right and go ahead for stage so if that is not linked in the docs that would definitely be the right place to link for that one the button neo oh on the buttons on the buttons good question I'm with you now we could do that yeah I have not right now the buttons the the neopixel lights never turn off right now so even when you do an answer like this and these disappear the neopixel lights all of them stay on whether it's true false or multi-choice they all stay on that would be a nice touch though to have these also change with the colors there so all of the incorrect ones turn off and then they'll turn back on whenever the next question shows that would be a nice touch I do like that idea yeah six-year-olds are pretty good at random so for me sure chaos native code to speed up python stage or is it under is you game as an install so right very uh pages the c part that's compiled in stages the python part that's either frozen or has to be copied I got you but this one could still link to the learn guide page it's the best place this one goes to the repo yeah so for that it's in good bindings you think these are supposed to match that's supposed to be three on both of these or two on both of these actually supposed to be three too the docs for the python lib are at here link there as well so we could say like on this one we could say oh we need to keep the uh formatting in here is yeah I think we need to keep the triple quotes there because technically this is going to get turned into python code sort of kind of PYI code but then we could say stage module contains native code to speed up the stage library there's a link to the stage library and I assume libraries yeah actually it's probably is supposed to be um I can't like get stage off of here now my unsearch undo and so I don't know how to get these on yellow here we go refresh is the answer yeah it must be it must be supposed to be three here I think right and then it looks like this link also what is the format for those look at one of the other ones I did see what's actually being built today anyway I've been otherwise occupied and haven't caught the stream but I'm intrigued by some of the questions and comments here I don't know Katnick is watching the stream if so I'll answer here though so so far we worked on the trivia we worked on this trivia trivia game slash device which is on apico w and it's using a cowbell that I rigged up with some header jumpers over to the screen and then it just uses a free trivia API to fetch the question so I was doing some kind of like finishing touches if you will just enhancements like adding these little colors here we fixed a couple of bugs where it would crash in certain scenarios as well that's what we've been working on up to this point but now I'm jumping into this core documentation issue which is basically just adding links to good documentation material whether it's learn guides or other read the docs pages or whatever into the core modules the text that shows up at the top of the core modules inside the docs so I think the triple thing there will help this but then let's see the links so it's not use end maybe we need a back ticks also maybe that's why this back tick wasn't here it's like basically the whole link goes into the back ticks it's the link inside the angle brackets and then underscore dot comes afterwards I mean it is I mean it's here it's underscore so it's like maybe not front and center for people to find and use I would say that's probably true because it's like marked as supposed to be private this is probably not the place where they're most likely to find it but I mean it is here it would be nice I think to linkify them if they do happen to find it on this page I don't know I don't know why I just refresh the pinching anything obviously we're looking at the live page over there trivia questions are setting off chat yeah that's true that we got on definitely engines down from some of the trivia questions about encryption and random number generators and all kinds of stuff when you had to build a small circuit so you could download the old hardware software these modems was stage library under the link and then someone added the back ticks around stage and it broke the link I see so when we can change it back after so it looks like maybe not we would get rid of this one and then it would go all the way to the end here so the entire this entire sentence maybe would be linkified index HTML builders are in build HTML I guess there's not an index oh wasn't done yet I guess an index is that the main index took over the chat naming things cache validation scheduling enough by one error oh this is not the main index this is the uh this is this page which I do like using a lot there we go first now we do have this thing back where it's let's see what that one looks like so this is how the docs for anybody who didn't know or hasn't seen this process before this is how the docs for the core project to get created so these docs pages here that you see on docs.circupython.org these get built from this commented code into the HTML pages by a library called Sphinx as the actual building and ultimately they'll get uploaded into read the docs hosted there oh nice we got another one of these that's awesome oh two more because one is never enough I guess oh okay well they're just gonna keep coming that's cool oh yeah okay we might have to just turn the chat off unfortunately like I can't keep up with these it's really just gonna keep pasting these youtube anybody from youtube is watching please try to make this better this is pretty bad like anybody from youtube is likely to be watching okay page module now this one didn't work any reference that one didn't work right with the link put that back how it was for now I don't know how that treats new lines I would do stage library about making that a key this one so stage this one oh this one should this one need to be doubled up yeah you know it's not showing me a star my files are edited I wonder if autosave got turned back on or if PyCharm just wants to be restarted I have had to just stop doing that stop showing me the asterisk before and I just restarted PyCharm and it came back could have also switched the actual setting by default it autosaves I turned that off because I do so much work on circuit python drives the autosave is a little bit aggressive inside PyCharm so it causes reboots a lot on the circuit python device turn it off but usually it will show you the asterisk to let you know that your thing hasn't been saved seem like it's doing that for some reason right we can't build like one piece of the docs that'd be nice if I could build just the one I want to look at here for a one oh wrong page state module contains native code to speed up the stage library there it's docs I did the docs wrong do wrong though I got this one wrong too same does this one get thrown off by this is it the new line maybe it did not actually make a new here it's the dots not actually part of it the dot comes after the underscore it's the slash I don't understand why this one's broken there need to be a space between like this and this I wish we could build one thing so that we didn't have to wait quite as long for the thing to build we also don't have the learn guide we don't have a space there either so if space was the thing that fixed it then this one down here is gonna be broken nope we are worse now but docs here actually did work fortunately we have kind of a slow iteration here to build the docs right I think I got a good feeling about this one though I think the space is probably what did it it just doesn't want a space here because this one has a new line apparently proceeds or something probably now this one had the link in the right spot yeah restructured text is something for sure I've gotten all right with markdown but I would not say that I have much experience or understanding of restructured text mostly I tend to have to guess and check or just look stuff up yeah well it's not it's not that it's doing it for one docs change per se I mean make HTML is a command that builds all the docs I think I don't fault it for building all the docs because it runs in actions and it will always need to build all of them anyway because it starts from a blank container but for development it would be nice if we had maybe like make dev HTML or something and then you could specify a module maybe I don't know if the right way to make it work but if you could do that and have it just make one small subsection it would go a lot faster but it would be like a different command right because make HTML needs to get used by actions and it needs to create everything every time or or I should say at least there's probably code that assumes it will do that the code could be changed and then it you know we wouldn't need to keep it doing that if we change the way it worked but the way it is now there's probably stuff that has that assumption built in okay we got those before I get too far down this road I should probably go get check out actually get remote I think I don't have yeah get remote add foamy guy I know markdown better than rst yeah I'm with you there I definitely do know markdown better get remote fetch no get fetch foamy guy never remember the order of url and label in markdown links yeah or images in markdown is what I get backwards a lot images and urls are like kind of similar but I do them opposite ways or I do them wrongly sometimes by default why I just fetched that I probably shouldn't attend that it's like why it's even playing a lot of stuff actually so I was gonna well I guess I probably needed to fetch because I'm gonna make a new branch yeah I should have been able to actually without get check out uh let's call this uh more docs links get check out ash be more docs links from Adafruit main no track we're on our branch with our changes that we can push when we're done another one that's in the list pixel buff in bus device I mean bus device pretty good place to link there I don't know if that there is on that one um let's look here there is i2c there is ur at serial and like technically this code is kind of using bus device or at least internally but the thing is it just says or dot i2c well yeah you are to I don't you are it would not be using bus device I don't think i2c and spy would this actually shows bus device which is actually old we should probably go back and update that because it's built in now Wikipedia uses markdown now I didn't be cool just to have its own language bracket parins alphabetical order do I do it alphabetical bracket and then parins I don't know this one this is probably the most relevant place to link them but I'm not sure that it actually makes sense all the way honestly I don't think there is like there are other guides that will talk about bus device but this one this one still doesn't actually use bus device though i2c device is that from bus device yeah oh we should probably change this it's probably not recommended anymore I mean this page does tell you how to use bus device so we could make two links one to spi device and one to i2c device the headings inside this guide those do seem like reasonable places to link to and this is definitely explaining a lot about what those modules do and why they're helpful what the sort of manual way to do it is if you don't want to use those helper modules seems like a good way to do it we will go shared bindings um bus device h no c c no no um box at all no this come from though it's not actually in here oh there it is okay is this supposed to be in the middle of the file like this they're supposed to be stuff above this I usually see these at the top you know though I don't know if there's relevance of where it's at maybe this file is just a bit different than normal the comments I typically typically see them near the relevant functions it also just caught up and might have missed the context yeah the these ones this one's not for a function though it's for the um for the module itself so this is like the Adafruit bus device module one and the one we just did over here was right after the imports and it was essentially the same thing but it was at the top of the file and then this one is like just kind of between some stuff sort of in the middle of the file I don't know if it like makes any difference though I don't know if it's like meant to be one way or the other or if it like it may make no difference at all honestly because it's getting parsed out anyway my guess is that it just gets taken out doesn't matter where it's at many browser tabs open at this point at this point he says as though he didn't start with too many browser tabs open we make again so only probably we'll just go for a few minutes more we'll probably wrap up here in about about 10 15 minutes something like that um if anybody is interested in this type of thing though there's plenty of these that are not done yet right this list was like a list of all the ones not done the unchecked ones so anybody is interested in contributing to the circuit python core improving the documentation um this is a good place to start it's not super duper in depth you don't need to know c code or anything crazy it's nice and kind of lowish level you're just adding some nice documentation links kind of look around find the best place to link to and then add it there if anybody is interested and would like to help but but doesn't like doesn't know how or there's something preventing them if they need help or whatever learning how to do it definitely feel free to reach out on discord i will always be happy and i know a number of the other folks on the team as well are always going to be happy to help get folks involved if you want to help contribute so hechtrich and i have done some of these i'll keep doing some more eventually we'll have them all knocked out but if anybody else would like to grab some feel free and again like if you need help reach out i know i can speak for myself i'm definitely happy to help free help you out and i like i said i think there's probably other folks around they're also going to be happy to do so perfect timing you know i guess this could technically be in here as well audio bus i o well pixel buff we don't know is there pixel buff and the thing about pixel buff is it really just uses the neopixel api right there's not a separate set of docs or instructions is relevant pixel buff is just like the fast way to do neopixels that's built into the core i understand this doesn't talk about using but i think that neopixel uses it internally should really do more reviewing but it's what my day job mostly consists of so i just prefer to do anything else yeah i hear you there i don't do a whole lot of reviewing but i have started doing more reviewing at my day job than i used to do for sure for the longest time i was a solo developer only within the last like two years or so i started working really closely with a partner developer where i was doing the majority of the reviewing before that though that was not something i did day to day that's definitely understandable though like there are days where i don't want to do software at night right like i work on software all day and then there are days where i don't want to do software at night i find circuit python quite fun uh most times but like there are definitely times where i'm like yeah i'd rather just play a game or something right like i think that's okay too you got to take breaks you definitely don't want to just like try to force yourself to do stuff that you don't feel like doing as a hobby right like obviously you got to take care of yourself there's like stuff you have to do to be a functioning adult in society in most places so you got to do that stuff but like you don't necessarily have to make yourself sit down and write code or do pr reviews or whatever for the night if you don't feel like it or for the week or for the month or for the year right like um you don't feel like it right now you got to take some time and do some other stuff and that's totally understandable i think um what i'm looking for is does this use pixel buff internally does but i think i mean i guess the only place i could even think of would be like i don't even know to be honest i don't is there one here i don't know the thing is it's like it's not an api that would get used typically by user code user code would typically use the neopixel or the dot star library and then you wouldn't have to worry about pixel buff at all you wouldn't have to know anything about it how it works what its api is anything you don't need to know any of that stuff if you use the neopixel or something even higher like led animation and higher level yeah i don't i i don't know of a good place to link that to i think we'll leave that one for now audio bus i o uh is there a um is there like an audio learn guide audio bus i o reactive microphone so let's try circuit python essentials i'd have a good balance in life it's really important to make sure whatever you're doing yeah every working towards makes you happy i definitely agree with that any practical project will always have some parts you don't necessarily like still needs to be done the project as a whole is still usually enjoyable that's true the rgb matrix panels use it i don't believe so there is another library called protobuf protobuf protobuf that one the rgb matrix uh like matrix portal device specifically and the ones that use those same kinds of matrices that one does exist and does get used but i don't think it uses i don't think it uses neopixel or pixel buff or any of that stuff it's like even lower level than all of that stuff i think that being said i don't know 100 percent like i could totally be wrong about that that's my that is my understanding but my understanding could just be wrong i don't see any oh there is audio out that's audio i o their audio bus i o is audio bus i o deprecated is audio is it different than audio i o dw m i o this page has no audio bus audio bus i o is the one i was thought was supposed to replace audio core came up in jpeas last stream because he used audio core and i confused now support for audio okay this one is input and output over digital buses that might be this has just analog in free audio out bill does not use audio bus i o though i2s i have not personally ever used i2s it's not circuit but there's a little bit about it here but not much not like all encompassing certainly this has i2c but not i2s the o core audio yeah it would probably be good to get more concrete definitions around the different ones and really try to make it clear what each thing does when uses audio mixer but doesn't talk about it too much this page audio out did this have a mixer i don't have a good page with audio mixer docs i would guess a guide like the door like a sound board or some sort of thing like that i would assume really the best place i don't know if there's an actual just like docs page for it audio core has the parts for common audio for common audio i o and then pwm i o and audio bus i o it pops i don't even know what that is is that a real thing i had no idea that existed i don't think i've ever seen that or written any code that imports it it transpose is this a python thing does this exist in c python not seem like it it was operators in c python you not know of a good place to link for that camera probably a learned guide for camera question those like circuit python camera specifically someone doesn't use camera directly i think it was the um this is this driver which one uses camera i want to say it's like a esp oh spresence only one board i don't know what device that is like the brand new sensor camera uses sony spresence the brand new person sensor brand new person sensor camera person sensor okay there's a lot of built-in stuff let's see a um just like a learned guide that we go back to i don't know that it's like i don't know where we find circuit python code that works for this basically micro python there's a thing called esp cam circuit python typing uh there's not i don't think like a guide or any great place to link for that it's another one though where it's like end users don't really need to use it poppy i o i don't know what dual bank is i mean i know what the esp idf is i didn't know there was an import for that so i'm not familiar with the module floppy i o i would assume there was a floppy guide floppy disk guide right the drive modification doesn't seem to have the circuit python stuff in it somewhat across something called lcd cam in the s3 it's based on the 80s it blog posts about it there's this library does its own docs but no learned guide i don't know the right place i don't know a good place to link that one either floppy unfortunately okay gamepad shift is gone so we don't need that one i don't think um okay i think i'm gonna call it pause there for now i'll uh i'll wait and probably do some more in the same branch and then submit the pr for that later on uh i think that was part of a filby or jeppeler yeah i know jeppeler was working on floppies for quite a while i do recall that for sure um or recently i remember that coming up in the meetings and stuff and he showed on show and tell a couple of times some of the stuff um so yeah i think we'll call it call it there for now i'll try to find some more of these later on and i'll get a pr submitted with all of them um thank you to everybody for watching definitely appreciate everybody for watching along and hanging out um hope everybody has a good night and a good weekend i uh again i'll be back tomorrow morning at 10 a.m central time uh on my own channel to stream so we'll be back there i don't know quite what we'll work on yet so we'll find something maybe it's this maybe it's something else um kind of a cliffhanger there for you because i don't quite know what i'll be in the mood to work on tomorrow morning yet but we'll find something it'll be fun uh we'll stream it and we'll hang out some more then so yeah uh beyond that i just hope everybody has a good night and a good weekend and all that stuff thanks again for watching and i'll see you next time folks i'll be back next week as well for a deep dive same time same place