All right, boys. All right, I'll take you out and then I got to go turn these on just for a second Come on Come on guys Let's go in the yard. Good morning, everybody. How did you sleep? I slept fantastic? Ish fantastic ish It's gonna be a good day today. What do you say? Let's make it one. Can I just get a sausage biscuit place? Just with a hash brown no drink please Yeah Thank you See they respond when you say thank you, but if you say a super duper, they're quiet So you know they hear you Thank you So you know they hear you when you say super duper And they just don't know what to say. They're speechless It's good to know good to know Someone will respond someday What do you say to that though, right? What do you say to that if you don't know to say awesome possum you're probably just sitting there like what did he just say? Yeah, I'll watch too much anchor man. What well back where it belongs before it ends up somewhere It doesn't belong so I brought my own coffee today because I wasn't gonna spend money at Tim's this morning And then I forgot to eat breakfast So I had to go to Tim's anyway So here we are living the dream I'll make coffee Tim is biscuit And a hash brown I went all out. All right Hi, ho. Hi, ho off to drive trucks. I go Welcome to my new home away from home So it's a freight shaker. I'm just cleaning her down right now. This is gonna be my my girl. I think But I'm gonna be assigned to It's a little little day cab.  I brought my fantastic along and two rolls of Why did I want to say toilet paper two rolls of paper towel? Giving it all a good wipe down so I can come to work to a nice cleaning truck every day So I'm doing pick up and delivery Southern Manitoba it's gonna be fun. I think I've got a really good feeling about this. I'm really excited Then again, I'm always excited. I'm just excited for a new day. Look the sun is shining. I'm excited Clean my truck so that my excitement can be matched with a cleaner interior. I'm not a perfectionist I don't have to have like a a Immaculately spotless clean truck. I'm not a germaphobe. I'm the not at all I just like to have it like no presentable. I was clean There's me clean and some people don't care So I don't care if they don't care But if I'm gonna be in a truck every day, I just want it to be Up to my standard. That's just me though. Everyone's different Just waiting for some freight to come through here. I'm supposed to be picking up in a little while here in Winnipeg I'm a deacons corner on the east side of Winnipeg And I'm just waiting for the radio to light up here and for my orders of what to do next This day felt like it just blew by It's already 5 30 At least it's not completely dark out yet. I mean the south sky is a little bit lit up. So Days are slowly slowly getting longer for us again before you know it I'll be going home and the Sun will still be high in the sky and We'll still have time to go to the beach on Friday looking forward to that. It was a pretty Pretty standard day I would say it started off kind of slow and then it quickly sped up and it turned into Pretty good day a decent day. I think there's a good day Told you it was gonna be a good day You didn't believe me. I Just washed this jacket and at the end of the day today I spent some time washing the truck that I'm gonna be driving so it's a nice clean truck for tomorrow, right? Got myself all dirty again. I'm trying not to lean back on my seat That's why I don't like light interiors in vehicles Every little spot of dirt shows up as a stain And I plan on keeping this truck for a while and who knows maybe I'll redo this interior one day and I'm gonna do it with dark dark material I don't mind that it's not vinyl or leather. I just it's like a light gray and that's just asking for stains But it is the vehicle I picked I actually bought this truck over the phone in 2016, right? Well, it's 2017. I think it was This is the 2016 truck. Yeah, I think I bought it in 2016. That's right and I called my sales guy Teddy at Murray Chevrolet I Called him and I had a Colorado at the time and I told him the truck's not big enough Teddy I need a bigger one give me a bigger one same thing blacked out and So he sent me pictures of this truck And I said I'll take it When I got home from my trip because I was on a trip somewhere in the US what I got home from my trip My truck was waiting for me.  I got it as a lease to begin with that was a bad idea I shouldn't do that, but I did lesson learned and I now bought out the lease after we sold our house We bought out the train as well. You haven't been following so What a good feeling so this truck still got a lot of miles on her She's got about 89,000 kilometers on her right now. She's got and that's like Like 53,000 miles or so. She's got lots of life left in her yet plus. She's a Chevy She's good to go lots of people look at me Look at me. I'm all part of rush hour. Just like a normal person going home at a normal time like a normal person Wow, look at these guys. Hey you going home? Me too Ha, how about that? How about you? You going home? Yep. You going home? Going home Yep, we're all going home Like normal people. Wow when you Drive on the highway For a while you get used to you know being gone for two three weeks at a time And I have haven't really experienced rush hour at all in 10 years I mean, I'm not saying that that's the longest anyone ever has. I know there's a lot of you out there who've been Out on the road for way longer than what I was out for but Let me tell you I feel like I'm part of a club or something like everybody goes to work at the same time They come home at the same time strange Jesus Did you miss me? Did you miss me was I gone long enough and Chevy?  I got to put all my stuff down man. Hey guys You have fun today. There's a wife too. Did you miss me? How come you're not jumping up on me and all excited? I don't hear you barking Chevy You're pretty tame today, too. Oh Yes, this little training collar on he doesn't want me to beep it. He gets a little beep if he's bad Good. Wow works well And the time you've all been waiting for the comment review From yesterday, we're gonna do this again today because you guys seem to like it yesterday And this cheap green screen is kind of fun to work with look at me See if I do this you can sort of see that That's what's That's what's up. You want to see what's actually behind me one second here Keep watching. I'm gonna share with you. Don't tell anybody Okay, don't tell anybody You don't see what's behind me. Oh Where'd I go? Where'd I go? There it is There it is. But why am I out here in the middle of middle of there? See I'm still in the room right here. Oh It's because I'm using this web camera. I see let's try to use the other web camera USB video device There we go. That's how it was supposed to go down I'm just gonna leave it in there. I'm not gonna edit that out This isn't supposed to be a super professional video Okay, now how do I change this back? Oh no, what happened? Oh, there we are. Okay, so Why is this over here? Is it on this side? What's what's going on over here? What's this? Hey get out of here? Okay We're ready Ready for the comment review you guys ready So this is from the video yesterday. It was called this should work It was talking about this USB cable. I'm not USB a Ethernet cable That I got coming all the way to the back of the house from the front of the house It's 150 feet and it's probably not category 6 or whatever like you guys were saying it should be I probably wasted my time and my money And that's what I get for being a vlogger and not a streamer But here we are living the dream. So anyway, it is better It does say category 6 on it though. This is CAT dot 6 I Don't know. I thought I ordered the best of the best I guess we'll see what happens I got to call my internet provider because I'm paying for 500 megabits per second upload and download and I'm only getting like 14 to 16 That's a big difference and I'm paying for them all go anyways Comment section here. So this is just the newest first We won't be able to get through all of them once again Otherwise this vlog will be an hour and I know some of you are like, please trucker Josh make us an hour long vlog I'd love to but I I don't think everybody wants it to be that long I don't know if I get enough comment saying make an hour long vlog Maybe I'll try maybe I'll try But I think 20 to 30 minutes is long enough. That's where I like to keep it between okay Jake Ridley seven minutes ago said sup Josh Sup Jake I'm gonna respond. I'm gonna respond. What should I say? What should I say? Something clever Got it sup nailed it All right. What's this? Lil Nick just so you know, there's multiple Ethernet cable categories 5 5e 6 and 6 a are the most affordable for price and quality video With 5e which is not that expensive. I have a 750 to 800 megabits per second You should invest in a good cable your cable is probably Chalking around 485 megabits per second that you're missing see right on the cable right here. It says category six So I did get a six cable. I know I did it's just I Gotta call my provider and see what's going on there Bob mayor, are you the mayor question? I just wonder Josh I mentioned this before on your channel. Why not? Drive for Tim Hortons here in Ontario They run around in good current trucks pulling pup trailers power tailgates pallet trucks uniform supplies benefits and probably Tim Carton yeah, the only thing is I don't live in a major city I don't live in Winnipeg where their headquarters would be so it would be a very long commute to work and a very long commute back And it's it's just not that easy and I want something that's much closer to home And that's why I'm not a Tim's driver.  I'm gonna click this right here That's a good idea I'll do another one right now Beth nap says love the idea of reading comments.  Wow has Britt gone back to work yet. No Her work has been closed down for two more weeks yet. That's for two more weeks It was supposed to reopen on January 8th and they restricted essential item selling thing weirdo stuff in Manitoba here For another two weeks It doesn't make sense to any of us. So you're not alone. It doesn't make sense to me either But no, so there's that. Nope. She's not back at work yet But she's she does still have her job. She will be going back as soon as they let her as soon as the overlords let her Mike Merce is awesome job installing the network cable just like a professional Wow, thanks Thank you very much Mike. I like how YouTube sometimes like gives me like Responses that I might want to say and usually they're the right thing It's creepy how they know what I want to say, right? It's creepy Bruce Kimmel one of my longtime followers Good job on the cable, you know, I'd consider him a friend already You've been with this channel for so long and you always leave nice comments every day And you watch every video and I know you do because you comment on pretty much every video So thank you Bruce. I appreciate you and I think I appreciate all your comments. Thank you Good job on the cable. Don't call ghostbusters. Call copper Josh Comment review is awesome. Really dig your content. Josh. Good luck with the new job. Thank you Nice job give you a hint paint the cord the color of the wall and you will definitely not see it It's a good idea. It's a good idea Walmart and Amazon is hiring. They're looking for relay drivers very true very true B61 Mac But again, that's in the city of Winnipeg and that's a very long commute from where I live right now And even longer from where we're gonna be building our house He also said the dogs look like kids waiting for an ice cream. They always look that way Unless if they're sleeping, it's one or the other. They only got like two emotions sleeping and super excited like kids waiting for ice cream Zombie guys says you have a lot of nicknames trucker Josh laundry Josh baby making Josh Oh, I got a whole list of names. I mean we could go on and on all night But I got to keep going here in the comments You like the comment review awesome glad to hear it Good stuff good stuff. I don't know if I'm gonna do this every day guys. I don't know Maybe I'll make it a separate video some days. Maybe I'll include it in the video in other days If I don't get a lot of content Maybe I'll add it to the end of the vlog But maybe if my vlog is already like a half hour long, maybe I'll make a separate video out of it We'll see we'll just roll with the punches. I really like these two so I'd like to do them more often I just don't know if I'll do it every day. Let me try it for a while And if I feel like this is something I'm gonna like get in the routine of I'll let you know, but we will be doing this More often. That's for sure. I like it too Jason Rissner said I did the same thing with the ethernet run in my place Which was a rental but not nearly as cleanly nice work. Thank you But as far as your internet speed problems You've only partially solved your problems with that cable if you can directly connect the laptop to the incoming modem and Test it there. You should that should tell you if you're getting knee-capped by your router Or if you need to call a tech out to fix your internet Interesting that you mentioned that because I did connect it directly to my directly to the modem and Skip the router altogether and it didn't work at all nothing Like it was in the land port one that goes to the modem, right? And then there's land port two three and four I put it into two three and four and connected it reaches a computer nothing But I the router is connected into land port one and then I connect The computer into land port one two three or four from the modem I mean from the router and it works But it's only at like 14 to 15 megabits per second and I'm paying for 500 And I'm not a computer geek. Okay, I make videos on the internet I kind of understand how to like put videos together and Use these tools for my advantage, but I don't understand exactly how they all work Which is frustrating because I wish I was a little bit more of a geek I could solve a lot of my problems myself sort of like the way I'm not really a mechanic, but I like to drive trucks. I love driving trucks. I love operating trucks I can do anything you ask me to do with a truck within You know within reason and reality ask me to fix a truck I Mean like change out a piston or change out Like like take the engine apart and fix something on the inside forget it forget it. Nope Nope, I'll just drive it. You fix it. All right, mr. Mechanic you fix it I'm the same way with vlogs. I know how to use the tools and Create what I want to create with them, but if they break down I'm calling the computer mechanic. I have no idea, you know So, uh, maybe I'll try again. I'll try again this weekend. Maybe I'm gonna fiddle around with it a little bit more I'll give you a heart. That was a really good comment. Thank you for that. That was a really good suggestion I I did I did try that already, but I'll try again.  Music adding moisture in the air in the winter. Yeah. Oh same guy Jason Yes, you did spot a dehumidifier. Our house is unusual Unusually humid. I know I thought it was weird too But if we don't have that dehumidifier going our humidity goes up to about 86 to 90 and It's and in fall it was over a hundred that dehumidifier is just keeping it down to like 40 to 50 We have a really big humidity problem in this house And it could be because our crawl space hasn't been vapor barrier And it's one of our projects for next year on this house we got to get the the The crawl space underneath this house vapor barrier because what happens is the water goes into the ground, right? Soaks in and then it tries to come up and it's just dirt underneath our house So it comes up and there's nowhere for it to go and our crawl space for some reason isn't vented So that moisture has nowhere to go So I think it's being pushed up through the cracks and stuff into the house and all the moisture is making That's way into the house which is risky Risky for mold risky for rot stuff like that But this house was built in the early 70s late 60s and it's been like that its entire life And there's no mold in this house. We had inspector go through here. We had my dad her dad and me If that counts for anything go through this entire house and we couldn't find anything significantly wrong with it And there was no mold So it's been like this for a very long time and hasn't developed any mold problems But it does have a humidity problem, which is something we're working on And hopefully we can get that fixed but for now. Yeah, we have a dehumidifier going Constantly and it keeps the house comfortable. It's not like a big big issue We got it a couple of months ago, and it's been it's been working, but good call though. Good. I You watch closely. I'm impressed Catherine says wonderful dogs. They are I agree. Thank you Notice in the I noticed it in the corner before you said anything just paint it the same color as the wall That's what I do. Good. I Andrew good. I I wouldn't have noticed it, but at least I know someone's gonna notice it, right? Maybe you paint for a living Well, I mean I guess depends what you do for a living people who paint or build houses for a living That's something they would notice right away. I Don't know. Maybe you just got really good eyes Uh this vlog doesn't have Timmy's in it. Did I not include Timmy's in it? That's wrong. Go back to the beginning of the vlog when I made my coffee. What was on the coffee pot? Go back there. Timmy's was in the vlog and give you a Heart anyway, though best YouTube channel ever. Oh my Oh my that is there's a lot of YouTube channels out there. Thank you. Thank you the last one and The last comment our last two comments here Ray 1957 tn Josh you may come to my house and clean up any time. I enjoy the drive through town. Thank you Big hands card magic again They sell wire covers to help blend or hide wires into the wall. We have some of them too Yeah, I've seen those before right and Steve Powell says I use power line adapters to achieve the same thing as a Cable when routing one is awkward You get some pretty decent speeds. Not sure if Canada has those though. Well, I'm sure we do I'm sure we do if they make them. We have them Anyways, that will be that there's so many more comments to go through and I'm sorry We can't make it through all of them But please leave your comments in the comment section down below And maybe they will be featured in our next comment review and I will be able to respond to you right here in the video You guys are awesome. Thanks great comments Someone left a comment on my video yesterday saying Josh. Do you ever have negative comments your comments are so? Positive and that's so unusual for YouTube My response to that is yes, I do have negative comments But there's so few and far between because I Believe we have a great group of people here. We have a great team Teenage tjv or just us. We're a great group of people and Very kind and generous. I appreciate all of you very much. I'm very thankful for you Thanks for watching today everybody and I'll have a new vlog up tomorrow


