511: Forty Trillion Divides
Transcript from 511: Forty Trillion Divides with Christopher White and Elecia White.
EW (00:00:06):
Hello and welcome to Embedded. I am Elecia White here with Christopher White. It's kind of a special show. It is our last show in the ninth bit. Yeah, that's right. We're making binary jokes. We're not even 30 seconds in.
CW (00:00:24):
All right. Starting our 10th bit.
EW (00:00:27):
Starting our 10th bit. The next show will be 512, and who knows where we go from there. The chances we ever make an 11th bit is very...
CW (00:00:38):
Small. It gets harder and harder.
EW (00:00:40):
Yeah. Doubles in difficulty each time.
CW (00:00:44):
Eventually. We have so many bits that the hard drive falls over and becomes a black hole because we recorded so many shows.
EW (00:00:52):
Well, at this point, I think you can listen to the show for a month straight, which would be absolutely mind obliterating. So I don't recommend it. As usual, we recommend fewer than two shows a day. Alright.
CW (00:01:10):
Yeah, it's a lot of hours.
EW (00:01:11):
So have a few housekeeping things. First is we have decided with Patreon to have a level of support that involves having goodies. And since we've proven that my ability to send out stickers and pins and whatnot is really substandard, the goodies will be digital. Do you want to talk about what you put together?
CW (00:01:39):
There's just two goodies, then. This is on Patreon and Kofi. Either way, if you support us at $5 a month or above, if you're so inclined, you get an ad free stream of the show, which special edit has no ads, and about once a month or so or so, once a month or so, we are planning to and already have released one. I have a special episode just for members, and the first episode for that dropped last week. It's on Patreon and Kofi, and it's Elecia and I and Christopher Svec discussing the movie Real Genius. And it was a fun show to record. It was a fun show to prep for, and I think it's a lot of fun. And so if that's something that interests you and you want to support the show at a higher level and get something out of it, please join at Patreon or Kofi at $5 and at some point you can join for $5 for a month and listen to all the shows and then Unjoin for $5 if you want. I didn't say anything to you about that, but that is how it works. So those shows will always be there and up on those two sites.
EW (00:02:51):
And you posted the first Cozy Science there.
CW (00:02:54):
I did. So there's essentially two special episodes,
EW (00:02:58):
Right? So do you want to talk about Cozy Science or do you want to talk about Embeddies?
CW (00:03:05):
Well, it depends on what you want to say about Cozy Science. We haven't discussed it any further.
EW (00:03:13):
Well, no reason not to do it in front of all of these people. Sure,
CW (00:03:16):
Go for it.
EW (00:03:20):
It's funny when you have an idea and whether it's a good idea or a bad idea, it doesn't take that much for the idea to lose a lot of luster because people discourage you. And I don't mean anyone said, oh, that's a terrible idea. Well, one person did.
CW (00:03:43):
You can always find one person to say something's a terrible idea.
EW (00:03:46):
But we had some problems with images and stuff, and then I had to do a lot more of the tedium. There was the part I wanted to do, the part I was excited about. And then there was all the tedium that I was thinking I could push through, and it was really pushed in my face that I had to do all that tedium and I didn't really get to do a lot of the parts I thought were fun. And then somebody foolishly or wisely depends on how you wanted this to go, asked me what my end goal here was. And I really was not thinking about Cozy Science as yet another hobby podcast. It was a podcast that needed to make money for it to be good for me because honestly, I already have a podcast and it is a good podcast and it's about things I care about and it's foreign audience I care about. So right now, Cozy Science is on hold unless Christopher really encourage-
CW (00:04:51):
Did we talk about Cozy Science a lot on previous episodes?
EW (00:04:54):
We mentioned it.
CW (00:04:55):
Okay. Just want to make sure there's
EW (00:04:56):
Context. Do you want me to
CW (00:04:58):
Sure. I mean, if 50 people say no, bring it back.
EW (00:05:01):
So the idea for Cozy Science is that people have told me that they have spouses or they can't listen to the show because my voice puts them to sleep, which I'm all in favor of. There are voices that put me to sleep. And so I thought, well, why not lean into that and read scientific things or talk about science and math and numbers, things I'm excited about, redwood trees and octopus hearts and weird things that make you dream or daydream, but do it in a very soothing, calming, meditative way so people could use it to go to sleep or to daydream or take a power nap or just have a bit of quiet time. And we recorded two episodes. And I have to admit, after the episodes, I was so relaxed, not sleepy, just serene and calm, and that was good and I liked it. But there's a lot of other things that go into this than me mumbling into a microphone.
CW (00:06:11):
I mean, if that was all you had to do, would you want to do it?
EW (00:06:14):
If that was all I had to do and I probably would get paid something for it.
CW (00:06:20):
That's the hard part.
EW (00:06:21):
Yeah. Yeah. Getting paid for your work actually is kind of hard sometimes. I don't know if all I had to do was mumble into a microphone and that was all maybe, but I don't want it to all be on your shoulders either.
CW (00:06:35):
Right, right. All right, well, we can continue to think about it.
EW (00:06:39):
Yes. And there's another episode if Chris decides to do the music on that, it may go up as a bonus for the Patreon listeners, Patreon supporters, Patreon and KoFisupporters. We'll see.
CW (00:06:53):
All right.
EW (00:06:55):
Do you have a couple more comments on that?
CW (00:06:57):
On Cozy Science? No, I can't break the log jam of getting paid enough to make it feel worthwhile. So that's the hard part. Everything else I can offer to take off your hands completely and just have you come in and record. But that's not going to,
EW (00:07:13):
If it was stuff you truly enjoyed. Sure. But it didn't seem like stuff you were enjoying either.
CW (00:07:19):
I told you I was enjoying the music and stuff.
EW (00:07:21):
The music part. Yeah.
CW (00:07:24):
The rest of it. I mean, the rest of it is website and branding,
EW (00:07:30):
Dealing with people and marketing.
CW (00:07:32):
Yeah.
EW (00:07:33):
Yeah.
CW (00:07:35):
Anyway, what was the next thing?
EW (00:07:37):
We had a request from one of the listeners to talk about seeing whales.
CW (00:07:41):
Okay. We've seen whales, a lot of whales
EW (00:07:46):
Woohoo us.
CW (00:07:47):
Yeah. There's been a lot of humpback whales in the Monterey Bay, near the shore this year, which seems to happen not too frequently. I think the last big time was at least five or six, maybe seven years ago when there were this many. Occasionally we'd see one or two, but this summer was like, every time we go down there, there's almost always something happening.
EW (00:08:13):
And I follow some of the whale watching boats on Instagram, and I see them, oh my God, getting pods of orcas and seeing blue whales. But from the shore, from the beach, we mostly see humpbacks. And sometimes it's just a matter of seeing the spray, but they also do lunge feeding here, which isn't the same as when they jump entirely out of the water, but they get the top half of their bodies, their mouths are open.
CW (00:08:48):
It's pretty dramatic.
EW (00:08:49):
It's pretty dramatic.
CW (00:08:49):
It's giant monster coming out of the sea, straight up and chomping down on well water
EW (00:08:56):
And probably anchovies and maybe one of those birds that wasn't fast enough to get out of the way.
CW (00:09:01):
A couple kayakers.
EW (00:09:03):
Yeah. Yeah. And I've heard that Pacifica, which is closer to San Francisco, has had some great observations from the pier. You're on the pier and they're right below you or closer to the beach than you are. So it's really dramatic to see them feeding, lunge feeding, getting themselves out of the water so that they can gulp up all that food. And it realistically probably won't last too much longer as we head into fall.
CW (00:09:38):
I keep thinking it's going to dwindle and then we go back
EW (00:09:42):
Then we go back, just a bunch more.
CW (00:09:42):
Yeah, but they head to, they're heading to Mexico or South America? No, to go as far South America?
EW (00:09:50):
Ours head to Mexico.
CW (00:09:51):
Yeah, okay.
EW (00:09:52):
The Alaskan ones head to Hawaii.
CW (00:09:54):
Okay.
EW (00:09:56):
Okay. The Embeddies.
CW (00:09:58):
The Embeddiess. This came up on the show with Christina Cyr. As a silly idea to have an awards show about embedded things.
EW (00:10:08):
Right.
CW (00:10:08):
Okay.
EW (00:10:10):
And the question is, what would you want to see awards for if the Embeddies existed, and what would you want to be a judge for if you were a judge for the Embeddies? So there are two big questions.
CW (00:10:28):
Okay. Okay. How many categories do I have to come up with?
EW (00:10:32):
Oh, let's say, if do three each.
CW (00:10:35):
Okay. Let's go back and forth so there's some time to think.
EW (00:10:38):
Okay.
CW (00:10:39):
Do you have some prepped?
EW (00:10:43):
No.
CW (00:10:43):
Okay. Well, I can go first. So I think there's going to be the usual stuff like best processor and most effective this and most innovative, those sorts of things. I would like to see a category that's some social responsibility stuff, so I dunno what to call it. But this would be more like a product category, like most socially responsive, responsible embedded product, or sometimes this ventures into Hackaday Prize territory a little bit, but things like that, like best assistive, or, what's the word I'm looking for?
EW (00:11:26):
Accessible.
CW (00:11:27):
Yeah, accessible technology, things like that. Things that are a little bit application specific, prizes. So I think my first choice would be, let's just narrow it down. Best accessible. Best accessible, embedded device.
EW (00:11:43):
Oh, I actually typed it as project or product, socially responsible impact.
CW (00:11:48):
That's fine too. Yeah. Something along those lines. Not sure. We need multiples within that category.
EW (00:11:55):
The application and product as a category for embedded awards. I like because it lets companies show off what they've done without getting too far into advertising. I was thinking some about applications, and for me it was less about socially responsible and more about the team. I want you to tell me how the team grew, not grew in people, but how the team learned.
CW (00:12:40):
That's a tough one. Anybody can, companies are good at telling stories about their teams without you being able to verify. Right?
EW (00:12:51):
Yeah,
CW (00:12:51):
That's true. And then you would give the award and then three weeks later somebody comes out. Well, they
EW (00:12:54):
I quit and they were awful.
CW (00:12:55):
actually were horrible and bullies. Yeah. But no, I see where you're going with that. I like that. I think it's a company award, right? Your company culture or your company, I dunno, that's verging on socially responsible in some ways.
EW (00:13:14):
Yes.
CW (00:13:14):
But these are tough ones. That's a tough one too.
EW (00:13:21):
One of the ones I thought was best new technology less than three years old. That has an impact on day-to-day work.
CW (00:13:35):
Okay. Yeah. I have a similar, oh, day-to-day work for anybody or
EW (00:13:38):
For developers? For embedded engineers.
CW (00:13:40):
Yeah. I have a very similar one, which was going to be most developer friendly tool in the last, yeah. In some period, which I think was the same thing you're saying.
EW (00:13:49):
Basically, that's "increase my efficacy, please."
CW (00:13:52):
Yeah. And that one has, there's a lot of potential things that could go in there.
EW (00:13:58):
Yeah, if Keil has a new compiler out.
CW (00:14:01):
Yes, yes. That's exactly what I was thinking about. Keil comes out with a new compiler if OpenAI comes out with a new talking parrot. No, but there's lots of things, many services exist that help developers. There's mundane tools, like just a better diff tool, open source projects that help you. So I think that would be pretty wide open.
EW (00:14:28):
Instead of best day-to-day improvement tool in new innovations. It would be best open source tool.
CW (00:14:36):
Yeah, that too. That could be separate. But yeah.
EW (00:14:38):
And this is again, for improving and developer efficacy, embedded developer
CW (00:14:45):
Or efficacy is one way to look at it, but also just quality of life improvements of being a, it doesn't have to make you more effective if it's just making something less. I guess. Anything that makes you less unhappy is probably making you more effective.
EW (00:15:00):
Indeed. At least for me. What about what classes, courses, MOOCs online courses? Yeah.
CW (00:15:16):
Best embedded related online course.
EW (00:15:20):
I don't suppose we can have best embedded book.
CW (00:15:23):
You can, but there's only going to be one book in that category every year.
EW (00:15:28):
Because we'll...
CW (00:15:29):
We just put yours. Yeah. We'll just put different translations of yours.
EW (00:15:31):
Yes. Yes. My book's available in Polish now they have to send me two copies when they publish the book. And Polish is language with a lot of letters.
CW (00:15:44):
Yeah, it is. It's a very difficult language. I'm looking forward to reading it in the original Klingon.
EW (00:15:51):
Yes. Well, I'll let you know when that translation happens. Okay. Well, let me switch over to, we did talk about this on the Patreon Slack, so let me switch over. I know they had opinions. Best role model. I don't know whether that comment actually is for a different show. I bet that isn't related to what we're talking about here.
CW (00:16:13):
Good.
EW (00:16:13):
Nevermind.
CW (00:16:16):
That's another fraught one.
EW (00:16:18):
Yeah. Well, I did March Madness a couple of times, and then I did it with my students
CW (00:16:25):
For microcontrollers,
EW (00:16:26):
For Microcontrollers. Micro Madness, where I had brackets of processors. And I mean, we chose everything from ATTinys to SAM parts from Microchips. PICs from microchip, Nordics, STMs, and everything was judged on a certain board. It came with, so it was a dev board as well as just the process.
CW (00:16:56):
The DISCO board versus the
EW (00:16:58):
Nucleo. Yeah. Versus the Arduino. And then I had a list of 50, 75 different criteria, and they were 100% arbitrary. Some of them were less, obviously arbitrary like cost, number of pins, amount of power, but some of them were obviously arbitrary number of vowels in the
CW (00:17:22):
Number of vowels
EW (00:17:24):
In the chip name. And some of
CW (00:17:28):
Them were longest part number. Sorry,
EW (00:17:30):
Some of them were a little odd. If you just Google the chip name, how many hits do you get? Okay. Which is a measure of, it was more of [popularity].
CW (00:17:37):
A scavenger hunt than a
EW (00:17:39):
Well, yes,
CW (00:17:40):
In some sense. Okay.
EW (00:17:41):
Because when I gave it to the students, it was like, okay, everybody gets a processor and now we're going to talk about all of these processors at once.
(00:17:50):
And once somebody knocked your processor out of running, then you went on their team and could help look up data as it came in. But ideally you didn't have to, because ideally you looked a lot of the stuff up before the brackets started going anyway. This was kind of fun. It was really hard when I did it by myself because I had to look up all of this information. But when you have a group of people, it gets pretty fun. Just you learn. One of the criteria is who has the most number of SPI ports? And
CW (00:18:29):
It's less about, I mean the shtick is, it's about comparing the chips to see what wins, but it's less about that and more and digging into what's out there and comparing contrasting sometimes meaningful things and sometimes not. But you could learn about what's out there. And for your class, that was really probably a useful exercise in data sheet reading.
EW (00:18:48):
That was the data sheet reading section. And it was a useful exercise in, there are lots of processors out there and many of them have specific uses. And that's not a bad thing. But if you're looking for a general purpose processor, it's not a good thing.
CW (00:19:06):
Sometimes it costs more, sometimes it has things you don't need. Yeah.
EW (00:19:10):
I mean, I think one of the criteria for one time I ran it was number of motors that could be run directly from the processor. I was like, only TI processors had that.
CW (00:19:20):
Right?
EW (00:19:20):
Everybody else failed on that.
CW (00:19:21):
Yeah.
EW (00:19:21):
I was like, okay, well this one's kind of fixed. So I always don't want that to be the sort of awards. I want the awards to be encompassing.
CW (00:19:37):
Are we actually doing the awards we haven't talked about? What is this just musing about what the awards would be if we were to do them? Or do you really want to do them?
EW (00:19:48):
Oh, as noted with Cozy Science, I have decided that I'm terrible at asking for money and I'm just going to do the things people pay me for naturally.
CW (00:19:56):
I see .
EW (00:19:58):
I mean if we did them truly... So when we talked to Christina about the innovation awards for CES, and when I was looking up different awards you have to pay to be considered and the CES awards, there were like a thousand entrants and it's a couple hundred dollars each.
CW (00:20:20):
Oh, so we only have to do it once.
EW (00:20:21):
Exactly.
CW (00:20:21):
No.
EW (00:20:22):
Except part of me is like, oh, that's a scam. Or all contests of that form or scam. And there's probably some element of that. But when I looked at, okay, if I really was going to have to understand the difference between Goliath and
CW (00:20:47):
Memfault? No.
EW (00:20:49):
Well, they're not in direct [competition].
CW (00:20:51):
Right.
EW (00:20:51):
But say they were in the same category for best new tool for something that is not an insignificant amount of time.
CW (00:21:00):
Sure.
EW (00:21:00):
Because I wouldn't want to just read their marketing stuff. I want to try it.
CW (00:21:03):
Sure.
EW (00:21:04):
And that time adds up pretty quickly. And if it's not a tool that I know well, and it's against a tool I do know, well, then I'm going to feel even more like that.
CW (00:21:14):
But do you want that to be, your job is to judge tools. See, that's the thing, right? You talk about you want to get paid, but you already do get paid for the work you enjoy doing. And it feels like you're creating a new category of something that you don't enjoy as much, and then you'll get paid for less for.
EW (00:21:31):
Right. And so, no, I don't really want to do this. I do thinking about it because it's one of those, "what is important?" sort of thoughts.
CW (00:21:42):
I think we could take the inspiration for this to the member special episodes. Sometimes I've been thinking, in addition to watching movies, we might do silly things. Not quite like the micro madness, but tier rankings of chips we've worked with or things or tools and things like that. So there's similar stuff we can do without it being an awards show.
EW (00:22:04):
Oh yeah. And with that, there's always the chance we can bash on them too, which
CW (00:22:11):
Or argue, which
EW (00:22:12):
Is hilarious.
CW (00:22:13):
If we get a couple other people, we can have our faves and argue about how to rank them.
EW (00:22:18):
Oh God, Svec loves Vim so much and he's wonderful. He's a great person.
CW (00:22:27):
Lots of people use Vim. I use Vim all the time.
EW (00:22:30):
Voluntarily? Because tou haven't figured out that it's Escape Q Shift-One. That's Q, exclamation point so that you can quit Vim and start nano.
CW (00:22:46):
I know how to quit Vim. I don't like nano. I don't understand any of its key combinations. And I know vi's.
EW (00:22:50):
But Nano puts the key combinations...
CW (00:22:52):
Yeah. I have to read the bottom every time. I have never internalized those.
EW (00:22:56):
You would've eventually.
CW (00:22:59):
Anyway. When I have to edit something small, usually I just type vi because it's on every system.
EW (00:23:06):
So is nano.
CW (00:23:08):
Is it?
EW (00:23:08):
Yes.
CW (00:23:10):
Not sure about that.
EW (00:23:11):
Let me know. When you type nano and it comes up with not found, he's going to type it into Google or something. It's not going to work.
CW (00:23:18):
Oh, look at that. It's on my Mac. That's pretty funny. Didn't realize that. Look at all this junk. Control G, get help. Get Control O write out, they make the shortcuts. The second word in the thing, instead of control W for write it's control O for write out. That's why I can't remember it. Whereas control and Q is for quit, W is for right, et cetera, et cetera.
EW (00:23:49):
What's the way to move around the file?
CW (00:23:55):
It's the normal, the thing before keyboards had cursors, the J, the K and the, yeah.
EW (00:24:02):
This episode of Vim and its uses brought to you by Christopher Svec.
CW (00:24:09):
Anyway, I don't live in vi like some people, but
EW (00:24:14):
Yeah, where were we? We were thinking about different awards, which we are never going to do because this is not a core competency that we care about.
CW (00:24:24):
Okay,
EW (00:24:26):
Next thing. What would you want to judge the awards and how much would they have to pay you to judge such things?
CW (00:24:32):
We talked about that.
EW (00:24:33):
Okay. Celebrate the 10th bit. How do you celebrate bits?
CW (00:24:41):
I don't know. I don't know what that means. Do you get nine things, 10 things? We are into the 10th bit, so I, I feel like we should get-
EW (00:24:52):
This will be the last show with nine bits, that can fit in nine bits.
CW (00:24:56):
So we get nine things
EW (00:24:58):
And then the next show will be the
CW (00:25:00):
Nine cakes. Nine cookies nine. I don't know.
EW (00:25:06):
I don't know. I have been hearing with burnout some things about you really have to celebrate the things you do. And it's true. We do the show. I ask people impertinent questions, we record that part and we let people hear it. And then sometimes I interact with listeners about what they liked or what they didn't like. But I don't get a dopamine hit on Thursday afternoons when this drops. I mean, if I'm lucky I get an adrenaline hit because I haven't written the show notes at 3:30 and I get that done. But there is no...
CW (00:25:46):
You might feel better if you're the one who released it. Do you want me to make the button? Leave the button to publish undone? So you push that button.
EW (00:25:53):
Does that make you happy?
CW (00:25:54):
I mean, it feels like I've accomplished something for the day.
EW (00:25:58):
Maybe we can push it together.
CW (00:26:03):
Like the missile launch. We both have to turn our keys.
EW (00:26:06):
Yes.
CW (00:26:06):
Yeah. Okay.
EW (00:26:09):
But it is, I don't know. The show is a lot of work and it's good, and I like it. And sometimes-
CW (00:26:17):
Oh boy! "It's good and I like it."
EW (00:26:19):
But sometimes I do forget that we have done 511 shows.
CW (00:26:26):
We've been doing this show for 12 years.
EW (00:26:29):
Yes. I looked that up recently too.
CW (00:26:32):
12 years. It's old enough to drink.
EW (00:26:35):
No, it's not.
CW (00:26:38):
Oh, sorry. Got it backwards. Got to flip the numbers the other way.
EW (00:26:43):
Christopher has overflowed his stack.
CW (00:26:46):
I only have nine bots myself.
EW (00:26:49):
Well, we made a huge deal, about 200 and 300, huge deal, about 300. And then-
CW (00:26:55):
We just gave up.
EW (00:26:55):
And then we just gave up partying.
CW (00:26:58):
Well, there was some other extenuating circumstances which precluded partying.
EW (00:27:02):
But yeah, this is a big deal.
CW (00:27:07):
I mean, we do love to hear from people. So if people have suggestions for that, they want the show to go a different direction or stay on the same course or find ways to reach new audiences, I'm always open to hear about it.
EW (00:27:22):
And if you want to support the show and you like us, please mention us.
CW (00:27:28):
You don't have to give us money to other people. You don't have to give us money. It's post a review somewhere, the iTunes or wherever there's reviews, or just tell somebody, Hey, this is a cool podcast if you're a newbie embedded or something. Yeah,
EW (00:27:41):
Whatever. And I know people stopped listening some when commutes changed, but feel free to remind the person who told you about it. We're still here, we're still making shows. We have some exciting stuff. Things happening,
CW (00:28:01):
Stuff things.
EW (00:28:03):
Oh, we have some questions from listeners.
CW (00:28:05):
Good. Let's answer some actual questions.
EW (00:28:08):
What kind of maths would be way cooler to do on all those vector math capable AI cores on MCUs instead of the inferencing nonsense?
CW (00:28:21):
Wow. Well, you're doing a big course where maths, or not a course, but the book club, your book club on the Slack
EW (00:28:29):
Fancy math anonymous
CW (00:28:30):
Is doing the Data-Driven Science and Engineering.
EW (00:28:37):
Yes.
CW (00:28:38):
Is the book. And that has some stuff that's lots of linear algebra. That's not inference, right?
EW (00:28:45):
So much linear algebra. It's terrifying.
CW (00:28:50):
I mean, anything you can do with linear algebra is probably applicable to GPUs or neural engines real large.
EW (00:29:02):
So let me tell you a little bit about the book because it really does have a lot of linear algebra and some of it would fit in this question. So the data-driven science and engineering book talks about control systems as though they are data science problems.
CW (00:29:24):
Instead of strictly a set of couple differential equations or that kind of thing.
EW (00:29:33):
Yeah.
CW (00:29:33):
Okay.
EW (00:29:34):
And the linearization, the making it stable. So making a stable control system is a common problem. And usually we talk about poles and zeros and Bode plots and all of that turns out, and I am boggled by this, but those polls and zeros are centrally the eigenvalues of the system. Eigenvalues are something I learned in linear algebra, the eigenvalues and eigenvectors. And this book puts everything in those terms, the linear algebra terms. And so your control system becomes a matrix multiply, which isn't that bizarre. But then the eigenvalues of your matrix multiply, indicate your controllability.
(00:30:38):
And if you add in your control in there, you have how it works, and then you have how you control it. Now you have more information in the linear algebra and you can look at controllability. If you think about which things you can measure and how all of that goes in, you can think about the observability of the system. If your system can't really be observed, like you have an inverted pendulum and you're only measuring the roll of the system, which has nothing to do with anything, then you can't control it. If you are only measuring the angle of your pendulum, your control is really weak. And there are easy linear algebra ways to look this up. And I say easy here because it's like a one line MATLAB or NumPy command.
(00:31:33):
And if you're talking like a PID controller, it's something you can probably figure out by hand. Or even an inverted pendulum, you can figure that out by hand. One could, I would get lost in the algebra. But when you're talking about how big systems work, weather systems, climate systems, brain systems, financial systems, you can look at those using the same methods, the same matrix, multiply by a measurement plus a control. And those, you can have much, much bigger systems, which now when you're looking at egen values and egen vectors, you're like, how do I even figure that out above about four? Your matrix becomes really big and unwieldy for figuring these out. But again, NumPy, MATLAB, they do it numerically. You don't care. It's just one command. So to answer this question about what do you do on these AI cores on instead of inferencing nonsense, you do big matrix multiplies.
CW (00:32:44):
Yeah, but they're so big. Do we really need them for things that aren't inference? I mean, the inference things have, I don't know, hundreds of millions of parameters. Some of them, some of them billions. Some of the LLMs I think have more, I'm trying to think of a class of problem besides simulating the universe or something that requires that many basically arithmetic units in parallel.
EW (00:33:14):
One of the things this data-driven book is emphasizing is about how powerful these are. One of the ways it's adding more features to this whole matrix oriented way of doing things is that you take your samples at T zero, at T one at T two, and these aren't just your single samples. These are like, I'll go back to ShotSpotter. It's something I know really well. You have four microphones.
CW (00:33:45):
Sure. It's a multidimensional sample, a time of many things,
EW (00:33:49):
Time amplitude of each
CW (00:33:52):
Features
EW (00:33:52):
Signal features on each one, and now your matrix, which has a thousand samples and a hundred different measurements. And this is the thing you're looking at now. This is the thing. You're wanting an SVD on singular value decomposition so that you can send back a minimum amount of data to your server. So yeah, it's these maths that are linear algebra, those AI cores are linear algebra cores. But how you do this, I don't really know.
CW (00:34:31):
Well, I mean, how you do,
EW (00:34:34):
How you go from, I have this N by M matrix where N is a thousand samples and N is a hundred measurements, and you put that into the core and you multiply it by your control
CW (00:34:50):
Widget. That's one of the things is this seems like something where data is continually coming in, which I am not an expert on how these cores work, but generally you load the model into them and it's static, and you give them inputs, you load the weights in for the model. It sits there and it's inference engine. It's doing all the linear algebra. And the only thing you're giving it after that are a set of vectors of inputs, which are not necessarily, I mean,
EW (00:35:18):
Which are your current measurements.
CW (00:35:19):
Your current measurements, which can be an image, which could be quite large or stuff like that. But you're not altering the matrix
EW (00:35:28):
And the control piece, the matrix that you generate to control all of this is what you load in.
CW (00:35:35):
But if you're trying to do a singular value decomposition, like you said on a large matrix, you have to get that all in there.
EW (00:35:42):
That's true.
CW (00:35:43):
And I don't know that there's a lot of bandwidth. I don't know how big the pipe is to get models into what we're replacing a model with into those. It's just a thought. It's not important, but, that's where GPUs is a little-
EW (00:36:00):
Something about moving the coordinates to match your current, the outer, the U and V matrices would go in there and then you would get an S out, and so you'd be translating to those coordinates, which would be minimal in your space.
CW (00:36:18):
But that does sound like a good application where you have large matrices and lots of physics simulations, lots of all kinds of things like that, have large matrices. Whether those cores are generally applicable or whether they're so tuned toward, I need to get a TensorFlow formatted model with weights or I can't do anything. I don't know.
EW (00:36:42):
That would be an interesting discussion. I wonder if we know anybody who knows about that.
CW (00:36:48):
Probably someone, the other thought I had is if we have all these inference engines, we can't do AI or one of the big linear algebra problems is computer graphics. And so you could take these,
EW (00:37:04):
No, come on.
CW (00:37:05):
On, I'm pulling your leg. Right?
EW (00:37:06):
Oh, no, but that's what, oh, you're going to make a graphics card out of an AI card, which came out of a graphics
CW (00:37:15):
Card. Yes.
EW (00:37:16):
Okay. I get it now. That's hilarious.
CW (00:37:18):
Return to graphics,
EW (00:37:19):
Return to graphics.
CW (00:37:21):
But most of the neural engines on embedded chips and the special purpose neural engines are not GPUs anymore. They're all the parts of a GPU that used to apply to neural networks without all the stuff you need for graphics, because who cares about doing texture mapping if you're just running models? So that's an efficiency. So in your phone, there's a neural, there's some silicon that's just for neural networks and there's a GPU and they don't do anything together. But I don't know, I think there may come a time when we're going to have to figure out what to do with a vast over capacity of linear algebra solvers.
(00:38:06):
When you can buy one of these things, a server-based inferencing engine for $3, somebody will figure out what to do with it. That's one of the things about funding AI, and then I'll shut up, is as technology develops, you spend a tremendous amount of money on these data centers buying inference engines and GPUs. Right? But every year there's another one that's better. And so the old ones are worth nothing, or they depreciate really quickly. So there's huge amounts of money going into these neural solvers that depreciates very, very quickly, and they burn out at those scales too. So it's kind of an interesting problem. But yes, there might be a glut of these in a few years that certainly as ones come off the line that aren't fast enough or whatever for whatever people are doing, even if AI is successful, there's going to be a vast supply of inferencing, linear algebra solvers that come out of these data centers.
EW (00:39:04):
It's funny. It's so funny to think it's such different scales. I'm like, okay. So last week I said, no, no, we should go ahead and leave the divide in. It's not that long.
CW (00:39:16):
What about 40 trillion divides?
EW (00:39:19):
Some days I'm like, okay, I just need 10 more bytes and I can make all of this work the way I want it to. If you give me eight more bytes, I can still do it, but it'll take me a little bit longer. And then other times I'm like a gigahertz. Oh, well, yeah, quit optimizing the stupid crap. And then we get these giant systems that I just can't even.
(00:39:46):
I'm still stuck on the Jetson being cool. There's like 20 years old. Okay. It's like 10 years old. 15?
CW (00:39:53):
Yeah. There's been like six Jetsons since then.
EW (00:39:55):
I know. And I'm still like, "And the image processing is so cool!"
CW (00:39:59):
But nothing's really changed.
EW (00:40:02):
ImageNet is still..
CW (00:40:05):
Stuff has changed... Mostly what's changed is scale and LLMs. I mean, the one innovation is transform models and LLMs that's happened in the last few years, but the stuff they're running on is basically the same. It's just more.
EW (00:40:20):
Let's go on to a different question.
CW (00:40:21):
A different question.
EW (00:40:23):
Sila asked, how do you start to writing enough to enjoy doing it enough to be self-motivated about it?
CW (00:40:32):
I don't think that is necessarily specific to writing, it sounds like, yeah, just put anything in there. Yeah. I mean, how do you convince yourself to do anything enough that you start? I think if you don't enjoy something, it's very hard to force yourself to enjoy it. Yeah. I mean,
EW (00:40:57):
Okay, let's take this in an entirely random direction.
CW (00:41:00):
Yeah.
EW (00:41:01):
How do you start to like eating enough to enjoy it, enough to be self-motivated about it?
(00:41:09):
That's Not really for you. Don't worry about you and your stomach. I know about you.
CW (00:41:11):
I do feel slightly attacked, but the difference there is if I don't do it, I die. Whereas if I don't write, the consequences are, you know...
EW (00:41:21):
That's actually the point I wanted to make, is that there is a series of values that are important. How do you start to like bathing enough to be self-motivated about it? Okay, that's less important than food, but it's not like you're not going to do it. Right? And so think about why you do those things that you do do. And it's not always about enjoyment.
CW (00:41:58):
That's the thing, right? Yeah. There's plenty of things we do that are-
EW (00:42:01):
Self-motivation and enjoyment are not the same thing.
CW (00:42:04):
And if you're talking about writing specifically as a, I have to write or get better at writing as part of my work, but it's not something outside of my work that I would necessarily do. Well, there's half a dozen, dozen things like that involved with work that how do I get better at going to meetings? There are very few people who enjoy going to meetings, but
EW (00:42:24):
Man, do they really enjoy them! They make them last forever.
CW (00:42:27):
But there's a lot of meetings. So I think you have to A, put it in the context of why you're doing something and not necessarily feel bad if you don't enjoy it. Having said that, you can look for parts of it that you do enjoy,
EW (00:42:44):
And you might be surprised to find that there are parts you enjoy.
CW (00:42:47):
And maybe there's ways to do it in a different context. So because that's the thing, right? Writing for work is very different from writing in a journal or writing to yourself or writing a story. And maybe you want to get better at writing for work, but it's not enjoyable enough to practice that.
EW (00:43:08):
Oh, I imagine not. No.
CW (00:43:10):
Right? But maybe it's enjoyable to practice writing, creative writing.
EW (00:43:13):
Children's stories, jokes.
CW (00:43:15):
Whatever. So that's another way to twist it is I have to get better for work. I normally wouldn't write, don't enjoy writing for work. Let me try it in a different context and see if I enjoy it there. And then if I practice there or lose the word "practice", if I start a habit there that I do enjoy, well, that's still writing. It's still going to improve my writing. It's going to factor into the work writing, which I don't enjoy. And the same goes for lots of things. Like many musicians have to play in bands that play covers, right? And that's not maybe what they want to do. Maybe they want to play their own original music, but nobody pays for that. But you can subsidize one part of your enjoyment with another thing and get something out of it. Because if you play in a cover band every night, you're going to get better at certain things that can apply to other things. And I think that's one way to come at it from the side, is
EW (00:44:13):
Sneaking up on it,
CW (00:44:14):
Is not trying to force yourself. Trying to force yourself to enjoy things is let us know how that works. It's a losing proposition. It's not something that works. It just makes you enjoy things less, especially if somebody is telling you to do it. And that's, for me personally, if somebody's telling me to do something, it's automatic. 30% haircut off the enjoyment level.
EW (00:44:42):
Do you mean just general telling you to do something or telling you to do something, enjoy it? I think you'll like this book basically means, means that I will never read the book.
CW (00:44:51):
Oh no, that's fine, because that doesn't bother me.
(00:44:56):
But for work, you have to go write this paper, or for school, you have to read this book. And then that automatically makes me not want to do things. Even if without that, I would've enjoyed it. So for me, I have to take that part out of it if I want to sneak into it. And this isn't for somebody else, this is for me. And I think that's, but this is all very personal and going to be idiosyncratic to each person and how their relationship with work or with doing things.
EW (00:45:32):
And I think there's a question here about how everybody else can enjoy writing so much. And I think the secret there is very few people actually do.
CW (00:45:45):
Fewer now than before, which is weird because we do so much of our interaction now with writing more so than I think we did even before the internet was big, right? I wrote a couple of letters every year, but most of our conversation was vocal. And now we're writing text messages constantly. We're interacting with Slack and Discord constantly. It's all text. There's video and all that stuff on Instagram and other things. But people are typing and doing written language a lot, which is kind of interesting. I don't know where I'm going with that. But we do write a lot now, probably more than people did 25 years ago,
EW (00:46:27):
But we don't necessarily write in a way that would be critically acclaimed,
CW (00:46:34):
Right? I'm just saying it's become a part of our lives in a different way than it was.
EW (00:46:39):
Yes, it is more of a communication mechanism than it used to be. Okay. So the advice there, one, replace writing with some other words and realize that enjoy may not be the word you mean. You might want to just skip to self-motivated about it and make it so that it is under some other value than enjoy. Because I don't think forcing yourself to enjoy something in order to be self-motivated about it is going to work. Second is just because other people are writing doesn't mean they're enjoying it. And the third thing is, if you can sneak up on it with something, you do enjoy writing scripts for your family to produce a play, writing children's stories, writing ridiculous things in a journal,
CW (00:47:40):
Writing rants,
EW (00:47:41):
Writing rants. The goal in becoming better at writing, there are a couple of different things you can do. Practice number one, copy somebody else's writing, which is to say you have to do a lot of reading in order to get better writing. The third thing is, once I started editing other people's things, I became a lot better editing myself. So think about those. If one of those will help you sneak up on it, then write. Write romance novels. Write a starship fantasy. Be the hero of a ridiculous satellite mystery action book. But just because everybody else is writing long project logs and they aren't necessarily doing it because they enjoy it, they're doing it as a way to get to another step, a way to show off their project. They're not doing it because they enjoy the writing, but to show off the project.
CW (00:48:51):
And you might find that you do start enjoying writing, but doing it more. But when you get better at it, when you start seeing benefits from being a better writer, that can happen. But if you start out with the mindset of I have to enjoy this and I don't,
EW (00:49:10):
Ooh, that would be really tough to get beyond too. Yeah. I didn't write a book because I enjoyed it. I wrote a book because I got sick of explaining the same things over and over again.
CW (00:49:21):
You wrote a book because you didn't enjoy something else more.
EW (00:49:23):
Right? Exactly. Maybe that's what the key is. How do you start to writing more than you dislike doing something else? Okay. Matt, I think, I'm not sure I got the names all kind of scoogled in here, how to approach deployment and remote support for something you can't see in use in the field. And that isn't a tiny iot thing hooked up to Golipth/memfault. This is funny. I have a scientific device being used by scientists who, well, let's just not talk about their git habits. I am very happy to fix their git problems. I'm not very good at git. Don't tell them they think I'm really good. Anyway, I have this device that is going up that's been hanging out in the bay here. It's going up to someplace in Montana soon, and I will not be able to reach it any longer. I will not be able to ask someone to go out and kick it. I hope it works really well, but I won't know until someone calls in the middle of the night and says, oh no, a bear attacked it. Which did happen to one previously, but I wasn't involved then.
CW (00:50:49):
Got it. Okay. I won't. Yep.
EW (00:50:53):
How do you approach deployment and remote support for something you can't get near? Well, this is really tough for folks who have satellites or deep sea equipment.
CW (00:51:04):
Or anything in a remote location. Yeah.
EW (00:51:07):
Well, and again, back to ShotSpotter, you don't go visit those during the day.
CW (00:51:11):
Well, we talk to the person who did the field cameras, which are deployed for a long time. And yeah, I mean this is your, probably, you can speak to this more than I can. I've never done anything like that. Everything, even the stuff I've had in remote locations has been incredibly connected.
EW (00:51:31):
So QA becomes a different beast if you can't touch this thing later because it's at the bottom of the ocean or a hundred miles above the surface of the earth. It isn't something to play with. You need to have a stricter level of recovery more than anything else. You need to be able to upload new code. And so we talk about dog fooding our own products. This is a case where you need to fake deploy it to the office next to you or the office three doors down, something that is far enough away that it's kind of irritating and yet close enough that you actually can effect change. Okay? So you have to QA it beyond what you think is normal. You have to QA it, especially for being able to update it. Now, if you really can't update it, which sell modems at like 2400 baud is still a thing
CW (00:52:40):
Should be less a thing. There's a lot more remote access now than that.
EW (00:52:46):
Look, if it's at the bottom of the ocean,
CW (00:52:48):
Okay, the bottom of the ocean, that is,
EW (00:52:50):
You really just can't get the bits down there very fast.
CW (00:52:52):
Sorry, you said cell modem?
EW (00:52:55):
That's true. That's acoustic. Acoustic modem. Those are so slow. Okay, so QA you have to be able to update it. You need to do the remote testing in a non-remote location. And how do you do support? Well, I mean, the Mars folks have figured this out. You do support by having an exact copy next to you, probably more than one exact copy, so that when it goes wrong, you can retry it locally. But I mean, there are methods here. There's the idea, you know, can't get to it.
CW (00:53:33):
It's what everything was before a certain time. Yeah, exactly. So I mean, maybe find some books that were written before, say 1990, just say 2005. Even about product development and I don't know, but even case studies there, look at what people did for those kinds of products. And usually, like you said, it was a lot of qa, a lot of things hardened against certain kinds of failures.
EW (00:54:03):
A lot of watchdogs
(00:54:06):
And not a lot of update. I mean, I said you should be able to update it in the field, but maybe that update is just change the parameters. Parameters so that you boot to a safe mode. I mean, think about satellites. You boot to a safe mode, something goes wrong, you don't do your normal thing, but you also don't expect someone to feed you all of the data ahead of time because it needs to fail safely. It needs to have a safe recovery mode. All right, I could talk about that all day because I think there are so many things. Let's see, how do you make a software design document? What do you talk about in it? When do you write it?
CW (00:54:50):
Nobody writes these anymore.
EW (00:54:53):
What? That's not true.
CW (00:54:54):
Okay. The medical devices sometimes do.
EW (00:54:56):
Yeah,
CW (00:54:57):
I haven't seen a lot of them for a while.
EW (00:55:00):
That's true.
CW (00:55:02):
Most companies are doing the Agile thing, which they take as an excuse to it is what it is. But people take as kind of an excuse to not do these sorts of tasks because they are in some sense, contrary to that philosophy and that you are putting a stake in the ground that's not movable.
EW (00:55:20):
Somebody mentioned to me recently that they hadn't heard Agile used in quite a while. That
CW (00:55:24):
Was me.
EW (00:55:25):
Oh,
CW (00:55:25):
Yeah.
EW (00:55:27):
Well, now you're arguing the other side.
CW (00:55:28):
I'm saying it still exists and everybody use it. It's just de facto.
(00:55:32):
Or everybody uses their little variant of it. But yeah, to me, I love software design documents. I used to do them all the time for everything, and it was a great way to capture, I did them before implementation to capture a sense of what we thought we were building and capture how we were going to build it. It was a good exercise to figure out what we were missing to game through scenarios like this other person said like, okay, we can't contact in the field what design elements are required for that to see how we were implementing the requirements. Because usually alongside a software design document, you have a requirements document, which is another thing that seems to have gone by the wayside.
(00:56:24):
But yeah, I mean, how do you write one? Well first, what problem are you solving is the highest level thing. And then you start getting more and more specific, what problem are you solving? What blocks do I put together to solve that problem? What do the inside of those blocks look like? How do those blocks talk to each other? If this is outward facing and there's some API, what does the API look like? What are the interfaces? Then you can get more and more detailed from there, but usually start as a top down kind of thing and get structurally more detailed throughout the document.
EW (00:57:00):
I agree. One thing, I think I did answer this when it first came up in the Slack. I did say write it in past tense. Even if you're writing it before you start development, your life will be so much easier if you just write it as though it already occurred. Because then it lives on instead of at some point someone has to go through and change all the tenses, but it is a bridge between the requirements, the goals, what you were supposed to do and the actual how you implemented it.
CW (00:57:37):
And I think my personal opinion on this is that it's an opportunity to use your brain for a while away from a computer and you can game things on whiteboards, but the kind of system level thinking where you're kind of envisioning the inputs and the outputs, the how things are being manipulated, how the modules are talking to each other, figuring out what can go wrong, errors.
EW (00:58:07):
How many things are on this SPI bus and will they collide? How am I going to protect them?
CW (00:58:11):
Coming up with all that stuff and thinking about it, once you start implementation, the implementation becomes really easy.
EW (00:58:20):
If you've cut everything into small pieces, those small pieces are so much easier to implement.
CW (00:58:26):
And every time I've done a design like that and we've gone to implementation, the implementation process has been easy. The number of huge bugs or oh my God, we didn't think of that. It gets smaller. The intractable, the kinds of bugs we end up with are nitty gritty things like, oh, that hardware is not doing what we expect. Or
EW (00:58:44):
Occasionally, I didn't think that these two things could happen at the same time.
CW (00:58:49):
And that's hard. Those are hard things to
EW (00:58:51):
Design. Those are hard things to do no matter what.
CW (00:58:54):
On the flip side, it should be a living kind of thing where you can change things when no plan survives first contact with the enemy. So should be willing to go back and change it. And that's what people get down about waterfall, the waterfall development process, which predated agile, which is like, oh, we do this design and then we do implementation, and then we do blah, blah, blah, blah. Then you don't go back.
EW (00:59:15):
But you always go back.
CW (00:59:15):
But you always go back. You always say, I learned this. And so that changes the design. The design is not set in stone. Something is shipped and even then you make changes, but, but I learned that through medical device process and a little bit at Cisco where those sorts of things were common back in the nineties. But I don't know, it seems like hardware people do that more now than software people.
EW (00:59:41):
I dunno.
CW (00:59:43):
Maybe I'm just in the wrong places.
EW (00:59:45):
I have one going for one of my projects,
CW (00:59:48):
But it's medical.
EW (00:59:49):
Yes, but I would have it going anyway because it is about the how the requirements, what the system design document is the how. And you don't need to put code in it.
CW (01:00:03):
You shouldn't,
EW (01:00:05):
But you do need to write it for someone who is like you, but who doesn't know anything about the project. You don't have to explain every little thing, but you shouldn't expect them to know more than you do.
CW (01:00:19):
And to some extent, it's a record of why you made certain decisions.
EW (01:00:22):
Oh yeah. And there will be points where it's like, okay, we did this for expediency's sake and should we revisit this? We should look at these three factors.
CW (01:00:32):
And I don't think, like you said, you shouldn't make code in it, but certainly if there's a core algorithm,
EW (01:00:37):
Pseudocode. Yeah,
CW (01:00:39):
Pseudocode can go in, their math can go in there. This is
EW (01:00:42):
Where you put the pretty math instead of the horrible array matrix multiply you have going,
CW (01:00:48):
Right? Yeah. Anyway, I think they're valuable. I think people should do them, but you don't necessarily have to enjoy writing it.
EW (01:01:00):
Right? The goal there is to have a good design to make your life easier, so you have fewer bugs. It's not because you enjoyed writing software design documents.
CW (01:01:07):
Yeah.
EW (01:01:11):
Okay. Let's see. Matt wrote a long thing about clocks on modern micros. Okay, I'm actually going to go through this. There's a lot to it. Matt was talking to another person, I think a graduate student, new grad. I don't know. About clocks on microcontrollers.
CW (01:01:36):
What kind of clocks?
EW (01:01:37):
Well, okay, let's go with the STMH5
CW (01:01:41):
Signal clocks? Real-time clocks?
EW (01:01:44):
High speed clocks. We have an oscillator and we have an HSE and an HSI. So it's an external clock and an internal clock, and you can configure either one of those.
CW (01:02:01):
Okay. The external clock goes out or comes in?
EW (01:02:05):
Comes in through an oscillator. The internal clock is created by the microcontroller/
CW (01:02:10):
Comes in from an oscillator?
EW (01:02:11):
Comes into the micro, oscillator to microcontroller,
CW (01:02:15):
Is the HSE.
EW (01:02:16):
Is external clock.
CW (01:02:16):
Got it. Got it.
EW (01:02:18):
A microcontroller inside microcontroller is internal
CW (01:02:21):
Clock.
EW (01:02:22):
Okay. These clocks run at some frequency, and then we add a PLL, which if you've never heard of A PLL, it stands for phase lock loop and that helps you not at all.
CW (01:02:37):
Right?
EW (01:02:39):
You actually did PLLs with your synth.
CW (01:02:41):
I built one
EW (01:02:43):
With your drum synth.
CW (01:02:44):
Yeah, but there was a chip.
EW (01:02:46):
Does it make more sense now?
CW (01:02:48):
A little bit. I mean, the parts we were using was basically to get a signal when things were in or out of phase. So I don't remember if we actually got it into the lock mode or not. It was more of a, how can we make sounds even worse, but a phase lock loop is something that looks at two signals and looks at when they're in and out of phase. And I think the loop part is to adjust one or the other. So they're in phase, is that right?
EW (01:03:19):
Yes. Although we do tend to use them for worse: that would assume that these two signals are the same frequency. But usually what we do with PLLs is we tweak them so that they're at multiples of the initial frequency.
(01:03:40):
So you put in a 12 [mega]hertz oscillator off of your chip, and then you PLL it to multiply by four, and now you have a 48 megahertz internal, you have 48 megahertz clock. It's not the internal clock. Now the,
CW (01:03:56):
Yeah, that's one of their things is they can also be a clock multiplier,
EW (01:03:59):
Right? They can be a clock multiplier.
CW (01:04:01):
But they're in phase with the other clock. So when you have an edge, even though the other one's operating at twice the frequency where they line up, they will line up.
EW (01:04:12):
Sure, I've never looked.
CW (01:04:13):
But yes, that's important because trying to, if you're synchronizing multiple events at different rates, but you want them when they're in sync to happen at the same time, they have to be in phase lock. So that's the phase lock part.
EW (01:04:25):
Yes.
CW (01:04:27):
You had a multiplier that introduced a latency that wouldn't necessarily be useful for certain applications.
EW (01:04:32):
But for this, all we're doing is getting a clock to drive our processor. Yeah. Okay. And you can do this with the external clock or the internal clock, and you can have different precisions based on whether your external, internal, and what your PLL configuration is. And Matt was saying that as I'm explaining it to the grad and seeing his brain try to absorb this information through his wide eyes, it occurs to me that this is all nuts. How do people learn this stuff these days? You do it the same way we did. You do it, you do it, you read the datasheet,
CW (01:05:13):
You're faced with it, and you go, "what the?" "No", and then you bang your head on it for a week or two and then
EW (01:05:19):
You read the manual. I actually introduced one of my colleagues to how much fun it was to really read all of the SPI register details so that he could optimize everything.
CW (01:05:34):
Remember our discussion about enjoyment.
EW (01:05:36):
Well, I mean, I enjoyed that immensely. I have no idea if he did. This is my point. I really loved that. It was the best part of my week. Yeah. Anyway. Yeah. Clocks are complicated. I think it's okay. So the H5, STMH5 is a big processor to me who likes the Cortex M series.
CW (01:06:06):
Which you're getting big is the M55 and the M7.
EW (01:06:12):
And so this chip is below what I think of as needs an operating system, but above what I think of as probably should have an operating system. It's one of those in between. You could run it bare metal, but do you really want to, you have a lot of play there. They have a lot of processing power, and if you had an operating system, most people would absolutely ignore the clocks. They would just do whatever the operating system set up and everything would be golden and you would call the one guy out of retirement and he would help you change it if you needed it. But overall, you don't need that. Now, that's not really fair. I mean, Zephyr doesn't make it that hard to change these things. You just have to know where to look and what to read, and there are Zephyr experts to help you, but the real point here is you don't learn everything all at once
CW (01:07:16):
And you don't even learn everything in places. You're supposed to learn them like school
EW (01:07:23):
And you don't learn everything, which is one of the weird things. I always,
CW (01:07:26):
You shouldn't because how many times have I needed to use a phase lock loop and understand what it means in my entire career? Never.
EW (01:07:37):
Never?
CW (01:07:38):
Never, really never. You go into the clock tree and you multiply stuff, but what am I doing with a phase lock loop?
EW (01:07:44):
I mean, yeah, you go into the clock tree, you just set it up the way you want it to and you stop worrying about it.
CW (01:07:49):
I'm not going to waste a week trying to learn it and accept in the context of drum machines, which was actually useful to me. So I don't spend a lot of time, at least in the workspace, learning things that I don't see that are going to come up a lot. That's true for me. It's
EW (01:08:11):
True.
CW (01:08:13):
It's not to say I don't enjoy learning things in that context, but I don't reach for stuff unless I'm thinking, oh, I'm going to expand my career horizons. I want to learn this space so I can do this. But most of the time it's, oh, this has come up and I haven't used it before. Okay, time to learn it
EW (01:08:29):
Very much and with the book club, that is the other way. I want to learn this and I'm not sure it's going to be useful to me or very useful or useful in more than a-
CW (01:08:45):
But there might be fringe things you learn reading, doing the mathematics that you're learning.
EW (01:08:50):
It's been a great refresher on linear algebra. It's been a good refresher on, I can do fancy math. It's also sadly been a bit of a refresher on wow, there are just some things I don't understand and despite trying, I feel like I may never understand them,
CW (01:09:08):
Which is also fine.
EW (01:09:11):
I mean, I don't know that it's something I'm going to use, so it is fine. Other than the self-esteem issues. One more question?
CW (01:09:20):
Sure. We can make it a long one. We dithered about for the first half an hour, so let's give them some stuff.
EW (01:09:27):
Good content. Finally.
CW (01:09:28):
Some good content. As content creators, we need to create some more content.
EW (01:09:35):
Sila asked why when we were listing our hobbies in a recent show with just us, she asked why we didn't mention the podcast as a hobby. Because I don't think of it that way.
CW (01:09:51):
I don't think of it as a hobby.
EW (01:09:53):
I don't know why not. I mean, we get enough to pay the folks who do transcripts for us and a few other things, but it's not like it's a career.
CW (01:10:08):
It's not a hobby, but it is part of our career,
EW (01:10:11):
But it's not advertising for our [business].
CW (01:10:14):
No, but it's exposing us to new people in the field.
EW (01:10:19):
That's true. I forget that benefit.
CW (01:10:20):
There's tons of connections we've made. I mean, it's not all just going out and talking movies that you have to pay for on Patreon, patreon.com/embedded. Yeah.
EW (01:10:34):
Chris Gaammell actually asked a question: when do you pull the trigger on recommending a different vendor's chip set and take the hit on porting code slash dealing with all the differences in capabilities
CW (01:10:46):
End of life, easy answer.
EW (01:10:51):
Are there forcing functions from a firmware perspective? My only experience is sourcing issues on hardware perspective or capabilities. If they are really needed,
CW (01:11:00):
That's becoming a little bit less on a firmware perspective. If you've architected things right and you're using an R toss, the hit is, oh, I got to set up the hal, the hardware configuration, the spy bus, the I squared C, all that stuff. But if you've architected it correctly or you're using Zephyr, which kind of forces the issue, then your drivers are layers away from your business logic and you can swap that stuff out as long as you've got enough flash, CPU and all that stuff. Microcontrollers are microcontroller as far as I'm concerned at this point. The forcing functions would be crap, I'm out of flash or out of ram. Those are times where you need to move to something else, but usually move within the line. So if you're moving to a different manufacturer, then there's a fixed cost of tooling shift, but there shouldn't be a big impact on your firmware unless you've architected it. So bare metal that you're rewriting base level drivers and things. There's a lot of shoulds in there.
EW (01:12:09):
There's a lot of shoulds, but
CW (01:12:10):
Yeah.
EW (01:12:14):
Okay, so we have microcontrollers that are general purpose and they're essentially little computers. Everybody has some mus, everybody has some spy. This family has BLE, that family has wifi.
CW (01:12:31):
They got RAM, they got flash, they got CPU,
EW (01:12:33):
Right?
CW (01:12:34):
Maybe one or two CPUs, maybe four CPUs,
EW (01:12:37):
And sometimes there are differences. I found that Microchips configuration configurator, I don't really know what MCC stands for.
CW (01:12:48):
Configuration configurator is probably not what it stands for
EW (01:12:52):
Was actually better than STs Cube
CW (01:12:57):
Oh, yeah, Cube is, yeah.
EW (01:12:59):
And I was really surprised because I am used to Microchip's tools being not as good, but I wouldn't change for that. Some things I would change for...
CW (01:13:12):
Because that's something you don't touch that much, right? On a product, on a project, you do that initially. You maybe come in from some tweaks. When boards come in, you do a few things, but you shouldn't be in there reconfiguring your chip set up more than a few times, and then most of the time it's code.
EW (01:13:29):
Usually the peripherals that cause the change. Sometimes price, sometimes availability. Of course, in the last few years has been a big driver to change your firmware to a new processor, and so Chris was saying, well, if you do it right, it shouldn't be that big of a deal. And that's true, but we don't always do it right.
CW (01:13:57):
Well, you should,
EW (01:13:58):
And there are optimizations and reasons why it doesn't happen. I am actively, I mentioned reading the SPI registers, we are actively breaking modularity and dealing with things at a very low level because we need some speed improvements on one particular thing, not a big deal.
CW (01:14:20):
But if you switch processors, that may not, but if you switch, processors may not be available or you may not even need to do that work. Great.
EW (01:14:27):
Exactly. Yeah. One of my solutions to this problem is maybe we should get another processor. Just stick it over there. So it's I think more about your peripherals while needing more flash or more ram or even a few more processor cycles. Those are all things that you should be able to get out of a line or out of a vendor. But when you need to shift from wifi to BLE, then you're looking at a different processor.
CW (01:14:58):
Well, you're looking a different architecture,
EW (01:15:01):
And actually there are now chips that do both, so maybe you aren't looking at it, but as you're looking it at a wildly different communication method: optimized for USB versus optimized for CAN.
CW (01:15:15):
But that feels like a design change to me. Something has changed in the design.
EW (01:15:17):
There's a big design change.
CW (01:15:18):
And therefore that's forcing us to change.
EW (01:15:21):
And again, there are processors that do USB and CAN, but if you're looking for something cheap and not that general purpose, that's one of those forcing functions. The other big forcing function that I have seen in the past and I think is still relevant is if you are doing motor control at a motors level, at a commutation level, not at a robotics inverse kinematic level, but at a lower level, the type of motor you have and the type of processor you have usually are linked. TI has a whole bunch of different ways of controlling motors. Microchip has a whole bunch of different ways of controlling motors, and as far as I can tell, they have nothing to do with the same motors. It's like they're totally different motors, like you say, commutation. Everybody's like, oh yeah, we're doing commutation and no, these use this and that, and these are kept and those are, yeah, so I would say low level motor drivers may still be an area of
CW (01:16:26):
Anything where, like you said, with the spy, anything where you're reaching in and there's a particular hard tie between the chip and something external, some feature using on the chip,
EW (01:16:38):
You have more than three peripherals you're playing with at the same time, then you're probably not in an operating system or you're below an operating system.
CW (01:16:47):
I mean, if it has a neural thing and you're tied to a special feature of the chip,
EW (01:16:54):
An OLED display versus a large pixel display, the display properties may force you to change chips. Although then maybe instead of changing chips, you should just put a graphics driver out on us by a port. There is no single forcing function except maybe availability or end of life.
CW (01:17:18):
It also doesn't happen that much. I mean, when I say you should plan for it, you shouldn't plan for it so much that you're spending a lot of time on it because if you're writing software that you wouldn't write because you're afraid that in five years you're going to have to switch chips,
EW (01:17:34):
You aren't going to use it.
CW (01:17:35):
You're not going to, yeah. I mean there's been times we've done that and it's like, well, yeah, we're changing chips, but it's the second product. We're changing everything, so everybody's going to be in the weeds of firmware anyway. It doesn't come up that often. It probably comes up more lately because who knows what your chip you can get from, it's better, but there's still supply chain disruptions occasionally and things like that where it's like, oh, nope, we don't have that.
EW (01:18:02):
But the firmware engineers should be using the available hardware abstraction layers unless you have a good reason to dig in there and reach in and play with the registers yourself, go ahead and use those hardware abstraction layers. They're not hurting you and they may help you
CW (01:18:15):
Or just use Zephyr and solve this problem for yourself.
EW (01:18:18):
You say that as someone who has not.
CW (01:18:22):
But you amortize the pain, you amortize the pain into a completely different area where you don't notice what's happening.
EW (01:18:28):
No. You amortize the pain onto a different person so that you never have to learn it yourself. What? Yeah. I think that's the best way to do it.
CW (01:18:37):
Who's the person?
EW (01:18:38):
I don't care, as long as it's not me.
CW (01:18:40):
Oh, I see.
EW (01:18:42):
Okay. That's not true. I actually think Zephyr is pretty cool, although it was not easy, but it was pretty cool.
CW (01:18:48):
I think it's getting easier, but it's still difficult. That's why I'm saying there's some difficulty upfront that you general things are more difficult.
EW (01:18:57):
General things? Oh, oh, yes,
CW (01:18:59):
It's generalizable. It's easier to take a Zephyr application and move it to a completely different chip than it is to take a bare metal STM32 Hal and move it to a different chip from a different vendor. That's all. Yes. Okay. Is that enough stuff?
EW (01:19:21):
I think it is. Enough stuffs.
CW (01:19:23):
All right. Well, thank you for listening, everyone.
EW (01:19:28):
Yes. Thank you for listening. For those of you who have heard 511 different episodes,
CW (01:19:37):
What is wrong with you?
EW (01:19:38):
I can't even tell you how much. We really do appreciate that you listened.
CW (01:19:42):
That's what I meant to say.
EW (01:19:43):
And those of you for whom this is the first show, you've missed a few of the in jokes, but we welcome you nonetheless. And for all of the guests. We've had hundreds of guests. Thank you. You make the show more than we do, and I am always pleased to have the guests come back because people's careers changed. Ours has. And thank you for Mouser for sponsoring the show. Thank you for listening and hit the contact button on embedded fm. If you would like to send us an email or email us directly at show at embedded fm,
CW (01:20:23):
And we do hearing from you. So if you're hesitating and you think you're going to bother us, don't.
EW (01:20:28):
That is true. We both do like hearing from you, it makes Christopher blush sometimes, so I'm all for it.
CW (01:20:38):
What?! I don't think so cute. I don't think that's a thing.
EW (01:20:41):
And now some Winnie the poo. Ooh, he went into chapter eight, so he flipped a bit too!