Build a custom sticker vending machine

Nick Hehr
Nick Hehr
Senior Developer Advocate at Viam
DevRelCon New York 2025
17th to 18th July 2025
Industry City, New York, USA

Nick Hehr, senior developer advocate at Viam, grapples with making booth demonstrations stand out in crowded technology expos. He illustrates this challenge through Jim Bennett's innovative use of a confetti cannon to draw attention at FlutterCon, successfully showcasing a new feature amidst stiff competition. By adopting a prototype-first approach and emphasizing tactile learning, Hehr focuses on developing engaging, hands-on experiences that resonate with attendees, leading to increased interactions and interest in the product.

Watch the talk

Key takeaways

  • ๐ŸŽ‰ Create engaging physical demos Build interactive experiences that physically involve your audience to enhance learning and retention.
  • ๐Ÿ”ง Prototype quickly Start with simple materials to test ideas and iterate based on feedback for effective demos.
  • ๐Ÿ“ฑ Incorporate fun elements Use engaging features like quizzes and visual effects to attract attention and motivate participation.
  • ๐ŸŒ Prepare for technical challenges Bring your own tools and WiFi to ensure a smooth demonstration, ready for any issues.

Transcript

Nick Hehr: Thank you again, Amanda. Thank you everyone here at MLH and at with here with DevRelCon. It's really exciting. I went to my first DevRelCon last year, now I get to be up here speaking and sharing with all of you. And as some folks mentioned, as we're getting started, there is hardware involved with this.

There's a lot of stuff that won't be on the screen. So if you wanna see what's actually happening with this stuff, come up closer. There's plenty of seats. I get the sort of like tendency to wanna sit in the far back, but I promise you it's worth it to come up close. And then I can also reach you if I have to throw something at you.

Something friendly, I promise. So yeah, my name is Nick. I am a senior developer advocate at a company called Viam. And overall, let me just start out by getting a baseline of who here has worked with hardware before? Cool.

Great. And so it could be a Raspberry Pi, a p 32, Sphero, Lego Mindstorm. Excellent. Cool. And so that's good to know.

Good to know some people are familiar maybe with what we're talking about. Some people aren't, and that's great. Who has saw who has seen or tried the Sticker Vending Machine, aka Sticker Wizard, over these past couple days? Only a couple of people. Nice handful of people in the back.

Great. How many of you think you could build this for your next event? Alright. Good collection of people. Alright.

Some competent folks. I love it. Yeah. Yeah. Yeah.

Hopefully, at the end of this, you all will feel a bit more inspired and motivated to not just build a sticker vending machine, but something else that's compelling and a physical demo. And that's a lot of what we're talking about today. Not just building what this is, but what goes into a physically compelling demo. What goes into building anything that's engaging as we're trying to show off, something we're teaching, something we're we're trying to demonstrate. We've heard a lot about demos over these past couple of days and I love it because it's a lot of getting rolled up into this into specifically like building something like this.

Let's go back here. So now is the time where I talk about what I get paid to do. And that is talking about Viam, which is a plat hardware a platform for connecting software engineers to hardware. And it's about using consistent APIs, cloud native services, and growing registry of integrations, not just what we provide but what anyone else in the community can provide as well. So we're all about trying to get people to use robotics and hardware.

It's the single place for building, deploying, managing robots from anywhere in the world including robots like this. Does anyone think this is a robot? A couple of people think this is a robot? Yes? Because what do you think of a robot as?

It's like, you know, humanoid, c three p o, maybe a Roomba. Right? Those sort of sort of things. But all that goes into a robot is really the idea of sensing, planning, and action. And so anything from something automatically plant watering to a sticker vending machine to, you know, robotic arms, these all go around and can be something relatively simple to something super complex.

But these are all robots in the way that we think about them here at VM. And we can make them smarter as well with different sort of existing or pretrained models. You don't have to have any prior experience with hardware or machine learning in order to just get started and build something that you're dreaming of. So as Jim's some of you may know Jim Bennett. So last year at DevRelCon, Jim was in your seat and is in that seat now as well and listening to a different VM talk from my manager Joyce.

And at the same time, he was also thinking about another conference that was coming up and that he would have to be working in the booth. And so he heard the words confetti cannon. And so this, I think, inspired him, at least I'm assuming. Well, he was working at a place called Pieces and wanted to showcase a new feature that had just launched, a Flutter SDK at FlutterCon. And we've heard about from a few presentations these past couple days that it's tough to get attention in an expo hall.

You look all look at the same booth, you have all the same screens up, you're trying to sell a lot of similar sort of technologies to the same developers. So how do you cut through that noise? And in order to do that, he built his own version of the confetti can to integrate with Pieces.

