Embedded - 133: Plenty of Room in Your Ear
Episode Date: January 6, 2016Christopher (@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)
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.
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
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
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
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?
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.
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
Little or big Indian?
Who cares?
Incorrect
IAR or Kyle?
Oh
IAR
But with great, great sadness.
IAR or Eclipse?
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.
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.
And Eclipse is just
an editor.
Well, no, you can...
And a debugger.
Yeah, okay.
But,
so, I mean,
I prefer editing
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?
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,
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?
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?
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,
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.
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?
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.
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.
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.
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?
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.
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,
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.
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.
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.
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?
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
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.
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.
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,
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
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
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.
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,
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.
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
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
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.
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.
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,
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
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.
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.
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,
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
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.
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
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
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
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.
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
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,
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,
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.
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.
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.
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.
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.
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?
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.
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.
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
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.
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.
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.
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
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.
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?
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.
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,
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.
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.
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.
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
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.
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.
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
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
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
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.
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.
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
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
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
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,
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,
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
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
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
so
it still happened
it did
it was fun
Chris's brother
and sister-in-law
came over for
Christmas celebrations and
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
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.
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.
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
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.
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
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.
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?
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.
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.
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.
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.
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.
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?
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,
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...
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.
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.
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.
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.
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.
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...
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
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.
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,
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.
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,
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.
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.
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?
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.
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
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.
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.
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.
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.
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?
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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
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.
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.