Embedded - 139: Easy to Add Blood Splatter

Episode Date: February 17, 2016

Andrei Chichak and Chris Svec join us to talk about our new blog: Embedded.fm/blog (!!). Andrei was on 114: Wild While Loops, about error handling, as well 99: You Can Say A Boat, about MISRA-C. And...rei has been teaching Embedded Wednesdays, an embedded systems class for the Edmonton New Technology Society. It uses the STM32F401C-Discoveryboard. His course materials are on his site (chichak.ca).  Chris was on 78: Happy Cows, about empathy driven development. He's also working on a different embedded systems introduction (Embedded Software Engineering 101). His blog ischrissvec.com. Our new blog will include their coursework, excepts from Elecia's new book on taking apart toys, project notes from Christopher, and various other news.

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Embedded Tonight. I'm Andrei Chichak. And I'm Chris Speck. And tonight we're talking to Alicia White and Chris White from Embedded.fm. Good evening. What is happening? Well, actually, let's try that again. This is Embedded.fm.
Starting point is 00:00:25 I'm Alicia White, here with Christopher White. Andre Cicak and Chris Speck are our guests, not the other way around. This is going to be a show with a few announcements, perhaps an odd twist or turn, as demonstrated by our unusual intro. All right, let's start off with a lightning round. This is for Alicia and Chris. So we'll start with Alicia. New clients or existing clients?
Starting point is 00:00:50 New clients. Chris, Emacs or VI? Emacs. Alicia, podcast or blog post? That's tough. I think podcast, but it's close. Let's tough. I think podcast, but it's close.
Starting point is 00:01:08 Let's see. Alicia, processor choice, looking to the future or one that you're familiar with? Preferably an incremental, well, okay, looking to the future. All right, this one's for both of of you robot or non-robot vacuum cleaner robot robot vacuum cleaners of course what other answer could i possibly give you good answer chris root beer yummy or tastes like medicine uh depends on the root beer but generally yummy alicia cilantro yummy or tastes like soap? Soap. Oh, really?
Starting point is 00:01:49 Oh, absolutely. Yeah, she doesn't like cilantro. She doesn't like avocados, which kind of rules out guacamole of all kinds. Oh, that sucks. Avocados, interesting. Let's see. Go.
Starting point is 00:02:02 Dogs or cats? A whole herd of both. And the fish. I'm out. Licorice. Proper black stuff or red crap? Red crap. Either.
Starting point is 00:02:19 Or neither. Chris. Ray or Luke? Don't hurt yourself. Just threw his back out there. I heard it, I think. Vader. Ooh, correct.
Starting point is 00:02:38 Alicia, Champagne, French or California? Californian. Tattinger makes a wonderful... I'll just stop there, but they make a California? Californian. Tattinger makes a wonderful... I'll just stop there, but they make a California blend. Correct. And that's it for the lightning round. Should we turn this around? You passed.
Starting point is 00:02:55 We won't go over to the amp hour after all. Okay. I guess we're both on the amp hour recently. I guess Andre wasn't quite... He was in the background. Yeah, I've never been. He was the amp hour recently. I guess Andre wasn't quite, he was in the background. Yeah, I've never been. He was the emcee. Yeah, warming up the green room. Okay, so that was fun. Maybe we should actually talk about who you are.
Starting point is 00:03:18 Yeah, who are you? Andre, could you tell us about yourself? Oh, sure. My name's Andre Cicek. I live in the city of Edmonton in the province of Alberta, Canada, in the Great White North. Got my BSc in Computing Science from the U of A, University of Alberta, that is, a long time ago. And I've been doing hideous technical and embedded programming ever since. And for fun, I like to keep foreign cars alive and I build kites. And you've been on two shows.
Starting point is 00:03:57 So if that all sounds familiar to anyone listening, Andre was on show 114. 99. 99. And 99. Okay, Chris, what about you? Thanks. I'm Chris Speck, and I am an embedded software engineer at iRobot. And if that sounds familiar, it's because the last couple episodes, Alicia has told you that iRobot is hiring embedded software engineers and actually Android software engineers and other software engineers. And we're still hiring. So if you're interested in moving to Pasadena, California, or Boston, Massachusetts, or you're in the area, hit me up at csvec at iRobot.com, and I'd be happy to talk with you.
Starting point is 00:04:32 So I'm an embedded software engineer now, doing robot-y embedded software. And in a previous life, I designed chips and did chip architecture, and then kind of moved my way up the hardware software stack into embedded where I'm at currently. Excellent. So I wanted to have you both on not only because you tend to be pretty amusing when you're together and I like amusing but because you have some things in common about teaching embedded software embedded techniques to other people. So, Andre, could you tell us a little bit about your Embedded Wednesdays thing that's been going on? Yes. After podcast number 114, I found out that people actually listen to this. And I got a phone call from a guy by the name of Wade in Edmonton who is on the board of the Edmonton New Technology Society, which is one of the local hacker spaces up here.
Starting point is 00:05:38 And they have an open public night on Tuesdays. And he invited me just to come down and have a look around and meet the people because he listens to the same podcast that I was on and it was pretty cool. So I went down there, met a whole bunch of really neat people. And they asked me if I'd be interested in sort of doing something with them. They had no idea what, but I suggested, you know, I could give a bit of an introduction to embedded systems tutorial. And it got thrown around a little bit, and everybody was actually really hot on the idea. And we decided to do it on Wednesday nights at seven o'clock and we called it Embedded Wednesdays. That got going in September of 2015 and it's been going pretty much every
Starting point is 00:06:37 Wednesday since. We took a bit of a lull over Christmas. And when you and i talk over i am about it over skype or with our new slack channel you you talk about what you're doing each week and it seems to be taking software engineers mostly or people who are really unfamiliar with programming concepts and helping them build was it a little robot-y thing well it started out just as um let's get to know this stuff so there was a bunch of people who'd done web pages uh heavy duty it stuff uh skater and uh they played around with arinos, and they sort of wanted and do electronics and stuff like that. But the software stuff, you know, it's like we always chat about, where do you get started and what is this C stuff anyway? that took them from this is a processor to eventually we came up with a project of doing a self-balancing robot. And how far along are you? I know you've done some intro with the processor you chose, which was a STM32 Cortex M0 something?
Starting point is 00:08:23 It's an M4, actually. M4. We were going to be going with the uh discovery f4 boards but uh due to a little bit of an oops we ended up getting the 401c board which was actually kind of cool because it has uh nine axis accelerometer gyro and magnetometers on it. So that was pretty cool. But how about if I just go through what we did? We went through blinking the LEDs. You always got to start at blinking the LEDs. That means that you've got your tools going.
Starting point is 00:09:00 You can download code. You've got a power supply. Everything is happy. The next week, we went on to getting the serial ports working which is great for sending messages debugging and crap like that uh it got really deep very quickly and we talked about interrupts lost a lot of people there and had to sort of go back a little bit and which led into the next week of debugging uh then we talked about uh real-time operating systems and that's sort of where it kind of went off the rails that might have been a little bit too much uh and right around then i figured okay we'll go from Blinkies to real-time operating systems.
Starting point is 00:09:45 And at that point, probably these people will be figuring out, I would like to do a particular project. And right around then, they said, hey, how about if we do a project? And it's like, well, how could you ask for anything more? So at that point, it diverged, and we went into how stepper motors worked, and then timers, and then bringing together the timers and the interrupts and stepper motors and making it all go. So they played around with their accelerometers and gyros. They've got stepper motors working. They know what the big loop is. They can do interrupts. They've seen real-time operating systems. And now it's kind of turned into a lab thing where we're starting to actually work on the robots. And how much do you get paid for
Starting point is 00:10:47 this not a thing so you're doing this all because it's useful to the community and interesting to yourself pretty much yeah gets me out on wednesday nights um i mean i've got all this information It's very hard to find books on this stuff, as you know Except for one particularly good book And I figured, well, why don't we just sort of pass it along to other people So I do it out of the goodness of my heart And perhaps we'll be starting another session real soon now okay so chris what about you you've been doing some book sessions and you've been talking about putting together this thing you're calling embedded 101 can you tell us i guess about the books first sure so um
Starting point is 00:11:41 at at irobot we run a um we run a software engineering reading group. And so that is exactly what it sounds. We pick a book that is more or less related to software engineering, and we read through it. chapter two I think is my favorite chapter of the whole book. It's where you go through system architecture and how to come up with the system architecture either from scratch or how to document an existing one and you have a few different ways of doing it.
Starting point is 00:12:19 I think I wrote a review on Amazon and basically said that chapter that's worth the money right there. The images you had in there and the way of describing the system you had in there kind of stuck around my head. So that's kind of one element to it. The second element to it is I've been doing these robots and these embedded software and chip design and stuff for a while. And I have a bunch of friends who do web development and kind of non-embedded, non-CPU. They don't need to know what a register is. They don't need to know what any of the low-level stuff is for their careers.
Starting point is 00:12:57 And then they get an Arduino or they get a Raspberry Pi or something, and they can start blinking a light. And they ask me, like, so is this kind of what you do? Is this what it's like to write software for the Roomba? And what's that like? And, you know, geeks being geeks, we can get into a pretty long conversation about, well, you know, on some level, yeah, it's basically like blinking. Embedded is basically like blinking a light,
Starting point is 00:13:20 but there's obviously a lot of depth to it. And so I've heard a number of people say oh how would i get started in you know in embedded software where are some good books there's some good links there's some good tutorials and your book is certainly a great starting point he has a few others out there that i would say you know if you read a few of these books like they can give you kind of pointers in a direction but i i didn't feel like there was kind of the the tutorial that would have made sense to me if i were not a already an embedded an embedded guy and so i've been kicking around the idea of this embedded software engineering 101 which is sort of from the ground up from like the processor
Starting point is 00:14:02 up bottoms up what is an embedded system how how does it work, what is a processor, and then breaking it down to just the basics and building up from there. It's actually very similar to Andre. I didn't know Andre except through the show vaguely, and then as I learn more about this, we have a lot of overlap. But I think our approach is a little bit different, and so it's been kind of cool to see what he's done with it. And so it's kind of motivated me to get a little more started with my idea as well.
Starting point is 00:14:32 My thought is to start with basically a processor is simply registers and some memory and some instructions. And that's all a processor is, whether it's a big x86 processor in your desktop computer or whether it's the little tiny 8-bit micro running your small Fitbit or whatever, although I think a Fitbit uses a 32-bit Cortex of some sort. But anyway, it's just some registers, it's just some memory, and it's just some instructions. And putting the word just in front of that
Starting point is 00:15:02 doesn't really do it justice, but I think that's where it starts. And once you understand that, the course or the tutorial or whatever it is that I'm putting together brings you up through, okay, here's how the basic CPU works. which can be used to do things with the outside world, like communicate using UARTs or communicate using SPI or other protocols, and then sort of just building up from the low level up higher and getting to the point of understanding what a simple embedded system is like and how you'd actually program it using C, using a sort of a commercial type of a compiler environment as opposed to an Arduino environment. So Andre, do you think Chris is totally wrong?
Starting point is 00:15:52 Is he going about this the wrong way? Actually, it sounds like he's writing the book that I would want. And his might actually work. I spend a lot of time standing in front of my people saying, um, um, um, and trying to figure out how to explain a topic. Sounds like he's actually thought about these things. Well, Chris, you weren't actually talking about a book, were you? When you and I started talking about this, it was videos. Yeah, I was exploring a few different ways i had emailed you and just said hey i'm thinking about this thing any feedback i emailed a few other you know embedded gurus in the field i got a lot of really good feedback actually from people about you know all
Starting point is 00:16:35 sorts of things so i i love our i love our embedded communities it's it's open and super helpful um so thanks for that alicia in particular and Jack Ansel and others as well. But yeah, I was like, hey, what's a way to kind of get this out there? What's a way to present this? I have a blog, but it's not super well-trafficked. And you, Alicia, hooked me up with O'Reilly, and they are trying to generate interest in a video series that they are putting out now, instructional kind of tutorial-based videos. I think you had Simon Monk on here recently, and he's done some of those as well. And I've talked to a few others who've done them who say that it's an incredibly draining and ringing process, and it just rings you out of all thought by the end of the day,
Starting point is 00:17:24 but you also get something pretty cool out of it. Yeah, I'm not someone who learns from videos. I would rather read a book any day of the week. I just feel like it's faster and it's the way that I learn. But I was intrigued by the idea of trying something that wasn't necessarily my first choice of media, but hey, why not give it a shot? And so I'm still kind of trying to figure out if I'm going to do that, how that would look, or if it would be a book or a video of both or whatever. But yeah. That's interesting, though, because when I started Embedded Wednesdays, a bunch of people couldn't make it on Wednesday
Starting point is 00:18:05 And they asked if I could possibly Record the thing So that they can watch it in their spare time And I just thought Oh man, man I got a face for radio I don't want to be on a video Well, you know
Starting point is 00:18:22 It takes all kinds And I am Chris and I have been doing a video class recently and i have been a little surprised at how little time it is a talking head you are almost always hearing him and watching his screen at the same time well and it's a it's a work along with the instructor sort of format so it's not like a school lecture kind of format where somebody blathers at you for an hour and you're supposed to take notes
Starting point is 00:18:49 and then do an exercise. It's very much, okay, I'm gonna stop here, pause the video. I want you to go do this and you go do it. And you come back and he does it again for you and you can compare notes on how well you did. But yeah, and all the videos are very short. So it's not like
Starting point is 00:19:05 you're 15 minutes short yeah you can take it in bite-sized pieces so i find the video format actually quite interesting and i could like at least i hadn't really considered it useful before trying it which you know is like many things well is is there enough depth to the or i suppose breadth to the thing because you're dealing with a linear format, and if it's not in the video, you can't exactly, could you flip to another chapter and figure out what you're missing? Or if it's missing, do you have to hit the books anyways? It's been pretty linear, at least for me,
Starting point is 00:19:41 because it's a class about developing games in Unity, just because we were interested. And for me, I do what he says, and then I occasionally will make tweaks. Your random number generator, he has it from 0 to 12, and I do 0 to 12,000 and then make my game score differently. Chris, on the other hand, knows more about how games should be programmed and has gone off the reservation. Hardly. I would never have figured out how to get the skull to spin around and shoot
Starting point is 00:20:13 out blood particles. That's actually a skill that all male boys... You have to want that first before you go figure it out. Just finished watching X-Files with heads and arms being pulled off. Spoilers.
Starting point is 00:20:34 Okay. Not much of a spoiler. A question for both of you. I was thinking about this as you were talking about how you structure your courses or how you're going to structure courses. And I was thinking about this as you were talking about how you structure your courses or how you're going to structure courses. And I was thinking back to my own education,
Starting point is 00:20:51 which I mentioned on this show probably too often, but it seems like people who are learning today, whether in college or not, the exposure to computers is different. You get a high-end laptop, that's your computer or a desktop or what have you, and you're presented with this wonderful interface and all the complexity is hidden from you. But when computers were new, or, you know, cheap microcomputers were new,
Starting point is 00:21:19 a lot of things were exposed to you from a programming standpoint, from a hardware architecture standpoint. A lot of them came with manuals that just laid out the whole internal structure. And so it was really easy to say, oh, I have a computer and here's how it works. Now that doesn't happen so much. Do you think that using that as a model is useful, like going back to those early processors and kind of going through that process of exploring this device as a whole. It's different.
Starting point is 00:21:56 Last week, I was listening to your podcast and you were mentioning BASIC, and I was jumping up and down because, as you say, Microsoft used to give out BASIC with it just came with dos and it was there and it had manuals and you can find out where to peek and poke and do all sorts of crazy stuff and then microsoft started okay i'm gonna have a rant microsoft started uh making money off of their c compiler that was hundreds and hundreds of dollars for this huge box of thing and you can become a professional and stuff like that
Starting point is 00:22:31 and eventually they canned basic and i think that they kind of cut off the flow of people into the industry until i don't't know, Raspberry Pi, Arduino, basic stamp came along and it started to fill the gap but at a much lower level. I think they did us a disservice. I tend to agree with that. I think it was what I was trying to say
Starting point is 00:22:59 and not exactly the same way, but yeah, there was a gap. There was a gap where computers became not things for exploration, but just tools. Well, it became a way, it went from a tool for exploration to a tool to get you a certification, to get you a certified job where people were asking for certification. And like, come on, really? I mean, your curriculum was crap. And sorry. Okay, speaking of curriculum being crap, let's get back on topic.
Starting point is 00:23:38 Let me answer part of Chris's question, I think, if I can try. So I think your question chris was does sort of starting it you know the fundamentals or the low level of this older sort of you get to see the guts of the system is that a relevant instructional method is that a fair i think that was sort of what i was asking because that's how i learned so it must work right right right and i'm the same way commodore 64 basic I actually got detention in fourth grade for bringing the manual in during reading time and writing a program with peaks and pokes
Starting point is 00:24:10 because I should have been doing something else. So, no, I mean, I listened to your show last week and I was just nodding my head the whole time. Yeah. So the goal of what I have in mind for my Embedded Software Engineering 101 is to enable someone to basically do my job. To do what I'll call a professional embedded engineering product, which is going to ship by the millions of units a year.
Starting point is 00:24:39 And it's going to need to be reliable and reasonably well designed. And what I come back to is if you want to write good software, reliable software on our embedded devices, you have to understand the underlying processor and when you're doing things with SPI or with I2C or any of these things that an Arduino makes it really easy to just hook up and import a library and type a couple lines. Magic happens over the wire. On real embedded systems, especially if you're working for a company like mine, where we do all of our own circuit board design, we write all the code, we're not pulling in Arduino libraries, you have to understand what the underlying protocols and what the underlying processor can do,
Starting point is 00:25:20 what are its limitations and what are its strengths and weaknesses. So my thinking is a fundamentals approach of fundamentals of the system are the CPU and the stuff that it connects to. And, you know, starting there and building up will let you eventually, hopefully, you know, learn how to essentially do what I do. I should also say, like, as a huge caveat, I enjoyed school. I enjoyed college. I enjoyed undergrad and grad. And, you know, that sort of hierarchical, you take engineering 101 and then 201 and then 301. That worked for me. I liked it. So, you know, that's definitely my learning style. And I'm sure it's a huge bias that I have with what people would be able to get out of anything I teach.
Starting point is 00:26:10 But, hey, I'm offering it for the same price and getting paid the same amount that Andre is. So maybe people find it useful. And I don't think it's absolutely necessary to start at the incredibly low level. I started, like, let's see, the year that I graduated, the IBM PC came out. A couple of my friends had Apple IIs, but I started my career on an Amd that you had to go talk to if you wanted to get your stuff done. It wasn't until much later that I ran into some EEs that, you know, it's a symbiotic thing. EEs don't write code, and I don't make circuit boards and we need each other. So I've learned a lot of low-level electronics and I'm trying to pass on the software side to the EEs and a lot of technical tech people as well that came out of tech school this was why i wrote my book um which is now four and a half years old
Starting point is 00:27:27 and i think it's aged okay but it's still i wrote it because i wanted to be able to hand it to a new college grad and say i don't want to have to tell you all this stuff. Here, look it up. Well, it's very hard to find that stuff without your book. It just is. I mean, Embedded.com, their most popular article still dates back to, I think it's 2003. And I'm thinking, that's 13 years ago. you have to have a more up-to-date more popular article but things change and yet i mean they don't yes so um yeah do i wrote my book for a lot of the same reasons you are both saying that you want to develop these things.
Starting point is 00:28:25 So I totally understand. I totally agree. And I think the fact that there are different perspectives is awesome. Because whoever looks at my book and says, you know, I just need more detail. I need to understand better. I can't just work in concepts. Well, they should have a different option. And the person who says, I really want to do videos because I learn better visually instead of with books, they should have an option. Everybody should have a path that works for them if we can make it so.
Starting point is 00:28:58 And so I'm excited about both of your work. I guess I should also say that I admit that the exact phrase for this was only an idiot would write a second book. But there have been hints going on that I've been working on a second book because I have been. And that was one of the reasons Andre and Chris and I started talking more. They somewhat foolishly agreed to be my test readers. And they started doing edits and telling me where I needed to explore more. Did you like what you read so far? What? You think I should tell them about the book first? I can't.
Starting point is 00:29:44 Yeah. If you're writing a book. You think I should tell them about the book first? I can't, yeah. You're writing a book? If I'm going to comment on it, I'd want to know how much spoiler you're going to release. I think there's too many vampires. I think that ship has sailed, and I think the retread of the vampire thing probably should be rethought.
Starting point is 00:29:58 Werewolves. I'll just copy-replace for werewolves. All right. Clowns? Clowns are scary scary that's too terrifying uh yeah so my book my new book which i am 100 spoilers by the way i'm not really holding anything back at this point what's it about it is is about... 200 pages. Not quite that yet. It is about taking apart toys. When I took apart that BB-8 unit last fall, I had such a great time looking at the processor and the motors and the inertial unit.
Starting point is 00:30:41 And I discovered that as long as I was holding BB-8 while I burbled on about PWMs, people would stand there and listen. It was like I could trick them into understanding a little bit about engineering and motors if only there was a cute robot. And that led to, well, what else could I trick them with? And then that led to the Shearson CX-10 quadcopter, the little tiny, tiny quadcopters. And so, I started looking at how they were built. But those are both toys for boys. Did you find anything for girls? You know, the fact that you've read part of it really does help you line up those questions well. I started asking people, well, what should I get out of the pink aisle?
Starting point is 00:31:27 Because I really did want a girl toy. And I even, I conned you, Andre, to go look at toys, because we were talking about what toys should you get for girls. That was actually really hard. There is just nothing out there that is interesting for girls. The toy industry should just be ashamed $50. I want it to have buttons and I want it to be girly. And Violet was cool, except I didn't want to take apart a leapfrog toy because I used to work there and the chances are, I don't know, it was a long time ago, but I still wasn't, I didn't want to do leapfrog. It's probably fine now. They're owned by VTech.
Starting point is 00:32:18 Well, yeah. Layers of abstraction before the lawyers get to you. Yeah. Well, we also looked at Hello Barbie, except it was running about $100, and it had just come out. And I really wanted to do that because tearing off Barbie's head. But also, as you probably know, it was a very contentious toy this winter. Yeah, it had bad idea written all over it. Although, one of the things that drew me to engineering and to toys in particular was a Mattel engineer coming to my college my freshman year, bringing us Barbies and X-Acto knives and showing us how the knees worked. transformative experiences because it was so cool and so not what I thought I should be doing. Yeah. But so I ended up asking around from different people about what should I get for a girl's toy and ended up with a karaoke, which was kind of boring on the outside. It's just
Starting point is 00:33:20 buttons. It's just a CD player, but the manufacturing, oh, it's just a cd player but the manufacturing oh it's awesome inside there's there's hot glue instead of actual connectors and there's all kinds of weird manufacturing choices like single layered boards and when i mean single layer i mean there's only copper on one side the other side is brown and plastic it's it's turned out to be way more interesting than i expected and it was covered with all sorts of soldering schmutz and and cleaning goop and those were terrible boards yeah the pictures are just really amusing which i guess now i have to talk about the book it's sort of a lot lot of pictures that show the toys on the inside and trace out the circuits that I find interesting,
Starting point is 00:34:11 the LEDs and how they go through MOSFETs, and then the motors and how the KEP actually looks, the feedback, the quadrature encoder feedback, looks on an oscilloscope. And why that's interesting, I did that for BB-8, but comparing that to the quadcopters, they're weirdly the same and yet different. I mean, they're different enough that you can see
Starting point is 00:34:38 how engineering works in different cases, and yet you can also draw it back to its bare bones of how this normally works and I know there were knobs inside the karaoke and how does the resistive material work when you're doing pots I mean how does that really work and that's the same as the joysticks inside of the quadcopter anyway if, if you're listening, you can tell that I'm super excited about this. I think it's a great idea. And I have had a ball writing, I don't know, I'm up to like four chapters and two more roughed out and I have a plan and all that.
Starting point is 00:35:18 And we learned so much just going through all the various little sections and figuring out how the hell they worked. And sometimes, this is why we started the Slack channel. Sometimes I would be like, well, I think it works like this. And Andre and Chris would be like, oh, you try that and then this and then that and then this. And it was educational to see the paths they would take. And then there was that whole period where they kept suggesting to add more wires to the quadcopter even though it's tiny sorry about that yeah i had no idea how small that thing actually was until you sent me one and it's like what i thought
Starting point is 00:35:58 this was supposed to be a quad oh my god look at that this is the size of my thumb. Sorry for asking you to try and put wires on that. I ended up with a few. I did it in a microscope. So, yeah, there I was writing a book, and it hit a few bumps. And it turns out my publisher says it's okay to publish the book, whatever I have, in blog form. Like, he doesn't care if I just go ahead and publish what he's going to put publish the book, whatever I have in blog form. He doesn't care if I just go ahead and publish what he's going to put in the book. I want to.
Starting point is 00:36:35 I was thinking, do you guys want to maybe have a blog? We can put all this stuff in the same blog and I'll talk about embedded software and education and i can trick people into wanting to learn and you guys can actually explain the stuff for me you mean take my like uh embedded wednesday's brain dump and put it on a on your blog too yeah i mean i might like copy oh iit it. Oh, I've got some ideas. Oh, I've got some ideas. What do you think, Chris? Sounds good.
Starting point is 00:37:12 Chris is like, wait a minute, I already agreed to this. Play along, come on. I just went off the deep end, Andre, so I didn't know what was going on there. Yeah, no, this is great. We definitely had a lot of fun going back and forth in Slack with the book and with tearing apart these things and trying to imagine why in the world they were manufactured the way they were. So we all got pretty excited in the Slack channel. And then sort of along the side, we thought,
Starting point is 00:37:40 hey, Andre and I have these other ideas. Some stuff's already published, some stuff is not. So yeah, Lisa, your idea of let's tie this together into a single blog, not necessarily a blog where every topic hangs together, but just like a central embedded community for a bunch of this stuff is, yeah, sounds fun. So what are you gonna write well one of the things that i've done over the years is uh anytime i get some big hunk of equipment fixed i sort of talked to the repairman and say can i keep the processor because that's kind of what i do for a living and so i've got so I've got a few little pieces of hardware that I thought that I would make a little set of entries called Is it an Embedded System? and explain how a dishwasher works.
Starting point is 00:38:40 Chris, you up? That's cool. I would like to know that. So my reason and my topic is basically this embedded software engineering one-on-one thing that I've been kicking around. And my selfish reason for wanting to do this is that the idea lives currently just in some notebooks that I have in my hand here on paper and pencil. but having some other people who expect me to write something once a week or so it's a really good forcing function to actually get me to sit down and type and put something together that actually hangs together so so mostly kind of this tutorial this fundamentals of embedded software engineering and then other you know random stuff I have a personal blog so this random little you know embedded tidbits on there and stuff. So kind of some random embedded-y sorts of things.
Starting point is 00:39:30 But primarily just the Software Engineering 101, Embedded Software Engineering 101 topic forum series. Well, and you read an awful lot, an awful lot of nonfiction. So I'm hoping for some book reviews. Because sometimes you do pop into the Slack channel and say, have you guys read this? And I always end up putting it on my Kindle wish list and planning to read it as soon as it goes on sale. Cool, yeah. I definitely do a lot more reading than writing.
Starting point is 00:39:58 And hopefully this will help me twist that around a little bit. You're going to balance it. Yeah. What about you, Christopher? Are you participating? I believe that I'm required by law to participate. No, you're only required by law to like me. I don't think that's right either. You said I do.
Starting point is 00:40:18 Anyway, I don't know yet. I have several things that were sort of in progress on the old blog, the Element 14 blog, and I don't know if I'll continue those. I have one sort of big project in mind for this year, and I need to start thinking about it a little more seriously. And that involves the ocean and floating things and... Seawater and electronics. Nothing can possibly go wrong.
Starting point is 00:40:49 And iridium modems and solar panels. So that's something I'm thinking about. I also have this thing in the back of my mind that's not been bugging me exactly, but it's something I've wanted to talk to on the podcast, and we haven't found a guest yet who's right but hacking your tesla no there's there's certain devices i own that that i'm perfectly happy that they just work and i don't need to know any further how they work but uh you know there's our discipline embedded software engineering and then there's
Starting point is 00:41:24 software engineering which is you know building applications and writing web applications and server stuff. And I know a little about those things, enough to know how different it is. And after taking part of this Unity course, it's become clear that things outside of embedded development have moved a lot further along than i kind of was aware yes and so one of the questions is my in my mind is why don't we have the level of advanced tools that exist for other things like games why is there this dichotomy do we hold on to these old tools in some sort of weird, I don't know, almost fetishization of things being difficult. It's sort of a compare and contrast, what we do every day with Embedded versus what's happening in the wider software engineering community. Interesting.
Starting point is 00:42:23 I don't have anything specific there yet, but that's sort of a topic line that I'm thinking about pursuing. Is there anything from the Unity course that kind of was like, is there an example of something that, man, this is like 20 years ahead of my normal... It took you like a minute
Starting point is 00:42:39 to add the blood spatter from the skull. And you know, it's focused on making games, but Unity is a framework that can make any kind of game, from a text adventure to a 2D side-scroller to a complete giant 3D open world thing. A virtual reality system, too. A lot of games are programmed in it. Kerbal Space Program is programmed in it.
Starting point is 00:42:59 Almost everything on iOS that's a game is programmed in it, 2D or otherwise. What I didn't realize is how little code is involved. Yeah. Most of it is piecing things together from prepackaged elements, doing artwork. And then the code that's involved are these little glue scripts that are written in C Sharp or JavaScript or whichever scripting language you like. And you don't really write serious code unless you're venturing far afield and saying okay unity doesn't have what i need i need to write my own physics routine or i
Starting point is 00:43:30 need to come up with some mechanism that doesn't work uh that that isn't pre-done so it's it's it's the whole framework thing right it's people have already written all these blocks. You don't need to write them again. Why would you do that? Well, I'm pulling that back into embedded. It's we don't have as many of those blocks. And is it because we're really all special snowflakes every single project or are the processors and architectures also different that it doesn't make sense to have a framework? Or are we so used to being knowledge workers in the form of i know this embedded thing very deeply and i don't know all of the other huge amounts of frameworks that i can pull in or is it a fetish thing where everybody feels so good after they've written their 64th serial port handler when it's all exactly the same and they should just be changing the back end but this time i'm
Starting point is 00:44:34 going to do the error handling better yeah this time not next time though next time we always get we always get talked into using the smallest possible processor, even though we're going to kill ourselves at the end of the week. Hey, it saves a penny. Not if you buy them by the million. So you did mention Element 14, and I should say that we're very happy with them. They were very nice to us. They've had some management changes, and so we're going to strike it on our own and not follow them through their changes. A little bit more flexibility to include other people and whatnot.
Starting point is 00:45:14 And I was always hoping we could include other people there, too, but that never quite worked out. So I'm pretty excited to be able to try out having more people to talk about these things so is there going to be any advertising on this website well that's a good question right now no um oh so i'm going to get paid the same amount that i get paid for embedded wednesdays and chris gets for embedded 101 oh at least he told me that she was going to double my pay for the website version. Yes. What? Yes, I'm doubling both of your pay. Okay.
Starting point is 00:45:49 I was going to go on strike next month. Nothing times nothing. Carry the nothing. Yeah. We're open for offers? We might take advertising. But given the international nature of this venture, we might take toys more than advertising. You know, if somebody needs a oscilloscope, you know, I don't know, reviewed or something, maybe we'll do that sort of thing.
Starting point is 00:46:18 But right now, we're just going to do our own thing because we each had reasons for putting this material together. Now we're just going to put it out in public a little faster, which will hopefully make it easier for us to keep going. Must be realistic. It's a blog. It's a blog. It's a blog. And if we all update once a week and we include the show as one of the updates, then, you know, it's like five days a week of stuff.
Starting point is 00:46:45 Yep. And we already have four readers. Yes, we're so ahead. Your dogs don't read it yet? No, our dogs don't read. The fish do, but I don't know what they read. Porn. They're going to have to edit that out now.
Starting point is 00:47:05 I don't know. Okay, so any other questions we should talk about about the blog? I don't know. It doesn't exist yet, so. Well, it will when this show goes public. Where is it going to be? It will be embedded.fm slash blog. We did talk about different names for the blog and then decided that blog
Starting point is 00:47:32 was going to be its name. Because that is the best word in the world. That's such a terrible word. We could call it web blog. My internet diary. Dear diary, today blog. My internet diary. Dear diary, today I cut open BB-8. It was great. With the blood spatter.
Starting point is 00:47:54 Just took a couple of lines. Yeah. So it's, yes, it will be off of the Embedded.fm site. It should be easy to find. If you go off of the embedded.fm site it should be easy to find if you go to embedded.fm
Starting point is 00:48:09 it will be in that top bar there will be something that says blog and then that will lead you to our current post really I'm doing some editing what top bar the top bar it currently says like
Starting point is 00:48:24 about us and contact us. Oh, okay, that menu. That menu. Just takes a couple of lines to add that in. Yeah. And ideally, we will all have about pages with little bios, but right now that so doesn't work, and I don't know that it's going to work before Wednesday.
Starting point is 00:48:42 Because some of us are not web developers and they have actual jobs. Yeah, that being part of the problem. We have other projects we want to work on and we want to write and all of that. But we'll make sure that you can actually find out a little bit more about us pretty quickly. And
Starting point is 00:48:59 yeah, it should be interesting. I know that there are other embedded blogs and other sites, but I'm hoping... But this one is ours. yeah, it should be interesting. I know that there are other embedded blogs and other sites, but I'm hoping... But this one's ours. Yeah, this one's ours. And we're open for suggestions for topics as well.
Starting point is 00:49:15 That's a good thing to say, yeah. Yeah. Yeah. Andre's already got a full set of tags. I believe there was rant. Yes. News and STM32. Gets its own whole tag. Yes.
Starting point is 00:49:31 Yeah. It's a good course. It's a workhorse. Comes in every flavor you want and they're pretty aggressive on pricing, so it's got a lot going for it. Yep. We are going to allow comments on most of the posts. On the other hand, that's
Starting point is 00:49:47 currently turned off by default, so we'll have to remember to check the box that says allow comments on all the posts.
Starting point is 00:49:56 And, yeah, it should be an adventure. I'm totally terrified. I'm pretty excited. At the very least, I will enjoy
Starting point is 00:50:04 reading the stuff that you all come up with, even if no one else reads it. yeah i'm excited at the very least um i will enjoy reading the stuff that that you all come up with um even if even if no one else reads it um uh you know having having worked with you a little bit and you know seeing some of the stuff that we've sort of preceded this site with uh i think it'll be a good a good like sort of smorgasbord of uh of exactly of embedded topics that uh that I'll find interesting at the very least. I'm happy.
Starting point is 00:50:29 What else are you looking forward to reading, Chris? Me, Chris? Yes, you. I can point to him. I can't see that. The Teardown stuff, having reviewed a lot of your book, just more of that will be great fun.
Starting point is 00:50:46 I like reading Andre's stuff and his different take on how to learn embedded software and how all that works. Now you've got me paranoid. No, no, no. Why is it different? No, because we all come up with different metaphors. That's different. He doesn't use binary. He uses base three.
Starting point is 00:51:08 No, but we all come up with different metaphors or a different way to explain things or a different order to explain things, a different writing style. Chris White just said it, just about kind of looking at the progress that the web development, I guess, embedded versus non-embedded fields have made. And just hearing kind of some of the sociological, psychological, whatever stuff going on there, that also sounds like a pretty interesting thing to read about and to think about. So I'm looking forward to that too. Well, one of the things that I wanted to do this year was to try C++ in anger, because I've never used
Starting point is 00:51:56 C++. Well, and you sort of, it was a conversation that we were having on Slack that sort of triggered this where, first of all, I saw this little thing where Dan Sachs sort of got stomped on at a conference for liking C++ and everybody derided him. And then I heard Bjarne say that C++ was great for embedded systems, but he didn't explain it. So I ended up reading a couple of books on C++. So I might just have to write down sort of the path that I'll
Starting point is 00:52:36 go down and discover whether C++ is actually good, since you won't tell me. I wanted Chris White to actually write this thing because he knows C++ and Embed, and he said, uh, no. I think it's better for somebody to, I mean, I have biases, and so I think it's better for somebody to explore it. You're working for a company and doing it for a living and might be conflict of interest to you.
Starting point is 00:53:08 Well, I was, I mean, we're going back to the Slack channel. Okay, so the four of us hang out in Slack and sometimes we have another visitor. But it's, we all work from home or remotely. I guess, Andre, you don't really work from home, but it's all remote and not necessarily in an office with other embedded software engineers. Canada, anywhere in Canada is pretty remote,
Starting point is 00:53:35 so I think they qualify. It is. And so this Slack channel has been a way of sharing ideas and thoughts and chats. And sometimes it's noisy and sometimes it's quiet and sometimes it's technical. And I was pretty fascinated to hear Andre go from, I hate C++. I hate the idea of it. I hate everything about it.
Starting point is 00:54:02 I hate the letters. I hate the pluses most of all sort of hilarious rant to c minus minus to to considering it and to to being persuaded by everybody saying no no maybe you should try it before you hate it so much and and then he got a book and then he asked questions that none of us knew the answer to because we had never gotten that far in the book. We used the first part of the C++ book. And it was great. I hope you write about that. I hope you write about what kind of idealism changed there. I mean, did you have to force yourself or was it just forcing yourself to sit down the first time and and how how does it affect your work which i suspect for a while it's not going to affect your work at all you can't just change oh no i blew something up already there's something
Starting point is 00:54:56 from c++ that just don't work in c and you do a lot of mizra code and I know that C++ has a MISRA spec. So yeah. Yeah. The train of thought involved in that too is kind of cool because we're, we're all starting from somewhere. And so seeing, seeing Andre as like, he starts by looking at it and hang,
Starting point is 00:55:20 what, what, what is inheritance used for? Or what, why do I care? Why do I need a class? Why can't I just have, you know, a struct and struct and just you know an array of objects or whatever and just watching watching the evolution and the sort of train of thought as uh as ideas develop and as someone
Starting point is 00:55:34 learns stuff and hopefully getting to read how that train of thought uh evolves is uh it's kind of cool just gives you a glimpse into uh into. I think it's better than just reading a textbook about it. Actually getting to hear someone as they progress through the subject. Well, and I hope that's what we get in the blog. I mean, we got a little bit in the Slack channel. I hope we get that in the blog, that progress. Well, right now I'm going through a C99 book. And it's a good thing it's it's like i i learned c back in the early 80s
Starting point is 00:56:11 and it's gone through a bunch of iterations and there's a bunch of stuff that they say uh c doesn't support this anymore and i'm thinking oh my god I used to use that so many years ago. Where did I learn the new style of stuff? And it all came out of like K&R Volume 2, which is 1985. And I'm thinking, oh my goodness, it's time to read a C manual and get brought up to date on C. And I bring up a bunch of, in the Slack channel, I bring up, hey, did you know that you could do this? And nobody's seen that before, even though we've all programmed C.
Starting point is 00:56:55 So I think a blog entry might be a good C manual and little cool things that i've learned in modern c so a lot of the blog is going to be deep technical dives into topics but some things are just going to be a short book review a short recommendation a link that leads you to something else that's interesting or andre you already have a post-up that's about news that happened recently. Yes. We've been talking a lot about the curriculum and education and all that,
Starting point is 00:57:34 but there's going to be, there'll be some fluffy stuff. We may not invite you to our Slack channel, but you can at least, you know, hear the echoes of what we're talking about there. Well, we have various things that we watch on the internet, whether it's LeapFrog or ST or whoever, that, you know, we've got connections. And they don't send us information about what's happening in the embedded industry. So, you know, it might be good just to put these into one place where you can actually read about them
Starting point is 00:58:13 so that you can get the latest update to the tools that you're actually using. And so you can find out if the update is any good without having to read the press release, which is all full of like proactive synergies. We have to try the update release, which is all full of proactive synergy. I guess we have to try the update. Andre did, so we are good. Andre did,
Starting point is 00:58:33 and then told you how to get it working on an AR. I'm sorry, Speck? I just said, and Andre not only tried it out, but told you how to get it working on a Mac, even though it's not supported unless you play a small little game. And I've spent the last week debugging Timeout in SPI, so
Starting point is 00:58:49 I have to track that one down and send a couple of bug reports in. Oh, that's the plan. We're going to write a blog. Anybody has questions, comments, suggestions? None of us are planning to retire off of the winnings of our blog.
Starting point is 00:59:07 We've already talked about that. Why have we talked about that? Has there ever been a blog that anybody has retired off of? I don't, there have been blogs that have made a fair amount of money. About embedded systems? No, and I think that's why they stopped doing them. I was thinking more of the cute overload cake wrecks, living sort of wage.
Starting point is 00:59:33 Embedded wrecks. We'll slowly morph into that. Embedded wrecks. Embedded wrecks. I think Jack Gansel is actually doing a talk like that at ESC Boston. I could show him a light switch that I'll be tearing down real soon
Starting point is 00:59:46 now that would be an embedded REC. But instead you're going to put it on the blog and it will be super cool. Yes, it is. I'll try and suck the code out of the processor as well. Okay, well I think that kind of covers it for my slew
Starting point is 01:00:04 of announcements and all of that. What lightning round questions should we add for future guests? Are you going to lightning us? No, I was just asking. I know you listen to the show and you had some pretty good questions there. So I wondered, what should we add? I like dog versus cat. Yeah, that is a good one.
Starting point is 01:00:29 Favorite processor, alive or dead? That's already one. It doesn't always get asked. Yeah. Okay. I liked your question about the favorite language to start with. I like that one a lot. I like it when people give a different answer
Starting point is 01:00:47 between their favorite language and favorite language to start with. I just, it's like, why? Okay, I understand, but you realize there's some oddity there. Well, your favorite car and your favorite car to learn to drive on are going to be pretty different.
Starting point is 01:01:04 You might have a favorite car like a Porsche GT3. I don't think you'd want to learn to drive on are going to be pretty different you might have a favorite car like a porsche gt3 i don't think you'd want to learn to drive on that no no no bmw 2002 is a good one you cannot stall it well then i have i do have a new one um which i guess i will ask you both um who do you find inspiring and i have a list of people here to give you ideas tesla edison grace hopper steve jobs steve wozniak elon musk from that list it's was and from my own list it's uh richard feinman it's the bongos um what's that chris it's the bongos it is the bongos i'd have to say um elon musk i don't like edison because the light bulb was uh invented by somebody in toronto and edison just bought the uh bought the patent but that's a totally different topic.
Starting point is 01:02:07 Oh, Canada. Yes. I think you have to sing the rest of your national anthem now, or after that, leave in. It's pretty repetitive. I actually like the Italian national anthem. It's awesome. Anyway, we'll put a link to that. We'll put a link to that in the show notes.
Starting point is 01:02:28 Okay. Well, then let us go back to our evenings, our wild party nights. Yeah, none of us. Chris, do you have any more questions? I was going to ask them both what
Starting point is 01:02:46 what thing was bothering them most in their jobs right now cool but that's kind of an unheard question well as you know as no you don't know the uh keystone xl pipeline goes basically to my front door so this uh this uh trashing of the price of oil has just devastated everything around here so if people are looking for engineers we've got them just doing absolutely nothing right now uh our company is actually doing quite well right now we're busy for the uh foreseeable future but but it's pretty grim up here. So that's kind of bothering me. I've seen a lot of job openings recently, so that's actually good to know.
Starting point is 01:03:33 That's Edmonton, Canada, so it's a little out of the way. And Calgary, if you want to get closer to the border. But yeah, it's pretty devastating. But not all jobs need to happen in person no okay chris feck what about you what thing is bothering me in my professional life i think it is too hard to get simple things done like the the tool chains and the you know i mean this this actually goes right into what chris chris white was talking about with just how easy it is to get something pretty
Starting point is 01:04:12 cool done within the unity framework or these other these other frameworks i feel like doing simple things like making change to the processor testing you know processor making change to the code testing them just the whole ecosystem of stuff that I do for 75% of my day job. There's too many steps involved. There's too much room for error. There's too many pieces of hardware in a chain of wires that can all go wrong with some open source software on them that works 80% of the time,
Starting point is 01:04:40 and you chain a couple of those together, and probabilities make them work less. So there's just too much old stuff strung together with bits of bailing wire. And it seems like, you know, seeing, you know, the Microsoft Visual Studio or whatever framework you're using for Unity and these environments that make it super easy to do reasonably complicated things. I'm kind of jealous of that. And I'm interested to see what Chris digs up as he answers that. So Chris, you asked the question and now you get to fix what's bothering me.
Starting point is 01:05:14 So thanks. Great. I'll get right on that. Yeah. And remember, the blog drops on Wednesday, so we'll need that quickly. Yeah, you look for that on Wednesday. When it goes live on Wednesday, there will be at least one new post about my new book. And then there will be some posts from older things.
Starting point is 01:05:38 Element 14, I ported some of those because I wanted things in case you hadn't read it before. And Andre and Chris will both be porting over a few other things for themselves, right? Yep. You don't have to wait for us to get it together to go look at it. You can go see what it's going to be about and get
Starting point is 01:05:57 a flavor of it already. And the stuff should be dribbling out like once a day, so come on back like every day and see what's new new and exciting every morning do we have an rss feed we we yes we do have an rss feed i don't know that we're going christopher's looking at me like no we don't but i'm pretty sure we do we do it's for the blog the the podcast we have to create a new one. Oh no, that wasn't hard. It's web programming, Chris.
Starting point is 01:06:27 It's all easy according to you. Just add one line of code, it'll be great. I don't know that we'll have stuff every day. But yes, we'll try. There are only four of us and we're only going once a week. So there are more than four days. So I don't know.
Starting point is 01:06:45 Yeah, okay. Now it don't know. Yeah. Okay. Now it's time for final thoughts. Svek, why don't you go first? I actually have a quote in honor of how you end the episode. So this is a quote by Richard Feynman. We didn't plan this at all. And someone else quoted him from a lecture he did on BBC Horizons video years ago.
Starting point is 01:07:08 And here's the quote. Richard Feynman is a physicist who won Nobel Prize, among other things. And he says, To do real good physics work, you need absolute solid lengths of time. It needs a lot of concentration. If you have a job administering anything, you don't have the time. So I have invented another myth for myself, that I'm irresponsible. I'm actively irresponsible.
Starting point is 01:07:31 I tell everyone I don't do anything. If anyone asks me to be on a committee for admissions, no, I tell them I'm irresponsible. Cultivating irresponsibility. I like it. Andre, what about you? Well, first of all, don't follow anybody who's eloquent. I like it. Andre, what about you? Well, first of all, don't follow anybody who's eloquent. I've got nothing.
Starting point is 01:07:53 Thanks, Chris. You just sideswiped me there. Throw me under the bus, dude. I stole a quote from someone else, man. It's fine. I was just looking up something about Scotty and LaForge, but couldn't come up with anything quickly. Pass. Okay.
Starting point is 01:08:09 All right, then. All right. I do think that about covers it. My guests have been Andre Cicak of Embedded Wednesdays, a systems developer at CBF Systems Inc., and the owner of chichak.ca. The other guest, of course, has been Christopher Zweck of iRobot. You can still apply for jobs using his email address, csvec at iRobot.com.
Starting point is 01:08:41 And he has a blog over on chriszweck.com. There will be links in the show notes, of course. and there'll be a link to embedded fm slash blog although i think really you could figure that one out so come on by and see what we're trying to build as usual you can say hello by hitting the contact link or emailing us show at embedded.fm. So thank you for listening. Thank you to Christopher for producing and co-hosting and trying to set up Skype with four people. It was a battle, but it might have worked. We'll see. If one of us didn't actually have any audio in the show,
Starting point is 01:09:20 there were just pauses, it's not really his fault. It's totally mine. We will be here next week. And a final thought for you from me is from Meg Cabot. Probably not an author you know, but maybe you do. She says, write the kind of story you would like to read. People will give you all sorts of advice about writing. But if you are not writing something you like, no one else will like it either. Embedded FM is an independently produced radio show that focuses on the many aspects of engineering. It is a production of Logical Elegance, an embedded software consulting company in California. If there are advertisements in the show, we did not put them there and do not receive any revenue from them. At this time, our sole sponsor remains Logical Elegance.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.