Speaker 3: They said it couldn't be done. Pieces and Viam had other plans. Fueled by Pieces themed m and m's, we used Pieces to share the launch code and brought the confetti cannon

Nick Hehr: to life.

Speaker 3: Pieces and VM were the code I did celebration.

Nick Hehr: Well done there, Jim. And like any great Devrelian, he wrote a blog post, he made a video, and blasted on socials. And be sure to check those out later. They're really great write ups. And you can even scan the QR code to build your own version of the same thing.

But how does it go into how do we make something physically engaging like this? What goes into this sort of recipe? And so we're gonna take a look at a little bit into the psychology behind these sort of demos. As we saw from this morning's keynote, for those who attended, people learn by doing and not just by seeing and hearing. You could have like a rock solid script that discusses you know your features and all the pain points you're solving.

Utilizing Tactile Learning in Demonstrations

But if you hand over the reins to someone or give them something some sort of direct task like pushing a button even, it can solidify a lot of what you're teaching. It's that tactile learning. And when you're building upon that personal engagement, the people getting excited about what they're working on or or interacting with you, it gets more people to come over as well. For anyone who's maybe lived in New York for a while or for certain visiting, if you've ever wandered around Central Park or Times Square or any other busy area around the city, you may stumble upon the guys who have like the line of tourists and then jumps over them. And, you know, there's a lot of, you know, cheering and music and everything happening.

And, you know, people are wandering over making such a big crowd because a lot of other people are having fun and are engaged with it. Not that I'm saying you need to be jumping over a crowd or playing a lot of music at your booth, but, you know, the idea applies. When people see confetti popping off or hearing the light of a crowd, that will attract more people walking by and motivate them into checking out what you're showing off and what you're demonstrating or participating in some way. And being hands on and seeing the cause and effect of what that demo is doing skips over that friction of like, what does this thing actually do? You can describe it all you want, but not everyone can just imagine what's going on or visualize it automatically or know exactly how to relate to what's happening.

As I was talking to Jim before this, he was mentioning about a computer vision demo he had worked on. And you see the result of a model identifying something. In this case, it was LEGO figurines. And then imagining how you could do that same action. Seeing the cause and effect and seeing the recipe and seeing what the details were behind the scenes all goes into then being motivated to go try it for yourself or customize it in some way.

Incorporating Fun Elements to Attract Attention

And so my manager, Joyce, likes to call his strategy cheeseburger marketing. And in some ways, I think of it like the, you know, poop sandwich or the Koppelins sandwich sometimes people talk about. It's like, you know, you start with something that's fun, engaging, it gets it's interesting. You know, you have confetti flying or a sticker dispensing. Like, you see this at a conference and I think a bunch of you did and you're like, what the heck is going on with this?

Why is there among all these stickers, why is there something with stickers and something else going on? And it leads into the technical details of being revealed what powers that moment. That's actually this moment right now. And then finally, there will be a call to action what that means to you. How do you get the most out of what this is showing off?

Prototyping and Iterating on Demo Ideas

And there are guidelines to do this, you know, effectively. It's easy to have these grand ideas and visions for fun and interactive demos, but it starts with the quickest thing you can prototype and prove the idea and then iterate from there to build up towards that final demo. And then when you have a deadline, that can motivate you to aggressively cut scope, and find that core idea of what you're trying to show off. And, of course, get feedback early and often, so you're not just toiling away and be like, isn't this cool?

Nick Hehr: It's like, yeah, but what is it actually showing off? It's and then you have to be ready for anything. As you might be able to see a little bit up here, I have a lot of stuff with me to make sure that everything goes right. I brought my own WiFi because I, you know, I have to put these things online. And I don't want to try to go through, you know, the conference WiFi or try to go through some sort of captive portal.

There are weird network conditions when you're traveling around. Even power strips. Like, I brought my own power strip to connect so everything's just plugged in at once rather than me trying to figure out if they have the right power strips or they all fit together. And so these are the realities of bringing physical demos into real world environments. And so you have to be ready for that or make sure you can gracefully degrade what you're showing off and to fit with, you know, the resources you do have.

And then being able to quantify and qualify the opportunity that you have. You know, how do you prove to people who sign your paychecks that it was worth the effort of building and transporting this whole thing? Luckily for me, I live in the city so this was just putting in a suitcase and coming down to Brooklyn. But if I had to fly with this thing, if I had to like pay for extra like suitcases and things like that, like that's cost. And so how do you prove that it was worth it to bring this over just having another slide deck?

And it could be part of the call to action afterwards is how you get people to engage or how you can see like, oh, people actually went and built this thing. People actually went and signed up. People actually like posted about it on socials. And then basically figuring out how you can duplicate this demo or help other people duplicate it as well so they can build it and transport it to the next event or simultaneous events. Like, I can't be in more places at once and my other two team members are in, Las Vegas and San Francisco.

