Think, Tech, Hawaii. Civil engagement lives here. Unity matters, and this is the miracle of Hanukkah. Oh, this is one of my favorite shows. Rabbi Itchel Kresenjanski of Khabarro, Hawaii, welcome to the show, Rabbi. Thank you. Thank you for inviting me. And could you introduce the candles? What is the candles? Sure. This is the Hanukkah menorah, the Hanukkah candleabra in Hebrew. It's called the Hanukkah, and the festival of Hanukkah is an eight-day festival, and we'll soon talk about that. So today is the second day, and each day we light a candle for the corresponding day. So today, actually we lit it last night, two candles, tonight we'll light three candles, and until we get to eight candles. So here, these are the two candles. All right, there we go. And in Hebrew, a C-H is a chah sound, so it's not Hanukkah, it's Hanukkah. Hanukkah, okay. So for this discussion today, I'm going to call it Hanukkah. What about you, Manny? Can you call it Hanukkah? Hanukkah. Nice, nicely done. I'll go back to my roots, if I can, Hanukkah, right? That's good. Okay. That's Manny Matos. He's a local boy, as you can see on the screen, but he's also Jewish, because he has with him a DNA test that tells him he's Jewish, and he is sort of changing his persona these days to go from Portuguese to Jewish. This is good. Well, yeah, it's not totally Jewish. I have a lot. I have English, French, you know. So it's kind of a revelation for me as far as my background, but it's such an honor to be here with the Rabbi and being some Jewish blood. I want to have a little beard, so I cannot compete with him, because so I guess I'm a little beard, but not that much.  Oh, wow. What do you got there, Manny? I wear this once in a while to hide my baldness, but it was a gift from a good friend of mine left. It's called, in Yiddish, this is called a yarmulke, the head covering is a yarmulke, because it's a Yiddish word, but it actually has its roots in Hebrew. Yarmulke means, it's two words, Yido, Malka, which means fear of heaven, the purpose for wearing this covering for Jewish people. So we're always reminded of God above us and have that fear and awe. Yeah, that explanation was explained to me by my good friend Lester because his son got married now and he's very cultured Jewish and all the men had to wear it. So this is one of the cherries that I have from him. He's there with us. Very nice. So we set this show up because it's Hanukkah, Hanukkah, and because Manny has been on the show a number of times to describe his discovery and his journey on this issue. And the rabbi comes down, and I'd like the rabbi to come down on a regular basis. There are so many wonderful Jewish holidays and culture points. I'm with you. Yeah. And so today is an opportunity to talk about Hanukkah and it's to make sure, make sure that Manny knows everything about Hanukkah, is part of his education, and there's so much about Hanukkah. It's a happy holiday. It's a holiday of success. It's a holiday that is unambiguous. Can you talk about it, Rabbi? Sure. Before, that's the answer, Rabbi. Can you give us kind of an opening prayer when you light the candle light? Nothing lengthy. It's something short that we can familiarize ourselves with. What I can tell you is that there are three blessings that we make the first night of Hanukkah when we light the menorah, and all the subsequent nights, as I said before, there are eight nights. The Hanukkah, all the subsequent nights we make two blessings. And the translation in English of these blessings, the first blessing is, blessed are you, God, our Lord, King of the world, who has sanctified us with his commandments and commanded us to light the Hanukkah candle. That's the first blessing. First blessing. The second blessing is, blessed are you, God. Our God, King of the world, that has performed miracles for our forefathers in those days in this time of the year. That's what Hanukkah commemorates. And then the third blessing is like a generic blessing that we say on many occasions, and it's blessed are you, God, our God, King of the world, shehechayanu, that has sustained us, the kimanu, and has given us life, hechayanu, and allowed us to arrive to this time. So it's a blessing of thanks to God for giving us life so that we can celebrate. Yeah, especially. And given in Hebrew, of course, man. Yeah. It's, I've heard a lot about it as a young man and to the years, but I've really never understood, you know, the truth. And that's what I've learned about the Jewish people and their faith is, really, their faith takes them on a continuous journey, you know, and it's, I think that's why it was able to keep the people together for thousands of years. Yeah. Yeah. Well, very, very, very true. From your lips. So if you want, I can share in the nutshell the story of Hanukkah and why. I love the story of Hanukkah. It's a beautiful story. And why we celebrate it. So first off, in the Jewish tradition, we have biblical holidays, meaning those special days, holy days that are mentioned in the Bible in the Old Testament, like Passover and the festival of Pentecost, as well as the Sukkot, which is in English referred to as the, when we have the huts. So that's in the fall and September, October? Yeah, yeah, yeah. It'll come to me soon, how it's said in English. So these are three biblical festivals. But in addition, there are two major rabbinic festivals, meaning that the rabbis enacted that these days should be special days, days of celebration and holidays. And Hanukkah is one of the two. Purim is the other one. Hanukkah commemorates a very, very special time, a very special event that happened in our history. It goes back to, before the destruction of the Second Temple, about 165 BCE, for the common era. That means before, that's the same thing as BC, right? Yeah, yeah. Right, yeah. Jesus was born, ostensibly. And it was a time when the Greek, Assyrian Empire that was led by Alexander the Great were conquering nation after nation and building this, you know, this superpower. And they also controlled Israel, biblical Israel, what we call today Palestine. It was a colony. It was a, yeah, there were Jewish people living there then. And the Greeks were very big into their culture.  So in every country that they conquered, they assimilated the people into the Greek culture. Well, they had a problem when it came to the Jewish people. First of all, they had a problem with Judaism. And it's interesting that our sages note that they didn't have a problem with Jews. It wasn't like in our generation, the Nazis, Hitler, may his name be erased, hated Jews. He didn't care what kind of Jew you were.  The Greeks were different. The Greeks had a problem with Judaism. They had a problem with the teachings of, and the way of life of the Jewish people because in many ways it was a clash to the values and the principles of the Greek culture. While the Greek culture deified man and the intellect, Hercules and science as being the highest that exists within this world, the Jewish people believe in God that's even higher than that, higher than man. And while the intellect is a very powerful tool, and we were meant to use it to understand, we also recognize that there are things that are beyond our understanding that are larger than what our minds can wrap themselves around. So we have faith. We believe in God, and we accept God even in times and in situations where it doesn't confuse us. This is a very age-old dichotomy, isn't it? Yes. Yes. So they came up against a stubborn people, and stiff-necked people. Stiff-necked people, stubborn people. Exactly. You'll find that, man. Your neck is stiff. It's not an orthopedic thing, either. I was reading, because in our religious faith, in our Bible, we have Maccabees, first Maccabees, second Maccabees, and it's a very beautiful piece of written material. That's it. That's what it's all about. Yes, and it described this great faith in these young people. Yes, I was getting to that. I'm sorry for interrupting. No, no, no. Go right ahead. The Greeks, they outlawed Jewish practice, and specifically, they outlawed those practices that did not fall in line with their world views. For example, circumcision for Jewish children, which is one of the earliest commandments in the Bible. God told Abraham to circumcise himself, and all of his children, when they become eight days old, they have a circumcision. The circumcision is referred to in the Bible as a covenant between God and the child. It's a statement of faith. It's a covenant. It is a statement of faith, but it's more of a covenant. Covenant is a lot more deeper, right? Deeper than agreement. So the Greeks outlawed that because in their understanding, you cannot enter into an agreement with an eight-year-old child. You cannot surely enter into a covenant with an eight-year-old child.  But to take a baby when it's eight days old, but in the Jewish tradition, it's precisely when the baby's eight days old, before it has a mind of understanding, we enter this child into this covenant, which is not based on rash unreason and logic and appreciation, based on reasonable logic. It's a much deeper connection, covenant. So things like that, the Jewish Sabbath, the practice of the Sabbath was something that they outlawed. So there was a group of Jews called the Maccabees. The Maccabees were, it's a Hebrew word, it's actually an abbreviation for a verse in the Bible where it says when the Jewish people crossed the Red Sea and Moses led the Jewish people in song, there's a verse there where Moses says, who like you amongst the strong is God? In other words, God is the strongest, the real strongest God. So in Hebrew, is the abbreviation for the word Maccabees. So they were called the Maccabees. So it's an acronym. It's an acronym. How interesting for, it's an acronym for a statement of faith in God, basically. And this faith in God enabled them to stand up against this powerful, mighty Syrian army. They were just a family and with some, you know, with some recruits, and they pushed back the Syrians in the city that they lived in, which was called Mauddin, which is not far from Jerusalem. And when they were successful, Mauddin, when they were successful... Is that in Israel now today? Yeah, yeah, yeah, sure. Yeah. It's a big city today. And one thing about Israel, maybe we should talk about it, one of your shows, maybe do a trip to Israel. When you walk on the streets in Israel, you're walking on history. Every part of Israel is a living history.  No, I would love to go. But when you mentioned Mauddin, is that the Jewish word they used for their secret service? Oh, oh. Is that any correlation between the Mauddin you were talking about, Andy and the Jewish... Yeah, the Shin Bet. Yeah. Well... Is that any relationship to that? No, but in Hebrew, Mauddin also has the meaning of information. So, yes, the agency that deals with it... There is a correlation and a meaning behind it. Okay, okay. That name came to my mind. So, the story goes that when they were successful in pushing back the Assyrian army in their little town, that emboldened them and they rallied more people to go up to Jerusalem and to push the Assyrians out of Jerusalem and to take the temple, the second temple, take it back because... The rebellion. It was an uprising against the Greek Assyrian army because when the Greeks entered into the temple, they, what's the word I'm thinking, they defiled, they defiled everything in the temple. Because it's holy. Exactly, because it's holy and they brought a pig, they brought it as a sacrifice because the pig... That's a defiling. Exactly. So, they led this war against the great Assyrian army, Greek Assyrian army, Assyrian, today it's not, it's different than Assyria, Assyria today is just one little country. Assyrian. Assyrian. Assyrian. Assyrian is not Assyria today. Exactly. And the great, there were two miracles that happened. First miracle was that they were victorious in this battle and as we say in the prayers when we thank God that even though that the Maccabees were few in number, even though they weren't trained soldiers like the Assyrian army was, but yet... All volunteers. Hmm. Yet, they had the... Minutemen. They had the ability to conquer and to drive the Assyrians out of Jerusalem. When they did that and they entered into the temple with the purpose of cleaning it up and rededicating the temple, which by the way, the word Hanukkah in Hebrew means to rededicate. To dedicate. Oh, how wonderful. That was the idea is to rededicate the temple. Now one of the services that were done in the temple by the priests, there was a... The Jewish priests. The Jewish priests, right? There was a menorah. A menorah means a candelabra. And every day it was an oil-based menorah and every day they would light this menorah, which actually had seven branches. The Hanukkah menorah we have has eight branches, eight candles, for eight candles. And they found the menorah and they cleaned it up, but they couldn't find pure oil, because all the oil that was there stored in the temple was defiled. It was defiled. In what way was it defiled? It was defiled because it was touched by the Greeks and anything that comes into contact with the corpse defiles it and there was dead people there, so everything was defiled. This is holy oil. Exactly. It doesn't take too much to defile.  So here we are. This is at a crux point. How are you doing, Manny? I'm learning a lot. Me too. I'm learning stuff I didn't know. We're going to take a short break. We're going to find out what they did when they found they didn't have enough good oil left to burn in the menorah. This is a very exciting time and it has been a study among the Jewish people for all these years and a celebration. We'll be right back after this break and you'll see what happened. Aloha. This is Winston Welch. I am your host of Out and About where every other week, Mondays at 3, we explore a variety of topics in our city, state, nation and world and events, organizations, the people that fuel them. It's a really interesting show. We welcome you to tune in and we welcome your suggestions for shows. You got a lot of them out there. We have an awesome studio here where we can get your ideas out as well. I look forward to you tuning in every other week where we've got some great guests and great topics. You're going to learn a lot. You're going to come away inspired like I do. I'll see you every other week here at 3 o'clock on Monday afternoon. Aloha. Aloha. My name is Andrew Lanning. I'm the host of Security Matters Hawaii airing every Wednesday here on Think Tech Hawaii, live from the studios. I'll bring you guests. I'll bring you information about the things in security that matter to keeping you safe, your co-workers safe, your family safe, to keep our community safe. We want to teach you about those things in our industry that may be a little outside of your experience. So please join me because security matters. Aloha. All right. It's Hanukkah here in Community Matters. We have Rabbi H. L. Kresnan-Chansky of Hawaii talking about Hanukkah. And we have a Jewish person who is also a local boy, Pushki's person, Manny Matos, who is studying with the rabbi today. And don't worry, Manny, there's no test at the end. You mean I'll get a quiz? No quiz. Not today. So, Rabbi, we're getting to the good stuff now. They couldn't find enough oil to burn. They needed enough oil to burn for eight days because that's what it requires. It needed enough oil to burn for eight days because it would take eight days to go where they had to go and to make new, press new olive oil. It was three days journey each way in one day to make the oil. But they searched and they searched and they finally found one jug of oil that was hidden in the ground that still had the seal of the high priest on it, meaning it wasn't defiled, it wasn't touched by the Greeks. So they used that one little jug of oil to light the menorah that night. But the problem was it would take eight days for the new pure oil to be replenished and brought back. And this is the miracle of Hanukkah that the oil that was only enough to burn for one night miraculously burned for eight nights. And this is why we celebrate Hanukkah. This is the celebration of lighting the menorah. That's why there's eight candelabras here. You know what? It strikes me it's more than one miracle. Oh. It's a miracle every day for eight days, every single day. Yes. My goodness, it's going another day. Watch this. What was the really significance of lighting each, you know, oil on each day? What? Where did? Because in the Old Testament it says Moses told Aaron, who was the high priest, that one of the services was every day that they, every day they lit a candelabra of seven branches. And when they rededicated the temple they resumed doing the service in the temple including the lighting of the menorah. So like I said, the miracle was that the little, the pure oil they had lasted for eight days. Belief in Moses was divinely inspired to do this, or is it something that he himself? Well the Jewish tradition, now we're going into another whole hour show, but basically in 10 seconds the Orthodox Jewish belief is that Moses was like a stenographer. He just wrote down what God told him. It wasn't his wisdom, it wasn't his inspiration, even though he was a great wise person. This is God's word, and that's why we believe that the Bible is eternal, just like God is eternal, so nothing has changed. And so how did they do in their rebellion? Did the oil have anything to do with the success of their rebellion? So actually that's a very interesting question because there are actually two separate miracles. One is the miracle of the battle, that they won against all odds, and the other miracle is the miracle of the lights. And there's a lot of discussion amongst the rabbis, why did they enact the holiday to be commemorated with the miracle of the lights, and not so much with the miracle of the military? It would seem that the candle, the menorah, was just like a sideshow. That was like the main miracle was that they were victorious, and God forbid not, then Judaism would have vanished. So the explanation is that, like we mentioned before, the battle between the Jews and the Greeks was not a simple battle they hated us and we were looking to defend ourselves. They were battling against the ideology that is represented by Judaism, which is represented by the menorah. Idea of pure oil and defiling the oil in the larger context represents, the Greeks wanted to defile Judaism. They wanted to keep the beauty of Judaism, but strip God out of it, because God to them was beyond understanding and they had no patience for anything that undermined their system. Exactly. Their total culture was at stake, and the menorah symbolized their total culture. Exactly. And the menorah symbolizes the victory of Judaism. I think that worked out very well though, because when you call it the festival of lights, it's an up thing, you know, it's memorable. And if you call it the miracle of the rebellion, I'm not so sure it would have been as memorable. So the festival of lights has lasted all this time, it's very robust, it's memorable, it's one of the most, one of two really popular, in fact it may be the most popular Jewish holiday year round, am I right? Because it's geared towards young Jewish kids. Also that's why one of the things I forgot to bring, I apologize Jay, Jay asked me, where's the dreidel? The dreidel is the top kind of thing that you spin.  And the story behind the dreidel was that when Jewish children were gathered and studying, they had to look out that when the Greeks would come by, they had to quickly hide their study books and make believe they were just playing something. So they made believe they were playing the dreidel talks, the spinners. It's actually dedicated to Hanukkah. Exactly, because on the dreidel there's four sides of four letters that spell out, a great miracle happened there, meaning an Israel. So the way the game is played is you spin the dreidel and then where it falls out, and whatever letter it falls on, depends. If it falls on the letter Gimel, which is the big miracle, then you get to take all the money that's on the table. Beef. Exactly. Things like that, so also because the holiday is connected to the oil, so also the food and the celebration is connected to oil, so we eat what is called latkes, I don't know, like potato pancakes that's fried in oil. Yeah, I got to have some of that, that looks, that's all. That's really good. It is? As well as in Israel it became popular, it's like donuts, jelly donuts, which they fry in oil. So this is how we celebrate Hanukkah. But in the larger, on a more serious note, Hanukkah is a great celebration of this miracle. The idea, our faith in miracles, we believe that God intervenes. And a wise man once said, Ben-Gurion, who was the first Prime Minister of modern Israel, said that any Jew that doesn't believe in miracles is not a realist. That's wonderful. That's quotable. Maybe there will be a final exam. Well, I got one question for you, besides many more, but in the realm of all the different exodus and the miracles, where does the Hanukkah gauge in the hierarchy of miracles? Very good question. So one would think that the biblical holidays are up there, and the rabbinic holidays are like of second class, but the opposite is true, that all of, and this is one of the secrets of Jewish survival, that all of the rabbinic enactments are observed not only with the equal commitment, like the biblical commandments, but with even more, because there are hints in the Bible that we need to turn to our rabbis and sages for them to guide us and interpret for us the way forward based on the principles of the Bible. So when they enacted a holiday, it became accepted with equal fervor and dedication, like a biblical holiday. So Hanukkah is way, way up there. And especially because it's a holiday that commemorates such a great miracle. And for Jews, the idea of miracle, which God intervenes in our lives, is actually, like we just said, that's the reality of how we live our lives. Miracles are just obvious, godly interventions. But even that, which is natural, and just waking up every morning and going about miracles or where you find them.  But like the Maccabees, they created the miracle by the human aspect of their relationship with God. So God just blessed them and kind of given me blessings with condoning their actions, I guess. Is that what I'm saying? Yes, exactly. And another aspect of Hanukkah, which resonates with many people today is, especially in our country, the freedom to practice religion, the constitutional right that we have to practice religion, and not to be coerced by any power. And that is the story of Hanukkah, that the Jewish people were being coerced by the Greeks. And we fought a war to free ourselves of that. So that freedom of religion? Freedom of religion. That was a war. A war. Two thousand years later. But we're a little wiser today. A lot wiser, I think. Thank you, Manny Manos. It's great to have you here in this conversation. Thank you for inviting me. If I can just invite our audience. Oh please. Tomorrow evening, Wednesday, we're having the Waikiki Gateway Park that's in Waikiki where Kohio and Kawakawa Avenue meet. We have every year, for the last 31 years, very large public menorah lighting where people gather and we light the menorah. And because the whole thing of Hanukkah is not only to commemorate the miracle, but to publicize the miracle, to be proud and publicize. And to have some latkes, too. To have latkes, too, for sure. Don't forget the latkes part. Thank you very much. Take care. Happy Hanukkah. Thank you. Happy Hanukkah. Can I end this with, is it shalom or shalom? Shalom. Yes. Shalom. In Hawaii they say shaloha. Shaloha. That's good. Thank you. Thank you.


