 Close. OK, cool. Well, welcome, everybody, to simplified cellular IoT with Blues. I'm assuming you, like me, are at least somewhat curious about how the power of IoT and low-power cellular can help you build awesome projects like connected toasters. In reality, you know this is one of the perception problems we have about the IoT today, and we're going to talk about this a little bit later. First, I want to step in a time machine a bit and head back a couple of decades, probably make you sick by looking at this slide for too long. Back to the late age of cassette tapes, as we started kind of migrating to CDs, that being about 1998. Just to set some context for 1998, this was when the last episode of Seinfeld aired. Harrison Ford was considered the sexiest man alive. And far more importantly, in Windows 98 was released. And this is when I got my start in programming. And back then, I was focused on web development, static websites, hand-coding rods, TML, no interactivity to speak of. It was about this time or maybe a year or so later that I learned about this growing set of dynamic web application frameworks like your cold fusion, Java server pages, active server pages from Microsoft and PHP. Collectively, these really brought the idea of the dynamic web to life for me. So these are web applications turning into, sorry, web pages turning into web applications driven by data. And the reason I bring these technologies up today is because it was really the first time in my programming experience where I could interact with something tangible, right, with data in a database. It was one of the first real empowering moments for me as an engineer. And I want to hold on to that idea of empowerment and come back to it in just a bit. But instead, I want to fast forward now to about 2010. This beauty was considered by CNET as the best smartphone on the market. This is the age of Justin Bieber, of course, and I know you're all excited about Twilight Eclipse coming out, Team Edward, Team Jacob, all that. Again, more importantly, it was in 2010 that the Arduino UNO was released. And it was within about a year or so of this that I was introduced to what I consider the second instance of true empowerment in my career. And that's with blinking LED lights, right? And of course it sounds like a joke, but I think most of us can probably relate to this and understand kind of where I'm coming from here because for the first time again in my career, I could write code that started to interact with the physical world. So those early web frameworks were empowering for me as a developer. And my first steps with coding for the physical world were empowering. And today, I want to introduce you to what I consider the third instance of true empowerment in my career. And that's with the super scary surprise in the bag over here. I don't want to ruin it too much here, but you can probably guess what's going to happen. But again, kind of sounds like a joke, but I think you'll see this is an example of kind of how far we've come in the IoT today. It is a silly example and it does kind of perpetuate the perception problem of the IoT, I admit, but there's a very pragmatic undertone to this. So we'll come back to our friend in our bag here later on. So that long-winded intro to this talk brings us to here to today. My name is Rob Lauer. I'm director of developer relations at a company called Blues. Blues is an IoT company that is really hyper-focused on making wireless connectivity easier for developers and for product designers. We're founded and led by former Microsoft Chief Software architect Ray Ozzy. Ray is well-known for starting up Azure back in the day and he was a key figure at Lotus. And I don't need to introduce anyone here, I'm sure, to the concept of the IoT or embedded development, but I do want to kind of set the stage a little bit. So a lot of what we are collectively building today revolves around using a tiny microcontroller to do what? We're maybe sensing something, measuring something, tracking something, maybe even controlling something. And the IoT exists, of course, to do what? It's providing this cloud integration for embedded development. So really empowering the embedded space, if you will, just like those web frameworks enabled web development for me back in the day. And this connectivity thing is important, why? Well, because aside from connected toasters, we all hope the IoT becomes a key component of expanding the reach of the internet. It is such a weird name, though, the internet of things. Like when the web took off in the 90s, we didn't call it the internet of PCs. Likewise, when mobility took off, we didn't call it the internet of mobility. So why do we insist on calling this next revolution the internet of things? It almost sets itself up for failure. Now you have to pardon me as I get on my soapbox here for a little bit because I have some pretty strong opinions on the IoT. It is related to why I'm here today, but I wanna start with the, if you do Google image search for IoT or internet of things, you get these like nebulous web looking things. To me, it says that nobody really knows what the IoT means in the general public, right? It tries to be everything and ends up being almost nothing at the same time. And of course, like I mentioned at the beginning, the IoT has a major perception problem. It does include internet connected flip flops. It's a belt that has an internet connection to your mobile device. It's a series of devices that lose connections. It's firmware updates that disrupt our workflow and add friction to our lives instead of removing it. It's newly created privacy concerns. It's security devices that can't tell a human face from a face on a t-shirt. And all of these make the IoT really easy to dismiss as a fad. And if you're familiar with Gartner's hype cycle, this is why recently they have placed the IoT in the trough of disillusionment here. But there is hope, this isn't super depressing. I would posit that the IoT is still in its early stages and it is a very natural next step as we have migrated from mainframes to PCs to the internet age, to mobility and beyond, right? Devices are doing what, they're getting smaller and we're getting a lot more of them and they need connectivity. So as mobility is maturing and as we're entering the AI wearable, AR, VR, I hate to say, but metaverse stage, that really does include the IoT for sure. So we're talking about an almost immeasurable number of devices that are connecting everything. And when the analysts talk, they talk about big B billions of devices and big T trillions of dollars. And there are really virtually limitless, legit examples of the IoT solving problems today, lowering costs, providing meaningful value, whether it's industrial monitoring and issue diagnosis or using the IoT in agricultural settings, right? They're gathering an insane amount of data by hand that could really never be gathered, much less processed, or sorry, they're gathering it automatically that could not be done by hand. Or in healthcare where you're seeing the IoT literally extend the reach of services into previously difficult to access places. So why am I off on this tangent? Because I feel like it's important for me personally that we kind of battle the FUD, the fear uncertainty doubt about the IoT. Because I feel like the IoT is really only gonna succeed when it solves problems in the embedded space where connectivity is critical, right? Connectivity enables us to do something that would be difficult, if not impossible to do otherwise. Connectivity really becomes the secret sauce here. And IoT solutions that focus on that, that focus on solving those real problems with connectivity are really key to advancing and legitimizing the IoT today. And as IoT developers, we are really key to unlocking this value. That's okay, that's me off my soapbox now. All right, now I'm not using this meme right at all in any way, but I do wanna use this to oversimplify the fact that the IoT and blues effectively exist to bring the device and cloud worlds together. We are really here to make wireless IoT easier and help accelerate your prototyping journey in a really authentic and legitimate way. So what the heck does blues even do? Why am I here? Well, our core mission at blues is really to make wireless IoT easy for developers and more affordable for businesses. Our focus is on securing your data from the moment it's acquired from an on a device from a sensor all the way through to your cloud application. All of our hardware solutions are low power by default to the tune of about eight microamps when idle. And we're also a very developer focused company. We are developers, we're building products for developers, we know the developer. Our developer experience is absolutely a top priority. And I think you'll see that play out with some of my demos here today. But I do wanna pause here because if you're like, whoa, this is getting a little salesy. It's a little too much of a vendor pitch for my taste. It is a vendor pitch, but I gotta check my notes here. Yes, we are at Embedded Open Source Summit. I know collectively I don't like to get explicitly sold on stuff unless it provides really obvious value to me. So let me give me a moment to kind of justify our presence here. So blues wouldn't exist without open source. And I think most tech companies would say that today that's nothing special. And what we provide, yes, there's a one-time cost for the hardware we provide. There is a commercial cloud service that we provide, but it's usage-based, not subscription-based. And there's an open source option as well. The carrier boards that we provide that I'm gonna show you today, the schematics for those are all open source and the SDKs that we provide are all open source. So this is Python, C, C++, Zephyr, Arduino, Go, I think those are the five. We also have a set of 50-plus purpose-built IoT solutions that are all fully open source, and we'll talk about those a little bit more later. So specifically, what does blues do? This is the note card, and I've got a bunch of them up here spread around on the desk and down below. It is a cellular IoT device. It does come prepaid with 500 megabytes of data and 10 years of global service that's all baked into the device. There's no subscription fees, there's no monthly SIM fees, there's no monthly data fees, but this is only half the story. The other half is our cloud service that we call Note Hub, and the two work together to form what we call a device-to-cloud data pump. In practice, what this means is developers buy a starter kit from us, hook up a sensor to it, hook up their microcontroller to it, gonna read data to that microcontroller, and then deliver that data securely over cellular to Note Hub, and then Note Hub will route that data on to their cloud. So to be clear, Note Hub is a cloud service, but it is not a platform. We're not trying to create a platform that locks you in. We exist to help you connect to your platform. That's a really key thing to understand, be it AWS, Azure, Google Cloud, or an IoT platform that you're already using. We're really trying to help solve that kind of messy middle piece of connectivity. And zooming in on the note card on the hardware a little bit more, the note card is the core of what we provide. It is a low-power system on module. You can come see them up here later. They're very tiny, 30 by 35 millimeters. It has an M.2 edge connector at the bottom for embedding in your board. There are both cellular and Wi-Fi variants. The cellular includes a GPS module as well. And as mentioned, it comes prepaid with 500 megabytes of data, 10 years of service. You can top them up if you need to. It has an onboard embedded SIM, but you can add another SIM to it as well. We provide dual SIM support. And the API, the way you interact with the note card, is all JSON, so gone are the days of AT commands, right? There's no archaic AT syntax to manage your cellular radio. And as mentioned, we have those SDKs for all of these languages and RTOSs. And on the cellular side, we work with NBIOT, LTM, and CAT1, pretty standard. So again, everything is JSON in and JSON out with the note card. So for an example, if you wanted to get your note card's GPS location, what do you do? You use the card.location API. This is what the request looks like. It's just a JSON formatted request. And the response is a JSON formatted response with some additional metadata that includes your location. And most of the rest of the API is set up very similar to this, very intuitive. So that's what the note card brings to the table, but just as importantly, you should know what you don't need when you choose note card, when you choose blues. You don't need your own SIM or mobile plan as mentioned, the note card does come with an embedded SIM with global support. Again, you're not using AT commands, you're using JSON calls to manage your cellular radio. There's no custom security implementation. The beauty of the note card is it comes with an integrated ST safe secure element with a hardware random number generator. There's a factor installed certificate that's provisioned at chip manufacturer as well. For firmware updates, the note card and note have provide over the air, firmware updates to either the host note card or ESP 32 or STM 32 hosts. And well, of course, there's always some power management you're gonna do, but with the note card, all the components are low power by default as are the firmware defaults. And in terms of certifications, the note card is FCC and PTCRB and device certified or end product certified. So in most cases, you don't even have to acquire separate certification, which is really handy. So to make it easier to use your note card when you're prototyping or even when you're ready to embed in a more permanent solution, we provide these carrier boards that are called note carriers. So these are development boards that let you snap in a note card and pop it into really any solution that you can dream up. For example, we have the note carrier F that provides a feather compatible socket so you can pop your feather compatible MCU right in there. The A includes onboard antennas and headers that let you hook it up to virtually any microcontroller you want. The B is a small form factor note carrier, so very tiny. These images are not to scale. And we have a Pi hat, so a Raspberry Pi hat, any Raspberry Pi single board computer can work with this as well. And a relatively new board from SparkFun is their MicroMod cellular function board that fits in with their MicroMod ecosystem. And again, the schematics for all these are open source except for the SparkFun one. I don't know if that one is or not. So again, in terms of completing this device to cloud story, we get to Note Hub. Again, Note Hub is the blue's cloud service that is a secure proxy. Receives data as a secure proxy from the note card and then we'll route that data to your cloud app of choice. Within Note Hub you can manage fleets of devices, again perform those firmware updates. And security, I'm gonna double triple down on the security thing because data is actually transferred from the note card to Note Hub off the public internet through private VPN tunnels. Can optionally be encrypted if you want as well. So there's no certificate management, no key rotation required. The note card knows exactly where to go as soon as it's powered on. You just need to tell it to which of your projects in Note Hub it needs to go to. And again, there is a self-hosted OSS Note Hub version that you can use. It is more limited in its functionality. But with the commercial option, you're only paying for event egress. You can send us as much data as you want. You can trim it down and just send out what you need and you only are charged for that. And there's a bunch of free stuff in there as well. So we're really trying to enable people to light users and prototypers to use us for free. Finally, to help kind of visualize where the note card in Note Hub sit and you give an IoT solution, I have this diagram to walk through quickly. So you're gonna bring your microcontroller, your single board computer, you're gonna use your sensors, right? Your programming language. We're not dictating any of this for you. You're gonna compose packets of data, JSON data that we call notes. These notes or these events are gonna be queued, they're gonna be stored on the note card. There's about a mega and a half of flash on the note card to use. At a cadence you specify, you say, hey, note card, go and send this data to Note Hub. And they're securely synced with Note Hub. But note, of course, as I mentioned before, we don't want you to store your data in Note Hub. We're not trying to trap you into Note Hub. We want you to route that data out to your cloud app of choice. Again, that could be a big cloud, could be an IoT platform like a data cake, UbiDots or LoSan, whatever you're using. And it's important to know that the communication with the note card is bi-directional. So you can start on your cloud app. You can send a JSON-based request to Note Hub using the APIs we provide. Note Hub will securely deliver that JSON payload to a note card, to a fleet of note cards. The note card will then deliver it back to the host. So you can see how you can provide, you can handle remote control scenarios, you can update fleet variables all remotely and all over cellular. So let's look at how we get started with wireless IoT with Blues in roughly one or maybe two minutes, just in slides, believe it or not, it's pretty simple. First thing we're gonna do is we're gonna seat the green note card on this black note carrier, then we're gonna plug in that micro USB cable into our computer. That's actually the beginning and end of the hardware setup. Then using a terminal emulator or the terminal provided that we provide at blues.dev, we use the web serial APIs. Actually use your browser to program it if you want. We're gonna send two JSON-based requests. The first is the hub.set request. All it does is tell my note card to which note hub project it should connect to. Again, by default, the note card knows it needs to connect to note hub when it's powered on. We just have to let it know which project it should be relaying data to. And that project, or as it's specified here, the product UID, it's a unique identifier, is what you're gonna paste in there and send that to the note card. The second command is note.add. Remember how notes are packets of arbitrary JSON data, whatever you need. Could be something as small as a bit, could be as big as a base 64 encoded image. The arbitrary data we're sending in this case is just temperature and humidity data. The sync true parameter in there is optional. This one's nice though, because it tells the note card to immediately send this data to the cloud. It'll save it to flash quickly, but then immediately make that connection instead of sending it later when it maybe is gonna periodically connect. So what happens next? Well, we navigate our browser to notehub.io and we see sure enough, our note card has connected to our project. And then we head to the events page, the events tab, and we see our data show up like magic. But we don't want your data to live on note hub. I've repeated that two or three times. That doesn't provide any value really. So note hub has a really powerful data routing feature that lets you securely route your data to any big cloud or in this example, a dashboard on data cake. So that's really the quick start. And that's honestly an incredible amount of power in about one or two minutes. And if you've ever dealt with cellular, you'll likely have some appreciation for the reduced complexity here while also maintaining that really high degree of developer control. But enough of the boring me talking at you, I do wanna show this off in action with a couple of real projects. These are actually kind of real. There's a ridiculous one here, but I've got a couple real ones. These are kind of interesting because neither of them require a host microcontroller to operate. All the logic is configured with the note cards themselves because there's an STM32 chip on the note card. It is not user accessible, but through the APIs you can access it. And I'm gonna talk about the two projects before I demo them. The first one is a pretty simple demo. That's a power outage monitor. So imagine any scenario where you wanna be actively alerted via SMS if power is cut. So maybe you're monitoring a cold storage device, maybe you have your way from your house and you wanna know if you lose power at any moment. In any case, I'm gonna show how simple this is to set up with just a note card and note carrier here along with Twilio for using the SMS alerts. So to configure this, and don't worry about the details here, I just wanted to kind of describe how simple this is to configure. There's two, there's only two requests that you need to send first. Again, is that hub.set request, which again associates my note card with my note hub project. And the other one is using the card.voltage API. This request tells the note card to monitor changes to the USB power state. That's what that USB true parameter is. And then add an alert, that's that alert true parameter. And then to sync immediately. So it's basically saying, if you detect any change of the USB power state, create an alert and send that to note hub immediately. And this uses very minimal hardware. It's literally just the note card, note carrier B, which is right here with an antenna. And I've got a lipo on here that'll actually keep it powered when my power is cut by yanking this USB cable. And that's the first one. So again, I'll show that off in a second. It's a very thrilling demo, as you can probably imagine. The second demo is gonna showcase the ability to remotely query sensor values from a device just using SMS. Now, I really love this example because it shows off a very simple hardware solution. It's just a note card, note carrier again, and a BME 280 sensor. And how Twilio can work with the note hub API to relay sensor data over SMS. Like the power outage monitor demo, I'm gonna send a hub.set request and I'm gonna use the card.ox API, which lets you enhance the built-in sensor readings on the note card through a BME 280 sensor that's wired up to the ox pins here. And I think I showed the hardware here in a second. And then it's also gonna use the card.temp API. This automatically gathers temperature, pressure, and humidity data at the interval specified, that seconds parameter at the end. I'm also gonna use a Twilio function, which probably can't read the code too well there, but effectively what's happening here is I'm querying the note hub API to pull the most recent event that's been sent from my device. I can quickly parse the sensor data, and I'm oversimplifying this a little bit, but it really is incredibly simple, especially using the Twilio examples that they provide. Again, this solution uses minimal hardware. It is a note card, note carrier A, a lipo battery, and a BME 280 sensor. So this guy right here. And all right, drum roll. So let's close this down for a second and make you a little bigger here. And let's do the power outage one first. And just to show you this project, and we can see that my device is connected here, my device is online. And what I'm gonna do is show you the route. So there's a Twilio SMS route here. And this is how you configure it with your Twilio SID. There's an auth token in here. There's some phone numbers that you provide. You can customize the message. I'm not gonna get into the details. There's also a really powerful feature in NoteUp called JSONata expressions. So you can programmatically alter, you can transform your JSON on the fly. So this is gonna send a JSON payload to NoteUp. NoteUp's gonna transform that JSON and then send that on to Twilio. And so if I bring up my device, should be connecting, here we go. And if I yank the power here, oh, I was mirroring a second ago. Well, if this doesn't work, I'll give it two seconds, three seconds. In any case, here's what I'm gonna do. I'm gonna yank my power here. And you can probably see the green light blinking there, hopefully. And what we'll see here in our events tab is this was sent just now, 1128. It says USB power off, USB is disabled. And you'll have to trust me that on my phone, I got an alert that said power's failed to this device. And if I plug this back in, I'll get another alert that says power was restored. So again, what's nice about this is a super minimal hardware solution that you can just leave running in perpetuity because it's powered obviously over USB, but also it will power that lipo, it'll maintain a charge on that lipo. And let's see the other one, which again, is a little bit less engaging if I can't actually stream my phone here. But I'll try it one more time. And that's with the remotely querying some sensor values here. All right. Well, let's at least show the project off. So this has been running, so it was last seen at 1116, so about 15 minutes ago. And this is set to only periodically connect to our cellular network and relay data every 15 minutes. Yeah, unable to connect. So we can at least see the data that's been sent here. Specifically, here's this temp.qonote. Remember, it's just this JSON here. So you can see our humidity pressure, temperature, voltage values. And again, you'll have to take my word for it, but on my device here, I'm going to send a text message that just says report. And I know you can't see this, but this is now going out to Twilio and then Twilio sent back temperature, humidity, pressure and voltage in a SMS message. So this is a great opportunity to, you're avoiding creating a full like data dashboard for this, right? You're just querying data. You can manage your, or write your Twilio function to do whatever you wanna do, whether it's report on a fleet of devices or alter the debate data on the fly, anything that you wanna do. So let's get on to our last demo here. Oh yeah, first I wanted to mention that one of these demos is available now and the other one's coming soon to our 50 blues accelerators. So again, these are purpose-built IoT solutions that are all open source, some of them even with a comprehensive cloud component built in. All of them showcase the best practices when using the note card and note hub. You can find all of these at our developer site at blues.dev slash accelerators. But now I wanna show another real project. And of course, remember, call back to the perception of IoT problem I mentioned earlier. I'm definitely contributing to it in this demo. If the demo works, we had some power issues earlier and I think it'll work, but it might take a second. There is a pragmatic undertone to this, believe me. So I do wanna set the stage here quickly. I have a couple of kids, they know all too well that I love to kind of terrorize the other kids in our neighborhood on Halloween. So back in October with the help of some colleagues, we put together this kind of jump scare that you can remotely trigger with a button. And I thought I would over engineer it and set it up over cellular. Why is this a good example project? Well, the core idea is very simple, but it demonstrates some really powerful features, right? I wanna push a button that's gonna trigger sending some arbitrary data to the cloud, right? And then from the cloud, we can kind of analyze that data, figure out what we wanna do with it, send it then to a different device to trigger an action, right? But it could be hundreds of devices, it could be thousands of devices. It's really arbitrary at that point. In this case, our action is to make a skeleton jump out of a bag, which we do by setting the state of a notecard aux pin without again using a host configured on this side. There is a host on the button side that I'll show you, but not on the side of the skeleton. And I'll get to that in a second. So it's a good example of bi-directional communication, right? Outbound data from a device, connecting to a cloud, delivering a new event to a new device. It's also about the minimal code we have to write to perform what is again, not a trivial process. So here's the start of the hardware. It is just an STM32-based microcontroller wired up to a button. This is nothing fancy at all. This is just the button side where I initiate the action. It's connected to a notecard and notecarrier here. I'd hold this up, but it's literally what you see right there. It's connected via a quick cable over I square C. I wrote a simple Arduino sketch that initializes the push button pin as an input, right? Initializes the notecard using our note Arduino SDK and associates the notecard with a noteproject, just like you saw previously, but this time using a JSON library in Arduino. And in the loop method, I'm simply reading the state of the button. If it was pressed, create a new event, a new note. In the note, we give it an arbitrary name, surprise.qo. We add this jump equals true bullion. Again, that's totally arbitrary. And that's it. That's this side of the equation right here. This is just the button side. This sends an event to Note Hub over cellular. And again, no AT commands provided or required. So that event is gonna appear in Note Hub here. Great. But again, it's not useful at all to let it sit here. We need to do something with this data. In my case, I immediately route this data to AWS, specifically to a Lambda function. Why Lambda? Cause they're super easy to write and deploy and I can easily hit that Note Hub API to send a new request down to the other device. And here's the said Lambda function in Python. It's not very important. I just wanna show how little code I had to write. There's two key elements in here though to understand kind of what's happening here. The first is we're calling a function of the Note Hub API. In this URL endpoint is a device UID. That's the unique ID for my note card device over here. And we're making this call to set an environment variable. This again is kind of a slightly advanced concept in the blues world. But basically environment variables are key value pairs that let you remotely configure devices or fleets of devices. And in this case, I'm using this specific environment variable called underscore ox GPIO set. This has been really one of the more confusing yet very, very powerful environment variables cause you can configure it so many different ways. Specifically there are four ox pins on the note card you can manage one through four. I'm gonna walk you through this but it's definitely overkill. So looking at the value of this key value pair in the first parameter here, I'm using it to pulse GPIO pin one low. So that's the first item in this comma separated list. I've ignoring two through four. So that's what those empty commas are there for. I'm gonna pulse that GPIO pin low for 1,000 milliseconds for one second. And it's only valid after this generated UNIX timestamp because we wouldn't want a delayed event to trigger something much later. And it's only valid for 60 seconds after that timestamp, okay? So I know that's kind of complicated but just a pause here. We are on the cloud, we've sent that note to Note Hub. Note Hub has routed it to a Lambda function that Lambda function is sent to request to the Note Hub API saying, hey, on this other device over here pulse this GPIO pin low for a second because we wanna trigger an action on the device which brings us to this other device with a note card attached. This is a prototype carrier board here that lets you control any normal outlet or high voltage device from anywhere, obviously. The carrier comes with two relays that are rated at a max of 220 volts at 10 amps. The carrier design is also open source and available on GitHub. So what does that GPIO pin do? Well, it triggers the relay to make the skeleton jump but what's cool about this is if you look closely, again, there's no host microcontroller here. Everything we're doing takes advantage of those hostless features that we've already talked about. And finally, how do we configure this skeleton note card? Well, just like before, we tell the note card to which Note Hub project it's gonna connect to. We set it to maintain a continuous cellular connection which lets us get the data back and forth as quickly as possible. And we need to configure the note card once to be prepared to set the state of that GPIO pin which remember we're remotely gonna toggle that low. So again, to recap, we've got our button and we press it, we send a note to Note Hub. Note Hub takes that data, delivers it to a Lambda function. The Lambda function tells the or hits the Note Hub API to say, hey, tell this remote device to pulse that GPIO pin low and trigger the scares. And yes, this is a very, very contrived example. But again, I hope it shows how easy it can be to set up communication in this bi-directional manner. Now for the anticlimactic demonstration, I'm going to, I'm not convinced my sketch is running on here so I'm gonna quickly redeploy this. And now it's allegedly running. So let's go back to our skeleton project here. It's called Kendall Halloween. I see two devices that are live, which is good. So I am going to press the button and now it'll remember has to make a cellular connection. It's gonna send that data to the cloud. And then the cloud's gonna hit my other endpoint here. I should see a green flash over there. This might be the biggest anticlimactic demo fail there is. Yeah, I'm not seeing any data getting sent. Let's try it one more time before we officially give up. I always get worried in these demos because stuff always gets kind of like disconnected when I'm transferring it around. And in fact, my skeleton got partially broke on the plane on the way over. But let's, all right, I know we're up on time here. So we're gonna look at our serial output here and give it one more chance. So if you can see that, so that's how it went. It's like Schrodinger's box here, right? It had to know that we were looking at it because I heard the relay engage. Oh boy, I hope I hooked this up, right? There, I see it blinking. Ah! Ha, ha, ha, ha! Yes! All right. Wow, that's amazing. I'll pull that out of nowhere. I know we're kind of, oh, I wanted to show this video really quickly here. This is when I actually deployed this in my neighborhood. There's a couple of funny moments in here. Hopefully it'll come through on the mic. She was very unimpressed and mad at me. This poor kid, I thought it was gonna be traumatizing but they didn't even see it. That was surprising, he says. So she almost tripped and fell like as soon as that video cut. This one you can't really see, but. So we got some good scares. Nobody was too angry or anything at me. Again, a lot of these projects we document, like we do a lot of kind of silly things like that but they are, there is a pragmatic undertone to a lot of what we do. They're all posted on Haxter if you're on Haxter ever and we have a list of them on our developer site as well. If you're curious about anything that I showed you here today and if you're a try before you buy kind of person, we, you can actually try out the NoCard API with our simulator, which is actually a cloud-hosted version of the NoCard firmware. You can get through our entire QuickStart process by just using that and again, that's available on our technical site at blues.dev. So again, just to recap really quickly, check out blues.dev for all of our technical resources. You can get your own starter kit if you want to at shop.blues.io. I want to promote one thing really quickly here. At the end of July, we are working with Edge Impulse and Data Cake on a tiny ML virtual boot camp. So that's July 21st, I think it is. So check that out at bit.ly slash blues-tinyml. And that's it. Thank you all very much for attending. Any questions? I know we can't have ran over a little bit. If there's none, that's fine. Oh, there's one. Yeah, so you can update NoCard firmware if you want to over, I mean, we provide like LTS releases of the NoCard firmware and then developer releases for people are actively developing. That you can update over the air. We have a new feature, kind of hard for me to explain in 10 seconds, but it's called an Outboard DFU, which basically allows you to program any ASP32, STM32, or Nordic. I think it's Nordic is included now, NRF52 maybe. A host microcontroller. The cool thing about that is the NoCard actually controls the firmware update process. So if you accidentally brick your device, it's not actually bricked in the field because the NoCard can revert that change. It's a really powerful feature and I'm not giving it enough credit, but yeah, that's all possible. Anything else? You can find us in the, we're at the top of the stairs over there too, if you wanna check out our booth too. Sorry, yeah. Yeah, so the question is about cellular connectivity if it's global. Yes, so we provide four different models of the NoCard. One of them is a narrowband global one, which is literally like 140 some countries. There are wideband specific NoCards as well that are specific to EMEA and well, there's another one that's specific to North America. The EMEA one actually has a lot of support in South America and some African nations as well. Cool. All right, thanks again everyone.