Building Interactive Demos with Hardware

So how do they build their own version without me having to ship it to them? And making sure that that is, you know, not only easy to do but practical to do as well. And so now for the meat and potatoes and why a lot of you probably came to this presentation. But first, quick story. So this demo was actually not built by me or my team.

This was built by originally by someone inside the VM office. It was part of our engineering 20% time. And so, you know, we give time every week for people inside the company whether they're in engineering or in product or in marketing or wherever. And we want them to use what we're building so that we get better feedback and then we see what ideas they have. So this was one of the engineers who had an idea for a sticker vending machine in the middle of the office with a personality quiz to guess your robot personality to go along with it.

And so over a few weeks, she and some of her coworkers put this together. It didn't just come out looking like this originally. It had many different steps that we'll go over. And now once they built it, we then on DevRel took our responsibility of documenting it, sharing it, and showing how other people can go and remix it and build it for themselves. And so having that ability using, you know, the collaborating with like the engineers or the people you already know is so powerful in showing like, oh, they can go do this and they can have wildly more grand ideas than I might have because I have a shorter timeline.

But they can go work on it in the background and get the support of DevRel or anyone else to make it happen. And so this sticker vending machine is made up of servos. Who's worked on a servo before? People? Great.

Yeah. It's something that moves. It's kind of like one of your initial actuations when you're starting to get into hardware or robotics. And so the actual vending, you know, coil itself is just wire. It's just, you know, kind of light wire that you can coil around a PVC tube and build into the sort of spring like behavior that you want.

And then wrapping that wire around the servo allows it to now, as it does a continuous movement, start to push anything within the lines of those coils. And so that's the basic movement of how this vending machine works and how a lot of basic vending machines that aren't the, you know, gantry style go and pick up a drink and bring it down, The old school vending machines work. And so this is all controlled through this servo controller board, that blue one that you can see in the top right. Left. Yeah.

Top left. That's reversed for me over here. And this allows the Raspberry Pi that's behind the scenes to be able to control more than just a couple servos and be able to give it power as well. And so this nice little compact sort of breakout board, you would call it, in order to for the Raspberry Pi just to communicate with that one board and then drive whatever servos they want. In in this case, we have up to nine.

It can do, I think, around 16 total. And so then these all get mounted into shelves or drawers with each individual lane. These are laser cuts, but I'll show you kind of what it started out as. And then these have some three d printed parts to stick the servos in, allow them to stay in place while the it's turning and and winding that coil. And each of these QR codes leads to the different steps I'm talking about within that codelab as well.

And so this is the wiring diagram. Now, if you've never wired anything before, it can seem intimidating to see all these things. But actually each servo has its own wires together. And so you just plug each of those into the board itself, the breakout board. And then finding power is just a regular sort of power plug with a barrel connector at the end.

You may have seen them for laptops and other things. And then four wires that go into the Raspberry Pi. And so it's not a whole lot of work. There's no soldering required. It makes it very accessible in my opinion.

And they still stay together fairly well. It's very transportable. I can take all the wires out, plug them back in because first of all, I have them color coordinated which is another good hot tip for you if you ever have to come back and not have to reference your wiring diagram. And then I can swap out servos really quickly too. Nothing since something's soldered together, I have a bunch of spare servos with me.

So if one of them dies for some reason, I can quickly replace it and get it back up and running again. And like I was saying, it didn't start out looking like this. Carbo prototyping is fantastic. I would start there first before making any sort of like fancy three d printed or laser cut enclosure. Cardboard is wonderful.

It's plentiful. You might have a bunch of Amazon boxes sitting around your home already and go and use that. And so this allows you this allowed Emily and the other engineers to just start to see what works. They didn't start out by using the server board. They started out using stepper motors.

They started out using other sort of ways of actuation. And this allows them to, again, to iterate very quickly on the idea and eventually prototype out the initial enclosure and then see like, alright, what type of stickers work? What types of shapes can I work with? What are the limitations of what I can control? And then from there, start to build it in something a bit more polished.

And then the interface. This is an a more fun part because Emily herself was a front end engineer and so this is where her time came to shine. She created a a fun to go with this. And this is using I forget how they pronounce it. It's like spelt for three d j s in a bunch of three d environments.

It's like Threlt, I think they call it. It's like three d j s Swiss Svelte. And I never know how to pronounce any of that type of stuff. But anyway, so Sticker Wizard is this interactive quiz. And so she came up with these nice animations to go with it and loaded up into a typical types TypeScript application.

And that I'll show you the lines of code later, is how she started to control the Raspberry Pi from the from the web app. And so that just gave it some commands to now run the servos for a certain amount of time and then feed each of the each of the stickers that that got selected. So those the code actually control the hardware was about 10 lines. The rest of it was actually building up the full quiz and building something interactive and fun, but that was also the fun part for her. And originally, this was also hosted as just a web app that anyone would go to within the VM office.

