Embedded - 400: A Really Long Time
Episode Date: January 28, 2022Christopher and Elecia celebrate their 400th episode by discussing what has (and hasn’t) changed in embedded systems over the last 9 years...
Transcript
Discussion (0)
Welcome to the 400th episode of Embedded.
I am Alicia White, here with Christopher White.
This is it. This is where we close it all up, right?
I didn't think so.
I mean, what more are we going to say?
Well, today it's mostly going to be looking back, retrospective sorts of things.
Okay.
We have 400 things we can talk about.
I was kind of tempted to just say all of the titles, like some poem, 44 lines about, or 88 lines about something.
Yeah.
I don't think that would be, after the first hundred, I think that would start to get a little weird.
I'd be surprised.
Going through them, there were some pretty funny ones.
Okay, when do you think we started the podcast? I think we started the podcast in 1988.
And we shipped out cassette tapes to all our subscribers via first class mail.
And back then we had three subscribers.
And mostly we talked about 8051s.
And UV erasable ROMs.
Okay.
No, that's not when the show started?
Well, it does seem like we've been doing the show for a long time.
I don't think it's been that long.
Okay.
Oh, when were podcasts invented?
I don't know.
Okay, sometime after that.
2013 or 14?
May 15th, 2013.
Okay, so nine years ago almost?
Yep.
Oh, that's too long.
Well, we do 50 a year, except we don't really quite manage 50.
And in the last few years since we replay them, it's not really 50.
Every six weeks or so.
So we intend to do 50, and we've probably hit 45.
That's still not bad, but it's still 400.
Do you remember what the first one was?
The first one was, we just recorded your panel discussion
at Embedded Systems Conference.
Design West, but yes.
Whatever it was.
Do you remember what the second one was?
The second one was, no, no idea what the second one was.
Jen and I were talking about multimeters and setting up my brand new shiny Sali-A.
Oh God.
Which I don't believe we knew how to say at that point.
I don't know how you said it.
I wasn't actually speaking on the podcast for a few, quite a few, maybe a year.
You were on when we had the You and I ones.
Yeah.
And I think 11 was about consulting, and then we had another one that was about imposter syndrome.
Gotcha.
But you weren't regularly on for almost a whole year.
Whole year, yeah.
What made you decide you wanted to be co-host instead of producer?
I didn't.
I don't remember.
I don't remember that happening by decision of anything.
Do you?
Yeah.
I remember you saying you wanted to be part of it more.
I don't remember at all.
Let's see.
2013 was the international year of quinoa.
I don't remember that at all.
There was a lot of quinoa that year.
Discord and Slack weren't things.
And I think communities were harder to find.
Yeah, probably. I mean, there were...
What was around then? There was...
Well, Hackaday. Was Hackaday alive?
Yes, I think so. Yes.
Okay, that was around and had some sort of a community. But Hackaday.ive? Yes, I think so, yes. Okay, that was around and had some sort of a community.
But Hackaday.io was not.
There certainly weren't like IM communities unless you were on IRC or...
That's true.
I bet Toymakers had an IRC still then.
Google Groups, I don't know.
Facebook.
Twitter.
Yeah, Twitter.
I was doing Twitter.
Let's see, we were both consulting then.
I was mostly working for Fitbit, though I had a few other clients.
I don't remember who you were working for.
I was already working at Fitbit at that point.
And I also had some medical device clients that came in and out.
Okay.
I started Fitbit like late 2011 or 2012.
Yep.
Yep.
Looking at when their products were shipped, that doesn't make sense.
I started, remember I started working on a Wi-Fi thing for the scale?
Ah.
That didn't go anywhere?
So maybe that.
Okay.
Yeah.
So it was earlier than you remember.
One of the new words in 2013 was bingeable.
Really?
Well, that makes sense.
I don't remember when streaming really took off, but I think it was starting around then.
Starting to become a thing where there were original TV shows and stuff instead of just Netflix's collection of old movies that they could buy.
And you listened to podcasts, some of which movies that they could buy.
And you listened to podcasts, some of which you still listen to today.
Not as many.
Some of them, a lot of them don't exist, the ones I used to listen to.
I used to listen to a lot of tech podcasts that were on 5x5, which was Dan Benjamin's thing.
Some of those still exist, but not as many.
I don't listen to a lot of podcasts.
I listen to some. I don't know. It's not the many. I don't listen to a lot of podcasts. I listen to some.
I don't know.
It's not the same as when we were driving around a lot.
Yeah.
Yeah.
There's not been as many since we were driving around.
What do you listen to?
For podcasts?
Yeah.
I listen to the Accidental Tech podcasts, although I find some of the hosts insufferable and some of the topics insufferable.
Everybody here is nodding along thinking the same about us.
I listen to Back to Work with Merlin Mann just because it's sort of amusing, even though it's supposed to be a productivity show.
It's generally about comics.
I don't know.
I don't know what that show's about.
That's about it. I don't know. I don't know what that show's about. That's about it.
I don't know.
You know, it comes in.
I listened to a couple with some musicians talking about stuff,
but it's not like where I had like five that I was keeping up with regularly
because I was commuting or, yeah.
I think podcasts have kind of settled into a,
out of the hype curve into a, unless you're, you know, $100 million podcast on Spotify or something, which I don't consider podcasts really.
True. I mean, it has gone up and down, and yet there is a much wider selection with better quality than there used to be.
Maybe it's because mics got cheap.
Mics got cheap and people learned how to do things.
But yeah, there's a lot of podcasts out there now.
Yeah.
I didn't even know about the Amp Hour until 23 episodes in when I retweeted about Jerry Ellsworth episode.
I did not either.
That was kind of cool to find out there was, that we had a cousin podcast.
Yeah, I don't.
And then, so there weren't too many electronics.
There was the Engine and Commons.
It was around then too.
Spark Gap.
I think they started a couple years later and lasted a couple years.
But there still aren't a lot of hardcore kind of development podcasts about embedded systems.
There's lots of development podcasts.
I see a lot of them get named.
You know, like everybody seems to have one.
DigiKey and ST and Hackaday has had one and not a couple of times.
And I know there are some other good ones out there,
but I don't listen to podcasts very often.
I mean, the unnamed reverse engineering podcast.
We, of course, should say that one.
That was implied with the amp hour.
No, but they started way later.
Oh, yeah.
Let's see.
Why did you want to start podcasting?
I didn't.
You made me do it.
You said, Christopher, I really want to start a podcast the last hundreds and hundreds of episodes.
It takes our time every single week.
I don't recall that that's how that happened.
It wasn't?
No.
Oh.
Hey, Shane, this was my fault. It wasn't? No. Oh. It's saying this was my fault.
I don't remember why.
I think I thought we'd try it as a...
I don't remember why.
Did we have something we really wanted to talk about?
No.
No, no, no.
I took a very bad class in stand class.
Oh, right.
Yeah, yeah, yeah.
And I didn't want to take any more classes from the community center I was taking classes from.
Gotcha.
But I also wanted to have some sort of activity to learn.
You were doing a lot of podcasts.
Listening.
You were listening to a lot of podcasts.
And you already had a lot of equipment.
And you said, well, why don't we try it?
Yeah.
We'll do six.
And then we did 12.
Yeah, yeah. And here we did 12. Yeah, yeah.
And here we are nine years later at 400.
And I remember how excited we were when like 50 people listened to an episode.
Oh, my God.
50 people.
Do you know how many people that is?
Strangers emailed us and said things about the podcast.
Good and bad, but strangers.
People I didn't know that I hadn't browbeaten into listening to the
show.
Yeah, yeah.
100 people listened to the show at one point.
The listeners have been great.
It's been really weird, though.
Yeah, I was kind of worried as the show got more popular that we were going to get a lot more yes actuallys or weirder people responding to things, but it's been good.
Well, as a woman in tech, I was terrified.
Right.
But it's been okay. Hopefully it will continue to be okay.
Not a challenge.
Not a challenge, no, no.
The listeners have been nice, and they seem to like us, and they seem to like that we're nice.
We've met a lot of people through the podcast, which I think was a thing we weren't expecting.
So I think that's been very good.
It's been extraordinary.
I've met people I would never have been able to meet otherwise, and people who have become close friends that
I wouldn't have known and it's I wouldn't have expected it but there's something about being
able to ask people impertinent questions about their lives and having them enjoy that experience
and you know you said community we sort of built our own little community accidentally and then
deliberately with the slack and stuff so that's really weird for me because I am not much of a community joiner.
I never did study groups.
When I had clubs and stuff, there was always an ulterior motive.
What?
Well, when I did clubs in high school, it was to get into college.
And in college, mostly I did Society of Women Engineers,
and that was to hang
out with some friends, but also because it was a good way to meet people who were networking folks,
people I should be networking with. But I don't, I'm more of a small group type.
I had been going to She's Geeky, which was a little conference in Mountain View,
usually. And that was fun. But even then, I would manage to get through like half the day.
And then I'd be like, yeah, I don't want any more people around us.
Let's see. Has it gotten any faster to produce the podcast?
I mean, it did get faster, but it's plateaued at a certain point.
How long do you think it takes you to do the podcast, including recording?
Oh, including recording? Probably five hours.
It takes me about five to do the prep and recording.
I mean, some are easier to edit than others. These are very easy to edit.
This will take me about 45 minutes, no matter how long it is.
Ones with guests vary, because it depends on their audio quality.
And how much they swear.
No, that doesn't take very much time.
But if the audio quality is bad or marginal,
or even if it's good and there's things I need to improve,
that takes a while because there's a lot of iteration
and some very long processing steps that have to happen.
And just, you know, it depends on the flow of the conversation.
If there's a lot of back and forth, sometimes I have to pay more attention,
because sometimes there's times when people talk over each other,
and you really want to separate that out to make it more clear.
And sometimes you just leave that, because that's kind of the conversation.
But I generally have to listen to the whole thing. And even if I listen to it while I'm editing at
2x, that just means it takes one and a half x to do it because I have to stop a lot.
So yeah, you know, anywhere from an hour to two hours to edit generally. And then there's a half an hour of data entry
and uploading and garbage that has to happen to post it.
So yeah, it's about five hours a week probably.
But I haven't really changed anything
about the workflow in years.
I have the same tools and same habits I always have.
People have asked if, you know,
oh, you want to outsource editing or
something and i really don't because i like how it sounds and comes out and i i'd have to be able
to accept that it would be different and then not micromanage somebody and say hey uh here's five
plugins i want you to use and here are the settings because you know i don't want to hear somebody i don't know plosives yeah a lot of plosives are you know
and it's really hard for for because of the way we do the podcast where it's not just us every time
it's kind of a crapshoot what the audio call is going to be whether the person's going to have
the capability to record on their end which gives a a lot better quality than Skype or whatever we use if we just record that here. Whether their mic is good, whether
they're sitting too close, whether the room is echoey, whether there's a lot of background noise,
it's just, it's always different. And so throwing that at an editor, you know, either they're just
going to do the same thing every time, in which case the audio quality is going to be wildly different for guests.
I'm happy to do it. It's fine.
Do you think it has been good advertising for our consulting company?
I think so.
I feel like we've probably gotten a few clients through it.
Although I don't know.
I don't think I have.
Certainly,
certainly I have people mention it once I start jobs,
which is disconcerting.
Yes.
I wish we'd,
I wish we'd.
Remember,
if you meet us in person,
don't mention the podcast.
And of course,
people who recently mentioned this to me are going to hear this now.
I feel bad.
Don't feel bad.
It's fine.
It's just a little odd um and i you know i have to be careful not to vent about work too much or too
specifically when i know there's because there's always somebody at that at some place that listens
so i'm always trying to be careful about not complaining too much and i would never complain
about anything bad at any place or specific but you know even if i just complain too much. And I would never complain about anything bad at any place or specific.
But, you know, even if I just complain too much about an IDE,
sometimes I feel like that's an accusation.
Why did you choose this IDE, client?
I was like, you can choose whatever IDE you want.
So here you've been using PSOC, creator of it.
Compare and contrast with IAR.
Yeah, this is not for any particular client.
Yeah, it's not great.
It's another one of those things, you know.
And every vendor's...
It's like CubeMX or
STM Cube IDE.
The vendor decided, hey, cool,
we can put some of our custom
SoC tools
into Eclipse.
Check it out. And so STM
put in CubeMX
and they took that external application
and jammed it into their IDE.
So it's kind of cool.
You can set up your thing and whatever
and set up your chip.
Every time I do that, I push a button.
It takes forever.
It doesn't beach ball.
So I don't even know it's doing stuff.
So I end up doing the same thing like five times
and then the first one comes in
and my computer now is...
It generates the code and people get confused
and sometimes it generates code
and clobbers your code, whatever.
Cypress has a similar IDE.
It's also based on Eclipse
and they've also put their own custom thing in it.
With Cypress, the PSOC chip,
it's kind of a unique design.
There's a block of configurable logic on it.
Kind of like an FPGA. Yeah. Like a small FPGA. on it. Kind of like an FPGA.
Yeah.
Like a small FPGA.
I think it's exactly like an FPGA with, you know, basically cells.
And that's what they use to set up all the peripherals and stuff.
So if you say, I want three spies and I squared C and blah, blah, blah, you drop those into the FPGA thing.
And they've got a bunch of pre-made things you can drop in
in a visual manner. Like spy with DMA? Sort of. Okay. DMA is a separate thing, but yes.
And then you can edit those blocks, you know, change the frequency, what pins it goes to and
all that stuff. And that all gets generated in a very FPGA-like manner. I think it's Verilog
because it takes a very long time to do that part. And then once that's done, you don't need to build it.
So they've integrated that into the IDE, so that's great,
but the IDE is still not great.
It's very slow.
I cannot make it
build in parallel. It doesn't do it.
So I've
been mostly editing in
VS Code and then compiling
in PSoC Creator, but
I just wish they'd just take their custom stuff
and leave it somewhere else.
Because it's very weird.
I mean, it's very weird, especially with Cypress stuff.
It's very weird to have a Verilog editor,
which you can have.
You don't have to.
At the top level, you're just doing stuff
that feels a lot like KubeMX
where you're configuring peripherals.
Dragging and dropping. Yeah. There's a middle layer where you can build your own blocks and you do that with
like they have a like a visual state machine thing uh and you can set inputs and outputs
and connect fifos up so you can build some logic blocks that way without verilog uh and then it
generates the verilog for you then you can go look at it or you can go all the way way without Verilog. And then it generates the Verilog for you.
Then you can go look at it.
Or you can go all the way down to Verilog and write that.
But it just feels weird to me having that stuff in the same place I'm writing C code.
It's just like, these are not the same things.
Well, they wanted it to be that you could change your peripherals at the drop of a hat.
But I think you and I are just so used to...
But they don't have to...
That could be a separate thing, right?
They don't have to pretend.
They don't have to expose the way they do it,
which is what they did.
For most embedded developers,
they're not going to touch the customizable Verilog
or the something, UDBs, Universal Digital Blocks.
I don't know.
I just made that up,
which is the middle way.
But most developers are just going to drag and know, I just made that up, which is the middle way. But most developers
are just going to drag and drop stuff
and just hide that.
But they don't hide it.
So you always feel like
you're doing hardware stuff.
But it's okay.
Their tools are fine.
The build stuff is fine.
The auto-generated code seems fine.
Their howl seems like a howl.
That's a piece of the fine chip.
So the question was, do you think this has been good advertising for our company?
No.
No, you, you, you, yeah, how did I get there?
I don't know.
I mean, the truth is, no.
I don't know. I mean, the truth is, no. I don't know.
I have no idea.
We've gotten a couple of small contracts, but the bulk of our contracts over the last five years, well, over the last nine years since the podcast started, have either followed from each other or have come from friends we'd made from other places.
Okay. Maybe. Maybe. Yeah, I don't know.
As advertising for my book, it has been pretty great.
It's kind of surprising to me that the royalties I get now
are almost the same royalties I got in 2013.
It hasn't really gone down.
Yeah, but you've got to adjust for inflation now.
As a
money-making thing on its own,
it's terrible. The podcast?
Yeah. Oh, no.
It's very nice
to have patrons, because that helps with
some of our time, and there
are expenses.
I mean, that pays for
mics and transcription and a little bit of social media upkeep.
Well, and our time.
No, actually, it doesn't pay for our time.
But it's at least helpful to.
It indicates that it's a valuable service.
Yes, that's what I'm trying to say.
And that is really nice.
Yeah.
As a way to stay current with trends.
Which trends?
Everything that happens.
Oh.
I mean, like, I might not have noticed Rust.
Yeah.
You might not have noticed Rust because people would have still been emailing.
No.
Even without a podcast, Rust people would be emailing you.
But there are other trends.
Yeah.
And I don't, having people come and talk to us is, it's pretty cool.
I do hear about things I wouldn't normally hear about, I wouldn't have heard about before.
Definitely, yeah.
And I, even though I'm an embedded embedded developer i don't spend a lot of time
following embedded stuff like on blogs and stuff like i generally follow general purpose
computing stuff on blogs and tech but not for some reason i don't keep up with what the latest
haps are in in the embedded world i don't either. I mean, I'm more of a digger.
Like, if there's something I want to know more about, I'll dig into it.
But if I don't get that initial, I want to know more about it, then the chances are I
won't find out.
And the podcast has been good about making me want to know more about everything, giving
me more breath. Yeah. Giving me more breadth.
Yeah.
And we hear about stuff that's new, too.
Like all the IoT management stuff and, you know, the device management stuff.
That's all relatively new.
And it's been good to have people on to talk about that and, you know, all that stuff.
And we hear about fringe stuff, too, which is great.
And I think that's important, too, because sometimes fringe stuff becomes non-fringe.
And the maker community, I was way more on the outside. And now I have a lot more respect for the people who are doing awesome things and able to do art with the technology I see as technology. And I find that fascinating.
I guess that's why we end up having quite a few artists on the show.
Well.
Yeah.
The show is weird.
Oh, yes.
To a large degree, we talk to people who we want to talk to.
That's all we talk to.
Yeah.
But by that, I mean, it's not always going to be a show about wires.
Well, that's the thing.
The show is about people.
It's really about the people who are working with the wires.
And the wires come in because you're talking to them about working with it.
But it was never supposed to be a show about how do you use I squared C.
I thought you were going to say IAR.
Or IAR.
Now, next week's show is all about how to use IAR.
Actually, next week's show is an in-depth look at state machines.
You didn't need to correct me. You knew I was kidding.
I knew you were kidding, but I also wanted to point out that we were going to have a technical show.
Maybe somebody's excited about learning to use IAR.
If you are the sole person who is excited about learning to use IAR, who would listen to a full podcast about the key commands behind IAR and other fantastic things like being able to copy registers out of the debug window,
just let us know.
Drop us a line and say, I want the IAR show.
This week's show, by the way, is sponsored by IAR.
I don't think so.
Oh, no?
No, no, I don't think so.
I think we'd have to say nicer things.
That's fine, thanks.
Let's see.
Things that have changed
between 2013 and now.
Other than your age.
Nothing has changed.
It's all been great.
It's been a wonderful,
wonderful time
in the last few years.
Well, I'm going to ignore
the giant pandemic
in the room.
What has changed in the world of embedded systems since 2013?
Or just in general?
I don't know.
I think the tools, even though it still feels like things are pretty behind,
it feels like there's a lot of things that are getting better and people
working hard to try to improve from where things were then.
I mean,
there's,
there's a lot of people actually thinking about these problems instead of
complaining about them.
I'm definitely on the complaining side.
I mean,
people use GCC and Clang now.
Yeah.
And that was not really,
and I mean, people use GCC and Clang now. Yeah. And that was not really, I mean, you could,
but you were definitely kind of out there for it.
Yeah.
And that works much better.
There's been a lot more open source kind of momentum in Embedded.
How so?
I was actually thinking about open source lately.
Well, I mean, there's all the
RTOSs. That's
true. Free RTOS.
I mean, even if it wasn't RTOS then,
and Minute and Zephyr,
those are all pretty magical.
But yeah, there's a lot of open source
stuff, and
even Nulib and
alternatives to LibC and stuff.
The development tools have gotten better.
Like you can live, not just GCC,
but you can have a very good editor that is not Eclipse.
VS Code.
VS Code is really very cool. I don't know how often I need to say that,
but as somebody who tends to try not to fall in love with an editor,
you can pry my VS Code from my cold hands.
I feel like it's easier to find sample code about almost anything.
Driver sample code.
All the peripherals.
You want to put in an accelerometer and a gyro?
There's code for that.
Yeah. You want to put in an accelerometer and a gyro? There's code for that, yeah.
You want to put in a custom TFT?
Okay, you have to deal with the custom part,
but other than that, there's code for that.
That's been really amazing.
I never thought we would get to the point
where we were using other people's code so easily.
Well, I think for most company work,
there's still a reluctance to kind of do that.
I don't see a lot of people bringing in open source peripheral drivers into products.
But it's such a good starting point.
You can at least see where you're making a mistake.
And if they're Apache licensed or something very open, it's really nice.
The problem with those, though, is generally they're general purpose drivers.
So it's like, here's the whole chip.
And you can configure it however you want.
We've exposed every single register and have a function for setting every register and mode and all this stuff.
And it's a lot of code.
And if you're trying to save on code space and you have like a single purpose thing you're doing
and you know the configuration is never going to change,
you don't need that whole driver.
So that's a reason to use them as starting points
and then pair everything out.
But that's another thing that's changed.
I mean, we have bigger processors, more flash, more RAM,
more processing cycles, more options.
Well, we don't.
We can't buy anything.
Yeah.
But on paper, all of that stuff is better.
When I do a parametric search in a vendor's website, it's all perfect.
As long as I don't select for in-stock.
In-stock in 18 months.
Better hardware tools, too.
I think...
Oh, yeah.
Cheap.
Got a logic analyzer. The first logic analyzer I used in 2004 when I was first doing actual hands-on embedded instead of off in a corner in a big piece of data center hardware.
I think it had this HP thing that weighed 80 pounds.
It was probably old at that point, but it was all we had at the company.
And it was probably $8,000 or something.
Well, and the Salié in episode two was pretty new.
Yeah.
And it was their four-channel digital Salié long before.
And we had Mark Garrison on the show, which kept trying to ask him,
are you going to make an oscilloscope?
Are you going to make one that isn't just digital? And he was desperately
trying not to answer. Because they totally
were. Nothing saved my butt last week.
I had to decode a 8-bit
TFT parallel bus because
the vendor didn't bother to share with us
the initialization sequence.
Yeah, and they'd have put it in a manual.
You wouldn't have read it anyway.
What difference does it make?
That is false.
I'm trying to get something done.
I am highly incentivized to read the manual.
I wonder, in class, I've been going through optimizations, processor optimizations, math, and even the memory map, and talking about how to find more RAM and processor space.
And now that we have so many more options for processors, it doesn't seem as important
anymore.
And they're so cheap.
Well, I mean, yes and no.
Now it's about power.
Yeah.
There's still ways to burn a lot of money making a product.
So it's nice that the processors are cheaper,
but other things fill in for that.
Expensive sensors or displays.
Displays, yes.
It's no longer acceptable to have a monochrome LCD display
without a backlight, okay?
If you really want to be able to get rid of all your RAM in one go,
just buffer from some display stuff.
Yeah, I mean, since Apple has pushed the limit on resolution,
even the silliest devices,
everybody expects very high-resolution displays, and they're hard to push from a Cortex.
Let's see, tiny ML is a thing.
Yeah, that's one of those. I don't mean this in a derogatory way. That's one of those sort of fringe things that I was talking about.
I don't think it's fringes in Looney Tunes. I think it's not mainstream yet, and it's probably going to become mainstream. But that's one of those kind of new things that's really exciting to talk to people about, I talked to this person when this was just this little project or idea or a small company.
And now it's, you know, a big part of the embedded world.
It's a scary part for me still, even though I mean, I've done machine learning.
I kind of understand how it works.
I could put a whole system together.
I could train it.
And yet I'm still pretty chickeny about wanting it to go on a system I'm working on.
And I don't know why.
It just depends on what you're trying to do.
Well, yeah.
But I would still rather go for a heuristic method.
I still think if a heuristic method works, you should go for the heuristic method first.
Because it's much easier to debug and understand.
But there's a lot of things that that doesn't work as well for.
I don't remember CMSIS DAP, Debug Access Port, that makes it possible for almost any Cortex-M
to become a debugger for another Cortex-M.
Oh, right, yeah.
I mean, that made it so you could make your own programmers for, like, nothing.
And that was kind of magical.
And, I mean, that's kind of why we get ST-Links.
I wonder how much that's affected the bigger programmer manufacturers.
I don't know, because it's very similar.
You can see my Cypress port there
has a very similar programmer
attached with the perforated PCB edge
where you can pull it off
and it's a programmer.
I think they did a very similar thing.
But that's because the Cortex-M
has the DAP as part of,
I mean, you can just go to their website and download firmware,
and suddenly you have created your own debugger.
Yeah.
I haven't used that, but I've thought about ways that that might be useful
if I was looking for some specific thing to happen.
But I don't know if it's...
I could see it's useful in manufacturing and stuff.
Oh, yeah. For testing, for some sort of automated testing if you have big you want a big bank of them or
something um but yeah that's that's an area that i haven't really touched would you have been
surprised then how much python development you've done i don't know Even in like 2007 or 8,
I was in groups where a lot of Python development was happening.
So I was aware of it.
I probably should have been doing what I was doing in Python at that company.
But yeah, I probably would be surprised by how much I'm doing now. But that's because that's the ML stuff I'm doing.
I don't know that I would have been doing a ton of Python
without being in that area.
I did some at Fitbit when I was just writing little tools and stuff,
but I was very not good at it.
Now I'm just marginally bad at it.
There's no way you started in 2011 at Fitbit,
because I didn't start until after 2011.
No, I'll find the email. I have the first email from, from,
you know, who was November of 2011. I remember coming, driving up,
you were already there.
I drove up and we had a meeting with everybody and they wanted stuff with the
scale because you didn't want to do the scale.
I did the scale.
You didn't want to do the wifi on the did the scale. You didn't want to do the Wi-Fi on the scale.
Well, yeah, but then I...
And back then they were using Wicked,
which had not even really come out yet.
And so I spent a lot of time with the Wicked development kit
discovering that there were big pieces of code
that were just empty functions in the Wicked development kit.
Yeah, it was cool.
To be fair, that was the second scale.
Yeah, yeah. No, that one never came out. fair, that was the second scale. Yeah, yeah.
No, that one never came out.
That project was canceled.
They did a second scale later, much later.
But the one I started with was canceled.
And then I switched over to the first smartwatch thing,
the Surge or whatever it was called.
I think it was later than that
because my book came out in 2011 and they found me from my book in the spring.
So that would have been 2012.
So that's why.
So maybe it was November 2012, but it was, it was not 2013.
I know that for a fact.
Why are we arguing about this?
I don't know.
Hey folks, you want to argue about dates with us?
Call in now at when did Chris start working at Fitbit.com.
Do you think this is important?
No, I don't.
I don't think this is important at all or interesting.
Oh, and I lied.
My first email from them is 2011. all or interesting. Oh, and I lied.
My first email from them is 2011.
Uh-huh.
But it was right after my book came out because that was how they found me.
Uh-huh, uh-huh.
Okay, okay, sorry.
We talk more about software stuff,
like unit testing and continuous integration.
So that's good.
Well, that was one of those things that I felt like got better, too.
It weren't really happening too much in the pre-2010 era with Embedded,
certainly with regular software was.
Prototypes are faster, much faster than they used to be.
Too fast.
Dev kits are cheaper.
Yeah, yeah.
Let's see.
And more IoT stuff.
Although now I can actually say that without barfing.
That's good.
That's improved.
It's just a pause now.
There were words that were invented.
Okay.
What does that have to do with anything?
Nothing.
Except that Zoom, as in video conference, didn't become a word until 2014.
That seems way early.
I know.
I had to look it up, but yes, it really was.
Wait, they put that in the dictionary in 2014?
Yes.
Huh.
And they put Zoomer in the dictionary in 2017, but it has nothing to do with the program.
It's a person born in the late 1990s and early 2000s, which could be people who are listening to us.
Wow.
What?
No.
And for some reason, Murder Hornet didn't make the list until 2020.
It was a busy year.
Wow, NFT was 2017.
I could have been hating on that for a lot longer.
Cryptocurrency started getting into the language sooner than that.
Way sooner than that, I remember.
Yeah, that was a long time ago.
Yeah, so it's been a really long time.
It's been fun.
It's still weird that the shows that listeners like aren't necessarily the shows that we think are the best.
And that's been very eye-opening to me.
You know nobody can see you nod, right?
Sorry.
Nod.
Nod, nod nod nod nod
uh and it was interesting to find at one point i was like trying to figure out what people wanted
from the show and if i could ask the questions they wanted asked be an in-depth investigative
reporter style thing and then I realized that the people,
the shows that people like are the ones that I,
I'm asking what I want to ask and pretty much ignoring.
I think it's an enthusiasm thing,
right?
I mean,
if,
if they feel like we're interested,
then we ask better questions and people respond to that.
Yeah.
Maybe it's just the,
the level of enthusiasm of, of choosing my own questions versus other people's.
That's all I have.
Should we do Winnie the Pooh for the rest?
No.
But Owl is here.
Uh-huh.
Okay.
If we did this until, say, episode 5 512 that's only three more years
okay yeah what else would you want out of it who do you want to interview
didn't we already do this who do you want to interview yes and you said teenage interview
engineering and i said don't you didn't you email someone? And you said no. And then I was
supposed to email somebody and I got a referral. That's five years ago. Five years ago we did that.
No, it wasn't that long ago, but I'm still hoping. I haven't dealt, I'm way behind.
I don't know. You know, I kind of like delving back into some of the in-depth tech stuff.
So I don't mind just having episodes where either we talk or have one of the regulars on to talk
about some specific topic I enjoy those um what topics would you want I don't know uh
I was thinking about doing one about machine learning I was like hearing about people
solving difficult problems so it's a little hard sometimes to ask people about that because it's usually a company-related thing they can't talk about. But there's some other areas that we could get into that we haven't touched on that are not basic things, I suppose.
I feel like he think on the fly, which I'm not good at.
Well, for instance, you know, we've talked about debugging and we talked about what?
Interrupts.
Interrupts and those big common topics,
but there's uncommon stuff too, like, you know, how do you do DMA?
How do you do?
We were talking about low power.
That was good.
It's fine.
Yeah.
It's hard.
Cause I don't know what we've already covered.
Why did we talk about low power?
Oh,
with the jewel scope.
Yeah.
Creator.
Creator.
Cool.
Whose name I should remember.
That's okay.
400.
Yeah.
I don't know.
I don't,
I don't,
it's so hard.
That's a hard question to answer after talking to, you know, having 400 shows. It's like saying, well, what are you going to do to spice things up and make it new? It's like, we did 400 shows. We pretty much covered it. So the actual hard part is how do we not kind of feel like we're repeating ourselves. I think a little bit of repetition on some topics is good because there's
always the chance that someone will have a different perspective or time
passes and our perspectives change.
I was realizing that my perspectives have changed regarding how to set up
like a main loop and that I have never really talked much about that
we talked
I know this is a little weird because we did this out of order
but next week's guest Miro talks about that
and
I just have a lot more to talk
about on that subject that I didn't
realize that I had more on
I mean I have a lot to complain about
you
we had we talked about the things that have changed.
I'm more upset about the things that haven't changed.
All right.
What things haven't changed?
We're still using serial communication protocols from the 70s.
Command line debugging forever.
What?
Oh, you weren't complaining about UART?
No, I'm complaining about
I2C and SPI.
How would you improve them?
I don't know. I don't have an offhand
improvement, but it feels like there might
be something better we could do
40 years later. They are the pinnacle
of
simple, elegant protocols
with a minimum of
fuss.
The expression is awesome.
I wish I could take a picture.
It's so great.
You're like Grover.
Yeah.
And the way we communicate stuff is bad.
Like data sheets, they're bad.
Data sheets are bad.
I don't care how good you are at reading them.
They're still bad because they're always wrong. And if they're not wrong, they're bad. Data sheets are bad. I don't care how good you are at reading them, they're still bad,
because they're always wrong.
And if they're not wrong, they're at least misleading.
I've been going through a chip that had data sheets that were all online, and there was no single PDF.
And half of it was doxygen-generated things that were unreadable.
And the other half, i had to dig through like
five links to find stuff and i hated it and there's no excuse there is no excuse as far as
i'm concerned for peripheral vendors to not supply sample drivers with their devices
st should be supplying a driver with their accelerometers, even if it's only for
STM32. It could be adapted. If they wrote it nicely, they could abstract away the spy and
whatever read and writes, and just have a nice register API that's implemented, because that is
not hard. And every single time you get a new peripheral for
a client, they want you to implement a driver for it. And that's fine, but it's error prone.
And it's just like, how many, how many drivers have been written for every single peripheral
chip that's out there? It's a waste of time. It's a complete waste of time. And it's not the job of the, you know,
the job of your company is to make the thing your company's making.
It's not to write device drivers.
Well, I fear that's what the vendors of the peripherals feel like
is what they're saying.
It's not their job to write the drivers.
That's like saying...
They're just writing, they're just creating the sensor.
You're going to use it however you're going to use it.
But that's the application level.
That's not the driver.
The driver is their product.
The driver is the embodiment of their data sheet.
It's a short step from their data sheet to a driver.
It should be.
And if it isn't, that's why we're all confused.
So, this irritates me that not only that we're using
the same protocols from a million years ago,
and we're going to be, not me,
because I'm going to retire in 15 minutes,
but we're going to be using SPI and I2C in 2075,
which is completely insane.
And yet, I do stand by what I sort of starkly said before, which is they are what they are
because it's pretty efficient and they do most of what we need them to do.
Pretty most.
I'm just checking out your qualifiers here.
I mean, I can't come up with a better way
to have a minimum number of wires
going to a whole bunch of devices.
Oh, I'm not saying the electrical interface should change.
Of course a minimum number of wires is desirable.
I think the bus protocols and stuff could probably be
improved upon.
I mean, SPI doesn't
really have any bus protocols
other than you have to
read and write at the same time.
And you have to know about
CPAL and
PHM.
Go on.
I'm sure an electrical engineer is going to jump down my throat,
but there is no reason for there to be 50 million different slight variations of this serial protocol.
But don't you want the puzzle of figuring out whether it's red on the rising edge or the falling?
No, I don't care.
It doesn't matter. It doesn't matter.
It doesn't matter.
You know, I've had some pretty good luck when I can't or don't want to be bothered with the data sheet,
putting it on a salier and just changing the parameters there until I see things.
That's great, but it's a pain in the butt.
And that's not great engineering.
I want to be able to say, I read the data sheet, this is why I did this, but it doesn't, you're right.
So one of the cool things about the last 10 years has been a gradual shift towards modular development, at least for prototypes, where you can piece things together in really easy ways at a hardware level. Like, you can buy this base board,
and they have a lot of different connector systems
from, you know, the Arduino,
what do they call them?
Shields.
Shields.
Raspberry Pi hats, all that stuff,
which are just basically, you know, connectors,
pin connectors to other stuff like the Quick Connector
and all the things that Adafruit and SparkFun have. So that's gotten really great where you can just kind of piece together a system
without doing any board design to start with and try out ideas. I don't feel like software has,
I think the software from those people works that way. I don't think software for professional
development has gotten to that step.
And I think that's the piece that I want,
is I want to be able to piece software together a little easier without having to reinvent the wheel all the time.
I didn't used to read very much code.
I always have liked writing code better than reading code.
But one of the things that has shifted over the years has been my willingness and ability to read other people's code and not just want to write it all myself, which inevitably means writing new bugs.
I mean, we're paid hourly.
So if, you know, writing drivers, I'm talking against interest here.
That's true. We should be like, it should being around the application level a little bit,
doing some of the stuff that's specific to the product. And if there's a device driver that's
specific to the product, which often there is, there's some weird sensor or some new thing,
that's fun. Like, I don't expect every piece of hardware in the universe to come with a device
driver because that's not practical. But yeah, I just, I feel like, you know,
having worked in the application side of things
for a couple of years,
it's still a very, very different world.
It's still much easier to not have to reinvent the wheel
on the application development side of things.
iOS, Android, whatever.
Because there's just a huge, huge library of stuff
that works, that people use.
90% of the time, it's great.
How do you find what people are using?
Because most of the time,
it's built into the thing that the vendor supplies.
Like, Apple has 80 frameworks
for whatever you can imagine.
And I don't have to go grab
80 is too many
it's not the number
there aren't 80
for each kind of thing
what I'm saying is that
sometimes it is hard to find what you want
I mean
I've been looking at CMSIS
for a class and I have realized that there's a lot in there that I used to use, and I still should, but I don't, because I have other example't use this, I'll call it a framework, although it's more of a library.
Because it's all a house of cards.
A is built on B and B is built on C and all the way down.
That's a major problem is dependencies and things.
I'm not saying it's easy.
Okay.
But we do need more standardization and modularity.
Yeah. I just, It feels very different. I think the excuse has been, oh, we're resource constrained.
And now we're not nearly as resource constrained.
We're not nearly as resource constrained, and there are ways around that. There are ways around that.
Totally.
Not just in terms of writing more efficient code, but the build systems can be better about bringing stuff in.
But pound defs, oh. writing more efficient code, but, you know, the build systems can be better about bringing stuff in or... But yeah, it's...
But pound defs, oh!
Well, that's... C needs to go.
I mean, I don't have a problem with C,
but I do have a problem where they write one file
and it's supposed to work on 97 different things,
and so you have 100 pound defs
that mark in and out different pieces, and it's impossible to follow.
Yep.
I would like to be able to take that file and say, this is the pound def I have, just make me a new file that is all the code that's going to run.
Well, that's the problem with my driver's ID is it's a monkey pot because somebody would deliver that and it would look just like that because it would be a continually accreting there you go everyone uh file with with different you
know tweaks and platform that's not what i want that's not what i want no but if you had that
and you had a way to say just give me this version of it. Yeah.
Filter it out.
Filter out everything else.
Isn't that what's, there are things that do that, right?
Well, I think about the SVD files that are XML and they describe the processors so that things like embed and platformio can deal with different processors, can know about
different processors without having to deal with different processors, can know about different processors
without having to deal with all the vendors.
But wasn't that CMake's claim to fame
is that it can manage some of that stuff better?
But I guess it still has to be done
with pound of fines in the code.
I don't know.
I wasn't part of the book club on Patreon,
our Slack group that did the CMake.
Although I think that's finished now and they're about to choose a new book.
Yeah.
Yeah.
So, I mean, I don't want to just complain, but I do feel like a lot of things have changed for the better.
Things are improving, but I still feel like there's just a lot of stuff that's, you know,
it's like a Ferrari engine attached to a horse and buggy sometimes
and i don't mind writing interesting new code but i don't want to write the same code over and over
again yeah that's what i'm saying it was kind of fun to write the first three spy or first three
serial drivers but after that you know it gets old and stuff like containers like
link lists
or circular buffers
or
vectors
any language
except for C now
you don't have to do that
it's there
it's part of the language
and maybe you don't trust it
that's a separate issue
but
I mean
the things you can do with a few lines
of code
in languages that were developed
in the last decade are
astounding compared to C.
I like working with all this stuff. It's fun
to make lights blink.
That's a big piece that
makes up for a lot of this,
is making things work that are real.
I mean, they wouldn't pay you if you didn't have to do some icky bits.
They're paying you?
Yes.
Oh, shoot.
They're paying you, too, I promise.
All right.
The they. The they.
They.
So.
So what have we learned?
Well, in the last month, we've learned that my idea of a vacation has absolutely nothing to do with vacation.
As I predicted, I believe on a show.
Yeah.
I mean.
But you didn't sign up for anything additional.
I will give you credit for that.
It's just that the stuff that you had left over after you dropped a couple clients was still more than enough to take up all your time.
Dropped.
I finished up.
Finished.
Whatever.
Yeah.
Yeah.
Yeah.
The class per class grows to fill
all available time.
Although,
to be fair,
I also hadn't
really started
a couple of lessons
and
now I have to
write the outline,
write the slides,
write the lesson,
write the homework,
write the quizzes.
It's a lot.
Also, apparently they want me to have mini lectures on the live class.
I thought with the live class it would be mostly like discussion and talking amongst
themselves and maybe going over homework or whatever, but they actually want more information.
I'm also preparing little bonus mini lectures.
Let's see.
And I haven't done much origami,
although I did write a very long program
and then put together a very interesting table
of how connectors work.
And then I did not use it to generate anything interesting.
Hmm.
Yeah.
It's kind of sad.
I mean, I will because I don't think I'm fishing for a contract yet.
You better not be.
I've moved my vacation back to ending around Valentine's Day.
I see.
When's it going to start?
March?
Well, not today, not tomorrow, not next week.
Maybe the week after.
So you're going to have a five-day vacation?
Oh, man.
I can't believe it's February.
It's not, but it will be. It will be very soon.
Well, anything you'd like to change about the podcast?
I remember at show 100, we changed the name. Right. Should we change the name again?
See who else we can get to have a legal conversation with um
what would you change it to
I can't ask
I don't know
I was hoping
you would say whatever most recent
band name
or song title you had
marked as something was interesting.
Was it Monkey Funk?
No, I wrote two songs accidentally and I didn't remember.
One was Monkey Funk and one was Funky Duck.
Monkey Funk and Funky Duck.
Don't.
You can't do it.
You really can't, can you?
But I'm never good at naming things, especially when I'm just putting sketches in.
So I just type.
You should put those sketches together.
Probably.
How is music going?
You know, it's music.
I play it.
I'm trying to write, trying to get myself to write even one,
not, you know,
get an idea down on tape.
Tape.
Videotape?
Yeah.
Cassette tape?
It's an expression.
I try to get an idea down on flash cells.
One, at least
verse, chorus, verse
level of song with
drums and
some harmonic and melodic
idea. One thing a week. I've been trying to do that.
Are you going to have
like, they might be giants
how to dial a song where people can come and
get the song of the week? No, because it means
I have to finish each of these songs
and that will take me
more than a week.
So I'm just trying to
collect ideas.
So you're going for
the start a dozen
instead of finishing one?
Yes.
Cool.
It's
yeah, it's not that
interesting to me to
spend a month on one song.
But yeah.
I don't know. I don't know.
I don't know if anyone will see the light of day.
At least one of them I'm going to ship to my brother
and we're going to probably work up.
Well, two.
One I already sent to him.
But that's not for general use.
It's a Kickstarter bonus item for somebody.
Right.
The person who got a song written for them.
Yes.
All right.
I think if the last listener hasn't left yet,
we should probably tell them to go home.
The show's over.
You know you can listen to one show every day of the year
and still have extras left over?
That is how 400 minus 365 works.
It's just kind of cool.
Although, didn't we set a limit
to how many shows you can listen to in a week? I don't think
anybody should listen to more than one of these a week.
I'm okay with two,
but the person who said they were listening
to like four or five
a day for a couple of weeks,
that's
not a good level of us in your head.
All right,
so you want me to go back to Winnie the Pooh?
Yes, it is time to end the show
our spectacular 400th episode everyone i didn't even get cake i thought about getting the cake
that we got for the 300th episode the one from costco that was the chocolate with the chocolate
mousse with the chocolate cake with the frosting and And then I could have a piece and you could have
a piece. And then the other 48 pieces, I didn't know what to do with. So I didn't order that.
Although we could get the vegan one. That one was small. Anyway, listeners, thank you for
hanging out with us for the 400th episode. We really appreciate you.
And thank you to Christopher for producing and co-hosting. If you would like to talk to us,
it's show at embedded.fm or hit the contact link on embedded.fm. And now for a little bit of Winnie the Pooh. A reward, said Owl very loudly.
We write a notice to say that we will give a large something to anyone who finds Eeyore's tail.
I see, I see, said Pooh, nodding his head.
Talking about large somethings, he went on dreamily.
I generally have a small something about now,
about this time in the morning. And he looked wistfully at the cupboard in the corner of Owl's
parlor. Just a mouthful of condensed milk or whatnot, with perhaps a lick of honey?
Well then, said Owl, we write out this notice and we put it up all over the forest.
A lick of honey, murmured Bear to himself, or not, as the case may be.
And he gave a deep sigh and tried very hard to listen to what Owl was saying.
But Owl went on and on, using longer and longer words until at last he came back to where he started.
And he explained that the person to write out this notice was Christopher Robin. It was he who wrote the ones on my front door for me.
Did you see them, Pooh? For some time now, Pooh had been saying, yes, and no, in turn with his eyes shut to all that Owl was saying, and having said, yes, yes, last time, he said, no, not at all. Now,
without really knowing what Owl was talking about, didn't you see them, said Owl, a little surprised.
Come and look at them now. So they went outside, and Pooh looked at the knocker and the notices
below it, and he looked at the bell rope and the notice below it, and the more he looked at the
bell rope, the more he felt that he had seen something like it somewhere else, sometime before. Handsome bell rope, isn't it?
said Owl. Poo nodded. It reminds me of something, he said. But I can't think of what. Where did you
get it? I just came across it in the forest. It was hanging over a bush. and I thought at first somebody lived there, so I rang it and nothing happened.
And then I rang it again very loudly, and it came off in my head, and as nobody seemed to want it, I took it home and...
Owl, said Pooh solemnly, you made a mistake. Somebody did want it.
Who?
Eeyore, my dear friend Eeyore. He was, he was fond of it.
Fond of it!
Attached to it, said Winnie the Pooh sadly.
So with these words, he unhooked it and carried it back to Eeyore.
And when Christopher Robin had nailed it in its right place again,
Eeyore frisked around the forest, waving his tail so happily
that Winnie the Pooh came over all funny and had to hurry home for a little snack of something to sustain him.
In wiping his mouth half an hour afterwards, he sang to himself,
Who found the tail? I, said Pooh, at a quarter to two.
Only it was a quarter to eleven, really. I found the tale!