Ruby
Wafflebot: Cloud Connected Artificially Intelligent Waffles

Summarized using AI

Wafflebot: Cloud Connected Artificially Intelligent Waffles

Jonan Scheffler • November 13, 2018 • Los Angeles, CA

In his engaging talk at RubyConf 2018, Jonan Scheffler introduces the concept of the Wafflebot, a cloud-connected waffle-making robot that he has been working on for over a year. He walks the audience through his journey of creating the Wafflebot, which is both a personal and technical endeavor filled with challenges and humorous anecdotes.

Key points discussed include:
- Origins of the Wafflebot: Jonan shares how his initial struggles with making waffles for his children sparked the idea to automate the waffle-making process. He came up with the concept of using motors to replicate the simple actions involved in making waffles.
- Technical Challenges: Throughout the talk, he highlights various obstacles faced during the project, such as wiring issues, equipment failures during transit, and difficulties in soldering and assembling parts, which provided valuable learning experiences.
- Waffle Maker Details: Jonan explains the inner workings of a Cuisinart waffle maker, detailing the design modifications he implemented to create the Wafflebot, including attaching servos and using a Geiger counter to measure radioactivity in waffles. This adds a quirky and scientific angle to the project.
- The Prototyping Process: He shares visual documentation of his project’s evolution, including failures with various prototypes, showcasing both the chaotic and fun aspects of hardware projects. The iterative process leads him to redesign components and reconsider strategies for gravity-fed batter dispensing.
- Final Goals: The main objective of creating a functional Wafflebot is emphasized, showcasing a live demonstration of the waffle-making process amidst technical hiccups. Jonan discusses the importance of persistence in engineering through humor and familial support.

In conclusion, Jonan's presentation is not just about making waffles but also serves as a testament to experimental innovation, creativity, and the joy found in problem-solving. He encourages the audience to embrace the messy process of creation and the lessons learned along the way, demonstrating that engineering challenges come with their own rewards and memorable moments.

Wafflebot: Cloud Connected Artificially Intelligent Waffles
Jonan Scheffler • November 13, 2018 • Los Angeles, CA

RubyConf 2018 - Wafflebot: Cloud Connected Artificially Intelligent Waffles by Jonan Scheffler

Come laugh and cry with me as I detail my audacious quest for the world's perfect waffle.

You'll learn valuable life skills like properly assembling a Geiger counter (yes, waffles are radioactive), when and how to use solenoid valves to prevent batterpocalypse, and why you should never, under any circumstances, attempt to modify a self-heating chunk of searing metal in such a way as to make it sentient.

Join me for a whirlwind tour of my most ambitious Ruby hardware project yet. Even if the talk is terrible, you might get a questionably food-grade waffle out of the deal.

RubyConf 2018