But eventually to make it, again, more public for anyone to go and use and make sure no people aren't trying to run it all at the same time. Then we eventually embedded the Raspberry Pi in this little touch screen over here. And so that Raspberry Pi is running the web app and serving it into a Chrome window in kiosk mode automatically when the Raspberry Pi boots up. And then that connects directly to VM server that runs on the Pi in order to then support all of the hardware controls from there. But you could run this from, you know, a cloud service.

You could run this from, you know, multiple different types of Pis at once or wherever you wanna run it. It's just talking directly to the hardware through WebRTC, which is the way the VM works for its hardware controls. And this is one of those points of customization. And this is where, you know, software that you're working with, like Jim saw last year in terms of like, oh, pieces could fit in there and just call into, you know, our Flutter SDK with their stuff. Or it could run into, you know, with TypeScript I said, where you can do Python and Go and all that type of stuff.

And the minimum amount that you need to know about for like Linux and running stuff off is this one batch script in order to install VM server, and then you can start configuring in our dashboard. I know this sounds like a sales pitch, but a lot of it is just how simple you can get started without having to know a lot about or any sort of coding to get started. Like this motor control board that I'll show, I can start to, like, operate it directly from my browser if I need to debug something, if I need to, like, run if one of the stickers gets stuck and I just need to run it for a little bit. I have that control. I can override just what the web app is doing and allow me to help keep things going.

And as I said, this is where you can start to integrate and provide, you know, whatever you wanna do to customize it. Whether it's a custom quiz, whether it's some other sort of webhook you wanna integrate for like, hey, maybe you launch some sort of like instance of a cloud server or something and then that webhook says it's it's running and you get a sticker based on that. Or if you want to have something else go off, if that's your confetti cannon idea. And so what builds up some of these sort of like I said before, we have here like a Raspberry Pi, some servos, and like a touch screen for embedding it all together. But there's so many other ways you can start to, you know, build out your robots, your demo robots.

And that could be, you know you know, you could use Raspberry Pi. I could have just run this all off of my laptop with a connection straight to you know, the Pi itself. You can use microcontrollers if you want something a bit more portable. Webcams are really easy to integrate with. If you've never done anything with CV who's done stuff with CV before?

Computer vision models. Help people. It can be intimidating if you've done it before, but if you can just start get started on your laptop or get started in a web browser, I think that makes it much more approachable. And, you know, that's something else that you can start integrating to your your object detection or any sort of classification and to make it more engaging for people to go and, you know, try something out. Buttons and switches are very much popular.

You know, speech to text and text to speech through microphones and speakers Also make it more fun to be able to go and talk to a robot and have it do something, give it a command, using game controllers if you're driving around a rover, something we've done in the past. And of course, like lights, people love lights. People love seeing blinking LEDs and strips, and of course, displays and everything like that. So some examples that we've done in the past in order to integrate with different services and other things that could maybe inspire you to what you're working on. As we all know sometimes the coffee lines at various conferences events can get quite long.

You So could build out an alerting system using basic computer vision in order to track how long lines are and start to give people alerts about like, hey, you know, the line's shorter over on the landing than it is in, you know, five two a. Or maybe the black box is just like, you know has you know coffee for days and now you can start to those alerts. And that could be part of you know, I know we have the WhatsApp stuff. That could be a WhatsApp bot that comes in and says like, alright, here's where the next events start coming in or starting to use computer vision for various parts of just monitoring a situation. Something I can tell people in workshops is that a picture is worth a thousand words.

It's very true for any sort of data. It's just how well can you use it to do something. And so if you can just start getting some basic data points from any sort of images, you can do a lot with that. And you can start with just again a webcam and a Raspberry Pi or even just your laptop to get started. Another example, maybe people have been hearing about some of these robotic arms.

They come much more approachable. Hugging Face has this open source robotic arm from a project called the robots, the s o one zero one. And this is something you could start to control and make something even more fun. So if you wanna have something being picked up or I know Jim had the idea of putting something like assembling LEGO with robotic arms as part of the process of learning something. You can get started with just, you know, again, your laptop and arm and you know, using something that integrates with it.

It doesn't have to be VM but you know, we have stuff out of the box that does that. You can use machine learning models or whatever else you're trying to to show. And so again, why does this overall matter? You're trying to get people to, you know, push past like the basic pitch. You're trying to get people to get engaged or be motivated to check out more what you're doing.

They may not go and, you know, build your sticker wizard, but they will go and, you know, try assembles of that. You might give them a good sort of initial trial of what you're trying to show off. And this this doesn't always work in terms of like the audience you're reaching. I know we heard this morning about, you know, an audience of, you know, enterprise customers. Like, I'm not gonna go bring this to an enterprise conference.

