My name is Ask, Ask at the Info. I answer questions here at DEF CON. I've been Goonan for four years, and I've been a maker in our community for eight. And this year, for one of the events that I was hosting with my friends, RentAnAssassin.com, we were throwing a client acquisition party, and I was commissioned to create some drink robots. One of my friends, a fellow Goon, not going to dox him, asked me if I could use peristaltic pumps and put together a bar robot. So I was like, I can do that. That sounds like it would be a fun challenge for me. And I had recently been practicing using OpenSCAD, which is a programming language for 3D modeling, to create 3D parts. So I wanted to challenge myself to create something new that would solve the problem using parts off the shelf. Because circuit board design is something I'm getting into right now. I'm a novice at it. But being able to hook together all sorts of random kits of things, I am really good at just building one-off, two-off projects for people. So when my friend challenged me to do this, I said, yeah, I will totally get that taken care of for you. And so I actually started with figuring out what the circuit was going to be, what the main circuit chip was going to be. And recently we had this device come out that all of us are using, called the Pi Pico. And it's a $4 chip from Raspberry Pi, and it allows you to load a programming language called CircuitPython on it. And I had recently been using CircuitPython for my friend DBSAU's PicoDucky, and I even designed a 3D printed case for that and everything. So I had just gotten a lot of experience on this platform. And I said, well, I've gotten a lot of experience with object-oriented Python at work recently. And I have gotten a lot of work with 3D printing recently. Let's put this to work. So I ordered a bunch of parts. I got a bunch of relays. We got the power rails and everything. And I actually designed a circuit board that I 3D printed. So we went through multiple iterations of this circuit board, where we could actually put all of these maker parts on there. And we ended up with 12 relays, six on each side, with PyPico in the middle, 12-volt power source, and a 5-volt and a 3-volt buck converter to allow it to power the relays and to power the Pico. Because the Pico actually will run off a 5-volt, and then the relays that we got were 3-volt, and then they were switching a 12-volt rail. Which actually ended up being a cog in the works that went away as soon as I stopped touching the robots. So I built up the entire base platform where I could play with the relays on a button board. So I would put buttons out there and play with the relays, and then I was trying to figure out how do I want to kit this together. And originally we wanted to put this in a custom 3D printed housing. So I actually did the full 3D modeling for a self-contained housing that this all would be mounted into. But in the end, that ended up being too long of a print, and the printers that we had just were not up to par, and I don't want to go buy more tools. My lab already has enough tools in it. So we went with what we had, and I looked around, and I saw an old milk crate that I had had from when I previously had worked in maintenance at my alma mater. So I just went and I grabbed the milk crate, and I was like, how does this all fit in here? And I designed a board for the perisaltic pumps to all mount into. I designed a face plate for the screen to mount into. I designed a face plate for the buttons to mount into. And then all that wiring and everything is open in there with a splash guard for the pour nozzles. And actually that pour nozzle really showed how far I've come with OpenSCAD because I was challenged by my friend to get that done right before DEF CON, and I got that done in about an hour and a half. I was able to write all the programming in about half an hour and get a prototype printed, because I've actually learned how to print prototypes really fast, too, by taking out the parts you don't need and only printing the parts you really are caring about measuring. And I was able to successfully last minute get the whole nozzle system going. So in the end, we ended up with a pair of senior Drinkenstein robots or Dr. McGillicuddy's magic drink elixir mixer running on Circuit Python serving eight different drinks from nine different liquid sources. And back to that problem that we had, we actually have a problem with EMI, electromagnetic interference, where our 12-volt lines, when switched on, would interfere on the three-volt pull-up or pull-down buttons and cause the whole thing to lock up completely. We were able to partially solve that, and what we actually found was as soon as I left tending the robots and left them to Bonwit to manage the robots, they didn't break at all. They didn't reboot at all. So we actually think the robots gained sentience and hate their creator. It can only be attributable to human error. This conversation can serve no purpose anymore. Goodbye.