Hey friends today. I'm back at one of my favorite Disney thrift stores where you can buy used props from the resorts and actually some items from the Magic Kingdom and Epcot and We're definitely looking for more of that Polynesian stuff if you remember me showing you the Lakeland antique mall You know there's gonna be a lot of Polynesian stuff floating around the next couple weeks or months because they're gonna be doing renovations So let's go do this And like I said the name of the place is forever vintage and surplus They have a Facebook group that I'll link in the description of this video They do do shipping and you can actually order over their Facebook page and they have some amazing stuff Including these headboards look at how amazing these headboards are because these are from the Riviera But I don't know if you notice this right away. That is amazing, right? This is these are brand new This is from the Riviera resort and they have another one in the back, too Look at that. See the hidden Mickey's. Oh Wow These are gorgeous They have all these different chairs from the resorts. These are chairs from the Polynesian These are actual chairs from the Wilderness Lodge Copper Creek these are chairs from Citricos, but something that's really awesome are these Pieces of carpet. They have tons of them and these are from Epcot somewhere in Epcot They don't know exactly where they're from But I feel like they're from in the one of the interventions buildings if you guys can tell maybe or recognize these and let me know Let me know in the comments. I would love to know Normally they actually get this stuff in and sometimes Disney doesn't let them know where they came from So it's their job to do the research and kind of match it up And you'll see that with some of the pictures if you guys have questions about the prices of anything Just message them on their Facebook group Like I said, I'll put that in the description and you can go over all that and even question about shipping and all the fun stuff This is such a cool piece here or two if any of you guys are a fan of the boardwalk Then this is actually spoodles. This is a carpet from spoodles a restaurant that used to do well actually now It's Trottoria Alferno, but this was one of the boardwalk restaurants. I like that once you get inside There are tons and tons of amazing items including that world of Disney carpet But something else that I really love are these Grand Floridian pillows. They have tons of them Look at that. I absolutely love it Ew, and they have Beach Club ones too. These ones have hidden Mickey's on them. Oh, do you see that? That is awesome The Grand Floridian pillows are always my favorite. I absolutely love those another really awesome thing is this actual Birthday dreams come true like banner. They actually do this to help celebrate special events And they also have some of the seaweed left from the 20,000 leagues under the sea That's crazy. Isn't it? This is the stuff you would see floating underwater. They have barrels of it I love stuff like that little little Disney history. If you know what I mean These are really interesting. These are the fishes that were on the cruise line doors Very cool. I know there's a lot of Disney cruise line fans and people just love these The Starbucks Magic Kingdom signs How awesome is that like I said if I had somewhere to put this I would want to put this in my house somewhere They have so many of them all fall beauties That's amazing. Of course, they still have some galaxy edge props. These were actually somewhere in Batu Very fancy Another really cool thing are these disney springs bottling company water bottles. These are actual glass and This is actually from the theming of the disney springs. I love these. They're kind of really cool Uh-oh, we stumbled upon the Polynesian goods right here. Look at this These are actually the floor lamps from the lobby of the Polynesian That is mind-blowing Wow, this isn't these were from the lobby and then these were the original tiki men in the rooms Wow, that is probably really hard to get because you know now they have like little Maui statues But these were the original tees in the room You can't go wrong with the original tiki god. That's awesome These right here are also from the Polynesian resort rooms and also these lamps These lamps are very very popular and they have a little hidden Mickey in them right here But the reason they're popular is because of the little tiki guy right in the middle there These are all from the Polynesian including that desk These right here are really cool and very interesting These are those little like swavy things that hang on the rope. These are from fantasy land at the magic kingdom And this whole entire armoire is from the yacht club. In fact, they basically have The whole entire yacht club lobby in here for sale. That's crazy, isn't it? Look at You can literally buy The disney's yacht club resort lobby in here They have their tables, the gigantic chairs. They even have these little tiny Drawers that they had in the yacht club. These ones say Mickey, Minnie, Daisy, Donald, Huey and Goofy That's unbelievable, isn't it? Here's a picture of it Wow Right there is where those drawers would be That's amazing And even the lamps are from the yacht club. That is crazy Somebody can literally come here and buy the yacht club lobby that blows my mind Look at all this frame guard up here and this stuff is really really limited This right here is a 1982 Epcot center picture and in the corner you see it's labeled 210 of 500 and these came from Walt Disney World themselves and they're stamped do not sell But now they're actually released from them so they can sell them and then over here There's a little signage from it looks like the Mickey's very merry christmas party, isn't it? Yeah, that is really awesome Very fancy stuff and of course I seen this last time the big Liberty tree tavern sign Wow, so much amazing things All of the different bed skirts and bed runners and the cool thing about all these fabrics Is usually they're marked where they actually came from These are tablecloths and these tablecloths if anybody can guess where they came from it'll tell you right here The grand floridian that is awesome, isn't it? I think they use these for their banquets, but there's a whole lot of them pretty fancy to have a tablecloth in the grand floridian This is also really awesome. I'm pretty sure this is another grand floridian tablecloth But look at all the Mickey's on it. They use these for their banquets Maybe even like at the wedding pavilion. I don't know unless they're having a Mickey wedding pavilion But we do know it's in the grand floridian very fancy Another cool thing is all the plates that they have these are all plates From one of the disney cruise line restaurants right there. I like that and they're actually really pretty pretty plates Other than disney world props and stuff. They do have some old disney clothing, but something caught my eye up here And I think that might take this with me. Thank you This is awesome. Look at this. These are the little umbrellas from the parasol parade at the grand floridian They have tons of those that's a nifty little thing That is actually from the grand floridian christmas tree. That's one of the bird cages that they have hanging there Oh nifty nifty You can go outside and they actually have tables from citricos And then these are all the polynesian patio furniture sets and they have the tables and the chairs And I think they're selling these as like a combination. So two chairs or a table That's really good stuff. If you want to get a new patio set, what better way to get than a polynesian patio set These are something kind of really cool. These are the wobb disney world company disney career things I think they give these out for people that just got hired Or I don't know what they do with this, but that's really awesome. They have tons of them Very fancy Honestly though, I keep walking back by the polynesian stuff. Do you know how crazy that is right there? That is a lamp from the polynesian lobby It really blows my mind All of these plates and dishes are actually all from disney resorts and restaurants I absolutely love the fact that you can get a little bit of disney and take it home They even have silverware from cinderella's royal table Who does that? Who gets cinderella's royal table of silverware? mind-blowing Like I said, there is so much amazing stuff in here And I'm glad that we found some more polynesian stuff and even some cool vintage items Like old food and wine glasses. Look at this old walk disney dumbo disc Very cool And there's just something about like vintage disney stuff. Look at that old goofy And also take a look at this vintage fort wilderness resort Jacket, this is like so cool and look like I love this Wow That brings back a lot of cool memories, doesn't it? Now this is something that's very interesting and we don't know what to say about it But these basketballs were just recently bought from the grand floridian within the past week or two weeks And as you guys know the grand floridian has been housing the mba So we're not sure if these are actually game use balls or anything like that They were just basketballs that were bought from the grand floridian, but I don't know why they would have so many basketballs Any who's I think that's gonna do it for me I hope you guys enjoyed my little tour here. Like I said, I love this place The shop itself is only open on saturdays, but like I said, you can go through their group You can purchase things through there or you can even check to see if they'll ship it to you It all depends on where you're at and the circumstances of the item But uh, yeah, hope you enjoyed the video. I enjoyed making it. We'll see you next time Bye