But I'm gonna have something else that's a bit more engaging for them. You know, there's ways of, you know, speaking at their level of what they're trying to be interested in. And hopefully be remembered as well or shared on social media or share and talk about like what they then built after the after the fact and giving them some sort of motivation to do that. So I want you to be the buzziest booth in the sponsor hall. And by, you know, thinking outside the box, thinking around, you know, what sort of things could you do in the real world that, you know, has an impact.

And again, some tips that we were bringing up before. Bring your own WiFi if possible because conference WiFi, you're always battling for something or you have something that can run even offline as possible. Remembering your spare parts. I have a whole suitcase full of stuff with me just in case, you know, anything falls apart here. I need more tape because it's obviously it's not doing enough of its job.

Having those administration and debug controls is very important. So there's actually an admin dashboard at the back end of the web app in order to just dispense stickers as I need to on demand. I actually have the ability to VNC or be able to like remote desktop into the actual Pi itself from my laptop from wherever I am in order to then maybe restart the web app or restart our service here and there. And that's just super helpful for me. I can see all my logs of what's happening.

If the robot gets offline, I get pinged. So these are things that make it really helpful to make sure things keep running especially through like long conferences. I left this here overnight and it was fine, thankfully. But I can monitor it even when I was back home. And then of course, at the end of it, turn it off and on again and see if it fixes it because that always works.

Trust me. So what would you build if this hardware was accessible? You know, we have Sticker Wizard here. We also have places to borrow rovers. So if you don't wanna have hardware on hand but you wanna try to automate something, you can actually go and like rent a rover on our website for a short period of time and start to play around with what ideas you might have with that.

We also have the ability for, again, talking about computer vision. You wanna train a custom computer vision model and use that as part of what you're building. We have a whole sort of build along video and code lab for that. And if you wanna win a rover, we also have you can sign up for our newsletter and then folks who sign up today will be part of a lottery to win a rover and we'll send that to you. And you can, you know, drive that around and see what happens when you bring that to your next sponsor booth.

That is actually everything I have today for slides. But what I wanna do with the rest of our time is get some ideas from you all and walk through maybe some things that I can help you build. Things that maybe you wanna see more about the back end of how this works. I can start taking it apart and you can see some of the pieces if you want because it's easy to put back together. And yeah, I am here as a resource for you all.

First water. Any questions? Any sort of comments? Yes? Great question.

Yeah. A rover? Yeah. Yeah. Here.

Yeah. There we go. So this is the VM Rover. It's a nice little sandwich sort of like mobile base. It has a webcam on it.

You just you just need to provide a Raspberry Pi or maybe if if you're really fancy, you got a a NVIDIA Jetson to throw on there. You can now get controls over this sort of robot, and then you can start to drive it around. You can use the IMU to give us automation, and you can do vision and drive it and learn on it. You can add on additional sensors later if you wanna get into LIDAR or ultrasonics and start to automate even more. So that's what this the VM rover is for those who are curious.

Thank you. Yeah. Actually not that bad. Yeah. The Yeah.

So yeah. Roomba actually has a dev kit, the iRobot three. We also have integrations with There's something called TurtleBot which TurtleBot is basically like a developer version of a Roomba. So you can program that around. Yeah.

Question? Anything for going upstairs? For going upstairs? That's always a tough part for any mobile robot. Right?

There are ones people build that actually have like, basically like a almost a triangle shaped set of wheels that can then pivot up stairs. So you can start to build those out and start to you just need enough torque to get over, you know, carpets or anything like that. But yeah, that's definitely possible to get upstairs. I won't say do a flying robot because that gets even more dangerous at all. Yeah.

Good question. Yeah. Yeah. I guess so it's just a static image or is something moving or is it yeah. It would be fun if you could have might get creepy.

I don't know. If you have the some sensor that lets the hologram follow you in a little bit. If you have it ability to rotate, It's almost like those those Scooby Doo moving yeah. It's just having to be able to move out around back and forth as far as like sensing people in front of it so it knows like who's looking at it. It's be a lot of fun.

Or even just be able to get someone to control to like spin around and see because like the hologram is like you can see all the sides. Right? That's the whole idea of it. And so to give people those controls again, that that tactile sensing to then go and like have them turn it, give them a little joystick or something. Yeah.

And even even swap stuff out. I don't know how well you can just make one on the fly, but if you take an image and then just transport it. Yeah. Yeah. That'd be amazing.

Yeah. Yeah. Alex. Yeah. I think she has the plexiglass.

Yeah. Hello.

Speaker 4: Hello. Yeah. The ESP 32 that's inside, how did you program that? Is it a sketch? Is it something else?