Hopefully, we're all in the right place. I'm here to talk a little bit about the basics of IoT development, just all the way from the beginning, prototyping phase, all the way out to production. That's obviously a very broad topic. So this talk will end up being a very high level survey of a lot of things you need to think about as you're looking to move into the IoT development space. Given the target of this conference, if you have been doing IoT devices for many years, you probably won't get a whole lot out of this talk. I appreciate you coming anyway. But for those that are new to the space, hopefully this talk will give you a good overview and some things to consider as you start thinking about how you're going to design your systems moving forward. So just a brief overview of what we're talking about. We'll start just talking about what IoT is and what are some of the markets that it's targeting. Most of us, I'm sure that'll be refresher information for, but it's always good to start with a little bit of motivation for why we're talking about the things we are. Then we'll talk a little bit about the hardware and software things that we would want to look at when you're designing an IoT system. And finally, we'll kind of go to a little bit higher level and talk about some of the overall system design considerations in the IoT space. So a bit about me. I've been in the embedded Linux space for about 10 years now. Primarily focused on Yachto. Longer than that, I've been in the general embedded space. My current role is primarily as a project lead and a solutions architect. I'm not deeply involved writing the code on a day-to-day basis, but I am a technical customer-facing engineer on the Mender.io project, which is an over-the-air update client and server for embedded Linux devices. We've got a booth out there. So if you are in the IoT space and have a need for updates, which we will certainly cover here in a little bit, feel free to swing by. And we can give you some more details about what we have. So let's start with the definition of IoT. When I was putting these slides together, first thing I did was what everybody does and go to Google and type in IoT. And I got a few choice links here. Business Insider claims it's a network of interconnected objects able to collect and exchange data using embedded sensors. So a lot of words there. Then I found this other one on the IEEE, which was a lot more content. It was 86 pages. I read about the first paragraph and a half and stopped. So the link is down at the bottom. Feel free if you are looking for if you're having trouble sleeping or whatever. Download that, and you should be in good shape. After that, I went to the font of all knowledge today. I went to Wikipedia. And Wikipedia has a very similar definition, a network of physical devices, vehicles, home appliances, and other items embedded with electronics, software, sensors, actuators, and connectivity, which enables these objects to connect and exchange data. Again, lots of words. But it comes down to a couple key characteristics. In the internet of things space, we're always talking connected devices. It might not be always on connection, but there is some kind of connectivity to these devices. Generally speaking, you have some number of sensors that are able to detect characteristics of their environment. You have some number of actuators that are able to affect change in the environment. And in a lot of cases, you have cloud infrastructure involved. That's not strictly speaking required. There are plenty of IoT applications where there's no connectivity back to the cloud. But more and more these days, things are moving back to the cloud. So what are some of the typical IoT applications? First ones that come to mind are the consumer devices. Obviously, the Nest thermostat and the competitors there for the smart home climate control systems. Smart lighting, I've got a few different things, one from IKEA and one some random that I picked up on sale on Amazon one day to control lights in my house. Home security, there's a lot of those. I know the Ring Doorbell is a fairly common device that's advertising quite a bit now. And there's other connected alarms and that kind of thing. And connected automobiles, obviously a very big space. I know there's a lot of people here in the automotive space and automobiles are getting more and more connected every day. I saw a stat somewhere that a modern high-end automobile has about 10 times the number of lines of code in it as the 747 jet. So think about that next time you're getting into one of these vehicles. There's a lot of code in there and there's a lot of connectivity going on. Other markets for Internet of Things industrial applications in the operations center, a lot of factory inventory management. It makes it a lot easier to deploy a large fleet of fairly low-power devices to track things that previously would require fairly high compute capabilities. So a lot of factories are retooling and adding new capabilities to track things at a much more granular level through the factory processes. Seeing some in enterprise, supply chain management is obviously a big deal. I'm sure we've all seen headlines of issues with supply chain management and when can I get the next greatest phone and when are they gonna have enough LCD panels or whatever. So being able to track the supply chain as the parts you need go from one place to the next and make it all the way to your manufacturer device is pretty important. Medical, obviously there's a lot of things going on in the medical space and then business operations. I've read somewhere about an elevator company that's using IoT enabled services to help improve reliability, to decrease downtime, decrease the time that people are stuck in elevators when there are inevitable issues. But the ultimate goal for all of these, especially once you get outside of the consumer space is obviously lowering your operating costs moving forward. And finally, one area that some places are doing better than others is in the municipal space. Obviously, traffic control, public transit, there's a lot of possibilities there, especially with the connected automobiles. I know I'm from the Tampa, Florida area and I know they've got a project going now. Somehow using connected automobiles and then sensors on the streets to help control traffic flow and do extra studies and things like that. So there's a lot of interesting applications. As I mentioned, cloud infrastructure is increasingly important in the internet of things. You see all the logos on this slide. There's no end of providers for cloud infrastructure. At a minimum, they're used for device control and data store in your internet of things applications, depending on exactly what your workflow and use cases are. The cloud infrastructure may provide AI and big data services in addition to just simple data aggregation. And some of them also have overall fleet management, device dashboards and that kind of thing where your operations team can actually see at a glance a view of your entire device fleet, be able to be able to make changes, trigger updates, turn devices on and off that kind of thing. So this is a diagram I put together to kind of help explain what IoT is because there's a lot of buzzwords in there. You see at the upper half of the screen is the world of atoms, that's the world of real things. And then we have our lovely little border there which is called the edge and on the inside of the edge is the world of bits. And that's, you know, the IoT kind of spans that boundary. You have a number of devices. The device is in green here. One of the architectures is the devices themselves on the edge will connect directly to the cloud. So the device, and that's a lot of the devices that folks at this conference deal with, they're running a full embedded Linux system. They have all the connectivity they need. They're able to connect directly to the cloud and they can do whatever they need on the device themselves. Some of the lower powered devices things running, some of the smaller RTOS is that kind of thing, might use, sorry about that. There we go. Some of the other devices might use a gateway between the device. So some of these devices will be running a small real time operating system with limited connectivity, limited communications capabilities. So then they would pass the data back to a gateway which has more capabilities to actually deliver that data back into the cloud infrastructure. And the third typical architecture we see is that the gateway is sometimes optional even for some of these smaller devices. They can communicate between themselves directly. There may not be actually any cloud connectivity needed for a particular use case. So in that case, if your devices can communicate directly to each other and share whatever data is necessary, you can get away without even having the gateway in that instance. So talking about some of the connectivity options that you'll need to consider when you are planning your design, the first couple on this list, I think most of us are familiar with, we've got the short distance, generally considered personal area, NFC and Bluetooth. Although I've seen claims that Bluetooth can go up to 30 meters, I don't think I've ever managed to get my Bluetooth headset to go more than about six or eight feet before I start getting dropouts. So depending on the amount of data you're transferring, obviously you're gonna get better or worse distance on some of these things. Moving up into medium distance connectivity, venerable Wi-Fi and Ethernet, I think we all understand what that is in the pluses and minuses of those. Those are obviously fairly high bandwidth, but especially if you're dealing with Wi-Fi, you've got some extra configuration that needs to be tracked and that kind of thing. Moving on from there, these are some of the emerging technologies that are increasingly in use in the internet of things space. These are typically longer distance than within the buildings. City scale is what they're looking at here. You've got Laura and Laura Wann, which are protocols that are governed by an industry alliance and there are a number of cities that are rolling out these kind of networks. And then SIGFOX is a commercial entity doing a very similar thing. So if you've got a fleet of, say, weather sensors you want to deploy across the city, the devices can communicate over some of these protocols and not have to have any kind of gateways or anything. And the big advantage is, of course, the battery life on these things is measured in years. They're very low power. They're not really intended for high bandwidth applications. You're not going to be streaming multimedia data over these protocols, but that's not really what they're designed for. And then moving out from there, looking at even larger scales, nationwide, statewide, then you start looking at things like cellular and LTE with the obvious costs associated with that. So when you're talking connectivity, some of the, you know, you've got to figure out what your bandwidth needs are, what your latencies and that kind of thing are, as well as what the costs are going to be. Obviously with Wi-Fi and Ethernet, typically that's not going to be a metered connection, but obviously when you get into cellular and LTE, you're generally going to be paying per bit in that kind of scenario. So moving up the stack a bit, we have the higher level IoT communication protocols, and there's definitely some overlap between things here, but these are the kind of things that are typically layered on top of the base connectivity that we discussed in the previous slide. So HTTP and Secure HTTP, REST APIs, that's a pretty common mechanism that's used today, but there are some other things in the IoT space that you will start to see as you ramp up in your research tasks. Six LowPan is an implementation of IPv6 over some of the low power WAN protocols. That's not one I have any direct experience with, but I know it does come up from time to time. MQTT is a, it's a more structured protocol than say something like a REST API where you get to define everything. MQTT really follows a public subscribe model. It's very lightweight. Most implementations typically run across your standard TCP Ethernet links, and there was sometime recently an actual standard published for that, so that's getting to be extremely common in the IoT space, and it's very easy to use. There's libraries for just about any language you may want, and it's very easy to get started with that. Then there's another one called ZeroMQ. It's similar in its, you know, it does have the published subscribe model, but it supports a few other models. There's more push-pull and router dealer kinds of things that are implemented in there, and it is an open source protocol, so that makes it very applicable for most of the Linux-based IoT designs. And then you'll start to see things like ZigBee, which is primarily used for home automation. I think that's a little bit lower level protocol than something like MQTT, but it's definitely growing in popularity. And then one that I have had conversations with folks about, which is kind of a bit of a stretch to have on this slide, but it's the DDS, which is data distribution services provides for global data space distributed with proper access control. So if you have a fairly large amount of data that you want to have distributed and have proper backups and that kind of thing, this is certainly something to consider moving forward. So hardware. First thing typically in the design is you're gonna start thinking about hardware. First choice is, do you have an MCU versus a system on chip? MCUs are generally lower powered systems, not gonna be running Linux, probably will be running an RTOS of some kind. I think probably for this audience, we're probably mostly looking towards the SOC level, but I know there's quite a few folks here doing things like Zephyr and other real-time operating systems that are more appropriate for the MCU level chips. From there, once you've decided on the basic chip set that's part of your system, then you start looking at onboard peripherals. What hardware does your particular use case require? Most of these chips are gonna have a variety of onboard peripherals, and if you're buying things you don't need, obviously you're paying extra money, but if you buy something that doesn't have what you need on it, that's not good either. So that's the next basic step in deciding on the chip is mapping out what your use cases are and what peripherals you may need. Then start to look at the hobbyist versus the commercial vendor type platforms, Raspberry Pi and Beaglebone. We use those a lot in our day to day, but typically lead times in inventories can be tricky if you're gonna be producing builds in tens of thousands or hundreds of thousands of devices. You may be better off going with a commercial vendor that's able to actually satisfy those numbers. Other things to consider, are you gonna have battery power or is it gonna be hard wired power because some chips are gonna be running, obviously, lower power than others, so that's something to consider, and obviously price always comes in. And the last one that I mentioned here is the form factor. Boards like the Beaglebone and the Raspberry Pi are typically standalone boards. They'll be mounted in a case somewhere, but the boards themselves are fully functional without any add-ons. Then another common design that we see a lot is the system on module, where you have a baseboard, which is typically provided as a reference design by the manufacturer, and then they also provide the system on module where for your design, you would take the system on module unmodified, but you would create a custom version of that baseboard that would have the exact peripherals you need on it. The nice point about these kind of designs is you can customize in the baseboard the connectivity between the psalm and the baseboard is well-defined so that you know that if your board works with their baseboard, that as long as you use the same protocol and have the same pinout, you'll be able to plug that into your custom design. And it also gives you the flexibility most of these vendors have a wide range of system on modules that are available with different MCUs or different SoCs on them, so if you start with a lower powered chip and at some point you decide you need to move to a higher powered system, you have the ability to simply swap in a new psalm and it should in that case work pretty well with your existing designs without having to retool your designs. So once we've picked hardware, now we need to start thinking about the system software that we're gonna be running on these devices. Three main choices typically are full blown OS which I think is probably the choice of most of the people in this room versus an RTOS versus just simply writing bare metal code directly write every line of code in the system do it a bare metal control loop. Then once you've chosen there, obviously if you're in the Linux space, you have a choice for system development tools, things like Yachto and Buildroot which are very common and there's a lot of expertise here, a lot of folks talking about those kind of things. Then OpenWRT is another option and finally you have things like Debian and other desktop class OSs that have been repurposed in the embedded space. And then from there, you also have some additional deployment strategies, hypervisors and containers. Obviously there's a lot of talk of that, a lot of activity in the industry today with a lot of asynchronous multi-processor designs where you're running maybe a hypervisor and you're running an RTOS on one core and a full blown Linux instance on the remainder of the cores and things like that. So there's some very high level decisions that need to be made about your system software deployment strategies. And finally, depending on the industry you're in, security and safety are a big concern. ISO 26262, it's a automobile functional safety spec. It's pretty hard to satisfy something like that in Linux but a lot of the RTOSes will have that. So that's where the AMP type design will come in. If you have some areas of your code that need that level of certification, you can implement those in an RTOS on a sequestering core and then have your Linux system handling the rest of the connectivity on the other cores of your multi-core chipset. And then obviously things like SEA Linux, App Armor and SMAC are our Linux side security frameworks that can add additional security over the traditional split model of users and then who can do anything and everything. So moving up the stack a bit more, now we start talking about application software and this is definitely outside of my area of expertise. So most of these things are just names to me but application frameworks that we see commonly, things like Node-RED, Node.js, those are very common in the IoT space. Eclipse Cura is, I believe it's more of a development IDE type plugin that works on the development side and then Qt, obviously a lot of the graphical embedded Linux applications are running Qt-based APIs. And then from there, how are you gonna develop your code? You can use Eclipse or some kind of CLI or what are your developers gonna be looking at on the day to day? Typically if you're in a commercial RTOS or even an open source RTOS, they're gonna have one mechanism for working. If you're in the Linux space, obviously it's gonna be very dependent on the build system that you use, the packaging system that you use and that kind of thing. Language availability, something to consider. If you're in the Linux space, that's usually not a big deal. Golang is obviously increasing in popularity. I see a lot of people talking about Rust these days, although I don't think we've seen it a whole lot just yet in terms of actual devices going to market. And then finally, just look at third-party package availability. You know what your use cases are. You know if you need specific libraries or specific protocols, a lot of that is gonna help drive some of the other decisions that you might make based on where the libraries you need are available. If they're in the Yachter project, great, that's an option. If not, if they're provided as packages for Debian, that may push you towards a Debian-based system and likewise for other packages and protocols you may need. So just briefly mentioning a few things. If you aren't running Linux, a couple options I mentioned, the bare metal embedded control loop, very low level, writing everything yourself. And then one step up from that is an embedded RTOS, things like Zephyr and Minute, include OS, free RTOS. Those are all things that we hear in discussions with the IoT developers that they're considering. And then there's commercial offerings such as Nucleus VX Works and QNX. Obviously the cost models are gonna differ very between them. Sometimes there'll be royalties, sometimes there won't. Sometimes there'll be a development upfront license. So that all has to be taken into consideration as you're planning your system. And I did wanna mention Windows IoT Core here. I wasn't really sure the best way to classify it other than as a desktop class OS in the area I live. There's a lot of Windows IoT development going on. So I've actually been to several meetups with folks that use it and they really like it. I don't know enough about it to really comment, but it is an option. Moving on, if we assume that we are working on a Linux system, I briefly mentioned some of these, but you have quite a few options here. You have your desktop class distributions, Debian, Ubuntu, things like that. Couple options with those. You can go with the direct install. Typically, most of them are available just in a disk image that you download. You DD out to your SD card or your EMMC and you boot. And typically there will be a package manager, apt-get, something like that.  Another option for the desktop class distributions is packaging strips. I know that in the Debian space, there's DE Bootstrap and other options that actually allow you to kind of script and customize these systems offline. And then the output, of course, is typically the image that then gets written to your storage media. One step down from there is the embedded distribution builders, things like Yachto, Buildroot, and OpenWrt, which I mentioned previously. We'll go into a little bit of what those are in just a moment. And finally, there's some hybrids which are new to me. I know there's folks here that are giving talks about them. So things like Esar, which is an ELBE, which I believe are basically just using BitBake with special customized recipes to actually pull binaries from the Debian build system. So you're actually not doing a full build every time of each package like you do with a typical Yachto BitBake build, but you're actually still able to control it and set up your designs and your configuration in a language, configuration language that you may already be familiar with. So Yachto Project, for those that aren't familiar with it, the quote at the top of this slide comes directly from the Yachto Project website. The primary focus of Yachto is the recipes that tell the system how to build all the packages that are part of your system, how to build the images and that kind of thing. The primary output of a Yachto Project build is a package feed, which is really just a directory somewhere in your build tree with a whole lot of .rpm files or .deb files or whatever packaging format you choose. The secondary output is the boot images and this is the actual bag of bits that gets installed on your storage media and it contains typically the entire root file system bootloaders and that kind of thing. Yachto generally builds all components from source although there are some things like the Linux firmware that are typically just binary blobs that are installed and the Yachto focuses on mechanism not policy and that kind of goes back to the quote about it's not a distribution, it builds a custom one for you. There are sensible defaults for most things in Yachto so that you can get up and running really quickly. However, Yachto is focused on allowing you to make changes to things like the init system so you can switch easily between sysvinit and systemd and things like that. So the focus of the Yachto team is not to enforce policy on you as the system designer so you're able to customize it however you want. Moving on to build root. Build root has a similar objective to Yachto. It's focus is on a much simpler view and they build simpler systems by default than the Yachto project does. They don't support package feeds in the same way that Yachto does. The primary output of build root are the images that are installed on your system so it's the root file system, the kernel, the boot loader and that kind of thing. It does again focus, it does build everything from source and its default is to focus on simplicity so if you download the build root sources and you build without making any modifications you're gonna get a very bare bone system that is enough to come up to shell prompt and connect to a wired ethernet and then you need to start adding things back in turning on package configurations for all the packages that are installed and that kind of thing. And finally just want to mention OpenWRT. It's a fully writable system with package management so it's very similar in concept to things like Debian and Ubuntu. Its primary focus is networking obviously based on the name, it came out, it originally started as a replacement firmware for the Linksys WRT family of home routers. It's since been expanded to support just about every commercial router available. If you look at their support page it's pretty impressive how many devices are supported. It does, it's primarily a binary distribution, there's more of a separation in the OpenWRT world between the bits that you run and then the build system than is for example with Yachto and build root. So most users of the OpenWRT won't be messing with the OpenWRT build system. You'll just download the pre-built binary for your particular router, install it and you're good to go. And they do provide network available package repositories for OpenWRT unlike Yachto and build root where especially with Yachto the package feed is part of the build that you do which you can then make available on the network but there are no generally available package repositories for those whereas with OpenWRT when you install and boot up you can actually go to the package manager and install new packages on your device at runtime. So looking up at a little bit higher level considerations for when you're deploying an IoT device fleet. Things you might need to think about what are the lifetimes of your devices? Typically consumer devices, the lifetimes are anywhere from six months to two to three years although I think the router I have at home now is four to five years but it's getting long in the tooth so I'm getting ready to replace that. If you're in the automotive space you're talking at least a 10 year lifetime once the systems are deployed and typically the lead times for new designs in the automotive space is between five and 10 years so right away you're looking at 15 to 20 years total lifetime from prototype to production on the automotive space. So that's definitely something you need to keep in mind. What kind of fleet do you have? Are your devices managed by you as the system designer or by some central authority or the unmanaged? If you're selling consumer devices that are going into people's homes you're probably not gonna have a managed fleet so these devices will be out there they'll be out there on their own they need to do their updates and that kind of thing but if you have a device, a smaller deployment or a managed fleet you probably will be able to have visibility into what the devices are doing over their lifetime. What's the operating environment? How hostile is it? If it's deployed in say coffee shops with open wifi you know you're gonna be getting network pings on a fairly regular basis. If it's in a fairly controlled lab environment then obviously that's a different consideration. What's the power and connectivity like? Obviously if you are battery based that's always a concern you need to make sure that you can handle unexpected power outages. Can the users modify the software? Do you have a system with installable packages where the end users of the device are actually able to manipulate the software that's installed on the device? That adds a whole level of security and complexity that if you can get away with a completely read-only system that you don't have to deal with. And then what is the end user interface? Is this an appliance that goes in a cabinet somewhere and nobody ever looks at it? In that case you can get away with doing updates when your software determines it's right but if it's something with an end user interface generally you don't wanna install new software or do reboots or anything without prompting the end user. And then as we mentioned before the bandwidth is always something to consider. Both the network bandwidth to your device as well as how much cloud compute capabilities you might need for that cloud structure and the back end. So in security we'll talk a bit about this. The quote at the top, the SNIOT stands for security. I hear it a lot, don't know exactly who came up with it. But the Twitter handle you see there is the best guess I could find after searching for a bit. But I think it's obvious that all security, all software has bugs. Not all bugs become vulnerabilities but when you have one to 25 bugs for every thousand lines of code there's liable to be some vulnerabilities out there that will eventually allow your device to be taken over. So just in general, as general advice use well-maintained software, keep it updated. You don't want to be the only one using some branch of Uboot or a Linux kernel that hasn't been touched in a number of years. And then just follow general security practices, principle of least privilege. Don't run something as root unless it needs to be root. If you do have something like SE Linux or SMAC you can get a little bit more fine-grained control over that. Kirchoff's principle basically says that the only security of an encryption system is the key. So don't rely on security through security. Use a well-known encryption system when you are doing a crypto in your devices. And just this kind of self-serving thing here at the end. Over-the-air updates are a must-have these days, especially for any of these devices that are connected. As I said, you're gonna have vulnerable bugs which will eventually become vulnerabilities and if your device is connected there are people out there scanning and they will take over your device pretty quickly. And I'll just leave this slide up. This is I think fairly well understood. It kind of just goes to the point on my previous slide about the number of bugs out there. But with the average remediation time being 110 days, well beyond when then there's a 90% probability of a vulnerability being exploited. Obviously we as an industry have to get better at getting these things fixed and getting the fixes deployed to our devices. So briefly about patching and updates. You see the number from ABI research there. One third of current recalls are for problems that could have been fixed over-the-air. $35 billion in savings in 2022, according to one automotive survey, obviously in the automotive space.  So if at all possible, definitely when you're deploying IoT devices or any kind of connected device over-the-air updates should be considered a must-have, especially given some of the lifetimes and the expense of accessing these devices when they're deployed in the field. All of these things put together to tell us we need to do this. And when you're looking at updates, just some high-level design criteria, robustness, how does the update mechanism ensure that you don't get brick devices in the field? If the device is on the shelf next to you, it's easy enough to reach up and hit the power switch. But I was talking to somebody yesterday who does devices for undersea usage.  So you don't want to be deploying an update, have the power cycle at that exact moment and end up with a device with a corrupted root file system. So the robustness of the update system is critical. Security, obviously, TLS, image signing, all industry best practices, I think that's all fairly standard. Are the updates atomic? If you're doing apt-get update, typically that's not an atomic type of update. It makes it very difficult to know exactly what set of software is on any given device. If you're doing full image updates, it makes it very easy to say, my fleet of devices is all running the exact same bit of software and the automatic rollback that goes to implementing the robustness. So if there is an issue with an update, is your system gonna detect it and automatically rollback to a known good configuration? And finally, how expandable is it, is the update system for your particular workflow and use case. The update system isn't gonna know about your database structure or what peripherals you have. And so there needs to be mechanisms in the update system for you as the system designer to be able to customize it and say, okay, on a new boot, I wanna validate the database and I wanna check this peripheral over here and make sure everything's working. So the expandability is something to consider when you are adding this into your system. And with that, I think we've got just a few minutes for questions. I got a couple links here that go into a bit more depth on some of these things. I would encourage you to check them out. There's a couple articles and a talk I gave last time that goes into a bit more depth about things like Acto and BuildRoot. So if you have an interest in that, feel free to take a look. And with that, I'll open the floor for questions. We got mics on either side. So if you have a question, just come on up and make sure that everybody can hear you and we get it recorded. All right, I must be in between lunch. Oh, we got one. I evidently not. Such as what, I'm sorry? Suso Linux Enterprise? Okay. What's less? Okay, yeah, so the comment was, and you're right, I didn't mention it. I mentioned Debian, I mentioned Acto and BuildRoot. There are a number of commercially supported desktop class distros such as Suso Linux that are supported and available for embedded slash IoT use. So that's certainly another consideration when you're looking at your system software strategy is, who do you call when something goes wrong? If you're starting with a completely open source thing, you might get help on a mailing list, you might not, but if you get a fleet of 100,000 devices in the field, you might want to consider some kind of support arrangement so you get somebody to call. All right, let's see if this side's working. Nope. I have a question about your product, Mender IO. Does it allow to enforce an atomic update of systems that consist of several Linux nodes? No, not today, it does not. Our product is focused on a single node. There, when you're talking about multiple node systems, you definitely need some kind of higher orchestration layer that can handle that. We've talked about ways to do that and certainly some of the expandability and plugins that we have can certainly can be used to implement something like that, but that would require a custom development based on what we have today. Thank you. All right, thank you very much.