00:00:00.000 I get it, I'm real quiet. I blend in, yeah. So this is a Wafflebot, and it's kind of a lot to carry around the country, actually, around the globe.
00:00:20.160 I came up with this project about a year ago. First, I’m sorry; many of you don’t know me. My name is Jonan Scheffler, I'm from Portland, Oregon, and I go by the handle 'Jounin' on the internet. You can find me on Twitter and GitHub, though it’s probably not worth your time in either case since I don't tweet very often.
00:00:40.920 My first Rails app is up there, which I deployed to Heroku back in 2011 or maybe 2012, and it was called 'Warm Warrior.' It was kind of creepy how it randomly assigned names, and I really didn't like that one; people would get names like 'Meadow Ninja,' and I got 'Warm Warrior.' I worked with that company because I loved their product. I always have.
00:01:08.760 I came through a boot camp back in 2011 while working for a small company in Bend, Oregon. I was doing PSD chopping, creating IE6-compatible CSS so that we could align images pixel-perfectly by overlaying a JPEG on the webpage and nudging our little divs by a pixel at a time. The web is a much better place now, and we had a huge party when we sunset IE6 support at that company. I’ve always wanted to work at Heroku, and now I do. I'm a developer advocate. If you are an engineer or developer and sometimes think, 'I wish I had more meetings and more marketing buzzwords in my life,' then you should probably become a developer advocate.
00:01:50.670 That being said, this waffle project was mostly financed by Heroku. So, whether it’s a waffle maker or not remains to be seen. This is the waffle maker that I used; it's made by Cuisinart. It has a Christmas tree design because I got it for Christmas last year from my children.
00:02:11.700 The day after Christmas, I was standing in the kitchen and realized that waffles take a long time to make—around seven or eight minutes each. You get one out, and then it's immediately gone because the kids are coming back for more. It’s like they’re on some kind of round-robin system, coming back after going through about fifteen waffles.
00:02:35.220 I had an idea while I was holding this little handle one day. It struck me that the motion of flipping the waffle maker over is pretty simple. You just lift the lid up, close it, and flip it over. Those motions can easily be replicated by motors, so I thought it would be a fun project to take on.
00:03:05.790 This marks the beginning of my journey in February; I put a date on this slide to help you keep track. This is basically just a photo tour of my life with Wafflebot. You won't see much code, if any, except when I actually try to make a waffle for you. I started out with this Raspberry Pi, which has a touch display.
00:03:27.480 Underneath the display, I have an entire box full of electronics with some circuits that I wired up. I don’t know much about electronics, to begin with, so this was a huge and often painful learning experience for me.
00:03:42.690 On the left side, you can see these servos, which I refer to as the 'death row of servos' because they were all destined to fail. I killed a lot of servos during this process. This is where I got a lot of my supplies, a place called Surplus Gizmos in Beaverton, Oregon. It's a cool spot where you can buy old industrial equipment and components.
00:04:14.430 Inside, they have items that they disassemble—huge manufacturing items like conveyors—and you can get a stepper motor that could flip over a car. Unfortunately, they know their worth, and some items can be a bit pricey. I mean, there's a circuit board for a dollar, but you could buy twenty of those for a dollar elsewhere. Yet, it's worth it when you don’t even have time for Amazon shipping, especially when you're flying around the country trying to give this talk.
00:05:02.940 Sadly, three out of four times, the Wafflebot has been completely destroyed in transit, to the point where I couldn't save it. Yesterday, it was also destroyed en route; shocking but true. I have a good trick for that, though. I carry my equipment in two different Pelican cases. You’re allowed to put locks on those cases, but they have to be TSA-safe locks.
00:05:50.430 In the United States, there’s a firearm law stating that if you carry an unloaded firearm on an airplane, you can have it inspected when checking your baggage and lock it with real locks. The TSA isn’t allowed to open them and rearrange all of your Wafflebot packing, which is meticulously arranged with foam. I have some pictures of that too.
00:06:35.440 This is a picture of my waffle maker from underneath. As I started getting into the wiring of the machine, my theory was that I wanted to twist this thing. I also needed to be able to lift it, so I thought a front axle wouldn’t work; I’d have to have the motor on the front, and it would be twisted.
00:07:19.720 Instead, I decided to come in through the back and put it through a little axle on the back. After opening it up, I discovered that the wiring harness for the control and heating on the waffle maker goes through a narrow hole intended for a plastic piece that I had planned to drill through. It turns out that plan didn’t work out.
00:08:16.900 The first iteration of Wafflebot ended up being much taller than intended—exactly half an inch too big for a Pelican case. I thought that if I couldn't lift the whole mechanism up, I would set the lid on this twisty bit instead. That way, I could twist the handle downwards.
00:09:03.620 When looking closely, you'll notice some rivets and a set screw; at one point, I even used a piece of wood to create a coupling—but that turned out to be an impossible task. Couplers for shafts with varying sizes are very hard to find. If you’re in the coupler business, I’d like to speak with you afterward.
00:10:43.360 In the background there, you can see a Costco milk jug that I intended to use for a gravity feed system. The idea was to attach a solenoid valve to it, which opens when powered, to help with batter dispensing. Initially, I thought gravity would be on my side, but the batter didn’t push through the half-inch diameter pipes well at all.
00:11:43.620 This led to another anecdote about many projects—often the parts we assume we know how to do turn out to be the longest and most challenging. Perhaps that’s a life lesson in disguise.
00:12:34.240 As I progressed, I was working on the new frame. At this point, I had taken over the kitchen area, which began as a hack day project at Heroku. We have hack days once a year where you do what you want. While others were improving system efficiency, I thought, 'I'm going to make a waffle-making robot.'
00:13:09.600 After spending just eight hours, I realized I didn’t stand a chance of finishing. Over the past year, I pulled ten all-nighters working on this project. Every single time I was under a deadline, I’d be flying to San Francisco. Not to mention addressing numerous equipment failures; if you break one connection, it can take hours to track it down.
00:14:04.259 This transition has taken up so much space! At one point, my living room was like a Thanksgiving table filled with Wafflebot supplies. Of course, my wife and kids are fine with the mess, which makes me a terrible person, but it’s all for your entertainment!
00:14:53.780 This is a close-up of my circuit board—my soldering wasn't great. Soldering well takes practice, but remember to focus on the component, not just the iron.
00:15:00.340 For effective soldering, always double-check your connections. I learned this the hard way after some weak joints on my board left me troubleshooting for hours.
00:15:40.200 Earlier, I showed you the control board redone; TSA opened my case in Chicago and had trouble closing it afterward.
00:16:29.500 When the waffle maker cracked during travel, it felt like a huge setback. I recalled a moment while standing in the kitchen with my Wafflebot, getting reminded of simpler times when we just made waffles the old-fashioned way.
00:17:05.710 Now, here’s a surprise: the Geiger counter! I once mentioned a Geiger counter in the abstract; it's a really cool instrument and a fun project you can do.
00:17:46.940 The Geiger tube inside is fragile, so be careful with it. It detects radiation from particles, particularly significant for those of us who consume carbon-14—every food we eat contains carbon, making it naturally radioactive.
00:18:36.000 This brings me to my ultimate goal—to measure the radioactivity of waffles and use that for improving their quality. Though the boards I had to use are subpar, I still had them integrated into my circuit.
00:19:24.700 With that in mind, I want to show you a working prototype of my waffle maker—if it works!
00:20:13.270 Here’s the code I used. Though it’s simple, getting my Raspberry Pis to work together was quite the task. My current challenge is to make sure everything runs smoothly without conflicts.
00:20:58.680 I appreciate your patience. I hope to show you the working robot to finish off. I think I can make it cooperate and produce a waffle! I need to let it warm up.
00:21:30.030 With my Raspberry Pi needing access for the GPIO pins and requiring proper coding connections, it led to quite the headache.
00:21:43.130 Before I transitioned to more testing with multiple GPIO pins, I was left troubleshooting with several Raspberry Pis just lying around.
00:22:30.430 Now, I’ll see if the pump works properly. Fingers crossed! I hope I could demonstrate how it makes a waffle.
00:23:12.370 Now, I'm hoping to salvage the connection and make this work before I run out of time.
00:23:33.330 The end goal was to create a Wafflebot that would allow you to press a button for your waffle, rated based on your experience of eating it.
00:24:16.840 I’m excited to see if I can get it all working smoothly, as it hasn’t worked perfectly in the past.
00:25:16.430 What began as a simple idea has turned into a year-long challenge that has seen multiple designs and iterations.
00:26:00.650 Now, as I pace back and forth, checking connections, all I can hope for is to create the perfect waffle one last time.
00:27:02.100 What result will I get now? I hope it works! Because the waffle machine is finally coming up and ready!
00:27:52.020 Overall, this entire journey encapsulates the trials of engineering; each challenge brings with it learning opportunities.
00:28:54.340 Just remember that, regardless of how difficult the project is, the support and laughs with my kids make it worthwhile.
00:29:53.890 This noodle factory evolution of making machines comes to a head after my many hours at work. I took the time to enjoy the mess made, love the failures, and aim for the next win. Thank you so much for joining!
00:30:55.930 If you came just for a waffle today or to learn about electronics or for a heartfelt moment, I've appreciated having the opportunity to share my story. Thank you all for your applause!
Explore all talks recorded at RubyConf 2018
+82