Embedded - 133: Plenty of Room in Your Ear

Episode Date: January 6, 2016

Christopher (@stoneymonster) and Elecia (@logicalelegance) inflict lightning round on each other, talk about their new favorite toys, and get momentarily serious about performance reviews. Elecia is l...ooking for a datasheet for the SunPlus SPHE8104GW. Not the 8200. This is not something Google-able. It probably requires knowing the right person, but if you do (or if you are the right person), please help.  Tickle is the IOS app to program the Sphero BB-8 (and many other robots) in the kids programming language Scratch Laser Stars Indoor Light Show Automatic: BLE car monitoring The Cheerson CX-10 is the base model quadcopter Elecia and Chris have been playing with. They flew a CX-10C with its 0.3MP video camera off a cliff at beach (but it didn't record the video). Elecia's self-evaluation for 2014 year is on her blog Python library for mashing binaries into other forms is IntelHex Elecia couldn't find the .map file scripts she was thinking of though one on stackoverflow was pretty close

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded FM. I'm Elysia White, and today my guest is Christopher White. I'm always your guest. No, you're my co-host. Oh, right. No, never mind. You can be both my co-host and my guest, right? Sure.
Starting point is 00:00:21 This will work, right? I will ask myself questions, and then i will answer them well this is usually your cue to say hi how are you doing and then you no i'm not no no no no what are we talking about what's what's going on why are we here well it seems like we should do lightning round for and then I have some follow up on Learning C and a pitiful beg for information about a chip that I can't get any information about so you know look forward to that
Starting point is 00:00:53 and then there's an app that we like and then we're doing your performance review I'm doing what now? yeah I didn't agree to this no one ever does do I get a raise? I'm doing what now? yeah I didn't agree to this no no one ever does
Starting point is 00:01:07 do I get a raise? yes I don't like how this is going I don't like it at all alright let's get the the lightning round out of the way
Starting point is 00:01:19 let's can you lightning yourself? that doesn't seem right yeah usually I just pet the cat's ears and then they're all staticky and that's that's enough lightning Can you lighten yourself? That doesn't seem right. Yeah, usually I just pet the cat's ears and then they're all staticky and that's enough lightening. All right. I'm ready. Okay. Finn or Luke? Luke. Phineas or Ferb?
Starting point is 00:01:39 Ferb. I actually expected that. Most important to daily work, Saturn iron, keyboard, or mouse? Trick question. I don't have a mouse. Yeah, you do. I mean, a trackpad. That's it.
Starting point is 00:01:56 What counts as a mouse? Keyboard. Okay. Do you have any for me? Well, you just were going so fast. It was lightning. I couldn't get in there Oh, I see
Starting point is 00:02:06 Little or big Indian? Who cares? Incorrect IAR or Kyle? Oh IAR But with great, great sadness. IAR or Eclipse?
Starting point is 00:02:31 IAR. Isn't it painful? Well, I don't know. I don't get Eclipse, and I've had to use it a lot, and I just don't understand it. I don't have any real problem with the IDE. I have a problem with how it stores files and how the projects are arranged. I don't understand any real problem with the IDE. I have a problem with how it stores files and how the projects are arranged. I don't understand how that works.
Starting point is 00:02:47 I don't understand where the files are supposed to go. It never made any sense to me. Relative folders, people. Relative folders is a thing that they came out with in like 1971. I totally made that up. And Eclipse, it's hard because IAR is an IDE, but it's really the compilers and stuff.
Starting point is 00:03:08 And Eclipse is just an editor. Well, no, you can... And a debugger. Yeah, okay. But, so, I mean, I prefer editing
Starting point is 00:03:17 in something other than all of those things. What do you edit in? I edit in Qt Creator, which probably nobody else on the planet edits in, but I got very used to it when doing a lot of Qt work. I was very attached to Code Warrior for a long time after really learning its internals at one job. Object-oriented or procedural?
Starting point is 00:03:42 Object-oriented. Is a mobile phone an embedded system? Yes. What programming language should be taught in CS 101? COBOL. What does that look for? I don't think you're taking this seriously. In CS 101, like for people who aren't going to do CS majors,
Starting point is 00:04:04 the introductory programming course for everybody? Okay, yeah. Python. And for CS majors? I don't know. I'm a little too old to answer that question, I think. My flip response would be C++, but I don't think that's right anymore. Really?
Starting point is 00:04:21 It's still one of the major languages used i mean percent wise yeah i think i go with that but i'm i'm prepared to be wrong favorite software keyword favorite software keyword that's a weird question how void void question. Void. Void. It's your turn. I'm running out. 8 or 32-bit? 32. Really?
Starting point is 00:04:55 I love 8-bit processors, and I'd like to use more of them, but the future is 32, and... Follow-up question, then. Kilobytes or gigabytes? Kilobytes. That's what I think. Christopher told me recently that he was going to get something that fit into his ear,
Starting point is 00:05:14 little headphone things, earphone things, and that it would store music. And it would store a lot of music so that you could work out without your phone or whatever. And I was like, no, you can't have storage inside your ear. Like gigabytes of storage inside your ear, won't that itch? As every four-year-old would tell you, there's plenty of places, room in your ear for all kinds of things. Thanks. Are engineers all introverts? No. Oh, that one's a dumb one.
Starting point is 00:05:51 I'm going to take that one out. But they should be. BB-8 or Chewbacca? Oh, that's mean. Yeah. That is really mean i don't know you have to choose oh uh all right pass chewbacca i guess but only barely i loved it when bb8 was like a little cat and he was head-butting R2-D2 just like a little cat does. Jupiter or Saturn?
Starting point is 00:06:30 Jupiter. Okay, I'm out. What was Jupiter or Saturn? I mean, I actually think, yeah, I mean, Saturn's got the rings. You had an answer right there. But yeah. So clearly it was a valid question. Okay, the last one for me is a favorite fictional robot.
Starting point is 00:06:48 Favorite fictional robot. Oh, I have to think that's difficult. Yeah. I know. It was a big, broad spectrum. I mean, there's everything from. Give me, give me some. Well, there's the depressed one on. Marvin. Marvin the Martian. No, Marvin in the... Hitchhiker's Guide.
Starting point is 00:07:07 Hitchhiker's Guide. That one, yeah, the depressed one. And there's the Galactica robots. No. And there's the Cylons. Absolutely not. And there's the Star Wars. Yeah, I feel cliched going for one of those.
Starting point is 00:07:20 I know. I could take out fictional. Do you want non-fictional robot is non-fictional a word no maybe probably what r2d2 i don't know really r2d2 over bb8 bb8 was really cute you know you know we could just give up on the rest of the outline and talk about star wars nobody wants us to do that oh come on we could just give up on the rest of the outline and talk about Star Wars. Nobody wants us to do that. Oh, come on. We could just give up on the rest of the show and go watch it again. And how many times did that bring it to?
Starting point is 00:07:56 In what base? Yeah. Yeah. Okay, I guess I will go ahead and ask if anybody has any contacts at sun plus oh boy i need the data sheet for an sphe 8104 gw it is a cd player or karaoke or DVD player chip. And I don't need the 8200. I've got that. Yeah.
Starting point is 00:08:35 And I don't need this for any good reason. Do you need it for a bad reason? What reason do you need it for? Is it in that thing? Because it's in a thing that I want to write it's in a in a thing that i want to write about it's it's in a uh a device that i want to write about all right and so i really want the pin out more than anything and the basic specs like is it 32-bit is it 16-bit is it a custom core is it 16-bit 8051 yeah okay that'll'll be the name will be in the show notes,
Starting point is 00:09:07 which reminds me, I wanted to talk to you about the show notes. Do you know that there are people who don't realize that there are show notes? No. It's true. Tell me about the show notes. Yes.
Starting point is 00:09:23 So on embedded.fm, there are are show notes and basically we put in whatever links we think are related to the show and sometimes i actually linked them to the place where they're supposed to go only sometimes um that also happens in iphone land or in android, usually your podcast player will also show the show notes if you push the info button. They won't always link it. So if it looks like it might have been a link, you might want to go to the website to check out the links. Yeah, people should look at the show notes. Yeah, I spend all of eight minutes on them. Well, we can find things about our guests quickly.
Starting point is 00:10:06 Yeah, and you can search for which guests you want to figure out when they were on. That was what I was going to do for this show. This show? This show. What were you going to do? I was going to look at all the guests we had this year. Oh, like that spreadsheet you did last time? Yeah.
Starting point is 00:10:22 Wow. It's too late for that. It's way too late for that okay uh follow up on embedded c then unless you have something you'd like to interject possibly a part you're searching for and have spent searching for i search for no parts i have looked on all the chinese websites with laborious google translate adventures well if anybody has an oscillation overthruster, I'm looking for one of those. That's not real, is it?
Starting point is 00:10:52 You just made that up? No? Is it from some fiction I'm not remembering? Flex capacitors are as far as I get. I never remember these things. We talked about learning Embedded C and how we would recommend doing these things. I got a couple of emails talking about some other options. There is a UT Austin course. It's University
Starting point is 00:11:20 of Texas, Austin. And they're using the Teva launchpad from TI. What's that based on? I think the MSP430. Okay. I would have to check. Maybe it's an ARM core. TI does a lot of different stuff.
Starting point is 00:11:50 And that is free and online and was given high marks by at least one listener. And let's see, that is, oh, a Cortex-M4F. So you get floating point on that. That's great. That's a good one. And it's got lots of C fundamentals, so you can check that out if you want. There is also contextual electronics by Chris Gamble. No, that makes no sense at all. Well, they've expanded and they're getting more embedded software. They've been working on test-driven development as part of the process. He's got a couple of people who are software wonks.
Starting point is 00:12:20 Is wonks a bad word? No, it is not, but it usually refers to policy. Oh. That's actually sort of appropriate here. So I'm going to start with wonks a bad word? No, it is not, but it usually refers to policy. Oh. That's actually sort of appropriate here. So I'm going to stick with wonks. Who are doing videos about how to put together C things. So that's an option too. You have to pay for it, but now that it's month to month,
Starting point is 00:12:41 you can decide how much you're using it. That's very cool. Instead of paying for it for a year and then only going to the gym once so is he adding new instructors he added two new instructors did you just say that i might have said that yeah oh allison suggested the ucsc course see data structures and she said that it was intense and difficult and amazing. She also suggested just going through K and R and doing all of the exercises. And it's funny that she suggested that
Starting point is 00:13:14 because it has led me to going through a calculus book and doing all of the exercises because there's something in calculus I keep missing. I know that's such a dorky thing. Is it the little S's? It is the little flat S's. I only understand them intuitively and I don't really
Starting point is 00:13:31 like we get to having to use a table and I don't know when to go to the table. And then integration by parts and the hospital rule. That's for limits. Yeah.
Starting point is 00:13:48 So I just wanted to, you know, actually do some exercises and figure that out. It's one of my, I guess it's not a New Year's resolution since I started in December. It's best to start those in December and then you don't have to worry about giving them up. Yeah. But between Allison's,
Starting point is 00:14:02 just go through the book and do the exercises. See, but nobody wants to hear that. Nobody wants to hear, you know, just do what everybody else has done for a thousand years. Read a book. Well, I think what everybody really wants is the easy way. Is to just get the Matrix Kung Fu in the back of the head. There is no easy way. That's what this all comes down to. There is no, here you can be an expert in embedded C in five minutes or less.
Starting point is 00:14:24 The only way to learn how to do difficult things is to do difficult things. Yeah. And make a lot of mistakes. Yeah. Stephen of Johannesburg. That sounds like
Starting point is 00:14:39 an epic figure. Sorry. He is. He wrote to tell us about Prolog, which is a language I've never used, as it requires huge stack spaces. But it's used to solve scheduling and path problems. Do you want to read what he wrote? Sometimes knowing how Prolog kind of works
Starting point is 00:15:01 helps me as I can program pattern matching and crude unification of rules into C, which is almost always available in micros. So part of my micro C program will do non-deterministic programming. Okay. In this time of Internet of Things where potentially masses of data are normally captured and transmitted to the cloud, it might be beneficial for the data capture unit to do pre-processing to decide this value is out of norm so it can increment local accumulators to record standard readings, etc. I see data filtering to be a big growth area and not Internet of Things. It's kind of an AI language.
Starting point is 00:15:36 That's why I always heard of Prolog in the same breath as AI. So that kind of makes sense for something that can do more pattern, deep pattern stuff without having to rebuild the world and see. I don't know. I think people should look at different languages. Yeah, it goes back to knowledge is not necessarily wasted. Understanding how one thing works can help you just kind of have ideas in another. And from Philippe, he said his favorite programming language is Python. He uses it for automation, but he doesn't consider himself a programmer. He wanted to elaborate, he wanted us to elaborate, for non-programmers what a map and link files are. Oh, that sounds like something you'd like to answer.
Starting point is 00:16:24 Yeah. I mean, where you is you'd like to answer. Yeah. I mean, where you is the... Oh, you meant me. Yes. I know what they are, but... Okay, so let's go with the link file first. We talked a little bit about compilers last time. It was just us. And a compiler can take a C file, a dot C file, a source file,
Starting point is 00:16:46 and it generates an object file. And the object file, I mean, you can think of it as an assembly if you never look at it, but the real object file is not an assembly. It is in machine code, but it's in relocatable machine code. Now, that's sort of weird because it means that if you have two source files, how do they know how to talk to each other? So we should define relocatable. Okay, so a function at the start of your object file
Starting point is 00:17:19 may get mapped to the start of your memory on your microprocessor. Now, that might be bad if your microprocessor interrupts at the very beginning of memory. So you have to tell it, no, you have to go to this space. You can't go to my RAM because I don't want to run from RAM. I want you to go to my flash space. And so the link file tells the linker about these object files and where they should go. And it doesn't have to do it by this object, not main.c leads to main.o. And so the linker file has to talk about main.o.
Starting point is 00:18:00 It can, but more often it says, if it's code, put it here. If it's static variables that are pre-initialized, put it there. If it's registers, then don't put anything else on top of this space of memory. And if you run over your space, if you make a program that's too big to fit into your allotted processor, the link stage will determine that because the linker will look at the link file and it will say, oh no, you don't have access to that, and you'll fail on that. If you've used an Arduino and written a program that was too big for it, not RAM-wise, RAM-wise you just start crashing.
Starting point is 00:18:41 But if your code is too big, you have too big of a state machine, you have too many things you're doing, you have too many floating point libraries, then it will say it can't compile due to link errors. And that has to do with the link file. The link file in Arduino is very hidden from you. It's very hard to get to. You have to kind of know what you're doing and well, you can find it on the internet but so the link file goes from the code the object file the the compiled code to where does it exist on my processor on a computer you don't really care about that because it just exists in the something or another you know it just if... If I compile Hello World on my PC,
Starting point is 00:19:27 I don't really care where it's running from. Well, it all runs in virtual address space, which microcontrollers don't have. Right. Most microcontrollers don't have. But if I'm running on a Cortex-M4F, the RAM is in one space and the flash is in one space and the
Starting point is 00:19:45 flash is in a different space, and so where I run my code from, that really matters. And I have to give the compiler, the linker, the IDE, a way to figure out where to put everything. So a link file tells you where everything goes. Yes, it is the instructions.
Starting point is 00:20:02 The instructions to the linker to where everything goes. And the map file is just where everything went. Yes, and it is the instructions instructions to the linker to where everything goes and the map file is just where everything went yes and it is super useful because if you want to know like did this bit of code go into ram where it might run really fast you can look in the map final tell you or if you could look at the ar Arduino when you ran out of space and you could look at the map file for the Arduino, you would see which function is taking up all that space and maybe remove it if you didn't need it. There's two uses I've had for map files
Starting point is 00:20:35 that have been good. One is the first one you're talking about. Where is everything going? What's taking up all my space? Is there some library that's really big that's linking in, that's chewing up all your code space? Or do you have a bunch of static declarations of data
Starting point is 00:20:49 that are eating up a whole bunch of RAM? Right, because those never go away. Those aren't like variables and functions. It's not like you're mallocing them. It's not like they're on the stack. So it'll show you that stuff. The other one is when trying to find really weird crashes and memory corruptions. Yes. The map map file if you sort it by address can tell you what things are next to each
Starting point is 00:21:12 other so there's been a couple of times where i just been stumped about what's going wrong with something and uh you know it's a crash situation and it's on a microcontroller, so luckily you can get in with a debugger after the fact and see where it's crashing and then look at the structure it's crashing on. But it's very hard to tell at that place what might have overstepped its bounds into you. If you go to the map file, you can say, oh, well, here's the structure that I know got corrupted.
Starting point is 00:21:40 I sort by address, and I can see what the structure just before it in memory is. That's the one that's probably overrunning, and that gives you a hint as to what code is having a problem. So there's stuff like that you could do with a map file. I don't think we really defined relocatable code. Go ahead. I think it's just that it's a way to produce an object file that doesn't have absolute addresses that are fixed. So instead of saying, my variables at this address and this other variables at this address and this function exists at this address, it uses all offsets and things that later can be fixed up in a final link step or in a dynamic link situation to point to the addresses where it ends up. Well, and for many
Starting point is 00:22:22 of the variables we use, we don't care what address they're at. As long as they're in RAM, we don't care. Right. But there are a few addresses we really do need to know are at specific places. There are register variables. Right. And so those are usually in a link file,
Starting point is 00:22:37 but not necessarily the link file you look at. There are some sort of processor-dependent file you choose in your IDE. But that all boils down to basically an include in your link file. And so that will map your GPIO3 to the address it's supposed to go to. And link files can get really complicated. In IAR, you can have a situation where you have several memories,
Starting point is 00:23:01 and some of them, they might all be addressable because of your hardware is set up that way but you could have three or four different rams and flash and the link file allows you to define those as sections yes so like if you're doing a logging as part of your cortex processor and you're you're putting it to local flash you can make sure that your code doesn't end up in your logging area because you erase your logging area periodically. And so the link file will not let you grow out of your code space without telling you.
Starting point is 00:23:36 Map files are also good for optimization. If you need to know how much RAM you're using and how to reduce it and how much code space you're using and how to reduce it and how much code space you're using and how to reduce it. And I find them useful for all sorts of debugging. I mean, you mentioned with RAM, if something's overrunning, it's usually the thing before the one you end up looking at.
Starting point is 00:24:00 And so reordering your map file helps a lot. You can do that with functions too like if you blow out your stack you can find which function went nuts if you look at your function where your pointers are where your stack last was good okay that's what i haven't done um link files i wouldn't I wouldn't jump in. I wouldn't say, oh, go look at your link file. It's the coolest thing ever. It's probably opaque unless you really, really need to know. Well, that's the depressing thing is they're all idiosyncratic formats.
Starting point is 00:24:34 IR has got a different format from Kyle. Everybody's different. Um, and they're not readable. No. And there's no manual for them usually. Or the manual is basically, here's three examples. And you're like, oh, all right, I'll try. There do exist resources.
Starting point is 00:24:54 But if you want to play with one of these, find a map file to look at. They're really interesting. They're kind of long because it's listing every single function name. And usually every function name from libraries, too. Yeah, sometimes more than once. Yes, that's always fun. But still, you find out a lot about how your processor is put together. Look for little summary areas if you just get lost in the wall of text.
Starting point is 00:25:20 Usually at the beginning or at the end, there's a breakdown. Here's how much data space you're taking. Here's how much data space you're taking. Here's how much code space you're taking. And you may not need that in general, but when you run out of stuff, it will become suddenly very, very important. Okay. The question was, can you please elaborate to us non-programmers?
Starting point is 00:25:40 So I think we've gone above and beyond there. I wanted to point out that Python actually has some reading facilities for map files. You were saying reorder it. And I often use Excel to do this, but because they're weirdly formatted, Python actually has a few features that will help you read in a map file and spit out whatever you need. Oh, cool. Do you have some scripts for us? I believe I have some import library framework things.
Starting point is 00:26:13 You should share them. I will make it note to do that in the show notes or to come up with a good excuse why I can't find them. Python map readers. There's also, if you are trying to figure out how to get from different formats, you know, if you want a bin or an SREC or whatever, Python has some really nice translation tools to go from formats. Yeah, I look forward to these on your GitHub.
Starting point is 00:26:44 No, these are just, you just import them and then you use them. Oh, you didn't do anything. You're just stealing. I believe it's called sharing. No, I did not create these, no. I totally just
Starting point is 00:27:03 mooched these. Yeah, no. Oh. I totally just mooched these. All right. Yeah, sorry. I want something that takes plain English and turns it into an IAR link file. Put this here. Put this here. But it isn't just put this here. It's put this here and make it readable. Yeah.
Starting point is 00:27:24 Put this here and make it writable. Yeah. Put this here. I don't see the problem yet. And make it readable in this number of wait states. Okay. I don't know what that means. I mean, I know what that means, but I don't know why I'd put that in a link file.
Starting point is 00:27:37 I don't either, but I've seen it and I think it's bad. I don't think you should do that. I mean, wait state is a hardware thing. Wow, you're specifying that. I mean, white state is a hardware thing. Wow, you're specifying that. I'm really confused. Well, your white states... You're right.
Starting point is 00:27:54 Linkers don't usually have... I've seen that like once, but I don't know why it was in the... Yeah, I'd like to see that. That's curious. So maybe I'm delirious on that one. You know, we may have to go to a Star Wars podcast. I'm not sure i have a lot more i'm not doing that well let's just talk about bb8 then all right let's talk about bb8 again you found a program yes there's an app for the iphone and ipad and i'm not sure if android
Starting point is 00:28:21 i didn't see Android on their list. Yeah. It's called Tickle, which is embarrassing for everybody. And it's like actually Tickle, not like TCL. Right. And as far as I can tell, it allows you to program in Scratch. It is Scratch, yes. And you can write little programs to drive all the Sphero stuff, plus a whole bunch of other things. Sphero, BB-8, which is the same.
Starting point is 00:28:47 Not exactly. They have a different interface, so it's nice. Philips Hue, and I didn't look at the whole comprehensive list, but there were some things that looked non-Sphero. Yeah, the light blue bean, which is an Arduino BLE thing, and Jumping Race and Dot and Dash. Parrots, various features. Oh, the drones?
Starting point is 00:29:10 Yeah, and Airborne Knight, which is a drone. So it had a lot of different things, and when you told me about it, I was like, yeah, Sphero's never going to open their programming and blah, whine. Because I was hoping the Sphero Spark would control the BB-8, but that hasn't happened yet. Instead, this tickle actually works. I was surprised, and it was really easy to get started.
Starting point is 00:29:39 It had things like, if my accelerometer on the x-axis... Not on BB-8, but on the device. Well, that was the thing. There were all these little drop-downs, like x-accelerometer, y-accelerometer, x-gyro, y-gyro. And then I could choose on BB-8, or I could choose on my iPad. So it only took about four lines of code before I could drive BB-8 by rotating my iPad whichever direction I wanted it to go. I can't say I drove it well,
Starting point is 00:30:14 because I made some bad coding decisions, but that's why UIs take a long time. So it looked like it linked into all the sensors it had, and that you could control everything. Plus it seemed like you could do programs that incorporated more than one device. So if you wanted BB-8 to... Multiple BB-8s dancing.
Starting point is 00:30:37 Multiple, oh, you could do, oh, okay. Multiple to the same device, or you could... Or BB-8 and Hue, whenever BB-8 runs into the Hue. It could flash all your house lights for some reason. Yeah. Or BB-8 and Hue. Whenever BB-8 runs into the Hue. It could flash all your house lights for some reason. Yeah. Although the light blue being with its Arduino-ishness, you can control the two to work together.
Starting point is 00:30:58 I don't know. I was surprised. I thought it would be kind of silly, and it was pretty engaging. And it's not typing coding. It's drag-and-drop coding. Yeah. But not NI style with wires and stuff. It's still procedural. Yeah, it looked like it had blocks of language code, like natural language, and you drag them in order.
Starting point is 00:31:21 Even without the devices, it would be pretty amusing. Right, because you could do some of this stuff on the iOS device itself. Yeah, you know, play music or tap or play a game. I mean, you can
Starting point is 00:31:32 build a game. Right, two examples of like, I think they had a Flappy Bird kind of thing and something else. It's great for kids.
Starting point is 00:31:39 I mean, that I like a little better than some of the other kind of programming things for a certain age group because you actually see keywords. I mean, they're not real programming keywords, but it's actual words. It's not... I mean, there's if and then, else and while and repeat.
Starting point is 00:31:56 There's nothing about it that says this is not a programming language. This is visual. It's kind of a mix of it's visual and a stepping stone. But yeah, if somebody got one of those for Christmas, that would be something to check out. It's free, I think. Oh yeah, Tickle was free. Which is remarkable because it was really well put together. It was really well put together. Yeah. I was very happy with that. I haven't decided what else I want to do with BB-8. I saw somebody said they made it into their nightlight
Starting point is 00:32:28 and every night they would change colors. I was a little tempted. I don't really need a new nightlight. You got a new nightlight for Christmas. What'd you get? Lasers that shoot at the ceiling. Lasers. I'm sorry. I don't mean
Starting point is 00:32:45 to denigrate your nightlight. Not a nightlight. It's lasers. It shoots thousands of laser beams at the ceiling. Okay, hundreds. Somewhere between hundreds and thousands of laser beams at the ceiling to make a star
Starting point is 00:33:01 field that constantly moves around. Is it separate laser beams if they go through a diffraction gradient? Yeah, they're different beams. I guess so. If you have a beam splitter, you've split a beam into two beams. Yeah. So now we have the night sky on our roof, except only if we lived somewhere else. I don't think it matches any known star chart, no.
Starting point is 00:33:27 It's an infinite universe that has to match something. It's different every time. Think of all the places we're traveling. Yeah, it was pretty cool though. And you got something gadgety for your brother. What did you get? I got him the automatic car gadget. It plugs into the OBD port, the diagnostic port on all cars.
Starting point is 00:33:50 And it does a whole bunch of stuff. It keeps track of your fuel efficiency. It'll tell you if there are any codes on the engine that need addressing. It'll tell you what they mean. You have code 20, go look in your manual. It'll say, oh, you left your gas cap open. It will keep track of your trips for you. So if you have a business or something
Starting point is 00:34:09 where you do a lot of traveling and you have to keep track of mileage, it'll just automatically do that. It has an API, so people can write other programs for it and apps for it. So you can get like a trip journaling app. It'll just automatically
Starting point is 00:34:25 kind of sort through that stuff for you. It's Bluetooth? It's Bluetooth to the phone, yeah. Yeah, so there would be an app on the phone
Starting point is 00:34:31 that's, and you could just say this is business, this isn't, and... And I think it's got a GPS in it too so it can do,
Starting point is 00:34:36 you know, where I park, but it also does accident stuff so if it detects an accident and tries to call the authorities or whatever,
Starting point is 00:34:46 the authorities. That the authorities that sounds weird you are old anyway it was pretty cool I got one for my dad a couple years ago too so but
Starting point is 00:34:59 yeah what else did we get gadget wise people for gadgets I guess everybody got a drone this year except for your brother everybody got a drone
Starting point is 00:35:07 everybody got drones drones for everyone because they were so ubiquitous and then we threw one off a cliff you can't say that we didn't get the video
Starting point is 00:35:16 so it still happened it did it was fun Chris's brother and sister-in-law came over for Christmas celebrations and
Starting point is 00:35:25 we took the drone out to the cliff that looks over the beach. There's sand underneath it. And Linda and I walked down to the beach and... It's still 50 or 60 feet. The guys flew it off the cliff
Starting point is 00:35:41 and we watched it and recovered it and sadly the video did not go. Although there were other cute videos from that. Yeah, these are the little tiny handheld. Cheerson? No. ProtoX? There's 50 different names of them. It was the Cheerson CX-10C, which is the one that's just slightly bigger than a quarter in its body.
Starting point is 00:36:07 And it had a camera on it. Yeah, really terrible camera. But come on, it's this big. Three megapixels. You can't see, but it's very small. When we came back from our walk, we found the guys landing the quadcopter in Chris's hand. So you just stick your hand out of the quadcopter.
Starting point is 00:36:26 We had a bunch of people ask us about it. It was funny. Yeah, even when we were with you. They could not believe it was a drone that you could remote control at that size. And then when we set a camera on it, they were just like flabbergasted. It's really scary. I don't think people take those cameras out that much
Starting point is 00:36:41 or those drones out that much because they're really sensitive to wind. It flew pretty good. But it did to wind. It flew pretty good. But it did really well. Although the range is terrible. I mean, once we got it out over the cliff, it just stopped responding and fell.
Starting point is 00:36:53 But yeah, drones are going to be ubiquitous, utterly ubiquitous. And as soon as the FAA said 4.5 pounds, now all drones are going to be 4.45 pounds. Yeah. And this one was so so it's so tiny and as things advance i mean you can pack the same amount the only problem with the smaller drones
Starting point is 00:37:12 is they aren't going to be able to fight environmental stuff as well i mean yeah so you know they're not going to have as much power and weight and momentum to to keep from being blown all over but i mean there's no reason that they have to be big. Well, carrying capacity, if that's part of what you're trying to do is deliver stuff. But as far as visualizing stuff, as far as going out to look at things, they're just going to get smaller and smaller.
Starting point is 00:37:42 I mean, I can imagine that with a CDMA camera or a CDMA cell phone sort of thing, being able to talk to it. Even if it was slow, like one picture a minute. It was really cool. And since the processor on there is, it's not a bad processor. What is it?
Starting point is 00:38:02 It's a Cortex M0. Oh, it's an M0. Okay. I think so. Not an M4? No, BB-8 had the M4. Okay. So I'm pretty sure it's the M0 because I've been playing with those.
Starting point is 00:38:20 Should I look it up? Sure. Okay. You talk while I play with it. But all of these things are the consequence of cheap gyro and accelerometer chips, right? I don't really. Because it's just a loop between four motors and that chip and a CPU directing everything in some sort of feedback loop. I don't, I don't know. I mean, something got really cheap and I'm not sure I understand what it is.
Starting point is 00:38:48 I mean, we went from no quadcopters to ubiquitous. Always quadcopters. And we got, I mean, that was, what, $15? If that. On the sales site with the camera. Yeah, that one was like $15. And then ones without the camera are like $10 and they're just really functional.
Starting point is 00:39:10 It is a Cortex-M0. The STM32F031XF. No, 3-1-X-4, something 4. It's not as good as the 3-1-2-P-Q. I think it's the F- is the important set of widgets there. Digits, whatever. Yeah, so we got, I had sent one to your sister-in-law because I thought she would find it amusing.
Starting point is 00:39:41 To your sister. My sister, your sister-in-law. My sister-in-law. And then your mother, when askedin-law and then your mother when asked what should we get for your father said get him a drone so that went into a separate box he got one with the camera and then when we threw that drone off the cliff even though matthew already had a gift and we sent him home with one of my spares spares because we had a pile of them for reasons well yes but then i had i was going to give him one of my spares. Spares, because we had a pile of them, for reasons.
Starting point is 00:40:06 Well, yes, but then I had, I was going to give him one of the others, but then he really wanted one with the camera. It was just, oh, man. Christmas, what can you do? What can you do? Apparently what you can do is stockpile drones and give them out to anybody who needs a gift. What do you want to do with BB-8 now that we can program it?
Starting point is 00:40:25 Throw him off a cliff. Uh, no. Oh, sorry. Try again? I don't know. This is the problem with all of these things. I don't know what to do with the stuff. It's infinite possibilities,
Starting point is 00:40:40 which means I choose nothing. That's very... nullistic. That's very nullistic. That's exactly what happened at the bakery yesterday, so don't claim that doesn't happen to you either. Yes. Sorry. Faced with too many decisions sometimes I will just...
Starting point is 00:41:01 Make no decision. I will decide that I wish... Let's go someplace where there are fewer options. Which is ridiculous. I don't know. I like the idea of controlling multiple at once. Seeing what you could do there. You know, the problem with BB-8 is it's not very exacting in its control.
Starting point is 00:41:21 So you can tell it's turned 45 degrees. And it turns 25 to 75, depending on how it's feeling. It does better if you take off the head. Most things do. Yeah. I don't know. What do you want to do with it? I don't know, but I want him to be a real robot instead of a remote control car.
Starting point is 00:41:45 I want you to grow up and be a real robot. I'm thinking about head-butting the dogs just like happens in the movie. Although since the dogs spend a lot of time looking at it like, why are you here? I don't know that they're going to go for the head-butting. What I would want to see is, along those lines, if I want to be a real robot is have another sensor somewhere else of some kind so that it could know where to go and then go to it. If you could make it go to something, that would be cool.
Starting point is 00:42:15 That's like your new vacuum. I'm not talking about vacuums. Okay, well, let's talk about your review i'm looking at this line item with no text under it in the notes and it's usually a bad sign all right let's talk about my review we're not really going to talk about your review um for people who work at home oh, we don't really get performance evaluations. Do you think performance evaluations are an important part of becoming a better engineer? Or do you think after five years it just is not useful anymore? That's a really good question.
Starting point is 00:42:58 I have very conflicting views on that. My flip first answer would be that they're not important after a few years. Because the people, God, I don't know. I don't know. I mean, they can be done in such a way that they're not important. And I think a lot of times they're done in such a way that they're not important, where it's just a, well, give me a list of all the strengths you have this year and all the weaknesses and areas you'd like to improve. And they tend to be review yourself, right? There's a form you fill out and then your manager looks at it and signs off on it. That's what I'm used to from big companies in the past. Other places have done the 360 review thing thing where you get feedback from everybody in your peer group. That's a little daunting.
Starting point is 00:43:51 Ooh, isn't it? because it kind of gives a forum for people to, you know, say things they might not say normally, but it's okay to, you know, give feedback in a comfortable, safe fashion to your peers. I don't know. I tend to think of it as a formality to either let people advance in their career and get raises or be put on a plan to get out instead of being really actually valuable. So there is some value to it. I mean, you...
Starting point is 00:44:41 Oh, sure. Yes. Sometimes, yes. Depending on how it's executed, right? Yeah, I mean, if somebody's giving you valuable feedback, that's always great. It's not always comfortable. No, but nobody should be rejecting feedback
Starting point is 00:44:58 unless it's totally off the wall. On the other hand, if it's just pro forma, then it's not.... On the other hand, if it's just pro forma, then it's not. But even the pro forma, what have you done this year? What did you hope to accomplish? Sure. What did you not accomplish? Yeah.
Starting point is 00:45:14 And why is there a discrepancy? And now for next year, what do you want to accomplish? And what tools do you need to get there? Isn't that sort of stand here and look around occasionally useful? I think the becoming aware of where you are and how you've done is useful. I think the planning for the future, in my experience, has never ever even come close to being correct. Do you think that it's a practice thing? Like if you spent more time thinking about what you wanted for the future,
Starting point is 00:45:54 then maybe, you know, every, so I want to accomplish A, B and C next year. And then next year comes around and you accomplished A and B, but you didn't do C because you found out it wasn't interesting. So now you say, I want to do DEF next year. And so maybe you can be better at forecasting your performance. It sounds a lot like New Year's resolutions to me. I can see that, especially when those things are essentially given to you.
Starting point is 00:46:24 I'm going to do this project because it is the team I am on, and if next year I'm graded on whether or not this project gets done, but I switched teams on me. Well, that's just the thing. Almost every time I had some sort of goals and plans set out in a review and went back and forth with the manager, things changed so much in the next year, wherever I was. If it was a startup, things just are always in flux. Or if it was a big company,
Starting point is 00:46:59 things changed there too. And it just was never useful because within three months it was totally no longer applicable um i don't know i'm a huge cynic so i mean i understand the sentiment behind doing reviews like i said earlier i do think they're useful in those first five years where somebody's you know developing in their career and they really need feedback. And I do think it's useful to get feedback from peers at all stages of your career, whether or not it's through this kind of mechanism, I'm not sure.
Starting point is 00:47:34 It doesn't have to be formal. Right. People should be willing to give feedback at any time, because why do it once a year or once every two years if they get around to it most places these days or three years well the once a year is really hard because oops you screwed up in june the last three months it's not about a whole year that's the thing too is nobody's going to look back far enough for it to be uh really comprehensive i mean i always sort of liked doing the self-prepare or self part of it where I went through and I looked at all the things that I actually had accomplished that I forgot about.
Starting point is 00:48:11 There's some niceness to that. But yeah, it's hard. It's hard to take feedback that A is the same feedback you've gotten for the last 10 years. So, looks like I'm not changing that. And really, if you wanted me to suffer fools, you should have chosen somebody else. Are we thinking to something specific? No, it's just like every review I've ever gotten, Alicia does not suffer fools lightly. Like, yeah, and how is that a bad thing?
Starting point is 00:48:45 You fool. Yeah, so I don't know. I've never really met an engineer who took them seriously either. So it's always kind of a joke. But I have, it's always been a game to me. When I was a manager, I had to do them. And I always kind of took it as an opportunity. But I took it as an opportunity to let people know that I appreciated what they'd done and that I was paying attention.
Starting point is 00:49:11 Yeah. It was never so much a, well, 65-year-old engineer who's been doing things the same way for probably 35 to 40 years. You should really think about, you know, your approach to teamwork. He would have spilled his coffee on you every day for the next year it's just not realistic and i would have deserved it yeah i mean at some point people are who they are and that's why i think it's useful in the early stages when you're really developing and again that's cynical that people can't ever change but well last year i did a little evaluation of myself
Starting point is 00:49:46 because we work for ourselves. Who else is going to do it? I could do it. Yeah, and I heard the fear in your voice earlier in this podcast. I don't think us evaluating each other is a good idea on this. And I actually used five things where you have five hits, five things you did well this year, five misses, things that didn't go as planned.
Starting point is 00:50:19 Highlights, which is different than hits. Highlights are things that you didn't necessarily expect to have happen, but still make the highlight reel for the year. And five reflections, things you've learned. You did all this? And five goals. You did all this? I did all this. On your own? I did all this on my own.
Starting point is 00:50:36 I actually put it on my personal blog. I know what's going in my review. Did not do anything like this. Did not review self. It was helpful because I realized that the hits, the things that I had gotten done and the highlights were so different. The things that I had gotten done were fine and good and it happened, but the highlights, the things I was excited about were different and that made my goals different. So, yes, I actually haven't looked to see what my goals were last year, so we'll see.
Starting point is 00:51:13 And I did have, sometime shortly after that, I spoke with Elizabeth Houck, not on the show, just at some conference. She had how to evaluate employees and self using a different method that was kind of cool. Do you mind if I blather about it, or are you bored? Blather on. So maybe I will ask you these questions. Are you technically proficient? How well do you do your job on a scale of 1 to 5? G.
Starting point is 00:51:47 Do you communicate effectively with all of the methods that are appropriate, and do you do it timely? On a scale of 1 to 5, how well do you... Five different questions. But, you know, the communicate effectively is the main part. The other parts are parenthetical. Okay. Are you proactive? Do you take initiative or do you wait for things to happen to you? Hmm. Are you reliable and accountable?
Starting point is 00:52:18 Do you actually do what you say you're going to do? I hope so. And then the overall one, the one that was the most important, was do you have other people's trust? And that's also a score of one to five. And that's, you know, getting other people's trust is pretty hard, and it is a summary of all of the previous ones. Okay.
Starting point is 00:52:45 I thought that was kind of cool. You know, I don't know that I'm going to do the whole review thing this year. Right now I'm sort of in project hell and my review would be, this all sucks. It all sucks, sucks, sucks, sucks. Everybody hates it and it sucks. Which isn't a good place, it isn't a good frame of mind to uh do any well the problem with self-analysis is it has to be detached enough so that you aren't focusing on the here and now yeah um which is supposed to be an annual thing not right which is why i'm a little
Starting point is 00:53:21 cynical of the the usual method i mean i much prefer it if the manager is doing the review. Somebody else is doing the review who knows you well and has been watching. Not somebody who manages 50 people and has to do a review of somebody they're not even sure whose their name is anymore. So it's very difficult to make it valuable. I think it can be valuable, but I think it's difficult to make valuable. And self-reflection is super important. But again, I like something like this where it's a little bit formalized because then you can have a little bit more detachment.
Starting point is 00:53:52 The questions are not as much boiled down to how do you feel right now about what's happening this week. Yeah. If you can make them about all of it, it's a lot better. And we talk about imposter syndrome every once in a while. I think performance reviews can help with that if you can not be too hard on yourself. I don't think self-performance reviews can help with that. I find listing all the things I got done to be quite helpful. I suppose that can help.
Starting point is 00:54:29 And that was why I chose the five hits, highlights, misses. Yeah. Because it was... Still, it's all about doubt, right? And it's easy to inject doubt into something you do for yourself. It's much better to have somebody else tell you, you know, you really did a good thing back here in August with this particular problem. I was really impressed with how resourceful you were.
Starting point is 00:54:47 And those things help a lot to get over some of those insecurities. I was listening to a podcast. I think it was one of the TEDx podcast ones. and they talked about how one encouraging word from somebody when you're young can change your whole life. What's the word? Good job. Oh, there wasn't just a special word. It wasn't a magical alakazam word, no. It was just, you're doing good.
Starting point is 00:55:26 And that really encouragement. Wow, you want somebody to score you highly on your performance review? Start giving them compliments. That sounds like cheating. Social engineering. Don't mean them. I mean, not compliments like, your shoes are shiny today. That might not be a compliment.
Starting point is 00:55:53 No, it might not be. But, you know, thank you for saying what you said in that meeting. I wanted to say it, but I didn't want to bring it up. And thank you for bringing in donuts. I noticed. These things make your coworkers a lot happier with you. Yeah, you never bring donuts. I know, but there's a cookie in the fridge for you.
Starting point is 00:56:20 Only if we stop talking about performance reviews. That's all I have actually though well that's a lot do you have any more questions do I have any more questions for whom I don't know I have a lot of questions I don't think they apply to this podcast
Starting point is 00:56:39 what was your favorite part of Star Wars the part between when the opening What was your favorite part of Star Wars? The part between when the opening crawl is just coming up and the part when the end credits are coming. You're just choosing it all? Yeah. I liked the part where she was doing something and she was pointing and she wanted the other character to hand her something. And he kept trying to give her the wrong thing. And she says, no, that one.
Starting point is 00:57:16 And even BB-8 is trying to point out that one. And Christopher leans over to me and says, I can't believe I married her. So if you see the movie, you'll know which scene I'm talking about. But it was, yeah. And on that note. And on that note. On that note, I will do the whole outro thing. Here we go.
Starting point is 00:57:42 Thank you for listening. You're welcome. Thank you for being here to Christopher. You're welcome thank you for producing you're welcome uh yeah okay hit the contact link on embedded fm if you'd like to say hello or email us show at embedded.fm it is now time to remind you that we will be on the amp hour with with Chris Gammill next week, this week, sometime really soon. We're going to have a call-in show. I hope you've already called in, but it wasn't
Starting point is 00:58:12 worth putting it at the front of the show this time, because you will probably be over by the time you hear this. Not necessarily. Well, if there's still time, Wednesday, January something. Oh, come on. January 6th. still time Wednesday January something oh come on
Starting point is 00:58:26 January 6th we will be recording a call in show for the Amp Hour with Chris Gamble and so please ask questions that we can answer oh no please ask questions
Starting point is 00:58:43 we can that Chris Gamble has to answer and that we can answer. Oh, no. Please don't ask questions that Chris Gamble has to answer and that we can then not make fun of, but maybe help him understand why software engineers just think capacitors are dumb. I don't think they're dumb. They're not? Diodes are dumb. We all have our favorite components a final thought to leave you with
Starting point is 00:59:12 the quote this week is from Winnie the Pooh as is tradition if the person you are talking to doesn't appear to be listening be patient. It may simply be that he has a small piece of fluff in his ear. 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.
Starting point is 00:59:44 If there are advertisements in this 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.