As chair of the society, I have to take on a series of roles and responsibilities. People get on well with me. I'm often told I'm like Arlene Foster. I don't know who that is but I think she's a badass bitch so that's cool. I have inspired many past students. Many of them idolize me. There's this one girl here called Joan and I helped her really grow into her own person. She's now a system manager down at the topaz down the road so god on her. Well she only got that job because the old assistant manager kept molesting all the girls at the deli but sure luck. So I've been head of station for about a year now and it started simply because I have a lot for radio and all things related. It just means the world to me when I see new students coming in and having their own radio shows you know. It's just something extremely good for people to have taken with their friends. Have you had to narrow down to one station? What would your favourite one be? Probably Babe station. I was watching a film last night. Yeah? Yeah. Blue is the woman's colour. About two lesbians just going at it. Okay. Yeah. There's like a seven minute sex scene in it. It's fairly intense. Maybe you could come over, watch sometime.  All right. Yeah so I'm a secretary.  Oh my god. Hi. I love your nails. Oh thank you so much. I got them done this morning by my cousin. They're so lovely.  No I'm live. Here he is. The big fan. Right Friday night. Had a bit of binge yeah. Nine points between us. Well you had seven. I had about two but... You should have seen me trying to drive home. It was like my account when you hit one of those bananas. Mark I'm live right now. Oh yeah? Was that? Who you on to? A woman from Scarry's. She's campaigning for more checkpoints on the roads because her husband was killed by a drunk driver earlier this year. All right. See you Monday. See you Monday. Bye bye. Yeah. Yeah sorry. I'm still here. Hey uh Susha. Any chance you could send that email to Camille in regards to the sponsorship? Time is running out. Yeah I'm working on it now. Okay cool. Also any chance you could pop down to shop and get me a coffee? I'll give you the money. I just really don't have the time right now. Yeah sure. Seer shot. Yeah she's nice. But I'm conventional. Like this one time she sent flowers to the office on Valentine's Day and she had a note saying they're from like a secret admirer so I thought they were from my boyfriend and then when I told him he thought I was cheating on him. It's funny in hindsight I guess.   I've taken so many days off and she hasn't even copped it. So far I think I've had three grandad's die like this year. The only reason I stick around is because of Amy's birthday. She's a severe not allergy and I'm ordering a big Nutella cake.  In general being one of the heads of the studio can be quite stressful but at the same time I'd argue that the payoff is great especially when you see everyone coming together and running their own shows you know. Everyone works so hard and is so professional and they owe. I am a strong leader undeniably. Often people come to me asking for advice or wisdom. You know what I tell them? I advise you not to hide your feelings. Don't pretend to be okay when you're not okay. Don't pretend to be happy when you're sad because it'll only lead to your misery. Do you know who said that? XXXTentacion. Pines, come on folks. You don't shine. We're going to a new bar for pines. Ben, you in? Yeah, I'll come for one. Mark, I know you're in. I am.  Come on, if you're going to a new bar for pines. You coming? No, thanks Rachel. Oh, I don't think she can hack it folks.  No, not me. Oh, she is raging. Come on for one. You know you want to. Rachel, please. Just admit you're not ready for such a banter. Rachel. Rachel, it's my dad's funeral later on. Yeah, I forgot about that. Shot himself, didn't he? There, you found him, didn't you? Probably for the best, you don't come so. You haven't been much crack today anyway.