actually running Raspberry: So this is actually running Raspberry Pi, but we do have support for ESP 32. And that's just running our version of VM server on it. Then And from there, you can use all of our APIs that we have to be able to control, like either GPIO or other service sensors.

Speaker 4: Can I wind back a step and ask what Yeah? Is it VM server? I have no idea what you're

Nick Hehr: Oh, sorry. Yes. Sorry. So VM server or in the case of the ISP 32 is our micro RDK or micro server is just a process that runs in the background in order to provide hardware controls and manage all these sort of like networking and connections to the device itself. So when you maybe get some sort of like third party integration, it will automatically download that and run it as a separate process in order for you to control it.

So that's our main entry point into any piece of hardware or something. And that's open source and can run anywhere that runs Linux, basically. And then for ESP32, the micro RDK is the same thing. It's just a Rust program that gets run on the ESP32 in order to give you that same access. And so things like networking is really fun because when I go to a new place, it'll actually just pop a access point and let me reconnect it to the new network, which is very helpful when you're traveling with demos because it would just be, you know, a brand new WiFi network and not have to reprogram it in some way.

But So VM server, again, a lot of our stuff is, you know, anything on Robot we say is open source. So you can go check it out, see how it works, riff it, or start to customize it in some way. Yes?

Nick Hehr: So let's say Micro Center is two blocks away.

Speaker 5: Mhmm. To play around with some robotics, what what's kinda like the minimum thing with

Nick Hehr: a Raspberry Pi that you would pick

Speaker 5: up or even with any other platform?

Nick Hehr: So you can actually run our our server on macOS, Windows, or Linux. So if you wanna run it on your laptop today and connect to your webcam and start to like play around some computer vision models, any sort of sort of sensing, you can do that. There are also things like I said before. If they can run over serial, then you can usually run straight from your laptop into a device. So like those robotic arms that are showing at the end, they actually just take a serial port connection.

So that could be from again, Raspberry Pi or a regular PC if you want it to be. So that's kind of like the minimum. It's just whatever you have on you. But then if you wanna have something you can then sort of deploy, I wouldn't suggest deploying your laptop. Although we have done that in the past for some demos.

You could have just a Raspberry Pi b or Raspberry three model b, which is like several years old but can still run this and can be nice and affordable as a way. You might even have one lying around like a lot of people do when they go to events. Like, they just get one from Boots and things like that. And now you have something to do with it. You can connect a regular USB webcam.

You can connect a bunch of basic hardware like LEDs or buttons and get started. We even have like a the hello world of hardware which is like light up an LED. That's one of our basic code labs and easy way to just learn about how GPIO works. Any other questions or things I can go through? Yes.

I will show you how it works. So I will actually do something real quick. Let's see. So the Raspberry Pi itself is probably around between 40 and $50. Just the display is around a 100 or so.

You know, the laser cut pieces and the three d printed stuff is hard to tell because we just have that stuff available. But if you do cardboard, it's much cheaper, honestly. The servos themselves, you can get a pack of 12 for $10. And the piece the breakout board for the servos and stuff is another like 10 or $10 or so. And so overall, you can do this for, I would say, under $200 overall.

Oh yeah. Everything OnBot is free and open source. So if you're just doing controls and everything, then it's free for you to use. If you start to do like training computer vision models or uploading a bunch of data, that's what we charge for and it's based on usage. And so you get $5 free per month and then that's how you can you know, just get started and see what works for you.

But you can just get started building this completely software side for free. Yeah, of course. And so right now, I am So I'm on a different wifi network than my device and I'm just connecting to it so that I can show off how the quiz works without just do it up on my display. So this is actually the quiz running. I'm using a program called VNC in order to then just connect to the Raspberry Pi on the desktop.

And so the way this works is this TypeScript web app. Nice little cute character. Actually, I have a little clay version of this that one of our designers made that usually sticks on top but I didn't wanna get broken while I was away. And so it goes through this quiz and goes through like the various, you know, sort of questionnaires. And there's a bunch of these around.

And so you can go through as it's running. It just collects these. And the quizzes themselves are just JSON files, really. So you can customize this. We did this for SRE day in our office.

We just created a custom, you know, what's your DevOps robot personality and just made a new JSON file, uploaded it for the quiz. And now we have a very custom way of being able to do something unique per event as well. Because not everyone gets some of our like inside jokes that come from our office as well. So like this one one sort of tip I would say is like make it shorter. This one is like, I don't know, almost seven questions long and you can see the text is kind of like takes a while to go through.

Let's see. I'm just gonna keep going through all of these as I go through and But I love the animation. I love the sort of like details in the background that Emily did for this. Just makes it so so much more fun to work with. So now it's gonna go and, you know, decide what your thing is.