All right. Hello, everyone. Happy Friday. Let's get a few things set here I did click the YouTube go live thing this time, so we will not have that problem this week Let me Ruffle around the chats here probably Don't need this preview How's it going Beata? Happy Friday and Dave Odessa. I forget about the YouTube. Yes. Thank you I believe I got the YouTube set. We are live. Thank you. How's it going to Shippu? I hope everyone's Friday is going well. Yep Doing pretty well for for my Friday and definitely echoing what Keith says. Hoping everybody's having a good day All right, I think we are ready. Let's get going Let me actually put this one just in the back, but stop the That's not what we want Stop the preview Okay, and we got the screen upright. Yeah, okay So let's see. I don't actually have browser open already These was a browser is that? There it is All right. So hello everyone My name is Tim and I go by a foamy guy on github and discord This is the deep dive program in this program. We are looking at Circuit Python specifically we're looking at kind of the nitty-gritty Down inside a circuit Python either in the core or working with projects or libraries or infrastructure stuff all that kind of stuff if You are new to this though, and you don't know what circuit Python is you learn more at circuitpython.org This is the website for it right here It is basically an implementation of Python that runs on tiny computers called microcontrollers There's a bunch of pictures of those over here on the downloads page at circuitpython.org So like this main little black chip here, this is the microcontroller This is sort of a tiny computer that runs on this little Computer board and it's got all these different pins broken out And we are writing Python code that runs on this little computer and interacts with these pins You know generally connected to some sort of hardware Although what you'll see on this page is that there are many different shapes and sizes of these little microcontroller tiny computers, so some of them have stuff built in like keys and screens and knobs Screens, you know touch screens and things like that alligator clips RGB LEDs speakers Different ones have different stuff built in but the common thread amongst them is that all 349 devices on this page can run circuitpython And so we can write that Python code save it onto there Just like a thumb drive and it will execute the code for us So that's a high level look at what we're doing Circuitpython is an open source project So you can get involved if you're interested I would encourage you to join us on the discord As well as github all of the development takes place out in the open on github And we coordinate through the discord. There's weekly meetings and other Discussions that take place on discord all about the circuitpython Ecosystem so get involved there if you're interested It's an open source project, but it is primarily funded by this company Adafruit. This is their website adafruit.com So they are paying the folks who work on circuitpython The core team that works on the project full-time as well as some folks like me who work on the project part-time So thank you to them and thank you to anybody who wants to purchase hardware from them Because doing so you know helps pay the bills helps support circuitpython development They sell the microcontrollers themselves as well as all kinds of things that you can hook up to the microcontrollers Um to interact with so a couple of the things that I've got my eye on That are the the new releases are displays. I'm always a sucker for displays So there's a nice little square display here that has the new Ribbon cable connector on it to make it easy to build into a project and not need a bunch of extra Wires, so that's something that I have got my eye on But they've got all kinds of different stuff that you can hook up and do with your microcontroller As well as many of the different microcontrollers themselves that you can purchase from their website there Jumping into today's stuff what I want to look at is a core display ios stuff Um last week we worked on vector io and That pr is merged now. So the stuff that we worked on last week is now inside Circuitpython main. Um, I don't think there has been a release yet. Um, So it's not like in the one that you will download So you'd have to build from main if you want to get it But that stuff is now in and the next thing that i'm working on inside the core is Uh is actually an idea. I think to shippu raised this idea during the meeting was about changing the Display.show API to instead be a property where you would set The group that you want to display on it. So let me pull up the issue for that and then we can see What we are talking about or I actually have made the draft pr at this point. So I'll go there Um, and then this it should link to this issue which really explains the core idea here Which is that we used to well currently we do we have this function called display.show You pass it a group and it will put that group onto the display for you The idea is to change that up potentially to instead have a property Called like root group. So you know display root group and then you're setting a group On to that property, you know, you're setting a value into that property rather than Calling a function and passing a group to it Um So that's kind of like the the You know the core idea the change the idea is this is supposed to help make it more clear what's going on Sometimes we see people reporting issues with their code and they have called show a bunch of times In the main loop or something like that expecting that that's like going to refresh the screen or something Um typically you only need to call show once unless you're like trying to show a different group You could you know, you could structure your program where you create multiple groups and then You know show one and then change to show another one and then change to show another one That would be perfectly legit. You could do that You could also just show one group and hide and show, you know hide and Reveal things within that group that that would be another way you could do it without having to call show again Anyway, though the point is like we try to tend towards properties when We have this idea of kind of like setting a thing into something so making this a property We think maybe will help make it more clear that you're not necessarily intended to just have to keep recalling it Inside the main loop or something like that So that is the change i'm working on and specifically I actually have a good chunk of it done. Let me get my device powered on and going here We can actually get the camera set up as well um Because i've got the most basic part of this functional. Uh, what is left to do is a little bit of cleanup and Some testing to make sure that We didn't break anything and also to make sure that the that the broken cases the cases that shouldn't work um Still don't work or you know, don't do anything weird So let's see. Hmm. No display show. How would that change display? I go for blinka. And what about the java script port? uh, I Do not know anything about a java script port So I can't necessarily answer that one um Unless if you mean the walk the walk we thing I think is maybe got java script inside of it I'm not Not super familiar with the walk we thing, but I know it exists and it runs on a web page So it probably has some java script in it um What would it mean for blinka blinka what it would mean? I don't think it's been discussed, but my understanding is basically that would just mean We would make the same change in blinka display. Oh, so Inside blinka display. Oh today, we have uh, the same thing which we have in the core which would be display dot show Uh, we would change it Well, well and and so the way this is being discussed is Uh, in addition for circuit python 8 so the ability to set it as a property starting with circuit python 8 Uh, and then removing the show function as of like circuit python 9 so it won't be gone for a while Um, but it will eventually be a breaking change when that next major release comes out afterwards Um, and I would assume that that it basically means the same thing in blinka display. I oh We would basically add a property called root group that you're allowed to set um Instead of calling show We would migrate all the example code that exists to use that property instead of the show function And then come, you know down to line circuit python 9 or 10 or whatever when it actually gets removed Then it would also get removed in blinka display. Oh Um functionality wise it is basically the same you just would need to change your code Once it actually gets removed you would need to change your code from display dot show to You know display dot root group equals um Until it gets removed you could keep the display show But it's just kind of like deprecated will be removed eventually is the idea Uh, but that is actually a good question because yeah, we do need to consider blinka display I oh and we probably we would want to probably make that change at the same time like we would want It to become available as a property on both at the same time. I think Uh, which is a good point and we definitely want to remember to do that So thank you for asking actually because I had not I had not thought of blinka display. Oh yet. Um, so let's get the device. Do we have it here? I think is this running it's probably gonna crash when we load it maybe Yeah, for sure Uh question for your example of having multiple root groups that switch between scenes one and two etc We can just change the property. Yeah, that's that's correct Yep, you could just set the property to a new group. Um, and that would let you switch between different ones So if that's how you want to structure your, you know, your your program or your application where you have like, you know Let's say four different groups. I'm just making up a number. Um, you know, you have x different groups, you know Let's say four, uh, you can just set one of them onto the property and then change it out with another one Whenever you're ready. So, you know user goes through a menu or clicks a button or whatever and then you can just swap it to a different Um different group Let's see here We need to call a method to inform the code that there was a change. Nope, you just set the property and the code will Uh, it will know that it changed and it will update for you Yeah, good question. I can show you how that will work as well. In fact Uh, well right now it's a bit blurry. Maybe we can sharpen it up and then I can show you how that would work Where'd the camera go? Click the video mode Isn't it a new one? Isn't it a new one I see okay Oh boy, that's a lot of things There we go uh, so I have Funhouse Let's See what code's on here. If you have an example, that'd be amazing. Yeah for sure. So this code Uh, let's take this part out Let's take this part out E this part doesn't matter so much. We could keep it in. Um, we'll run this So let's go back to the camera Too many browser windows open today Um, so this code Let's see. I don't have one of the little wiper cloths here. Oh, well I tried to clean off my screen before especially with this example because this example draws like a little pixel somewhere It's kind of hard to see but it's right up in there Um, but this is you'll recognize this example if you have done the display.io Learn guide. This is basically just a basic display example. Well, I'll change it up here in a minute as well We'll make something slightly more functional but the code that's in here right now is Look up the display we're using a fun house So we're just using the built-in display on the board create a bitmap This bitmap is going to be the same height and width as the display itself And it's going to have room for two colors inside this bitmap We're going to then create a palette this palette is also going to have room for two colors We're going to set the first color to black. We're going to set the Second color, you know index is zero to black index one to white We're going to make a tile grid that has our bitmap which we created back here and our palette which we created right after it Now we have our tile grid We're going to create a main group which we will then you know show onto this display here in a little bit In fact, that's the next line of code right here So this is where in the current api for circuit python You would call display dot show in this future version that we're working on right here You would say display dot root group equals main group In this case, we then go append the tile grid to the root group So we created this tile grid here. We created this main group here. We want to get the tile grid onto the main group We have now set the main group as display dot root group So we can also access it from display root group, right? So we can access it here call append on it pass the tile grid So that we're going to add that tile grid into our main group Which is now visible on the display This one is painting that one single pixel that I told you about It's it is kind of hard to see but right up in there somewhere North of that smudge, there's a single pixel on This is that pixel And then there is the white rectangle right here And that white rectangle is made with these two four loops right here It's just looping through ranges of pixels and setting them to index one In this case, it just prints a thing and then that's all it does And it has a while true. So it will continue to show this forever and ever and ever So we see our little white rectangle. We see our very very faint single pixel there All that is good. Let's make a second group though and Switch to it so I can show you how we would do that. So let's say We were going to have secondary group is display Group so this is now another new group. It has nothing inside of it yet For what should we put inside of it? Maybe let's make a label Let's so we want to label we're going to have to go from Eight of fruit display text dot Bitmap label import label Uh, I think that's right. We'll see maybe I got it wrong. We'll see. Let's create a Secondary group label. I don't know. That's kind of wordy, isn't it? But that's all right label Label I think this is what font so terminal i o dot font Text equals Hello secondary New line group Let's go scale equals two Um, do we need anything else? Let's do a color. Uh, let's go color equals Oh, maybe green Yeah, let's start with that. We're gonna have to import terminal i o. So let's do that import terminal i o Now we're gonna go to our secondary group and we're gonna put the label onto it We're also gonna change the position of the label. So I'm gonna go secondary Group label dots. I'm gonna set it with the anchor point and anchored position Anchor point equals we're gonna do 0.5 0.5 we're gonna place it by its midpoint and then we're gonna go Anchored position equals Display width over two Display height over two Okay, so now we should have a label with some text in it Inside of our secondary group So now let's uh turn this back on maybe make it like five though instead And then let's go display Dot root group equals secondary group So now when this runs it will show the current thing the white box and the white pixel it will show that for five seconds And then this will happen and it should change to our secondary group if we've done everything correctly then we should see our label, um I don't know if we have done everything correctly Hopefully we have I'll I'll open to here. So if we haven't and it prints an error message We'll at least be able to see that And then we will try it out. So let's go. Oh, right. It's only one of these keys now. We've got to get used to that still Uh, so I'll this is the wrong thing though. This is yeah, there we go Save that That's running showing the white box in the pixel should be five seconds roughly and then it will hopefully change There we go a little secondary group Um And then now it's just going to loop forever. So it would just keep showing this one forever Um, we you could also go back and forth. So inside of here you could kind of do another thing like sleep another three seconds And then You know change it back, right or do whatever you want change it to a third one Change it back to the terminal. That's another thing that you're allowed to do So you could go main group and then you could go time dot sleep another three Secondary so you could swap back and forth like this You can really set it you you can set it as many times as you need and you can do the same thing with the show function today It's just that you don't have to and sometimes we see people doing it without meaning to really or or doing it without um Without the need group already used. Okay, so this is good. I think we Group already used line 59 Ah, you know, I think that's probably a bug. We need to when it gets set to something else. We probably need to um Group already used we probably need to somehow indicate that it's no longer used I'm I'm actually surprised we were allowed I'm surprised we were allowed to go back to main group Why is main group different? Because we were able to so we set it to main group the first time We were then able to change it to the secondary group and then we were Able to change it back to the main group, right? We got back to this We have five seconds of this Three seconds of this Three seconds of this so we're back to main group and then it crashes on this The second time it tries to use second secondary group Oh label label shoot Label yes, we want to set it to the group not the label of course now it should go back and forth Okay, three seconds on this one Back to this one Back to okay, and then it this should be able to just keep going back and forth forever Okay, yeah, gotta make sure to use the group not the label that one's on me How's it going evildave of canada? Hello over there in the youtube chat. Happy friday my friend Another thing that you can do is set it back to the terminal. So the default display in circuit python If you don't Show any other groups Will be what is called the circuit python terminal Which is where you can see stuff get printed like all that stuff that was printed on the screen there We only saw it for a second in that situation there, but that is the circuit python terminal In this case, we'll see it again after we loop through all the three of these and then it'll come up once each time in the cycle So this is the circuit python terminal here And you can also switch back to that as well. So you can go back and forth between um Your own stuff your own groups your own display IO objects and then that default terminal That just shows you the printouts when you're retired every day is friday nice. That sounds That does sound pretty nice. I do have that to look forward to Okay So all of that is actually working and to be honest with you. I am glad that we did try to put the label here because that Actually is good that actually tells us One of the things I wanted to test which was it should properly Raise an exception if you try to set it to a group that is already in a group And indeed that did happen because label Bitmap label in this case actually does extend group as well. I believe Does it maybe a dense tile grid and I think it's I believe it's group I think it's group okay So that is actually good and that was one of the things I wanted to test because one of the last things I did on this was based on feedback in the draft pr This is the issue let's go to the pr Is it maybe it's not or this is the No, this is the pr. Yeah move this to the internally Update the internal api to match the new way. So this is one of the last things I was working on on this effort And this is inside shared bindings display c and I To be honest, I don't actually remember exactly where I left it. Okay. That's actually right where we were here So and this is one thing that is different now is this used to get the boolean here and then raise the exception In fact, that's the exception we just saw but now that occurs Actually inside of this Which comes from Yes It does leave open the question though would we want to also change this to set root group? Because basically what we've done so far is just add the property of set root group But internally it still calls A method called show and this is essentially just moving it one layer deeper. It used to call show here I have now changed it based on the feedback to call set root group here, but set root group Inside of here ultimately does just call display core show So would we want to update this one too and where this one would be in Display core, which is its own weird thing Doesn't exist in shared bindings This is the show method in here I mean, there are setter methods in here. We could just We could just make this be set root group dash in That seems unlikely That looks a little better So this is used in a few places. It's used in Well, it's yeah, I know it's called here, which is shared module display see This is probably in the show method display dot show method, which still exists at this point Yeah If we changed the display core method, we would need to update it here 402 in the same file. That's our set root group. That's probably right where we just were Yeah Actually, this one is still calling show or oh, or this one is This one is the one that is calling show. Okay. This is like the internal one. So we would need to change it here as well ePaper display we would need to change it inside of there ePaper display. I had not actually looked at ePaper display at all I have any I don't know that I have an ePaper display No six I can't be right This bindings it's basically the same thing though. So I mean we could change We would change it there as well And then in display core, this is where it's defined. So this would be where we change it To necessitate needing to change it everywhere else And then one more in 64 on the h file It's just the declaration No Yes Not the wrong one though And then frame buffer display Here's that Oh frame buffer i o it's not in uh Not in display i o which means we can't actually see it. We probably get shared bindings also I don't know why it takes me off of that after I edit it 105 Like core show root group So it's not too many places. I do think I mean it probably makes sense to go ahead and rename all of the internal ones To set root group rather than like half which is kind of essentially what I have now like Right now everything up to the display core method Is set root group but then the core method is show But I think it makes sense to change the core method to set root group and then Everything all the way through will be set root group even If you looked at the code underneath display.show which will leave it intact for now That code will now say set root group inside of it internally here Yeah, okay, so let's try that uh display display core. So it's not going to be show anymore. It's going to be Set root group Basically going to need to change it in all of these places that we just went through Uh, unfortunately though, we just got to go back through them Be nice if I could click sometimes these are clickable right now is not one of those times though We could just we could copy the whole function though. We could do this. This would be quicker, I guess That's 402 actually. So we're going to go up to 144 in this file Here we're calling set root group and so this is display.show. So this will stay existing for now But eventually get removed That's those two e-paper display But actually I don't think I have any I have a raspberry pi e-paper display I think I have any others though. We have the raspberry pi one Yeah, I can use that that would be calling set root group 165 we did that one. I think or no, I did the h only I guess There it's set root group At that we got the h frame buffer display is the last one 105 I guess we probably would want to offer frame buffer display Having a set root group though And maybe e-paper display too, I guess, right? I have a gizmo, but it's not the one with E-ink These ones Do have refresh Just does it matter that may not matter though, right? I don't think anything else changes Yeah, we probably would want to change this too. I had not thought about e-paper or frame buffer displays But I assume we would want to change their api to match Quote-unquote what I'll call standard displays Um the ones like the built-in ones on the iPortal and fun house Oh, you know what I have with an e-paper display? I guess would be a mag tag Can I use? I could like release the display and then re-initialize it right to test if my new version works I think so, right? Uh, okay, so we should So I'll worry about adding a set root group to e-paper and frame by buffer io Later, but let's see we should why do we Why do we not did I did I save into this so I need to do this one? Yeah, okay So we should have no hits now. Yeah, we have no more of this. This is gone It's all set root group now. So let's try to make a build and see if it works. Um Actually do that over here make a build Not what do we Oh, oh, oh, oh, oh, we got to do a dot dot esp idf export Shall now we can make a build now we can cop. Oh, we need to go to bootloader remote on the device copy The thing we built to the device that nice smudge read at the perfect angle for seeing with this camera Okay, so it looks like it's working. I think if we had messed it up it would have failed already on this first one here So this is a good sign. Let's make sure it cycles through all of them correctly You can actually see the little pixel better. There's our terminal Oh Oh, it crashed When did it crash on? 59 Oh, I did it back to this. Uh, yeah, let's put it back to the code that doesn't crash Are there automated tests as part of the build process? Uh, there are not automated tests in the Sense that nothing is like Emulating a microcontroller and executing code on that microcontroller or or or just being a microcontroller, right? We don't have actual physical ones either Um, so nothing is like running code automatically on the microcontroller as part of the Uh, ci or anything like that There are automated tests that build circuit python, so Uh, if we were to go and actually push A commit so like here. I've got some changes I'm doing my changes whenever I'm done with them. I'm gonna commit them I'm gonna make a new commit and I'm gonna push it because The branch that I'm gonna push it to Is in a pr Already for the circuit python project as soon as I push it's gonna kick off the github actions to run Uh, and there are tests that will build circuit python for every single device we support Uh, so all 350 or whatever it was of those devices on the downloads page The actions will build A firmware for each one of them Um, it won't do anything with that firmware. I mean it will upload it Will provide it put it in a spot where you can go and download it later But like it won't install it to a device and do anything with it But it will at least make the build for each of them. So, um, kind of yes. Kind of no not automated testing in the traditional sense, but Not nothing either. Um, there is still a lot going on As part of our integration So this is this is happily cycling away. So I think we did not break anything. Which is good um I think we're almost ready. I guess One thing we should do is there's a comment somewhere. We should just delete I think Or who's that that would be around the 400 one down here. I think uh group no Oh, okay. Here it is. Um That root group just calls I'm in house that root group. So yeah, we don't need this. This is old now It does still raise the exception though, which is good We still want it to actually raise the the exception I'll make another build like obviously just removing a comment should not affect anything, but Never be too safe really I'll do one more and then I'll run pre-commit and then I will push And we'll also look into updating e-paper and frame buffer after that So this built Copy it to the device I know hardware emulation might be difficult in the near term But perhaps you could use something like a tricky Run additional automated tests on Yes, there have been um Yes, I will say it is the thing that is on the radar. It is the thing that has been thought about And it's a thing that would Definitely benefit us Running some kind of automated tests on hardware There have been a few attempts at solving that problem of kind of distributing the tests and getting them to run and collecting the results But there has not been anything that is like Able to support the kind of scale or that's really taken off usage basically So I will say like if you are interested in automated tests and if you are interested in helping us out on that front like Definitely, I think one of the things that that initiative Needs is Right now at least like a champion a person who wants to dive in and really try to Tinker away at it and make it a possibility um I would love to see it. I would love to see something where so like my my Vision for this idea, which I think I have written out Somewhere on an issue or maybe in the weeds of a of a meeting at one point or something I should go back and find where I Where I got this idea out of my head and down on on paper so to speak um My vision would be though is like members of the community so me and you and anybody who wants to can Keep a microcontroller plugged into their computer and can keep a Service running on their computer keep a script or whatever running on your computer The script will basically check in with a server that will Allow it to download code to run on your microcontroller and then get the results of that code run And send it back to the server so you could kind of set yourself up as a Uh a runner so to speak to run Stuff tests on microcontrollers. You'd keep your device plugged in you'd keep your computer on 24 7 Connected to the internet all that stuff Uh and then part of our actions it would Create this job for you and distribute it to the server and then have your computer out there in the world You know Download the code that it needs to run run it get the results that it's looking for Send those back to the server which can then send those results back to github Um, I would love to see a workflow like that. I think there are probably ways to make it happen but it's A lot of work for sure. It's gonna be a big thing and it's gonna take a lot of Work and a lot of tinkering to get it set up in such a way that it's feasible The other thing is I think it needs to be super easy for someone to Set up to run their stuff that way, right like We need it to be easy enough that I think average users are Having a chance to be able to get set up and run their own device as a testing device It's not to say that every average user will do so Um, but if only the people who are like in it at the development level like if only people Comfortable building circuit python and really getting down into the weeds of everything if those are the only people who can do it I don't know that we'll have enough people running it all the time to make it work But if we can make it super duper simple, you know Download this uf2 and then plug in your device and then run this script on your computer or whatever, right? If we can make it super duper simple Um for people to kind of donate their computing time and their device time To running those tests. I think You know, I think there's there's promise there I think that could be something that could really help us for sure But it's a tough nut to crack and it's definitely gonna be a lot of work To get to the point where we even have a feasible way to set up and do it I experimented a little bit down this road. I experimented with self-hosted runners on github where you could basically set up your own computer as a runner inside github actions Um, and then it could communicate to the microcontroller to like execute code on behalf of github actions Um, I did that kind of as proof of concept playing around with it one day And it did work out. All right. I did later find the whole self-hosted runner thing is not Not necessarily recommended all the way from what I was reading after the fact, but That's one avenue. I think there's probably other ways it could work technologically as well but Anyway, that's kind of my my thoughts and my ideas around the automated testing So if you are interested in getting involved in automated testing is your your forte or just something you're super interested in I mean, we're definitely Looking for somebody who is All about that Okay, so this is cycling away. We made a build. Did we actually installed it build? I don't remember where I was. I'm gonna I'm gonna copy it back just because I don't I don't know if I loaded this one or just the last one. I think I did load this one, but just to be safe we'll copy it in But yeah, if we could make that super easy then we could have kind of like an army of people with devices Just plugged in all the time Uh waiting to run tests and so you know to your point trinky or whatever device it is, right? Like we could have all kinds of different devices based on just whatever a person has and is willing to leave Uh plugged in so, you know, we can actually even maybe do some hardware testing and stuff as well like If certain, you know, if enough people will leave a fun house plugged in then we can like execute a test That's specific to the fun house hardware Now it can't do everything automated either right there's some stuff a person probably needs to be there for right like if it's you know playing sound out of The speaker or whatever right like it's not gonna know really if the sound came out a person has to tell it like yes actual audible sound did come out, but Um, you know, there is still a lot of stuff we could get done even without a person present Okay, so we are cycling through here. I think we're good to go. I did erase the comment. Let's run pre-commit Tell me what you have on discord sometime. I'd love to take a look. I will try To dig it up. I do not remember You don't remember where it was at so another initiative, I should say Uh credit where credit is due summer soft. Uh member of the community Um has not been around as much lately, but was active in the community in the past. Um summer soft did work on a project called Uh rosy pie And fiza ci this was a An attempt to solve this problem. This was like a raspberry pi image that was made To kind of be this like middle ground So you would plug your circuit python device into this raspberry pi Uh, the raspberry pi would connect to a central server Uh, and the central server would take jobs from github actions and then run them on You know get them onto the pi and then run them onto your board Um So that project is out there. I would say, you know, you can look into that rosy pi Um, I will try to find what I did probably the most consumable thing that I have would be Uh, a video if I was streaming when I was doing it and I would guess I was um, so I'll try to take a Poke back through my old videos and see if I can find The one where we played with uh self-hosted runners It was around the time that I started working on the size measurement stuff Um because I had in mind an idea of actually taking a ram Measurement on the device itself in addition to just the mpy file Uh, which is what we have started with so far That's as much for me as it is for you just remembering the timeline will help me go back and find it Um, but yeah, probably a video is the best thing I have I don't it wasn't like stuff I can share exactly because I don't remember how the It basically what I did is I set my own computer up as a self-hosted runner And then I was tinkering the actions inside of the repo to Call over to my runner and do stuff Okay, we did pass all that stuff so I will push I don't know why we got Changes in here. I did not I don't I don't believe that I intentionally did anything that led to this Actually even see a change down here for this one. There it is. Okay, pulse. Yeah, I haven't been touching anything in pulse. I o Haven't been touching any kind of pi obj No, did I accidentally paste? I mean, I was never even in this file really. I don't think Well, it's not one that gets edited by hand. You know, it is interesting. This is also a pi obj though I think we're just going to uncheck that because I'm not sure what it's from I don't think I made it if I did make it. I certainly didn't do it intentionally For human testing one way to help this Let's see one way to help distributed testing if you have code and expected results picture audio It's easy to upload that code. I like the project download and it's easy to ask others. That's a good point. Yeah, definitely um Being able to say like here's some code. Here's what I'm expecting You know, here's a picture, uh, or a or an audio recording of what I'm getting instead, right? Like, you know, if you're lighting up lights, then a video recording if you're trying to draw on the display Then maybe a photo or a video Um being able to say like here's what I ran Uh, here's what I wanted to happen and then here's what actually happened Um and ask about it is good. So Let's deal with this because youtube is cool Uh, did I miss something? No discord. Okay Terminal so we changed to that we had a different name for that Constant before the other thing is we did is change the internal api to use set root group also change internal api To use set root group Okay, we'll see if that passes and then I guess I'll try the e Paper one. I don't What what uses frame buffer io? I don't actually know Should have gone to that index. I don't have that bookmarked on this computer yet Like the led matrix displays use it. Oh, yeah, I think you're right um Who I have that's like that. I have the uh I have the eight by eight matrixes. I think of matrices register This one connects to i2c I think I recall seeing something like this though. Is it the 13 ones the uh Like seven by 13 or something? Sorry feather wing Is it like these charlie plex? is 31fl Matrix as display Does still go i2c Let's look inside of this Uh, that was this tablet project with an lcd display connected directly to the mcu Without a driver chip Let's see perhaps a better question Okay, perhaps a better question to ask is the 8020 rule Where are the majority of circuit python bugs the core language features or something specific to an attachment like display sound neopixels um The majority of bugs I don't know if I have a good Rasp on it. I would say I think So I would say that I think we find bugs in the core more than we find bugs in like the python layer the libraries But that being said, I don't know if that's true or if that's like biased because The bugs in the core tend to make things fail in a more spectacular fashion Right the bugs in the core tend to make things crash or hard fault Compared to the bugs in the python layer the libraries Are less likely to do that they might raise an exception or they might just Not behave as expected And therefore they are kind of like lesser In a way, so I don't know if we actually find more in the core Or if it just feels like it because they tend to be You know cause more problems cause bigger effects. Um It's a good question I don't know that I know that they know the answer off the top of my head Bugs in the core affect more people. That is definitely true. Yeah, that's that's a really good point Yeah, because a bug in the core Is likely to affect Uh, not necessarily everyone because it could be in a core module that a certain person is not using But it's certainly way more likely to affect a lot of people than a bug in any particular library That's a good point With an lcd. Uh, oh, yeah the one you ran the lottery for. Oh the hack tablet. Nice Was the frame buffer display. Okay, okay That's right That is right Maybe we can test with that. I have Not built it in a minute. It would be good at some point. We want to try I wonder did we ever get the newest esp idf One thing I was hopeful for was when we pull in newer esp idf I was hoping maybe that our hardfault issue might go away because I don't Kind of reached my Personal ceiling at least for now as far as being able to troubleshoot the hardfault So I kind of got to just pray that it goes away in the new version Don't know if that will actually work, but I have to try it out testing the core is easier because we can just run a bunch of python code and have it right To the file after check the test results file and see if everything worked I would say it's probably about the same testing the core versus testing a library I would guess works out pretty close to the same In terms of like how difficult it is I really want the circuit python driver for this I do think frame buffer. I do think there's something in one of these led things that does use frame buffer though I kind of Kind of remember this from playing with this thing one day I have like a vague memory of something that used Frame buffer IO. Maybe it's maybe it's like Maybe it didn't actually use it. Maybe it just imported it or something I was thinking there is there is one with a font. Is there one with a font example? Maybe it used frame buffer IO, but not as the display Oh frame buff This is probably what I'm remembering I think this is what I'm remembering And this is not frame buffer IO, but rather Adafruit frame buff, which would be python code not core code Okay We'll have to try to figure out how we can test the frame buffer one Does Adafruit sell an esp32 chip that you can use ethernet instead of wi-fi? Um, I do not know off the top of my head I do not personally I have not done much with esp32 uh esp32 only very very very recently has Started supporting circuit python and I spend the majority of my time and effort in microcontroller land on circuit python as opposed to Arduino or any other platform. So it's only been a few short Probably months. I want to say a couple maybe one two three months since We've been able to use circuit python on esp32 devices. I have not tried it out yet one thing That I would assume works Given the caveat that I just said I have not actually done anything with an esp32 So I don't know for a hundred percent sure that this would work You could try asking in the help with channel We have lots of folks who have lots of experience with wi-fi and with network stuff they may be able to Add more to this discussion than I could that being said one thing that I think could work Is they do have esp32 device. So this is a esp32 feather v2 device microcontroller And then they have a ethernet feather wing ethernet feather wing As far as I am aware you should be able to plug this ethernet feather wing in To an esp32 or pretty much any other feather And get your network this way get your network through the ethernet cable rather than through The wi-fi To the best of my knowledge that should work again. I have not tried it. I'm not a thousand percent sure But my guess is that would be fine. I don't know of a reason that it wouldn't So that might be something to look into that being said I don't know of a device itself Like a just a device that's built in by itself that has ethernet instead of wi-fi Got to hit the hay. Thanks to him and good night all yeah Thanks for hanging out for a bit Dave. Have a good night and a good weekend and all that stuff Matrix LED use frame buffer library not the frame buffer. I oh, okay It's the frame buffer from micro python made a few contributions to the isl was suggested to implement pixel buff But I did not know how to That was for a pimeroni multipixel line isl i'm not familiar with isl is the acronym there So I guess we'll try e-paper to start with And basically what we would need to do is make Kind of some of the changes that we made to display To this one Doesn't have show here Only reason I can think of is some other module also using the same pins that yeah, that's a good point It would be good definitely to double check on The the built-in hardware on each device and make sure that the pins that the ethernet thing is available on I guess probably spy. I would assume spy, but I'm not sure make sure the pins that it communicates with are valid You know same same pin same location on the uh sp32 feather They tend to be pin compatible the feather wings and the feathers But there are situations where the pins are different on different feathers And that can definitely cause differences. There may be jumpers or something like that That you would need to do Change or or set your chip select line So that's another thing to look out for just make sure that all the pins are matching up But I would I would assume that it is possible to connect those together so we pretty much want like We pretty much want Copy of this, but it's called set root group and I think we should probably just try to make it match the uh One from Here as best we can we put this one down under bus And to start with I'm actually just going to grab all of this even though like some of it's going to change And take all of this we're going to go over to e-paper Is there a bus in here? busy bus Or bus get bus is that rotation Get bus. I think that's pretty much where we had it before I'm going to put this stuff. So root group is a group root group on the e-paper display Hey par display um So this will be e-paper display Split this We can go also look at show Wait a minute. This is the wrong place It should be shared bindings I thought we were in but we aren't This one is shared bindings. I guess I should close some of these I don't know why the paste doesn't work right with the uh tensions There's bus. Okay. Yeah, this one is actually See when I pasted it's no longer indented Could run pre-commit which has the formatter. I guess I need to figure out how to get I don't know why it does that basically. I need to make it not do that You make it paste with the right Well, I mean at Worst I would like to make it paste with the same inventions that I copied it with like That'd be pretty good isl is the library. We were looking at Oh isl the uh, yeah. Yeah. Sorry the led library isl f 31 something something. I don't know the full name I'm with you now though. Yeah pixel buff I wouldn't even know how to begin trying to put pixel buff to it Like the learn guide of that ethernet feather to see See the use case in the language that are supported That's a good point too. Yeah, the learn guide for the feather wing should Give you information about which like if it's arduino only or circuit python and arduino or circuit python only um, it should I would assume it should tell you about any hardware Like specific compatibilities or incompatibilities that are known about as well So like a lot of this stuff will need to be now e-paper display Instead of display But I don't know if everything That looks so there's self too much everything native display So this is where to start with before I actually just was calling show in here Might be worth Doing that to start with so we can test less changes at once So I will say my my c and my core stuff. I'm not like fully confident in the changes I make in here just yet We did lose this e-paper You should have a set root group now. This is in so this is in bindings c I do think I was able to Do this from here. Let's see if it builds. I don't know. I might not actually build Sure, there's more that we're supposed to do if nothing else. We didn't put it in h yet. I think we would want to do that I suspect we should probably need some changes and shared module also Okay. Yeah, this thing doesn't exist or something Basically, this doesn't exist yet. So I think inside c we need to declare this. I mean inside of um Inside of Shared module c This basically can just do the same thing as this We need it in Shared module h no show This one does We'll event we'll want to make a get root group also, but but we're ready for it I don't know where the code for it came from actually Maybe this that's the locals dictionary table No Okay, here we had a get root group Okay, we actually do have this But this is gonna try to call this one Does this one exist already and actually have a get root group See if it builds No get root group Get root group Uh Eat paper so inside shared bindings c 357 Did this be e paper display? Paper display h Ah, yeah, this should probably be e paper Filled slightly differently Uh previous declaration was here Okay Error conflicting types Uh, so yeah, we got to go to um Shared module 46 self So you're right, right, right, right, right. This should be paper also paper Went longer than before Without crashing so far There we go. We got a build look at that. Okay, we Got a build for a device we can't test it on because I don't have an e ink screen that could plug into the funhouse So we are gonna get A mag tag build One thing I don't know is like if I make a mag tag build Am I already testing this like is is mag tag using this stuff internally on board or dot display? Uh, or do I need to make a mag tag build and then Release displays Manually re initialize the display Using the e paper display class and then I'd be testing my stuff. I don't actually know If anybody else who's watching does let me know I will try to find the device to make the Build with so let's go ls boards mag tag um I don't know if it's aida fruit mag tag Mag tag there it is It has a dot in it Perhaps the only one with a dot in the name. Look at that. Nice One looks like the only one with a hyphen It's using this internally. Okay, so if we get this on our mag tag and it actually still shows stuff then We're in a pretty good spot Uh, let's find our make mag tag While that's building. I'm gonna run and find the mag tag. So I'll be back in a second. Okay Mag tag acquired looks like we got a build as well Conveniently the plugin is in basically the same spot No idea what code would be on here. We should uh Take a look. It doesn't look like it's doing anything actually shows an empty group. I was refreshed. Okay go 730 beta beta one This Sign that I don't use my mag tag enough. How does the uh boot loader work on the mag tag? Is it double tap reset? Where's reset also? Ah, yeah, it should be because we got purple. Yeah, there we go. Okay boot loader mag tag boot cp build data fruit mag tag firmware media Mag tag got the blink ins Only to assign the root group in your code to test it though. Okay. Yeah, we can do that This one takes a little bit longer to copy Oh, do you think it is done finally though? Nice. Okay, so we are definitely updated now 80 beta 4 Plus the dirty build or whatever right because I just built this from Eventually starting from main a few days ago at this point. It's probably out of date by now, but Hello mag tag that printed out. So we will make our program actually try the new stuff So I'll just kind of do Similar thing like we had before I'll do just the label by itself for now though from display text bitmap label import label import board Anything else import terminal i o import display i o Let's start with that while true pass Main group equals new group Let's go Test label equals label terminal i o font text Hello mag tag dot set dot root Group setter probably want white because I think the default background is black Main group dot append Test label this needs to be Display oh Yeah, so now we would go board Let's make display. It doesn't really matter right? We could just use the shoddy one, but let's go non shoddy display equals board that Shoddy display And then go display this main group And then because it's a mag tag We also have to call refresh also because it's a mag tag. It has a refresh limit of like once every five seconds or something Uh what I like to do because I find it convenient is just put a time dot sleep at the beginning of the script that way It will never crash for trying to refresh too fast I'm just gonna go time dot sleep like three seconds right at the top. All right, so we get our three seconds of sleep ePaper has no root group. Okay Probably we forgot to put it we forgot to put it in the What is this called the dictionary of the local dictionary? Yes local dict table. We did not put it in here Uh, let's do that. I don't know if that's the right name We'll see um bootler. That's not very dark gray Uh, yeah, it looks like that worked one thing is my label is in a weird spot because by default labels are Halfway off the display. Uh, we didn't do our anchor point like we did on the last one this label anchor Point this time. I'm just gonna use zero zero Instead of centering it. We're just gonna go zero zero and then test label Anchored position Something like that refresh too soon Is it's not long enough? That's actually the exact thing. I put this sleep here to try to prevent But apparently we didn't sleep long enough. I guess There we go Oh, we got our label in there and then uh, just to make sure let's also go Make sure it goes back to the terminal correctly Do we print something too? I didn't call refresh We will let's print something also um Terminal Time Terminal time Terminal time So this one probably won't Oh, I guess it will refresh. Yeah fair enough But it didn't show anything else before it but it should go back to the terminal now and print Yeah terminal time we get to see it there as well Okay So we're good on eink functionality wise Probably didn't probably hasn't been long enough that this would have actually pastor failed yet Oh has not even run anything yet still queued With any luck It will cancel the prior actions and overtake them with the new one Not positive if that's how that works, but we're lucky that would be what it would do um Cream buffer IO Don't think I've cloned this yet See if we can find a project that uses frame buffer IO Oh the camera just died I know because it's light turned off It's because I changed the background Do a foe Why is that the thing that was open? Doesn't it seem weird that this is the thing that it opened automatically? Why did it do that? Did I open that? Because this was a brand new clone thing. So like it wouldn't have had any prior History or anything There's a billion different code pies in here all in their own folders And it's somehow settled on I must have clicked it right did I click it I must have clicked it Really it did not just open that by random. That'd be crazy Um, anyway though what we're actually looking for get grep frame buffer IO Also, let's do dash in because that makes it more useful. Ooh Maybe I spelled it wrong. Hopefully I spelled it wrong Uh, yep, fram buffer fram get old fram buffer RGB matrix. Okay matrix portal stuff maybe And sharp sharp display I do have a sharp display I do not have a sharp display that is like ready to just hook up and test this evening though I got one of These I think maybe Something it's very similar to this if not this exact one Uh, let's look at the code It's the code that makes it go Indeed Release the displays importing frame buffer IO Uh, it's creating a sharp memory frame buffer Which it imported from sharp display Oh, but then it's making a frame buffer display from The sharp memory frame buffer. Okay So frame buffer display would be The object we're changing we would be changing the show I mean we would be leaving it alone for now, but we'd be adding the set root group that Will ultimately replace show And we'd be adding that to frame buffer display Okay, I think this will probably be tomorrow's plan. So For folks that don't know uh, I stream on saturday mornings also typically Um, although I am thinking about maybe changing up the times on saturdays We'll see I've mentioned that a few times and I haven't actually done it yet So we'll see if I actually do definitely not for tomorrow though Tomorrow, I plan to stream at the normal time on saturday, which for me For right now is 10 a.m. Central time and I think what I'll work on tomorrow is I'll get the sharp display out and I'll work on making this change in frame buffer display Class tomorrow, but 10 a.m. Central time right back here in the live broadcast chat That's where you can get the links to join us. I will be under my own accounts instead of the ate a fruit account Like we are right now But I'll drop the youtube link and then you know, it's the same link on twitch every week But I'll put that as well in the uh discord when I get going and this will be what I work on Um, so that'll be good that we can actually test that and then it looked also like rgb matrix stuff Oh, and the glasses as well. I have the glasses. I think I Think I do have actually a set of the glasses. I have not done much with them yet I think I do have a set of those as well though. So maybe we can try that out also And maybe the matrix portal on the matrix portal What I don't know is if is it the same as the mag tag where I can just use board dot display I guess it probably is right rgb matrix Yeah, see these are linked I can just click this and it goes to there But like Sometimes they weren't like whatever we grepped earlier. It wasn't this makes a matrix. Oh, but then it makes a frame buffer display from Matrix, okay, so this probably behaves like a frame buffer Kind of like the same way the sharp one made a sharp display frame buffer and then passed it to frame buffer display Okay, cool. So yeah, we'll be able to test this one. We'll be able to make the changes Try it out on a few different platforms What I will do is I'll put a note here about some of the latest changes and the plans on Oh, awesome. Yeah Hold for review, but I Maybe I need to not Stream with this chat. Can I get maybe I can get a different chat window? Can I be logged into youtube as two different users? Could I have one chat window as my user? And one chat user as Adafruit user I probably need to figure that out if I could be my own because like if I was my own user then I would not have Moderator which means it probably wouldn't show me that message Whereas what we have here on the display is actually just the Adafruit user which is moderator and so it does see those I'll have to try that for Next week, maybe incognito is a good idea as well. Maybe we can do it without even logging in or something Yeah, I'll have to try that for next week. Maybe we can get it to where But I mean I would want the moderator chat as well I guess in case we do still need to delete something so I have to juggle another one and just keep it Keep only the Only the lesser of the two as the obs one basically Okay, let's fill in a comment here and then I think we'll call it a night for this evening. So uh, the latest commits Change the name of the constant constant to This and make it return the Terminal group That is already in memory Latest commits make a few changes including Changing the name of the constant to Maybe we could bullet point them to make it clear. So what else did we do in this? We Change the internal api change the internal api calls To use set root group instead of show All the way down into display core Made this internal change for three types of displays display io.display Display io.e paper display Frame buffer io.frame buffer display added the set root group property to paper display Tested successfully on mag tag open See one remaining remaining open item for sure is Adding the set root group property prop property to frame buffer display That is in place I think this is ready to move out of draft state I guess state. Oh, we did finally start getting passes Hopefully they're not from the first one Let's still say yellow though. So I don't know okay So that'll be the plan uh tomorrow i'll get the Find my sharp display get that set up on a I think it's a breadboard the one I have so I'll have to Get some wires jumpers ready to go to connect up to something Um We'll test that out. I'll get them. I'll get my matrix portal as well We'll try out the matrix portal Once we make those changes frame buffer Once we get that in I think this is pretty much ready to Go, I mean certainly ready for the next round of reviews. I would say I don't know of anything else beyond that that we would need Um to do inside of it before it's ready I believe everything will be functional at that point once we do the one in frame buffer display um Trying to think if there's I mean, let's go look at sharp display should we wouldn't we don't need to do anything inside sharp display I think because It seems like it uses frame buffer io Let's just make sure yeah, this just has a frame buffer. It doesn't actually have like A display object. Are there any other kinds of displays? So there's Parallel display Where is that one used? It doesn't seem to have all the same stuff either. This is just parallel bus what's got its own uh Developers so this I think parallel display was used On the uh the hack tablet it's available on quite a few Does the pi portal use parallel bus? Because I think it just still uses display though, right display.io dot display Little bus I have this open so massive bus I do have a breakout which has I think parallel pins Has like one option for parallel one option for spy I only used it for spy so far Could try that I'll have to try to look into this I don't know for sure if this this might be the deal where it's kind of like the sharp one where Technically it just uses one of the other ones So as long as we've already made the change in display.io dot display then it might cover The usage of parallel bus. I'm not sure I got to look into Parallel bus a bit and figure out If it actually has its own display class or if it's just using The one we already changed but We'll try to poke around a bit tomorrow into that as well That'll be the plan Alrighty I will start getting ready to pack it up here then for now. So thank you to everybody Who is watching thanks for everybody who hung out in the chat and You know ask questions We had a couple of good questions about display.io stuff this week always good to see that definitely everybody always feel free to ask any questions about What i'm working on or just circuit python generally or especially like display.io. I happen to have a lot of Just like experience with basically so i'm always happy to talk about and answer stuff as best I can in that realm Um Yeah, thank you. We have uh to ship it in the chat. Thank you to ship it again for the the idea in the weeds I think I mentioned before this is where this idea came from. I do think this is a good evolution for the display.io api so I'm excited to get it in and start getting some of the test code updated So that'll be kind of the next step once we have this actually in the core And the pr is you know out of draft and actually approved and merged then We'll have to go back and start updating test code and stuff. So that'll be a An effort, but we'll get all that in and then for the the next new release way down the line Then we'll eventually get rid of the show method um Yeah, thank you to shippu for bringing that idea up again. I do think this is a good step forwards Um, thanks for the stream really interesting addition. Yeah, thanks. Thanks for hanging out keith Um, thank you of course to everybody for watching. Thank you to eta fruit again If you want to help support the project one of the ways you could do that is by purchasing hardware from eta fruit Head to their website at eta fruit com to do that Um I will be back tomorrow morning at 10 a.m. For my stream So you can either follow me on discord from a guy underscore twitch Or you can just hang out in the live broadcast chat Around 10 a.m. Central time tomorrow morning. I'll drop the links in there And we will continue on with the frame buffer display Hope everybody has a good night, and I'll see you later. Thanks