 Hey, what's up folks? Welcome back to another 3D Hangouts. My name is Noah Ruiz. I'm a designer here at Adafruit and joining me every week is my brother Pedro. Hello. Good morning everybody, I'm Pedro. I was great to talk here at Adafruit and every week we're here to share three kind of projects featuring electronics from Adafruit. That is right. This is a show we combine 3D printing and DIY electronics to make inspirational projects. Hello everybody hanging out in the Discord chat room. We are streaming on all the usual networks. If you'd like to join us throughout the show, you can join the Adafruit Discord server. We're hanging out in the live broadcast chat channel. The URL for that is discord.gg slash Adafruit. We'll take a couple months for folks to come in and we are streaming. This is episode 436. It is April 3rd, 2024. Am I in the right chat? Hey folks, if anyone's around. I know, I thought it was a problem. Yeah, it's kind of a spring break, so a lot of folks might be out. But if you want to drop any comments, questions throughout the show, you can do so in any of the channels we're streaming on Facebook, LinkedIn, YouTube, Twitch, and X. So there we go. All right, let's kick it off with some freebies from Adafruit. Freebies this week. If you spend a certain amount of money, you'll get some freebies that get automatically added to your cart. We'll kick it off with orders that are $99 or more. You'll get a free PCB coaster with a golden Adafruit logo. If your order is $149 or more, you'll get the PCB coaster plus an Adafruit KB2040. That's that lovely dev board with a RP2040 chip and lots of features. If your order is $199 or more, you'll get free UPS ground shipping for continental US plus the KB2040 and the PCB coaster. And if your order is $299 or more, you'll get all that plus a circuit playground express. Go to Adafruit.com slash free for all of the details. All right. How's that discord doing? And a shout out to Vince. Hello. Thank you for joining us live. All right. Everybody's on break. I think no, normally there's a handful of folks that are watching live. But like I said, there are some folks out for spring breaks and stuff. Hey, DeWester. Good morning. Yes. It is the morning over here. All right. Let's just jump into the project, shall we? Yeah. All right. So this is a fun one. It's more of a handy, useful one. So I have a lot of projects that are battery powered. And I kept running into these batteries that are laying around, but they're dead. They're all dead. So I want to know how, you know, what's the state of charge on these batteries? I want to know if this particularly was for the bird feeder. I kept running into this like, hey, I need a fully charged battery, and I don't know how much time it needs to charge. So we figured, let's do a battery monitor that tells you what the battery charge is. And then it'd be cool if I can get an email when this battery is done charging. So I don't have to keep looking down at the battery charger to see if the yellow light has turned blue. So we figured, hey, let's use the, excuse me, the Feather ESP32-S2 with the reverse TFT display. It has a bunch of built-in things like a battery monitoring charger chip. So that's what we're using here. And this is all done in circuit Python. Shout out to Liz Clark for putting the code together. But we are using, like I said, the Feather. It has a built-in charger and it has that battery monitor. So we have a nice little enclosure for it. This is the 1200 mAh LiPo battery. It's the 3.7 volts single cell version. And we got a couple on-board buttons on the reverse TFT Feather. You can switch through different icons, or you can switch between an icon view and a plain text view. And let me go ahead and like, I'm running into this like, okay, that looks good. As I get closer, like you can't see the text on the display. But it's a nice IPS display. We have the option to send the data to Adafruit.io using this button here. And you can see there's a little blue dot that lets you know that you are sending your data to Adafruit.io. That way you can set up an email trigger to get notified when the battery is done charging. That's pretty much it. It's a pretty handy, very utilitarian project. Like I just need to know what's the percentage of the battery right now is 44%. The charge rate isn't the fastest. It's, I think it's 0.25 amps. So 250 mAh of charging rate. That's just what the default is for all feathers. So it'll charge a little slow. So we recommend something that's like this battery or smaller. Some of the bigger batteries, like what Pedro has is 6,600 mAh. That's going to take a lot of hours. But here's a 500 mAh LiPo 3.1 and 420 or 400. Any of those are good. So let me see one of these. I think out of the box they're kind of like 65%. So we have a JST battery extension cable so that we can easily disconnect this and then plug this one in. So now I have a 500 mAh LiPo battery. It'll reset. It'll connect to our Wi-Fi. And then it'll take a minute or two to kind of read the voltage and the battery's percentage. So I'll talk about the case. We got an interesting enclosure here that has a little built-in tray for holding your battery with some slots here. If you want to add some additional components, you can mount them to these slots. The enclosure snap fits. You have a little button presser for the reset button because the feather is kind of pointing that way. We have access to the USB-C port there and then those three buttons that we talked about where you can switch between an icon battery and text and then like a whole kind of page change to just text. These are bitmap fonts. So you can update, change those colors, change the background, all that. It's really easy to do that in CircuitPython. It's really easy to iterate it to. So yeah, all of the bitmaps and the fonts are available to download in the Project Bundle. So you can just kind of grab all the libraries and assets with one button. So that's really cool. I was able to fit the rather large, long, rather JST extension cable. It fits inside there. So there's plenty of room in there for the cable, the access cable. And you have a little notch there to allow the socket end to come out. But that's pretty much it. You have two screws here for being able to kind of swivel this back and forth. I guess if you really want to, you can make this go flat, I think, like that. Yeah. So it's kind of handy. We can have it like that, I suppose. Yeah. And it's still reading the battery charge. So we'll check back into it. So let's take a look at the learn guide. I am switching between tabs. Okay. Are you muted, Pedro, by the way? Oh, maybe it's because I removed myself. Ah, maybe. Maybe, maybe. All right. Just to check in, here is the 500 mAh battery. It finally kicked in. Let's see what the actual percentages says. It is 85.2%. So that's it there. And when it reaches 100%, I'll get an email when it's fully charged. So we'll check in and see that. I would show you my iPhone, but I'm using that as a camera, so I can't really show you that. All right. So the learn guide has the ESP32S2 reverse TFT feather. It's out of stock. I think we have an S3. The code should work because it has a similar battery chip. And the code is kind of universal for the feather. So that should just work as well. We got the battery extension cable, some USB cables and a wall charger if you need that. We have a slew of batteries available all the way from 100 mA to a 2000 mA battery. Those are the ones that I'm kind of suggesting because they're kind of reasonable. If you want to charge your batteries, that's bigger. I recommend using a power boost, 1000C. That way you can get a full amp an hour. So that's probably a better idea. But anyway, we got some hardware here. You're going to need some screws to attach the feather to the back plate. There's two different mounting hole sizes. So that's why I have the M25 and the M2 listed there. All right. And that's pretty much it. So it's nice that the feather has all this built in. You can kind of see here in the demo that it tells you the battery voltage and percentage there. And you got those three on-board buttons and it's an ESP32, S2. You got a STEMI QT port as well if you want to add some additional components like a sensor, like a temperature sensor or whatnot. And let me see if the S3... So the battery charger circuit is the Max 17048. Keep that in mind. That's the battery monitor. Let's type in S3 TFT. So this one is in stock. We have two different versions of it. I'm trying to figure out what is the difference. Oh, one's a reverse TFT. All right. So the reverse TFT is just where the TFT is on the back of the feather as opposed to the front of the feather. And let me see if it's the same. Yes, it is the same. So you can use either... I should probably add it to the Learn Guide, the S3 as well, like optional, since it's out of stock. I just had the S2 on hand, so that's why I chose that. But it should work the same. Same mounting holes, same everything, except the chip is an S3. And then the way it's going to mount to the case that probably won't work. No, it's the same. The reverse? It is a reverse. Yeah, a reverse TFT, S2, and then this is an S3 reverse TFT. Oh, okay, okay. They're both reverse. They're both reverse. I had one that was not reverse. Right, yeah, yeah, yeah. Yeah, please keep the line. It says reverse TFT. We do have a version where it's not a reverse TFT. That will not fit, because... Yeah, it's way different. Like the stem is on the front, it's like way different. There's like two buttons, and they're obviously on the other side. Oh, that's right. There's two buttons, yeah. It's a different flavor of how you want your components laid out. But the code, because it's a circuit python, will run on either board, which is pretty awesome, because it's got the same, you know, chip monitor, charging monitor, any who. All the parts 3D print with any supports. You can print them in different colors. The back plate has those standoffs for the, for the feather. Use the little hi-animation of how it's put together. They're fairly small parts. They're all under 100 millimeters on the X and Y. So you can put this on small 3D printer beds, which is pretty cool. We do have a 3D model of the S2 and S3 reverse TFT feather, USB 32 feather. So you can grab a model, because all the components are very particular. We've run into issues with creating, designing cases where the components are so close to each other, especially with the screen. So this is a good kind of way to do where you can still access the buttons and just have like a nice clean cutout for the display. And if we look at, you can see Liz did a case on using this USB 32 S3 reverse TFT with her Elgato key light Wi-Fi controller. And then I want to pull up the S2 because Pedro, you did an air quality monitor project that has a nice case too. And you can see it here. That you created kind of a similar thing where you have these like cutout reliefs for these button pressers. And then you add an additional like new pixel ring. And you have this nice bezel. So that was really cool. So instead of using this design, I thought it'd be nice to have like a little kind of swiveling thing. But you have the swappable face plate where you can either wear it or have it on your desk. So there's another option too. Although the case kind of, you know, it's designed around this giant air quality. Just a different, you know, different kind of thing, but just pre-capping that there are some other things. You can also download the stand too. Oh yeah. You also have a stand if you just kind of want it like that. So all using the S2 and the S3 reverse TFT. So you got some options there. And they all have the 3D model of the feather. You have STLs, a step file and a Fusion 365 that you can download. So have that it. You'll want to install circuit Python. Version nine as a stable releases is the most recent. So you can use that and install it. You'll want to create your settings.toml file whenever you're doing an IoT project with circuit Python. You want to create your settings.toml file. So this one walks you through it. You just want to be aware that the values for rather the variable names are matching with your code. These have changed recently. So you might want to just make sure that it's aterfrew underscore AIO underscore and make sure that matches what's in the code. But otherwise, yeah, you put in your SSID and your password and that's kind of your secrets file. And then some additional stuff here if you're doing some other IO stuff. Your aterfrew IO key goes in here as well. And the actual code. You can use the project bundle to get all the libraries. There's a few of them. There's bitmap font, bitmap label, image load for loading bitmaps, aterfrew IO library, the Max1704 battery monitor library, the aterfrew request library, simple IO if you're doing map range. All those get bundled in when you click that button. So I just want to make sure that it's aterfrew IO key that it's aterfrew IO key goes in here as well. When you click that button. So I definitely recommend doing that. And then you don't really need changing this stuff. Although again, keep in mind like right here, it's a little different. It says AIO instead of aterfrew underscore IO. So you just want to make sure that you either update your settings on Tommel or update the code, but right now they're not matching. We'll probably do a PR to make it match because right now it won't work as is. You just got to make sure that thing is update. Yeah, so just a fair warning. Like we're aware of that. It recently got changed. Here's some stuff that you can change the different colors of the graphics. You can change the bitmap if you want as well. The variable, the various width and heights for the shapes, you can change those. Here's the background for the bitmap. You can change that as well. But all that is all here. It's all easy to read and change. And it's basically just some if statements. If the button is, you know, if you're just like one of the buttons show the different states and they're all kind of listed there. There's a little breakdown here of how the things are working. Here's the provided fonts. Again, you can add your own. Here's a screenshot of what your circuit pie drive should look like. And just to reiterate your settings that Tommel file should have matching values. And the rest of the breakdown here is always handy to get an idea of how it's working. So check it out. Yeah, that's all up there on GitHub for folks to download. And one of the last pages here, I just revamped this. When you're creating an Adafruit IO trigger, we used to have a form that you would use to create it. But the Adafruit IO team has been working with a new interface that's called Blockly that lets you drag and drop different blocks and to kind of create and craft your triggers and your actions. So Lamar thought it'd be a good idea to change it from the legacy form to the new Blockly setup. So here is some screenshots of how you use the interface. Folks are new to it. Check it out. It's a very pretty interface. And it's a lot of dragging and dropping. But you can follow through it or just look at the screenshot here that shows you exactly how your setup should look like. But if you've ever done Matecode or Scratch, it's pretty much that sort of interface. And it has the same kind of diagram or paradigm where you're clicking and dragging and dropping blocks to create your kind of setup here. So here we have the action root. It shows the trigger and it shows an action. So for the trigger, we want a reactive email. And then we have the feed, which is the battery monitor feed. We have an operating saying like, do you want to see if this is greater than or equal than this value, which is 100%. That's what we have 100. And then you can limit it every 10 seconds. Do you want to notify and reset? Yes. And then your action is the email. And then here I can change the subject in the body. And I'm using the feed as the values here. So I'm saying your battery is fully charged, the battery monitor charged at, and then value. It'll tell you what the value is, which is going to be 100%. And then it tells you when it was created at. So when it finished charging. So you can get an idea of when your battery finished charging. That's pretty much the whole setup there. Pretty intuitive. Go back here. And then this is what an email looks like through an iOS device using the Gmail app. It shows you can use emojis. And that way you can get a better visual of what your email is. Not pretty much. Oh yeah, the assembly. So for this particular feather, it's got two sets, two different sizes of mounting holes. So that's what we're using two different sizes of machine screws and M2 and M2-5. Those are always handy to have on hand. They're kind of short. They're six millimeter short. But otherwise, the feather just kind of sits on top of it and then you secure it down with those fasteners with the display facing up, oriented in the right way. After that, we add the JST extension cable, which is, you know, it's 500 millimeters in length. So you can just coil it up like that and kind of stuff it in there. The front case and the battery tray are just attached with the two M2-5 screws like that. You could use hex nuts if you want, but I didn't. It seems to be okay. And there's not much weight on it, so that's why it holds in place by just tightening it. And then you want to attach or snap fit the back cover to the front of the case, making sure that none of your extension cables is being pinched or kinked. And then you just want to have the socket kind of come out of the notch there on the cutout. And then you connect your battery. It'll power on instantly. There's no on-off button or switch on it because there's not really a built-in button for turning it on and off. So it'll just power on automatically. And then you can use the USB-C port to start charging your battery. And that's pretty much it. For the usage, we just thought we'd cover what do the buttons do. The top button is D0. And that enables or turns off sending data to Adafruit.io. That's that little blue circle. The middle button is D1. That one lets you toggle between the icon view or just plain text. And then the last button lets you switch between the battery icon and percentage. We wanted to use all the buttons, so that's why we added all these different options. Just to give you an idea that you can do a lot with just three buttons and a small display. And that's it. You can charge it with a 5.0 1A power supply or your computer's USB hub. And that's the whole project. Just a nice easy way to get an email when your battery is fully charged. And that is the project. How much have we gained? We're at 84%. Let's see. This 6,600 milliamp hour has been charging for about a day. We're at 70%. Okay, not bad. Not bad. Cool. All right. We have a question on Twitter from Christopher asking, does it work with Docker? I'm not familiar with Docker. I don't know if we have support for Docker. It's a good question, but I'm not sure. I remember having to download Docker for something. Do you remember what project it was? I think it was like a machine learning or something, maybe a brain craft project. And I needed to download Docker for something. I can't remember what it was, though. It's not ringing at all. Really? Yeah. Maybe it was for like installing pylint or Blacklee or something like that. Yeah. All right. Any other questions? And feel free to drop them and we'll try to answer them. There was one about just distributors in South America, specifically in Brazil. So I just found the distributor link that is on the bottom of each product. Nice. A little dropdown. And then I post it in the Discord if anybody wants to see what the list of distributors are. Yeah. This is it right here. That's all listed down by region. Nice. We also have DigiKey. You can search for our products on DigiKey and they ship it worldwide. Yep. It is on there. Yeah. Cool. All right. Well, as we ramp up to new projects, we got some ideas kicking and cooking in the background. But we don't have any prototypes just yet. So we're going to just jump right into this week's time lapse Tuesday. All right. This week's time lapse Tuesday is this really cute shopper. A gardening pot planter? Yeah. Yeah. Shopper is a droid from the Star Wars universe. He's so cute. He's a cute R2D2 type of droid. Yeah. This looks fantastic. A lot of detail. There's a bunch of detail. Unfortunately, the little claw doesn't come out. Or fortunately, it's just the cool legs. Don't move. I think this is like an in-game model where all of the pieces are being held by tiny little geometries like your legs. Let me jump over to this angle here. I'll set you up. There you are. Hello. There it is. This camera. Yeah. It seems like there's a lot of detail that I'm not sure it would have printed. But there it is. Yeah. So I'm using a combination of the tree supports and then just regular cylindrical supports on the bottom here because I didn't, like when in the preview, I didn't think the tree supports would be helpful for the cylindrical flat part. But it helped immensely with all the overhangs on where all these little wires and the little arms are. So it definitely helped for that. So on the side of Cura, you can select the custom supports and just use the per model settings and tell it to be a different type of supports. I'll be using that for if you need like different infills for different parts of your model or if you want to have with different shells or temperatures, any sort of different settings that you want within one model. So that definitely helps. And then one thing I wish it had was like a drainage hole. So obviously a fake plant. And then you can see on the inside here, there was some geometry problems. The like the normals I think had to be fixed. There was like some holes, which leads me to believe that it was an in-game model. But importing it, I guess, without doing any repairs to it, seemed to print okay. I did have the foot rip off when I was removing the supports and that's because it's being held by these tiny little little cylinders down there. You can kind of see it there. Yep. It glue right back up. And yeah, it is a very cool way to have a little Star Wars theme for your pants. Yeah, or put pencils if they fit. So I just went down a quick rabbit hole. So this is where I found the model. Originally, this is posted by Caleb Tematillo on printables.com. It is a remix of this Thingiverse thing. So I went on Thingiverse and then on Thingiverse, it says this is a remix from this thing. So I was trying to follow the lineage of where did this part come from? And I guess it comes from this model here on DeviantArt, which DeviantArt glow. And it seems like they have some models and files here. So this person modified it, I guess the print, and then this person modified it so that it's a planner. So that's why it has a bunch of mesh errors. I think so because it's been tossed around by three different people. So it's nice that you can actually go back and find out exactly where it came from. Oh man, DeviantArt, taking us back to high school. It is. It is. I never quite made an account, but a lot of artist friends did have one. Like all of our friends had one. I guess it was designed in 3D Studio Max. That's what they used. That's why. And I'm trying to have the normers. How do I navigate this thing? I don't even know how to use the website. Yeah, I don't think I ever had an account. Yeah. We're going there just for like inspiration in our graphic design class. I think it's just a tag or something. Looks like you do a lot of galleries. Where am I going to find Chopper? I'm not sure. Oh boy. So anyway, that is at least showing it here. So these are the three people that tossed the model around. Yeah, but that's where I ended up. Definitely need some reports. Oh yeah. All right. And that's the time lapse. Holding up pretty good. Kids haven't. Oh, I didn't give it to them yet. So I'm sure it might right off. Yeah. I'm just looking at the time once again just to see the combination of regular supports and three supports. Just kind of cool with the new beta of Cura Slicer. Yeah, this one you did not have to print twice, right? It's like from the time. Oh, yeah, yeah. I didn't have any time to print a choice. So really something hours. It's pretty big. Yeah. It's a good size. Like it'd be great to see a robot of this size. You have a do you have like a droid from? I do. Yeah. Alex is actually. Yeah. The only one we have is the BB-8 one. Right. He's completely not really good. It's. Yeah. It's completely different. They have a little battling arena right outside the droid depot. Oh yeah. Because you saw the last snap I took of them. One of the R2 units you can just roll the BB-8 units right off the ramp because it's like a skimo sort of style. Oh yeah. That's cute. You can just roll them off. That's funny. They're the worst for a stability. Yeah. Yeah. We still have our R2-D2 style robot in the works. Yeah, you have them. It's on hold because the cricket, it's reliant on the cricket dev board. We kind of want to, Lamar wants to redesign that. So we have something cool. If we ever get to a new cricket board, whether it's an RP2040 or a different type of chip, it'd be cool to bring that one back. I think we have a few projects like that where it's like just kind of on hold for hardware revisions. Yeah. It's several years old now, the cricket board. It's using some of the Atmel chips. And those were a little hard to come by with the parts shortage and everything. So it's just one of those boards that hasn't hasn't gotten the revamp that it needs. So that's a little background story of what happened to the R2-D2 project if you remember that one. Yeah. Okay. Looking at the DJ Devon posted a really cool idea for having queue lines from Disney show up on a display. How cool is this? I'm checking out the video that he put it on a GitHub here. Oh, let's see. People sell these, which is very interesting to have the open source one because I figured they were just pulling the data from somewhere because the album just seed in your app, but it's super cool to just have it displayed. And of course, they have the ones that they sell, they designed it to look like the queue area for jungle crews or whatever. Yeah. So that would be an awesome project idea right there. Okay. Yeah, it'd be interesting to see. Is this actually connecting to? Yes, he says all the, he filmed it at, he filmed this at 4 a.m. so all the lines are closed. Oh, that's funny because it looks like they're all hard coded, but no, it's just here. Okay. Yeah, I'm curious to see where it's the where's the JSON URL for the Disney wait times? I guess they're in the code somewhere. Maybe it's in the settings on Tomo. Okay, maybe we'll give this a try. There is, there's products out there that do pull the ride time data. So it's got to be out there. Yeah. Sorry for the dead air, but like I'm, I know, I'm fascinated. Oh, look, here it is. Qtimes.com, park 16, Qtimes, that's JSON. Sweet. Huh. That's a cool idea. There's a little bit of a hassle to pull out your phone and see, oh, you know, how are the pen yet to log in? Yeah. Oh yeah, yeah. And then that takes a while. Yeah. Yeah, this could be a fun project idea. Okay. And, oh, okay. So it displays on the ST, one of these type of board or displays. Very cool. Oh, no idea what that is. Okay. Interesting. Hmm. Yeah, I don't know if that's like official Disney. We're going to be going it from somewhere manually and putting it. What? That'd be nuts. Yeah. I wouldn't run a bypass Disney though. Okay. Cool. I like it. Maybe we'll, maybe we'll have one. They have a site part of it. It's not just the phone. So they got to be able to, you know, serve up that data somehow. Okay. I'm waiting as Devin types. That has to be because the, those TV displays they have around the parks that show the park, or the ride queue hours as well. It's got to be pulling from somewhere. Hmm. Okay. Yeah. I see. It was like a request from someone. Cool. Hi. Yeah, we'll take a look at that. It's going to be the end of the show. Yeah. It's kind of a short show. You know, we have a really simple projects. We're still working on stuff. We haven't printed anything yet. So we're working on some new props, some more IoT monitors type things. Pretty close to what this is except doing it on a DVI. Yeah. Doing it on through the DVI output and displaying some IO data on an HDMI display. Okay. Running into some memory issues, but we're working through that with Liz. Yeah. No community makes as folks are kind of ramping back up and maybe going on break. So that's expected. Tonight we have back to back shows. Thank you everybody. Well, last week we were hosting show and tell. Thank you everyone for coming on. It's really fun. We had a full pack show. Tonight for show and tell, it's going to be hosted by maker Melissa. So if you want to come on, come into the Discord chat room. About 10 minutes before the show, she'll drop in the link so folks can join in. That starts at 7.30 PM on all the usual channels. Ask an engineer follows at 8 PM Eastern time with a full hour of open source hardware news, new products, an MPI, maybe some top secret and a coupon code. You know, I didn't even show the coupon code yet. Oh, I posted it. You did? Very nice. Well, we have a coupon code for today for all the viewers that are watching. It's good for the next 24 hours and that is coupon code IO battery. You can get 10% off your order using IO battery, but we're going to have another coupon code tonight for asking an engineer and one tomorrow for JP's workshop. So you can get coupons for the next two days. Very nice. That's going to do it for us. Thank you, everybody, so much for watching. We'll come back next week. I think we might not have a project or a learning guide next week, but I think we'll have to prototype. That's for sure. And a time lapse. And we'll just shuffle around and talk about support material. Thanks, everybody, so much for watching. We'll see you next week. But until then, remember to make a great day. Hey, we did it. Bye, everybody. See you tonight.