And so it gives you Barbie bot and gives you a nice little description of what's going on there. And then I can say, get me my sticker. And hopefully it will then bend down my sticker. And if it ever becomes stuck because no demo is perfect, we have of course unstuck my sticker. Yeah.

It's very slowly going. But again, this is where I pull up my nice handy dandy debugging. Here. So so this is the VM app. And here I can go over and to my little test panel.

I can say, I know this is on pin 10. And then I can run this. There we go. Cool. Yeah.

And so also to show you a bit like I was saying before about the quizzes. So this is a quiz file for this specific web app. And again, this web app is open source. You can go and you know, fork it and make it your own, however you want. And so it just describes each of the different slots for the different sort of stickers you're vending.

Gives some nice emojis and things to go along with it. And then we have all the different questions. And so you can see, if you ever really wanna figure out how to get the bot that you want, you could, you know, diagnose each of these questions and figure out the right answer for the one you want. But it just starts to say, okay, like, here's the associated bots from the array above that go into each of the different answers for each of their options. And so you can easily just start to swap these out for your own custom thing for internally or externally.

And then this just gets imported through our quiz here. As I before, we have a nice little admin page. Right here. So we have our quiz JSON. It's just important when we build the web app to then deploy to the machine.

So this web app is actually run, again, as a what we call a module on the machine. So I can go and deploy automatically new versions of that over my same CICD that I want. I can change versions. I can customize it. And then I can also configure in certain certain ways to say, okay, well, here's the various, like, motors I'm using or here's how you can even customize a whole quiz in this JSON if you wanted to rather than having to deploy a file and and redeploy.

So this sort of flexibility and the same before, we have, like, all the logs coming off the robots. And I can go through and see what happens. I can set up sort of webhooks to tell me like, hey, went offline or something happened. One thing I need to get to configure something to tell me when to refill it. So I came back this morning and a bunch of the stickers were gone.

So that would have been a nice little alert to come back and I would have come straight here and and fix it up. And this is, you know, I have I manage all of my different machines through here. We have a robotic claw game in our office as well. We built with a real robotic arm, and that's how we manage it as well through the same sort of interface. And it has its own web app that we deploy to control it as well.

Any other questions or anything I can help review? Yeah.

Nick Hehr: Some good new use cases which we can scale to the world. Can you please say something?

Nick Hehr: Sure. Yeah. So the question was about, like, power requirements overall as well as different use cases. So power requirements, so the Raspberry Pi itself needs five volts, three amps to run, and that powers the display and the Pi itself. And so that's like you can take almost any off the shelf USB C charger as long as it has at least three amps coming out of it, which is like most things you can get for kind of modern power supplies.

And then the servers themselves have a separate power supply that's also five volts, like half an amp or something like that. But it needs to be separate from the Raspberry Pi because it can't power all that off the Pi itself. So just two pieces of power in order to then run this whole machine. And eventually, I wanna try to pull them into one single, power control board. That way, only have one plug, but, you know, we'll get there and refine it over time.

Leveraging Community Resources for Development

So other opportunities. So I went through a couple in the slides. But like we I'll just bring up some of the So again, this is our resource for end to end projects that you could learn how to build. And so from start to finish, it gives you a full timeline of materials and how long you expect to take it. So we've had people who built stuff that's not just provided by us, but other people can contribute their own code labs.

So people build their own Pomodoro bot to help them with studying and using voice and local LM controls running on the robots. We have a series of workshops as well. You can learn about building an automatic plant watering device as part of that. You can start to build something. One of my favorites that I've built recently is a smart snack dispenser.

So kind of similar to what Jim was talking about with like the M and M's, the custom M and M's. Like, we built that as well for the office where it can use computer vision to tell when the bowl is empty and then refill it with more snacks. Or you can build it in other sort of like hooks into when to then refill it. And so we just took an off the shelf pet food dispenser actually from Amazon and just put a Raspberry Pi and a motor controller in it. And then we had an instant sort of like smart machine that we could use to make demos more engaging for conferences and events.

So we can bring that along and we could, you know, instead of having pointed a bowl, we could train a model to then maybe look for maybe certain color M and M's instead and start to then stop until or keep feeding until you find those. And those are ways to customize stuff around. We just published this one to control a robot arm with VM. So if you wanna integrate a, like, affordable robot arm that runs on a Raspberry Pi, the Yaboom DothBot's a good option there. It's a couple $100, but you can do quite a bit with it.

It already has a camera on it too. I said before, have the the self checkout. Let's see. We've done stuff with making LEDs. People detection, you can build into sort of that like queue management I talked about before to detecting like how long are lines for, you know, the coffee or for the bathrooms and things like that.

