 Life in New York, it's Ask an Engineer and a Bear. Ask a Bear. Hi everybody, it's me Lady Aida with me, Mr. Lady Aida, and best friend, Teddy Rocks been here. A lot of fight hack bear. A lot of fight hack bear. We'll be chatting about. We did some hacks in today. We got an extension here with lots of content including hacking, circuit pods on new products, videos, guides, projects, retro, some cool retro, which I don't really recognize, but apparently anyone who's around my age does. And more including a discount code, Mr. Lady Aida, tell them what's on tonight's show. On tonight's show the code is Neo Driver 10% off in a different store all the way up to 159. Yeah. Talk about some each for live shows, including show and tell, Desk of Lady Aida, a little bit of a recap including the great search, two brief product pick of the week, a bunch of retro tech including my little hacker this week, some factory footage and three printing speed up. We got an API top secret new products and answer your questions. We do that on discord.different.it slash discord. So we answer your questions throughout the show. But for the good ones, about towards the end, we get all of them, all that and more on you guessed it. Ask an engineer. It is going to be a jam packed show. I see like there's six layers. Yeah. It's like a seven layer burrito of content. Code is Neo Driver. It's going to be because of our star product tonight. You'll have watched the show probably. We have free stuff. That's right. We still have freebies $99 or more. You get a free promo proto house size breadboard 149 or more. We're still giving away the KB 2040 RP 2040 dev board. That is pro micro pinout compatible has castley and pads semi QT and RP 2040. So it's great for lots of market control projects, including many of the ones that we cover on the show. And $199 or more. You get free ground shipping in the contest from the United States. Still waiting on a shipment of circuit playground expresses. And we'll bring back that movie as well. All right. A little bit of a recap on Sundays, we do from the desk of Lady Aida. Come to two parts. What was part one this week? OK, so part one was me not having finished this Teddy Rocksman hacking project. So you could see me in the middle, which is a little bit like, you know, I want to get this thing working. So I worked on trying to figure out how to reverse engineer fully the file format and we create new story files, binary story files to put on this animatronic bear. You know, at the time, I think I was heading towards the build route slash Ghidra versions project where I was trying to run a UC Lib C build Linux on an arm 32, which is like a Raspberry Pi to use that to run this decoder library so I can decode and encode the audio files. I didn't quite make progress with that, but I showed using Ghidra, which is a very cool reverse engineering tool. I've used X-rays IDA Pro for an earlier reverse engineering project. So I did I do want a license for it at the time Ghidra didn't exist. But I was like, you know, I need to use to like try Ghidra because I haven't I haven't tried it for decomposition and it's like really sweet. If you ever have to do any decomposition work or reverse engineering work or binary hot patching work, I'd like hot patch this binary to skip a test that was causing my program to fail because it's not running on the right processor. So I just like skip that step or something. And I did get the program to at least run, even though it didn't run correctly. It did it did do what it was supposed to. So that was kind of neat. I also never used build before. So, you know, if you want to build small Linux builds, you can use like busybox and you see libc. Build route was pretty easy and had to ready to go. Config defines for the Raspberry Pi. And just, you know, there's always. Hey, I want to learn reverse engineering and like I want to understand like how this stuff works. To me, this seems like a class in it. When you look at what Lady Aida did from start to finish. And then the fact that you can kind of play along you know, one little pro tip as we kind of go through tonight's show is go to eBay and look for the 2017 Teddy Ruxpin. So they're eight dollars. So this is like cheaper than the motors would cost. They're eight dollars. There's one eight dollars. It's like, oh, a little like, you know, blemish on it or something like that. You could rip the fur off of it, put a different thing on it. Now you have like a $250 advanced animatronic thing. And you'll be able to turn it into your own custom talking teddy bear or whatever other animal you want to you want to turn it into. So dollars, which are not bears according to Teddy Ruxpin. Yeah, this could be a cosplay thing. So anyways, and there's thousands of these out there because the company went out of business, the bears don't really do anything anymore. And this really brings it back to life. So anyways, so I was in the middle of it. I finished this morning, but you could watch me in the middle of the project. So for the great search, you did the chip that's inside the bear. What did I do? Oh, I did the, yes, the NRS 51 module. So this chip, this bear uses the Sonic's 16 bit processor, not a normal processor. Popular choice amongst toy makers. Toy makers, yes, use it because I used a different toy hacking project builds to to modify this this bear. So the Sonic's a 16 bit chipset that does a lot of it's built in amplifier and it's designed to like drive motors and it's like really good for low cost toys, but it doesn't have Bluetooth. It's not a Bluetooth cable chip. And this was back in 2017. So they didn't have or 2015s when this was 2015, probably was designed 2016 and then released 2017. And they didn't have an easy way to add Bluetooth. So they actually used NR 51 module, which we know that chip. We've used the Nordic NR 51 A 22 for like a decade. It's not a bad idea if you have a chip that you know and you love and you just want to add Bluetooth, it might be easier to paste a module in than like redesign your whole thing for for a Bluetooth capable chipset, especially one if you have to do the audio decoding and you have the firmware and either like in the app works with it and everything. So I show on DigiKey, there's actually a ton of options for NR 51 and 52 based modules that are FCC, CE, Telex certified senior product to market really fast, either use it as a co-processor that just does the Bluetooth. Or, you know, if your code can run on NR 52, which is what I think I picked in the end, it's a fairly big chip. You could probably have your entire application running on it and also get that Bluetooth capability. Yeah, I'm like, folks, we're putting in the chat. You could have your own dragon reading you stories with this modification. Cool idea. Like how does this stitch something that uses the mouth and movement? Yeah, one of the projects we're going to do is now that we can put our own audio on there, because I'm going to like make a story for our kid. Have an AI Morgan Freeman voice reader because it just sounds cool. And I don't even get the figment like the 3D print segment, like scale it up. Yeah, this is like a neat project. There's a lot of crafting that you can do. Also, it's a lot of electronic stuff. But before we move on, you know, as you also dive into this world, it's the toy world, which is very different than the electronics world. I thought they, you know, back in the day, at least Sherry. Yeah, like nobody's helping anybody. Back in the day, I was like, when I was at Make Magazine, I'm just like, oh, like I should totally go to Toy Fair as a journalist and just see what it's like. Because like these must be like makers and you're doing cool electronics. And it must be like a magical happy place where everyone loves each other. No. So Toy Fair, I went to Jacob Javits and Toy Fair, I think was the most stressful, like anxiety ridden. Everyone hated each other. It was like it was like knives out. Restraining orders. Some people can talk to each other. There was theft. There was stealing. I accidentally stumbled upon something. It was Scholastic that had this other sub-brand that took something from Evil Mad Scientist. And so then I was stuck like kind of negotiating like, hey, could you just give them credit? That's all they want. Because there was like the bristle bot thing that came up. You can Google it on and you'll find the controversy that was on Make. But it got resolved, got resolved. But anyways, it was like gnarly. Like this was like, and so the other thing about Toy Fair is no kids allowed because obviously you can't have kids running around in like Toy Fair because this is where business and stuff is going. But there's like salty veterans of like the toy world and like they have patches and like one leg and like they've seen some shit. So anyways, the Toy Fair was intense. So that was my Toy Fair experience. JP's product pick of the week. Let's do the recap. It is the Feather RP2040 USB host. Rather than plugging in, let's say your mouse or your keyboard straight into a computer, you can use a microcontroller, this one right here, to intercept that incoming USB and do stuff with it. We have one core of the two and both of the PIOs doing all of the USB host duties. That leaves the second core for everything else. Take mouse information and apply some logarithmic filtering to it so that it actually slows down the cursor movement when you move the mouse quickly. Mouse slowly left and right. It's moving at kind of what I would consider a sort of normal mouse pace. But now if I move the mouse quickly, it actually slowing it down. It's actually making a little bit more accurate, which could be really useful as an assistive technology device. If you have a bumpy ride, you're on the train. It is the Feather RP2040 with USB host. And don't forget JP's workshop Thursdays and he died with Tim. Friday's 2 p.m. Pacific 5 p.m. Eastern. Let's do some retro. Okay, retro is going to be in two parts this week. First, we're just going to recap one of the things that we put on the socials. You're a blue sky now, Azadev. Fun. Follow me on the blue sky. What are they called? Skeets. Skeet me. Yeah. And so this was this is in various social media places. You know, social media networks are really nice the first couple of weeks because everyone's nice to each other. And then, you know, then it's toy fair. Then it's toy fair. It's good. I like how you run it back. So this is what we posted up. This is the three com laundry. We have one. And this was a brief period of time in the, I guess the dot com era. When, you know, cell phones weren't that great. So, but there was internet. So three com is like, okay, we've got this thing. We're going to do internet appliances. It's called the three com laundry. And it was on sale for a seven months. You know, there's dot com crash. It was released the year 2000. Wow. So October 17, 2000. Seven months later gone. But it's pretty advanced for what it was. Really interesting design. It's supposed to be a kitchen computer. So, you know, once you connected it up, you can browse the internet, receive email. It was able to sync with two palm devices. Kind of cool. You know, three com had their history. Oh, yeah. Because, you know, three com was the palm. It was named after Audrey Hepburn. Yeah, it's kind of cool. We want to see a magic capital that. Yeah. It used QNX's operating system. Kind of see, you know, a little bit more about it here. So they discontinued it in June of the next year. And then if you were a three com direct customer, you got to refund. But if you bought anywhere else, they didn't tell you about that. So some people are mad. But it's lived on with some hardware hacking. Yeah. Yeah. So it has a touch screen, it has a stylus. It was powered by a 200 megahertz geode. GX1 processor. Excuse me. 16 megabytes of flash ROM, 32 megabits of RAM. It's about four pounds. And like I said, the idea was for it to be in your kitchen. This is where you would browse the internet. No box art and everything. And then folks started hacking it. So, you know, there's folks out there that can do something. There's an updated web browser, MP3 player, photo frame. But Ethernet was just funny. Had Ethernet. There was other things called the eye opener, the version web player, the gateway touchpad. But it was a thing, a brief period of time when this was going to be our future. But, you know, it turns out everyone just has, you know, the supercomputer in their pocket. Don't really see people centering their internet snacking. This is what they... There's always this dream of like the kitchen computer. Yeah. We, you know, it's like things that keep getting tried over and over and over again. There's been so many like attempts that they're like, oh, you're going to look up your recipes. You know, you should have your refrigerator. Tell it, tell you when you need to get it. What's funny is, of course, this is very similar to the Amazon show. Yeah. That you've got. Yeah. And so that is the Audrey. Okay. So like I said, Retro is going to be a little bit different because bear hacking is a kind of Retro because in 2017 it's Retro. It's Retro. So it's also kind of part of our toy, or my little hacker toy series. So I thought we would just show a little bit of the ups and downs and the challenges that Lady had had hacking this. So let's kick it off with a metal hacker segment. Okay. So I'm going to start with the good news. Here's a video of a happy child and a happy mom after it was working. That was today. And so I'll start with that. And then we'll work back from there. We'll go back to the tragedy. Yeah. Super fun. Okay. So Lady, how'd you get it? So you bought this Teddy Ruck's Bench. Well, this was released in 2017 and you bought one I think when it first came out. I bought it in 2019. And I'm like, I'm going to do something this one day. Yeah. And then it was on the shelf. One day. And then like a couple weeks ago, or two weeks ago, you brought it home because you were at the office and you're like, oh yeah, the Teddy Ruck's Bench. And you brought it home. You had it in the box. Yeah. And you brought it back. And I'm like, oh, that's cool. It has like these animatronic eyes and voice. And I was like, let's see, you know, what you can do with it. So, you know, your first step, you look up that I fix it, you know, teardowns and it's got this processor in it and it can do again, you know, the mouth moves and there's these TFT displays for the eyeballs. I'm going to say that they borrowed the idea or were inspired by Philby's eyeball code. What is really easy is on the back, next to the battery port, there's this micro USB slot. And the micro USB slot is, when you plug it in, it shows up at files. But the way you're supposed to kind of use this is you download one of the apps. So I just took this, you know, screenshot. It has low ratings because it doesn't really work anymore. But there's a, there was a Google Play app for Android and there's an iOS app. And the app still kind of, you didn't eventually get it working after like, sort of kind of, it kind of sort of maybe. But the idea is that you would use the app and it would, you would connect to the teddy bear over Bluetooth. And then the story book would appear on the screen. There's like a video from Anymanga Plus. Anymanga Plus, which is the app developer. The toy was made by Wicked Cool Toys, but the app was done by Anymanga Plus. And when you connect, it syncs. And so like, you can read the story on the, instead of having a paper book, you would read the story on the tablet. And it would like follow along as you like, you know, when you press the next button, it would go to the next page and all that good stuff. Okay, so you plug it in to USB and it shows up as a disk drive with a folder called books. And initially it only has a couple, this is the one I just plugged in, it has all the stories, but initially it actually had three stories, I think, and the idle and intro bin. Intro bin is that first thing when you turn it on, it says, hello, my name is Teddy Wexman, can you and I be friends? Idle is actually just the animation of the, when it's not doing anything, the eyes move back and forth or just like plays this idle animation. And then the stories each are about 15 minutes long or whatever, like five, 15 minutes long in their songs and they're pretty cool and everything, don't get me wrong. You know, you can get the songs in case you ever lose them, or maybe it did come with the songs, if you can get the songs from internet archives, somebody uploaded all of them, or maybe the app gave them to you, I don't remember the story, but basically you can get the binary files here and it has all the stories, all 15 stories. But you can't, like if you drag it off the SD card that's in the bear, the micro USB port, it doesn't like magically play them, you have to unlock them by paying through the app and that's what's going to be eventually not going to work. I mean, it works now, but I think eventually it's not going to run on, like we even saw on Android, you know, every few years they're like, we don't let you run old APKs anymore, you have to forgery compile them and who knows if this company is going to do it. And then if you actually look for the company that made the toy, the website doesn't exist, I think they were purchased by another company. Anyways, like that's gone. I mean, like it's kind of cool when the domain doesn't even really exist, like there's usually the SSL failure that happens when they don't renew their SSL certificate and then they went past that so that there's not even around anymore. Okay, but that's fine, you know, I keep googling and there was a talk at DEFCON on dissecting and worsening the smart pair and I'm like, oh perfect, like this is exactly what I want to do. I want to update the audio and the math movements and I want to make my own story files because like the stories that come with it are cool but like I want to make my own stories, I think that would be neat. If I was telling a story or like, you know, grandmother was telling a story, you were telling the story or like you had an AI version of, you know, some famous person telling a story or whatever, like a DDPakes on the smart bear. Nice case, it's going to be mostly me telling the story. Well, the thing is, so a lot of people have these. Yeah, they're still available. Like I said, if you want to, if you want to go in and get one right now because probably after we release all this stuff, you know, people will start to charge more in eBay, we can get them for eight bucks. But I think the- There's a lot though. I'm not, I think, do pick one if you want one. But yeah, the dream is to always have a animatronic toy that you can hack and mod. There's, oh, like there's so many things that you can do with it from it being an accessory for a cosplay thing to just wanting all of, it's so hard to do all of those things, whether you're trying to three print it and do motors and like whatever it is, putting that all together, the injection molding, the battery, having it even be safe. Yeah. You know. It just runs on like AA batteries. It's a very well made, and you can, you know, see the iFixit video or whatever. It's very well made. Okay, so this presentation, there's also a video. Those are the file format of the binary, and this is really useful because like this group of people, Xenifex and Exploitierus is a group, they figured out the, like by messing with bytes, they figured out what each byte does. And basically said like, hey, here's where the eyeball data lives, it's uncompressed, and here's where like the file format, and here's the audio data. Okay, cool. So, you know, I opened up the binaries that I've gotten. I'm like, yes, okay. It is the same format. That sounds cool. In the talk they mentioned releasing, you know, maybe some creation software at some point, but it was never released. So you're kind of starting from just whatever was in the documentation in the presentation, and we creating the extractor, and then once I have an extractor, like once I get the data out, of course I can put data back in. So I started writing some Python code, and it's like, you know, struct unpack, look for the magic bytes, bubble blothold, everything at ground, and getting the eyeball images out was pretty easy, because they're just 128 by 128, well, RGB 565, which I'm super familiar with because all of our TFTs are RGB 565, so it's like, oh yeah, this file format is like, I'm... Also an interesting study in eyeballs on LCD screens. Yeah. So, very nice. And I mean, the eyeballs also do this animation thing, which was not extracted, but I probably won't be creating the animations like they do like these hard sparkle things. Anyways, the good news is that I just, you know, you gave me like this Adafruit logo, 128 by 128, I used Pillow as Python image library and pasted that back into the eyeball code for the idle screen and like, boom, you know, that worked. So that was... That just showed like, okay, there's no like CRC, you can edit the file and put it back on, you can inject and change the data without any issue. Okay. So the next issue is, I want to do something with the audio. So the audio has this thing called the mark table at the beginning. So you see that there's like AU and that's like the, you know, the magic bytes and then there's a bunch of numbers that are like zeros and ones and that tells the bear, the chip running the bear, how to open the mouth for the audio file, like when does it open the mouth at what point? And that's with a timing table. And then after that, there's all these FS and then there's the beginning of the audio. So the audio is kind of two thirds down is the audio starting. And so I was like, okay, you know, is this uncompressed audio and open it up in audacity? And it's definitely not uncompressed. It's compressed audio, which doesn't surprise me too much because audio is really, really big. And some of these audio files are 15 megabytes and they probably were like, look, maybe we'll transfer it over Bluetooth. We should compress it in some way. So, you know, looking through the documentation and the DEF CON thing and also the chip itself is called the Sonics chip. This is called the Sonics Audio 32 format and it's for productors not only documented. I found a couple projects. The project on the top half of the screen is someone who was hacking some like Japanese toy that used the same Sonics chip set and Audio 32 file format. And they used QMU to run the ROM of the toy and use that to decode audio. Like it literally just used the toy ROM as a firmware as a way to encode sorry, to decode the audio or maybe encode it as well. The only thing is that you need to have the ROM of the toy to run it. So that was kind of like a no-go. And then at the bottom, you know, there was this other person, Zach, and they were like on the FFNPEG IRC channel and they're like also kind of trying to do the same thing. And they were kind of researching the Sonics codec. So I actually just followed along with this IRC chat. And, you know, like it was kind of fun because I was like back in time. This was like from 2021. And I was like watching, you know, they didn't know that like what was going to happen with COVID or something. I don't know. And got to watch this person kind of going through this Audio 32 hacking. Also like looking up the datasheet and then Google the data sheet and Google files and blah blah blah. It's basically a lot of Googling and like GitHub searching, etc. And I found, you know, I'll document all this, you know, but in the end, I found this repo that had the SDK for this, the Sonics chipset and it included this libsnxaudio.so, length library file. It also had some code that you could run that would encode or decode audio. And I'm like, oh my God, this is it. Finally, it's like I've got the library file and I've got some code. I'll just compile it. Okay. But the only problem is that when you look at the file type for that libsnxaudio Audio 32, it's not x86. It's ARM. Okay. No, not a problem. I went to ARM. There's no x86 version. So I'm going to have to run it on like a Raspberry Pi. But I have Raspberry Pi. It's not a big deal. But then actually I ran on the Raspberry Pi to get a screenshot of it. But it doesn't work with G-Lib C. It needs UCLib C. And UCLib C is what's used on like embedded Linux setups that are minimal. Which makes sense. This could be like some product that uses the Sonics Audio stuff. And it's like a small device or a toy. It's not going to be running like a full-fledged Debian install. It's going to be running something like Buildroot. So I've always been wanting to learn how to use Buildroot. Buildroot lets you build these, automatically build these very simple, small Linux installations for embedded Linux. It's not like a full Debian install. It's very minimal. Lots of things are missing. Like WGIT. But worked my way around it. Got it running. And it's all on the Raspberry Pi ARM computer. Tried to compile this code. Piles and it doesn't run. It fails. And it says I can't, it's not succeeding in opening the codec. Okay, what does that mean? Try all these different things. I try every argument. Like I expand the argument list and it will absolutely not run. I'm like, there's something going on here that's causing it to fail. And then I'm like, well, you know what? If you go back to this, no, sorry, this one, you'll notice it's got debug info and it's not stripped. Cool. That means it's prime for Ghidra, which is the reverse engineering decompilation tool released by the NSA. Really good tool. And I actually did an amazing job. If you look at the code on the right, that is decompiled from the ARM assembly on the left. Like it's completely readable. Like it is like code. That's scary. It's really scary. Yeah, it's like, well... It's very good. And so you can actually see what's going on. It's opening Devman. You look up the Sysconf, it's memory mapping, one page worth of data. And then it's reading it and it's trying, it's reading something from the registers on the chip and it's checking it against a value F8. And I don't know what it is. And it's like, it's some register value. And I guess it's never used again. I don't know if it's like a security check or if it's like verifying around the right version. I don't know. But what's really cool is with Ghidra, you can hot patch. So that check where it returns zero, if it's not on the right chip set or if it doesn't get that right memory map value, I just change it from a not equal to an equal and then it just like totally ran. The only problem is that the audio that came out, you know, I tried encoding and decoding and the audio was not intelligible. Like I tried decoding the audio from the bear and it didn't come out right. I don't know why, but I was kind of after with it for a few hours and I was like, not really working out. And then I was like looking around and everyone keeps saying, oh, the audio 32 codec, it's just G7221. Everyone's like, it's just G7221. Okay, cool. Download some G7221 encoders, decoders, 0.1, 0.1NXC, non-NXC, not one. Try all of them. None of them were able to decode the audio. There's something, you know, it's somehow modified from G7221. Anyways, I was kind of like messing around. I was like, I'm not really getting anywhere. I can always go back to that decomplation code and try to recompile it for a processor I know or see what's different with G7721, audio codec. But I kind of was like, this isn't really going anywhere. Okay, so I kept looking around and then I found a different library called Live Audio 32 Encoder. And then I found PDJ Stone, who is the hero in this story. This is the hero's story, like the standard archetype of the hero. Yeah. At the darkest corner, an angel comes down and gives the hero a symmetrical beast. Hanging on the edge of the clouds. Yeah, tell them, here's the sword you need to defeat the dragon. And you're saved by some outside Deus Ex Machina. Anyways, this is PDJ Stone. Great, thank you. I wrote this Cloudpets toy encoder so you could play audio on this Cloudpets toy. It's a unicorn that doesn't have a moving mouth but uses the same Sonics toolchain and chip. And you send the audio over Bluetooth. So he uses a web Bluetooth thing to send the audio over. You don't drag it over on a microSD card. Instead, you do this Live Audio 32. And here's what he's actually very smart. This person was quite smart. They took the APK for Android. And it's a zip, so you unzip it and he grabbed the library from inside that. So he didn't realize he could do. So cool. I looked, and yes, in fact, in the APK that he's got and the APK from the Android app for the Teddy Ruxman is the same thing, Live Audio 32 encoder and decoder.SL. It's also available in a zip and one of those SDK things. And I'm like, okay, and you can even see the AU file header thing and the sample rate. Okay, everything's matching up. This looks like it's the right file format. It's named Audio 32. And it's got that correct header. But then the only... Yeah, oh wait, you know what? I didn't send you the next... Oh no, I didn't send you 23 and 24. Oh, I must have forgotten. Or maybe you can check. So I forget the images. Oh, they're gone. Oh no, I didn't. Okay, no, because this is where we stop. So this is kind of where I was this morning. So the good news is that this... His code actually does run, but it only runs on... I did it was like, okay, I'm gonna run Android on a Raspberry Pi, installed Android on a Raspberry Pi computer because again, I need an ARM 32. Try to run it. And it said you can't use anything with API 23 or higher because the linked library uses relocatable text. You can go to Ascus. Oh yeah? Yes. You don't want to just leave it on the screen for a moment? Well, I mean, I want to read this code, but I have my Nexus 7. So to try running the Python code on Raspberry Pi, it said you can't be using APK 23 or higher, APK 22 or lower is Android 5.1. So I need a device that can run Android 5.1. And that's when I grabbed my Nexus 7. Everyone has a Nexus 7. They were given out for free basically in 2022. And it even says like, hi, you're running Android 5.1. So I pulled this out, wiped it, cleaned it up, charged it, which takes overnight. Don't forget to charge. And you know, it basically was at a battery of like 25 bits. And run Termax and actually within like 20 minutes, I was able to encode the audio. This was like, it only took me like 30 hours to get to this point. One of 23 hours, but I did get there. So now unfortunately, the only way I've got right now to do the audio encoding and decoding is if you've got something running, ARM 32 based Android 5.1. But I think now that I've got it working, I have this golden path because like it can change the audio. I'm gonna go back and I think I can probably get that Android. Yeah, there's a 64 bit app. There's a 64 bit app which may have libraries so at least you'll need 32 bit. And it might be, maybe it's recompiled with non relocatable texts. I didn't think to even look into it. And I was like, oh, maybe there's a different, like I was like, oh, maybe there's a 64 bit and there's an app and it's like never mentioned anywhere. It's on the YouTube for the any manga because I was looking at the any manga that YouTube and they mentioned like, oh yeah, we released a 64 bit version of this app like two years ago. So I just got that and hopefully with that we'll be able to run the code on a modern operating system so you can generate the audio. Yeah, and we'll do a question here because I asked the same question. Did you consider using Android VM? Wow, did I try? Yes, there's a reason it didn't work though. It doesn't work. So if you're using the Android, well, you can't use an Android VM on your desktop which I tried. I skipped that because it was like such a failure. First time I couldn't even get Android 5. There's an Android 5.1 build for MMU but it just didn't even, like, I wouldn't, you know, turn off Hyper-V because you have to turn out, like at some point in the project you're turning on or off Hyper-V. Run an MMU with the Android 5.1. It doesn't even boot. But even if it did, I don't think that MMU is compiled for 32 bit and the x86 library won't work. It was kind of like, there's a lot of pieces that would have to fit. Like, remember, it's not just, you have to be running Android, you have to be running Android 5.1 and it has to be 32 bit and it has to be on an ARM core. And Jepler tried QEMU to run Android and he said, actually, he tried, you know, he got to the point where you run the code and it dies with the CPU off exception. So it's like, there's something in this file that's just totally horrible and that QEMU doesn't even support. So it is like, not a thing. This is like a software version of my visit to the Toy Fair. It's like, and like, you have to go, it's like, you have to travel back in time. Like, let's travel back in time to 2017 in this landscape of all these things. But the good news, I know it's went on for like 20 minutes, but the good news is, now that I've got a golden path, like the way I reverse into years, I get the final thing and then now that I've got it working from beginning to end, I can like make it easier. Like I'll, I'll attack it from both sides and then a lot of toys use this chipset. So it might be handy for reverse engineering a variety of toys. So it's happening. It's just like, I only got it like working and like this morning at 11. Yeah. Such a long time ago. My little Hacker, my little Hacker building with you is magical. My little Hacker, wants to build and show. Okay. So we're going to continue to do a lot of toy hacking, but you know, it's not just like, but also a baby. Yeah. Well, a lot of this stuff is really useful, especially if you're doing electronics. Yeah. So it's not time to do some newsletter chatter. We have the native fruit IO newsletter it's really good. We haven't really promoted it as much as the other newsletters because it's one of the newer newsletters, but I thought I would just remind everyone we have one. Same thing as all the other things. We don't spam we don't do anything, you know, that every other newsletter seems to. Here's a sample. This is from April. Star fragments, fish farms and more. We cover all IoT things and including projects from Adafruit. But if you want to make things talk on the internet for interested in ideas, this is for you. And as always, it's on Adafruit Daily, get it once a month and sign up for daily. Check it out and help this be, you know, a good example of a newsletter doesn't spam to then harvest your information. We don't have any sponsors for it. We're just showing stuff that we think is really cool and speaking of it's Python on hardware time. Lady, we got our Python hardware newsletter this week. Minor update just we should mention two new circuit Python versions were released. So this is a to beta and 8 1 0 that remains unchanged from the release candidate last week, but beta has a couple new features continued in chance with the Cynthia and the RP 2040 alarm dot to sleep underscore memory. So if you want to check it out, check out our blog post. You can see more and then we get into our usual news. There's a lot of Python IoT stuff going on this week. There is Microsoft device. Oh, that's really cool. Carving microcontroller. Let me like port a type script like it's like micro Python, but type script. Yeah, that's cool. They like type script over there. This is like a well, I mean, I'm just going to get out and checked it. Check this out. But it's device script and it supports ESP 32 script for tiny IoT devices as to S3 and C3, I think, and also the RP 2040. Yeah, it's cool. They've been working for a while. I've been watching their their GitHub. So that's kind of cool. You can check out the certification courses data science from Python IBM. Just on a side note, IBM and little types. I think it was called did it like a big server computer for children. And it was $2,600. And it's this thing that they were selling like daycares. I can't find it anymore. Anyways, sending data between multiple Raspberry Pi Pico W is and of course all the streams that we're doing this week. Dan was last week on the Circuit Python show. And then next week is Martin Tan author of the micro bits projects with Python and simple board computers. Do check that out. And then there's some lower projects. So like the IoT newsletter, it's like, hey, here's IoT stuff that you can do that you own that you can make yourself. And then with our Circuit Python newsletter, it's really expanded out to kind of all things. Python boards and stuff. Yeah. Grab a phone. It's kind of cool. Yeah. So, you know, once again, same thing. You know the drill. Get it once a week. Eight for daily. I love stuff. It's the only way to keep up. I have to keep up. We are curating because there is too much going on. Open Source Hardware, I'll tell a little bit of the story. Speaking of, it's hard to keep up on things. When I was writing at Make Magazine and I think I had first met you or like maybe right before I met you, I was writing about Open Source Hardware and there was nine projects. That was it. Yeah. All nine. I did a gift guide. Yeah, you did a gift guide. I did a gift guide. And that's it. I did a gift guide. Top nine things you can get during the holidays. It's Open Source Hardware. It's like chumby. You know, it was like, there is a very small number. The MP3 player that Raphael made. Yeah, he made the gift. He got it every every year. That was it. And then I get to the point where it's like, okay, this thing's really taken off. I can only, I can probably do like a listing. So eventually there was like 50, harder to deal with. And then eventually there was so many where it was like, well, I'll do different things like music, Open Source Hardware, sensor, Open Source Hardware. And then just like, the whole industry exploded. And I remember every Friday I would write up a blog post on Make about all the stuff that Sparkfun was. This is about 20 years ago. The Sparkfun was up too. Maybe like 15 years ago, 16, 17 years ago. And speaking of this week, Sparkfun just released a two and a half minute video of they're celebrating their 20 years in biz. And Sparkfun's an open source hardware company. In fact, out of all the companies that certify Open Source Hardware made for the Sparkfun are the top two. And then there's like a really long tail of their machines. Yeah. So do you check it out? We like to celebrate and elevate all the open source hardware companies out there. But I remember they were like one of the few that was doing open source hardware. So I tried to get the word out the best they could make. Let's do some factory footage. And that was our factory footage. Let's do some 3D print. We have a speed up. We're going to do this and then we'll do some IPI on the other side. See you soon. I brought you by Digikey and Adafruit. Thank you. Digikey. This is when we look at all the cool new products that are being introduced. Oh, my Digikey. This is Nixperia. They need to work. It is Nixperia. Nixperia is a new name for the NXP family of chips. I think they kind of tweaked their name a little bit. And also tweaked their logo. So caught me unawares. But this week's IMPI is the NEH 2000 BY available in a QFN16. And you can see that fancy new logo on the top of the chip render. This is an MPPT, a low cost, no inductor MPPT controller for solar panels to charge batteries for wearables or other small devices out in the field. It's an energy harvesting PMIC. But it really is designed best for photovoltaic, otherwise known as solar cells. So it's really cute about this chip is it's very inexpensive and it's very small. But it still has NX PowerPoint tracking for solar cells. You can use pretty much a three volt solar cell so a good place to start. And it's used for charging batteries. You can go on electronics off of it. It's just designed to be very small and very low cost, very simple to use. But with the power and efficiency of max PowerPoint tracking. So this sun, this is a photo from NASA, very cool solar flare image. You know what gets power from the sun? Superman and the NEH 2000 PY. So you want to have a product that is powered by the sun or perhaps something that can charge you over USB. But you want to, you know, it's outside because it's agricultural to wearable, or it's some sort of environmental monitor. It already has sunlight access. And so adding a low cost solar cell, I mean solar cells are very cheap. They're on the order of like, you know, pennies or a couple dozens of cents. And you add this chip it's about a dollar. And for you know, you can extend the battery life by trickle charging a battery in between bigger scale charges or maybe if you are efficient enough you can run your entire project off of the sun. So the issue with solar cells, I've used this image, it's a great picture from Wikipedia, is that solar cells have, you know, this is, each cell has about 0.5 volts of open circuit voltage. That's the second the, where all the colorful lines drop off 0.5. And depending on how bright it is, the amount of current you can draw until you hit that cliff varies. So this is, you know, a one cell that can provide up to, you know, 40 milliamps max to this 0.04 amps max that's the red line. But once you hit that 0.4 voltage and you see it kind of ranges at the lower, at the lower current outputs like dimmer send, you get maybe 0.35 volts before the cliff. And then as it gets brighter get closer to maybe 4.45 volts before you hit the cliff. But that, trying to find the maximum point, that point right before the voltage collapses and trying to keep your charger operating at that rate is very difficult because things that plug into the wall usually don't, you know, you will hit a certain limit but you'll get a much more gradual voltage drop and so it's a lot easier to stay within the functioning range but also at light changes throughout the day that voltage point will vary as well. So you have to constantly be adjusting. So it's another video and they're showing like, you know, the traditional solution is you just set a fixed voltage and say, okay, 0.3 volts that's what I'm assuming when you get from the sunlight but you don't get the maximum amount of power if you want to get another 10, 20% or more you really need a max power point solution. So that's what this does and it's very simple. VIN is just connected to your solar cell and you get the MPT controller and then you just connect the battery output. You have a couple GPIO. VRF is for the charge boost which I'll discuss in a moment. Disable turns it off which is very useful if you're doing overvoltage or overcurrent protection you want to quickly turn it off and CIS ray just lets you know whether you have there's enough power to run whatever device you want to have triple charged off of the NEH 2000 BY. This is the typical application. So you'll notice we've covered other MPPT chargers and a lot of them use inductors for buck or boost conversion. This one doesn't. They don't really mention what is inside of it but they sort of mention it's like a doubler so it's probably a charge cap a switch cap converter. So the input voltage from the cell is doubled and then regulated out to VBAT sorry not regulated out to VBAT so you may have to do some regulation on VBAT if you have to keep it under a certain voltage. There's a bit of math and the datasheet show won't go through but basically you want to make sure because it's even though it's boosting two times it's still a linear converter in a sense. So you want to make sure that you're you have enough solar cells in series to be high enough to have a little bit of voltage drop over the battery voltage because if you are say charging up a light poly battery it is usually about 3.7 volts but it'll go up to 4.2 that means you need to have 4.5 volts on the VBAT output so you can have like a little headroom maybe for a voltage regulator or charge controller reduce the doubler reduce the inefficiencies etc basically your VOC of your solar cell should be about 0.7 times the maximum VBAT so turns out if your VBAT is 4.2 volts your VOC is going to be 3 volts which is a very common low-cost solar cell it's about 6 cells in a row but the trade-off is that there's no protection on the output it will just charge the battery and the VBAT will sink a little bit as it's charging but eventually your battery will be full you want to make sure that that VBAT doesn't keep going it doesn't try to charge the battery past 4.2 volts into 4.5 volts in which case again you might want to either use some sort of regulator or charge controller or you can use a low-cost overvoltage protector when the VDD, the VBAT hits 4.2 volts or whatever it turns off the disable pin and it shuts off and it will turn back on once the VBAT drops below 4.2 or 4.1 or whatever so you'll have some hysteresis you'll keep your battery charged but it won't overcharge it OVP charge controller it's up to you you probably have a charge controller already in your design you might feed this through a diode into your charge controller and they can share the charging state and protection with the USB charger you've got it's in stock lots of them and you'll note basically the trade-off of having an inductorless design is it's a lot smaller less noisy and less prone to vibration issues because you don't have to worry about the inductor breaking it's also a lot cheaper easier to manufacture because it's a QFM all right we'll get a video and then on the other side we'll do some new products that's ambient this week energy harvesting allows ambient energy generated by light or movement to be captured so it can be used to power devices Nexperia energy harvesting takes this a step further by using a unique ultra-fast maximum power point tracking or MPPT to maximize power extraction under changing conditions what makes energy harvesting difficult is that we do not control the power source as such the power input is frequently changing imagine a solar powered smartwatch on your wrist if you move your hand the light exposure to the solar panel changes in order to collect as much energy as possible the power management IC or PMIC designed for low power devices needs to continuously adapt to these changes in traditional power management the peak efficiency is the most important aspect with energy harvesting the average efficiency throughout the day is key this is determined by how well the chip can adapt to its changing environment traditional solutions are unable to adapt to a changing environment the advantage of Nexperia's MPPT is that our energy harvesting PMIC measures its own power outputs every second it checks all possible options instantly finding the best setting that will maximize the amount of power collected when more energy is collected this means fewer batteries will be needed for low power IoT making Nexperia energy harvesting an environmentally friendly solution that can contribute to a sustainable future for electronics Nexperia Efficiency wins New product time We're going to just jump right in Yeah Okay coming soon it's not out yet but a lot of people have been asking about it so I wanted to get it in the store for signups is the new prop maker Feather this will be out in a week or two hopefully but you can sign up now and it'll be notified when it's in stock it's the latest in our series of RP2040 Feather designs but this one is designed specifically to make it really easy to make props and electronics and toys without having to do any soldering it's got an i2s amplifier so it kind of improves on the the prop maker Feather wing by having digital audio as a little servo port so you can connect small hobby servos it's got a button input it's got a list 3DH triple axis accelerometer and a neopixel driver as well as of course all the Feather pins and all the GPIO that you would normally want to use you've got the 4AVCs and like 21 GPIOs battery usbc for debug and charging and there you can even disable the lipo charger we'll show how to do that later if you want to run this off of double A's because we're doing some prop projects and we're like oh what if we want to reuse existing double A battery pack you can probably do that so terminal blocks pre-assembled make it easy to screwed terminal anything you want on it'll be coming to the 8 fruit shop soon but I want to just preview it now we have an update for the 8 fruit Feather ESP32S2 like many of our other Feathers that use the LC709203 battery monitor that battery monitor has been discontinued so we're now revising them all to use the MAX17048 this has the MAX17048 it's otherwise identical has a TFT screen and buttons a semi-QT port ESP32S2 battery and all that good stuff but the battery monitors just change from the LC to the MAX type and we have libraries for Arduino and circuit python on both okay next up we have a new product from our friends across the pond at Pin Moroni this is an inventor hat mini it's interesting it uses a very seesaw-like thing going on there there's a chip from Neuroton that is pre-programmed with firmware that handles all the timing for servos and motors so that you don't have to do that on the Raspberry Pi or have separate iSquared C chip our cricket hats much more complicated but it's kind of the same idea but this is less expensive and smaller so it can drive eight servos sorry about that everything looks black and gold I know it's got a semi-QT port and a user button it's got two motor controllers with a DRV8833 which you can get again on an i2s amplifier everyone loves this MAX 98357 and it uses also ports you can use with encoder motors so you can have something that has encoder motors for more precise motor control hence a fully assembled mini hat bonnet that you can plug right into your Raspberry Pi computer all right and the story of the show besides you Lady Aida our team or customers or community has a little bit of a story yes so we actually got this email a week ago they'd seen the video but they were like this is what it's used for and I'm like it is so this is a captain of a first team so it's a robotics team and they have a board that they're required to use and if you want to do something funky with it that isn't part of like the first ecosystem it's very difficult so they want to use NeoPixels because they want to light up the robot but nobody's written a NeoPixel driving library for this chipset but they do have access to iSport C so now you they could use this to control NeoPixels which is a very common request this is it so this is a bunch of NeoPixels but this is the board so the way the board works is it also has a little helper chip on there and let me show it on the overhead because it's not lit up but I can show how it works okay so let's sit again so let's say you have a microcontroller or a board in this case I'm using an RP2040 because but it which does have NeoPixels of corporate maybe all the PIOs are used on your RP2040 and so you want to control some NeoPixels or maybe you're using some exotic chip that again nobody's ported a NeoPixel driver for but you still want to control NeoPixels you need that specific timing it's very hard to do so this chip on here the ATtiny1616 will take messages from I2C over here from the RP2040 and then convert you know it'll say light up this pixel that color and then when it's done it says please show the pixels and it will write the data out to the terminal ports so in the back there are five terminals one thing to know you will need separate five volt power the NeoPixels need about 20 to 40 milliamps per LED and so if you're driving in any NeoPixels you're not going to be able to power them over this little thin wire here you'll need a chunky power supply and chunky wires and either connect them to this terminal block which then goes through and powers the NeoPixels or you can do something like this where you have a five volt power supply and you just power it directly to the red and black wires of your NeoPixel but then they signal wires the white and gray wires here are signal and ground this data will come out of this chip and so you just have to send the I2C commands and most chips you know do support I2C first easily and we've documented the commands so if you're not using Circuit Python Blinka or you're not using an Arduino compatible chip we have libraries for those but if you're using something else you could of course port it to that platform you can drive up to I think 512 pixels but I will note you're driving the pixels over I2C so it's not going to be very fast you can run this at 1 MHz I2C and that'll do much better you know the default is 100 kHz on many platforms I would bump it up to 400, 800, 1 MHz clock rate and you should light up as few pixels let's start you should write as few pixels as possible before you write show the entire strip because every time you change a pixel color it has to send a message back and forth to say hey this is what the pixel color should be so that will slow it down and you're never going to be as fast as native NeoPixel driving but if you have no other way of driving NeoPixels it does work just as you get to like 200 pixels it can slow down a bit but for you know about 100 pixels writing the data had 800 kHz or 1 MHz you'll get almost equivalent to native NeoPixel driving speeds so this could be a really easy way for you to add NeoPixel support to a chip set that you've got as long as it's got I2C 3V or 5V I2C it'll work with and it even has a little switch cap converter here so if you're running this off of 3V it'll generate a 5V signal for a nice clean NeoPixel driver and you can change the I2C address if you want with these jumpers all right I have some questions lined up so we're going to get to top secret and then we'll just jump right in the questions and then we shall bounce all right first up on top secret Jepler Hey Jepler what are you working on? So I've been working on creating a self-contained retro computer using Adafruit Feathers so here we have a CPM emulator called Run CPM and I can for instance go to my B Drive and run the famous game of Zork but basically it's a fully featured CPM machine like some folks would have used in the 1980s and it's independent of like a laptop computer with a feather that has the USB host controller SD card reader which is where the software lives and the feather with digital video output so this is also running the CPU emulator and this converts the USB keystrokes into serial and sends them over here and as a result you've got a whole computer made out of some feathers from Adafruit All right what's this? This is an update to the SGP-40 which is a popular gas sensor that we've stopped from since Syrian the SGP-40 does air quality this one adds NOx so like nitrogen oxides I guess is the how you pronounce it sensing and it's pin compatible so I spun up a quick board for this okay you don't say did this this is the SHT-41 we stock the SHT-40 and the 45 the 41 is kind of like in between it doesn't have as good as 45 SHT-45 precision but it doesn't but it has kind of the pricing of the SHT-40 so it's kind of like not too hot not too cold wait in the middle okay that's our top secret three moving right along we've been listening to them up that's been playing a lot there's a really good one when Rolf the dog is trying to console Kermit for like he's having big problems and he's like uh go home I hang out by myself drink some beers take myself for a walk look at this it's it's funny very funny yeah anyways because he's a dog okay so I'm going to combine these two power boost thousand C it's probably out of stock because a lot of chips are still hard to get not a lot of them but some of them semi-fifty ones are hard to get and I think the power boost one thousand C is uses the TPS chip also hard to get the good news is that when it does come back we'll make more yeah is there any substitute or no we just gotta wait that wasn't I actually talked to TI and they're like uh we don't really have a substitute that does exactly this does okay uh so we will do it at some point well oh yeah since I can get chips I just don't have chips again yeah will there ever be a stomach to team motor server driver there will be probably both there'll be a little motor driver but it's just like not sure exactly what chip yet maybe the DRV 8830 which I did design a board for that I couldn't get chips the last couple years but I did remake the prototype so I might try and get that working here okay this one's a longer one some people answer just like how do you deal with scope creep you're designing something and all of a sudden you got feather wings stem QT and you're adding a bunch of features into a single product the person would like to get into PCB design and use multiple boards but they're struggling to bridge the gap of knowing when to stop on adding um well definitely when you integrate you know it seems like you're adding a lot but when you actually make a final PCB it won't be as many parts I'd say publish early and often you know one thing I've learned as I've been doing this toy hacking project is it's like people tend not to publish anything until they're done but the problem is that you're never done and so they never publish and that's that's a challenge so I would recommend even if you're like hey this isn't finished here's what I've got if somebody had done that for some of this toy hacking I would have saved me a lot of time once you just in two is give yourself constraints like it can only be an inch by an inch or it has to be less or it has to be has to be five dollars yeah because all of a sudden you know those constraints will make you be very creative or no solder wired yeah is there a dvi library like pico dvi in the works for circuit python there is dvi support for the dvi feather and for the pimeroni dvi board if there's a circuit python building it like the rebel and display just goes to the dvi it's not it uses a lot of memory but it does work is there any good resources on learning ble we have a bunch of guides on the learning system about ble so getting started bluetooth hardware design easy to use chipsets I mean the Nordic stuff Nordic stuff's good um they're also they have a lot of resources online like you're and they have forums and yeah real people next up what are all the temperature sensor boards it's ht 41 have a cut on them as avoid being affected by on-board temperature variations yeah it's best if you're using a temperature sensor it's best to have a cut out to isolate them and so it's measuring the air and not the circuit board yeah which is what most people want they want the the air measured I think that's it okay yeah well we're wrapped up that's it thank you for taking uh so I'm I'll try to pull the scarf and yeah publish more but I mean like how about shit or perish generally speaking my so over time there's an archive the questions that we've been asked people ask like but there's an intersection so sometimes like how do I run my business and like I want to make sure that like how do I innovate how do I do stuff and like sometimes I'll get questions sometimes lady it'll get questions so like like what sensors do I use how do I do this stuff the answer is starting to become publish often because once you start doing a publishing schedule you get more done you document your mistakes you document your successes and you get used to releasing something it's kind of why we do this show every week because like no matter what like it'd be weird not to have anything to talk about in the show so it kind of forces us to do it last up the i-squirt scene new pixel board just shown is a possible to do a repeating pattern with that board send the code to the main cou to focus on other code now I mean the new pixel protocol is pretty speedy I wanted to keep it simple you really just say I want you to write this pixel to this color it's it's meant to be simple not optimized because people could always optimize it later but it's open source you can you can modify if you like okay them is our shows thank you so much everybody thanks everybody for joining us this week we very much appreciate it we'll have more for a long time yeah we'll have more toy hacking and stuff start the documentation of this so this will be a guide my name is Leviata and you and I the hackers yeah so we got a lot going on with this someone posted a video of the teddy rucks been this one without the fur on it it's the perfect thing to put other things on it it's like it was made to do that you can and you can definitely turn this into a different toy it's just it's just stuffed inside so that can be fun we'll make you might do a project like that okay we'll see everybody next week custom special thanks to the aid for team that's in slack I don't have slack open so I do not know thank you and this has been an aid for production this is your moment of zener bye