And then just other sorts of ways you can start to dig into and hopefully be inspired. This is one I did with Jessica Garrison who's also here and around with Elastic. So we built out a whole demo of taking in all the sensor data you have and uploading to Elastic Cloud and then using their automations to trigger something in the physical world. And so that was like, oh, the temperature's getting too high in the room, and then I triggered a, you know, fan to run. And so you can start to find these interesting points that someone else's existing stack can work with something like VM or any sort of hardware controls.

And this is also one of my favorites because I'm the one who has to maintain it. But this is our

Speaker 6: Hey, everyone. It's Adrian here, senior developer advocate at VM.

our: So this is our

Speaker 6: request log in our cloud game here which we built with a Vue Factory arm and it's connected to a custom built web app to actually move the arm. So let's check it out. So here we have some quick move positions which we can use to go to any quadrant over here. We also have some arrows if we wanted to manually move the arm to a specific location. So I definitely want to try to go to the back left.

So let's try that quick move position. And this is actually using motion planning. None of this is statically set. It is calculating how to get from one position to another through motion planning. So I want to move this a little bit more and dial in my exact location so let's try using the manual movement positions here.

I'm move it over here a little, down a little bit more, just a little bit. I want a very specific ball in there and I can use the claw to actually pick up a particular item. Darn. Just like real claw games I lost this one so anyway, maybe I can try next time. But right now, that is linked to picking up the ball, moving it back to the home position, and then dropping my non existent prize.

And that's the claw game.

something that Puzzalla: So yeah. This is something that Puzzalla here who is actually part of the team at the time helped build and brought to ICRA. They actually had it rebuilt from the prototype in the office overseas in The UK. Had a agency build that out And then they actually transported back to the office. And we rebuilt it yet again back in the office and have now transported around a couple places only with an office, not outside of it.

But that sort of thing is obviously a lot more in-depth. Requires, you know, a bigger arm, but you could miniaturize it in some way. You could start to take the core idea of being able control something that moves around into the real world and into, you know, something you can bring around in different places. Or if you have a great budget, know, build one of these. It's about $10 or more, I think.

But yeah. Yeah. Exactly. I've seen some budgets. They're kinda wild.

But yeah. This is that sort of thing is once you see something that's possible with, you know, something you can integrate with a web app, something you can integrate with just like, you know, an off the shelf off the shelf robotic arm. Like you can just order these. You don't have to be a fancy business to buy one, which is kinda wild to be honest. But it's we we even though it's something that's so in-depth, we still wanted to document it for anyone who did have the sort of like motivation to go do it.

So we provide, you know, all the three d prints that we have, all the different ways of like building it out, what is motion planning, how do you integrate it within like a type Testing. Okay. And so, yeah, there it's there's a lot to learn from and there's even more that we haven't documented yet. But, you know, part of it is not just what can I think of of, but like what can you all build with it? And so once you get a few of these pieces together, hopefully you start to see like, oh, well, this would be really cool to do at this event.

Or even just trying internally and and doing it like a show and tell has been super helpful for us too. It's like having engineers build something, show what they're they're building, and then that being documented becomes like a massive win for us. Yes, that's all. I I love having someone who used to work here be a plant. Yeah.

Yes. Yes. We have I don't have the code up here but discord.gg/viam,viam, is where a bunch of people are building stuff and sharing what they're building. If you run into any trouble, like I am in there every day in order to help people debug stuff or figure out what they wanna build and help them along. So I guess we have our Discord and like so many other people, but it's a lot of fun.

It's not massive so you won't get lost in the fray. And we're here there to help you. And hopefully you have some really fun ideas that we can you know help you accomplish. Yes? Offline.

Offline? So you can run VM server because it runs on the device. It can be automated to run without the internet connection. Once you it has an internet connection, that's when it starts to do stuff like be able to control it from the web app or be able to if you need to debug things or sync logs or sync any other sort of data you wanna capture back to, you know, the cloud services. But the Rolla can run offline.

It doesn't need to be connected all the time or twenty four seven. It's actually resilient to, you know, losing Internet connection. So it can have safety stuff as well in order to, like, say, like, oh, if you lose Internet connection, it can stop moving in case that's a problem. You know, if you have a web app that's supposed to be controlling something like a robot arm or like a rover, you maybe don't want it to keep moving after you lose the Internet connection between that web app and that thing. And so you can build on those safety precautions as well, but it does not need to be offline.

Like, again, like I said, the web app is running on the device itself and being shown on the screen, and so it doesn't need an interconnection to run. It can talk directly to the hardware without, you know, having a WiFi, which allows me to then control it from where I am. Cool. Well, I know we have a one another talk coming right after. So I'll actually give us some buffer time and I'm happy to answer any questions.

If you wanna come up and check out our stickers, look at it up in purse up close in person, I think we have some time to do that. So thank you so much for your time.