Embedded - 430: Broken Toys All Around Me
Episode Date: October 13, 2022Chris and Elecia bounce from topic to topic, discussing life and work and occasionally answering listener emails. Python can format code into equations in Latex with Latexify (as noted in this tweet)�...� Interesting sensor: Sensing deep-tissue physiology via wearable ultrasonic phased arrays Turing Complete - a listener-recommended logic gate puzzle game for Steam. In the past, we’ve also talked about Zachtronics’ TIS-100 which is similar and Shenzhen IO which is at the circuit level. Oh, and there is The Human Resource Machine by Tomorrow Corporation. A listener recommended the Agile Embedded Podcast, particularly the episode on technical debt. News that Rollercoasters are triggering iPhone 14 and Apple Watch Crash Detection led to a mentions of a blog post about debugging Fitbit’s issues with rollercoasters and accelerometers. Visual Studio Code for embedded systems development: You can use CubeMX and Platform.io (here is a how-to) Try out this stm32-for-vscode extension that claims to do what you want (we haven’t tried it, tell us if it works) Or you can go more directly with the cortex-debug extension and locally installed ARM GCC package. Don’t forget the VSCode Code Spell Checker extension. From the notes for Elecia’s class: Where to buy small quantity prototyping components Having looked for an OLED display part in Live Class, I wanted to put together a list of where you might want to look for components, especially for the prototype stage. Adafruit and Sparkfun (and EMSL and a lot of other maker stores). If you are using their code as template or test code, look for their boards to see if you can use them. Worldwide and large components distributors with local distribution: Digikey is worldwide and they resell Adafruit and Sparkfun so if you don’t want to start with an “OLED” search on Digikey and sort through the results, well, you can start with easier prototype parts. Farnell is a UK company though they have other names in other locations (Newark in the US and Element14 in Asia and Oceania). If they have your flag, you can probably get cheap shipping. Farnell is usually good for all of Europe. RS Components is also new to me though they seem to stock Adafruit parts as well as general electronics. They have lots of distributors all over the world (including more in Africa than I usually see). AliExpress is huge and worldwide, shipping from Asia. It is hard to find things but searching “Adafruit [part]” or “Sparkfun [part]” and you might find what you want… or a cheaper knockoff. Usually you want results in the Electronic Components and Supplies. Note: if it seems too good to be true it probably is. UK has Pimoroni and Cool Components and OkDo resell Adafruit and Sparkfun as well as other pieces like BBC micro:bit and Raspberry Pi. These may work for European countries. Seeed Studio has a wide variety of parts, the Grove and Components categories have parts that might be interesting. They deliver quickly and cheaply to Oceania and Asia. DFRobot is new to me but looks great. It was recommended for folks in Asia and Oceania. Their parts are resold through Digikey, Arrow, Farnell (Newark). Australia: Little Bird Electronics, Core Electronics, and Altronics Transcript Thank you to our sponsor this week!
Transcript
Discussion (0)
Hello, and welcome to Embedded.
This week, it is just Christopher and myself.
And a long list of random things.
Oh, let's start with the part that I already have forgotten with the show.
I am Elysia White.
Oh, yeah.
And he is Christopher White.
Sometimes. Almost always. forgotten with the show i am elicia white oh yeah and he is christopher white sometimes uh almost
always and my name is spelled e-l-e-c-i-a like electricity there are two e's at the beginning
well not not right at the beginning that's true e-l-eC-I-A. But you can say it like that. It's true. You can imagine too.
And it's Elysia. There's no S-H. And if you call me L, I will totally answer to that. I'm
fine with it. Okay. Let's see. What are we going to talk about first?
Let's just go in order. Let's just knock these out. Get out of here in 15. Okay. I was thinking about the show, and when we started, I actually didn't know many other podcasts, let alone electronics podcasts.
There was the Amp Hour, and to have women talk about technology.
And now, you know, Helen Leigh, Alex Glowaski, Carrie Sundra, Jen with the unnamed reverse engineering show.
There are all of these other shows.
Uh-huh, uh-huh uh-huh uh i mean lemore with adafruit of course has always been in the public eye but i'm just so happy that there
are other shows oh okay i thought you were gonna say your work here is done well yeah
i'm not quite there yet but it doesn't feel as critical as it used to.
I mean, what do we've got?
Is this like episode 789 or something?
I think it's 430, 431.
All right, I'm a little bit off.
That's still a lot.
It's a lot.
Think of how much money I'd save on microphones.
It's true.
Do I sound any different to you?
Christopher got me a new microphone. We'll have to see.
Yes, we have thrown your Microsoft.
Your Microsoft?
I don't think it was Microsoft.
We have thrown your microphone into my storage drawer and gotten you a new one.
What did I have before?
You and I both had Shure SM7Ps.
And they're kind of the, if you see a lot of podcasts on video, high-end stuff, NPR, a lot of people have Shure SM7Bs. And they're kind of the, if you see a lot of podcasts on video, high-end stuff, NPR,
a lot of people have Shure SM7Bs. They're very nice mics, but they require a tremendous amount
of gain, which means you have to have a preamp that can be turned up a lot. And when you turn up
gain on preamps a lot, all kinds of noise comes with it. So I've been
noticing recently that there's been a lot more noise on your channel, and that's because your
voice is a little quieter than mine, so you require more gain anyway. So you were turned up pretty loud.
And I was trying to find the source of the noise, and I finally realized it was just following,
it was just whatever was turned up with most gain on the preamp.
So it was just your mic was turned up too loud
because it needed to be.
So I looked around for other mics
and this is the one you're using now.
It's an Earthworks Ethos.
It comes highly recommended,
requires much less gain,
which means I have to turn you up less
and it's quieter.
And I can talk really quietly now.
It's quiet.
The noise is quieter. and it's quieter. And I can talk really quietly now. It's quiet. The noise is quieter.
You're not quieter.
And it has better, allegedly,
and I'm going to find out when I edit this podcast,
allegedly it has a tighter supercardioid pattern,
which the way you've got it aimed now isn't really helping anything.
You kind of need to aim the back right.
Well, I don't know because there's reflections.
That's probably fine.
Just leave it.
It has a tighter pattern, so it should get less stuff from behind, which means it should get less of my
voice on your mic. So we'll see how it goes. But if it sounds terrible and everybody hates it,
then I will adjust the equalization. All right. Do you want to talk about
my class or about asset download methods?
Ooh.
We talk about your class a lot.
What did you want to talk about?
There were a couple of things that I did for the class that I probably should share with more people.
One of them was to try to get a list of international parts providers.
Wow. to try to get a list of international parts providers. Not necessarily all of the Digi-Key and Farnell and Element 14 and Newark.
Yes, I know those three are all the same.
But the littler ones, Pimerone in the UK.
And to get a list of those put together, small parts, small quantity,
small parts, and have that for my students who are all over the world.
And that went pretty well.
I'll put the results into the show notes.
And if you're looking for Adafruit parts or Sparkphone parts, a lot of the big names like
DigiKey and Farnell resell those,
so you can get them there.
But things like where to go in Australia was really new to me,
and the idea that Seed Studios was really good for the whole Asia,
Oceania area.
So, yeah, I did that.
And then I started one about embedded communities.
That one has been a bit harder because what embedded communities you join
really depends on what your other interests are.
And what's an embedded community?
Like our embedded Slack.
Sure.
Or like Memfault's Interrupt has a Slack.
Adafruit has a Discord. Adafruit has a Discord.
Artemps has a Discord.
Zephyr has a Discord.
Goliath has a Discord.
And I mean, even if you aren't using those products, it's an interesting place to hang out and meet people.
Yeah.
Are any of those large?
Like, do they...
Sometimes larger communities have different dynamics.
Very.
But they have more engagement.
People are talking more, there's more stuff happening.
I kind of worry if like there's a lot of tiny discords, like there's effort discord and there are attempts discord.
They may not have a whole, maybe they have a lot of whole people.
I haven't looked at how many people have, but are they, do they tend to be tiny or um or or is there kind of overlap like if you're
in one there's a lot of people and you're in the other there's a lot of people and they all kind
of talk about the same stuff i definitely have had some that have talked about the same stuff
uh but the littler ones usually are more focused and so sometimes the people who are more in charge of those projects listen
there.
But the general ones like contextual electronics or ours,
I don't know.
Sometimes it's,
sometimes you see the same people on all of them.
Yeah.
And sometimes some are more interesting than others.
I'm just idly wondering if it's better to have one big community or lots of smaller communities.
I can see the advantages of both, but I get tired of being in eight slacks or 20 discords and trying to find, you know, if I have something I want to ask, okay, which of these 20 do I go to?
Do I go to 20 and ask the same question of a bunch of people or do I find one that I is the best one, or do I go to the one where people have the best jokes?
I don't usually talk on the ones that are big.
Yeah, neither do I.
Neither do I.
So I need the little ones where I wouldn't say anything at all.
I know people talk about Discord
and those kinds of communities being replacements or adjuncts for Twitter,
but I feel like Twitter is like this big soup where a lot of people are.
I don't know.
It's weird.
I don't know how the social media stuff is going to shake down.
People use Twitter in so many different ways.
I mean, for me, it's been mostly an output.
Yeah.
With an occasional, I'll go through and look at people's interesting projects.
Or if I'm getting information about guests, it's a good way to find information if they've got a Twitter account.
But I don't read it much.
You read it more than I do.
I read it more than is healthy for any human being.
But you read it because it's a good place to get up-to-the-date information. Mostly, yeah.
So I only follow 100 people on Twitter,
which is actually not that many.
And those are mostly people I find interesting
and I want to see their little jokes.
I have a list of stuff for keeping up with events.
So I have a list I call BLEH
that is all about news and stuff
and it's got tons of journalists and news organizations and things. So that updates really frequently and it's more addictive to me than the other side, my normal feed, because there's always something, people commentary on stuff and what's happening and who's doing this and it's terrible for my mental health. And I have several lists like that tailored to different stuff. But yeah, so I use Twitter a little differently than probably most people do.
So I'm not like actually following any news organizations, but I've got them in a list.
Yeah.
And I've heard people say you should follow, you know, like a thousand people and it's
like a cocktail party and you're just wandering around getting whatever information.
I'd lose my mind.
I would lose my mind.
And I'm constantly, you know, I'm a weird person.
I get annoyed when people say things that annoy me in my main feed.
And so I'll mute them or unfollow them for a while.
And because that's the feed I go to and I'm like,
I want to see something amusing or something that's aligned with my
interests or I'm not interested in really having an argument there or being outraged
by anything.
That's what my other lists are for.
And Embedded FM follows all of our past guests.
That's where I go if I want the cocktail party experience.
Yeah.
I don't experience. Yeah. I don't know.
Yeah, Discord and Slack,
Slack especially tends to be more personal to me.
It's like I'm having a conversation with somebody I know.
Or Twitter can be like that, but oftentimes it's just...
Yeah, but sometimes those conversations are just performance art.
Twitter or Slack?
Twitter.
Because I do a lot of performance art on Slack too.
Yes, yes, no, that's true.
I don't know why we're talking about Twitter.
Let's see, more class stuff.
I did a talk this weekend about stacks and heaps,
which I've done part of that for Supercon, but every time I give it,
that little mini lecture gets longer and longer. And it goes through and it talks about how
the stacks grow up with functions and then there's the heap and things get malact and how that goes
on the heap and how if you go, if they meet in the middle, it can be disastrous and what's
in the stack frame so that if you overwrite them, why is that bad?
And then memory fragmentation.
And then I added a new section this time about memory leaks because somebody asked me about
memory leaks last time.
And I put together a little function that allocated uh two chunks of memory
one called good and one called bad and then it would free them at the end of the function but
then i added the constraint that if there's an error then we had a coding bug where we forgot
to free bad but only when there's an error And so I went through the whole presentation of how that leads to you having no memory.
Right.
And I even said, you know, this error doesn't happen very often.
It only happens at midnight every day.
And then I went through and there was this whole dead area of memory because, you know,
after a few days, it does start to add up,
especially with embedded devices. And afterwards, you know, this is kind of a fun presentation
because there's seashells and there's coral. What? I know it's very silly, but, you know,
I like that to be. If the material is going to be dry, I want it to be amusing. And afterwards, they all seemed really, really
depressed. Like, we should never use C again. I got the idea that they were just going to
like, they were done with computers.
I guess the wrong lesson. No, I mean, I think not using C is the wrong lesson. I think the
lesson you're saying, don't use computers, is the right lesson.
I see.
Yeah.
Did you give them options to replace C?
Well, they actually started talking about static analyzers.
Yeah.
And Rust, of course.
And I talked a little bit about garbage collection.
Yeah.
Which aren't present in any embedded language.
No.
That's not something you want.
Talk about making it non-deterministic.
Yeah.
But it was still very hard.
Oh, I did find out that CPPU test does check to see if
you do that. It looks at the
heap before and
after your test.
That was kind of interesting. I did not realize
it did that.
That was another reason to use
unit tests. Because it's
really hard to tell when you're on the system.
Don't use heaps.
Can I just say that stacks and heaps, in terms of art, are terrible?
I mean, the difference between a stack and a heap is a stack is an organized pile of things,
and a heap is a disorganized pile of things.
Neither of which are really, I mean, I guess that's kind of true.
If you have a stack of cards, it's organized-ish.
And if you have a heap of cards, that's what happens when you give a five-year-old
the cards to shuffle. But heaps can be quite organized.
They can be organized in different
you know, there's a structure.
A heap of dirty laundry and a heap of
clean laundry. Yeah.
Right before the show started today,
we got a proposal for
a new way to listen to the show.
Oh.
Uh-huh.
And you put this in our list of things to talk
about, the drinking game to go along with
the podcast. Yeah, so some people
on our Slack are coming
up with the official drinking game, and as punishment
of doing this to us, I'm going
to read their ideas aloud on the
show, minutes after they wrote them.
They're going to just be so sloshed.
So you're supposed to take a drink.
And if you are not somebody who enjoys alcohol,
you can do Dr. Pepper.
Boy, will you get sick off of Dr. Pepper.
If you drink enough Dr. Pepper,
it will not be good for you either.
Okay, here we go.
You take a drink whenever the guest pronounces elise
you're wrong which depending on the guest could be quite dangerous when chris hates iar which
honestly has been happening less because i don't use it anymore i mean if we change it to chris
hates anything then every show is just a buck and all. I don't hate everything.
I mean, I hate everything, but I don't hate everything.
It depends, as a phrase.
Yes, of course.
Which is usually a guest response.
Let's just be clear.
Well, I think it's a response to any question
that actually has a nuanced answer.
Marine animals or origami are mentioned.
Yes, and then you get a double shot
from marine animals and origami.
So like an origami manta ray is definitely a double shot.
And finally, the one that will get you in the most trouble
is hates on microchip tools,
PSoC tools, or any tool whatsoever.
I think that should go along with the IAR
because that's
just hates on tools is
probably a nice thing. I think one show
we should play this game while recording.
I don't think that would be
with a guest, right? Because we
can't just... Sure, why not?
Speaking
of how to spell my name, you got a spell checker for VS Code.
I didn't realize you didn't have one because I've had one for a while.
Yeah, well, I mean, I didn't really consider it until somebody pointed out a typo in one of my comments in a PR.
And I realized, there's just no way this is the only typo in the comment in this file.
There's just, it's not possible. So I was like, I'm done with this. I'm tired of typing. For some reason,
my typing has gotten much worse in recent years. Maybe I'm just lazier. Maybe it's these weird
flat Apple keyboards. I don't know. But yeah, I just make lots of typos. So veering off for a
second. Modern IDEs are really great.
I love auto-completion.
It makes things faster.
But I think it's made by typing really, really bad.
Okay.
Because I don't have to type whole words anymore.
So I'm getting actually less practice, right?
I mean, you just type blah, blah, blah, and there's a list of things, and you hit it and go.
And the problem with that is if you actually misspell something...
It's everywhere.
It just auto-completes it.
So I've found multiple places in the code base we work on
where somebody misspelled a variable name in a pretty bad way,
and it's just, it's misspelled everywhere
because they typed it once, and then they auto-completed,
and it's like, oh, you want idnex?
Idnex it is.
Anyway, so I went looking for a spell checker and I picked the first one in the list on VS Code. It's called Code Spell Checker and it works pretty well. Puts
little blue underlines under things when they're misspelled. Not just in comments though, it also
does it for, I think, pound defines in comments. It doesn't do it for variables and stuff.
So it's kind of annoying because it might underline a bunch of stuff that you have in macros that are abbreviations and stuff. But I think after installing that, I found
six other misspellings in just the file that I had been told to fix the one misspelling in. So
worth it. Code spell checker.
That's the one I have, too.
Yeah.
I think there was a way you can change some things.
Like, it will actually do variables, names with camel case.
Yeah, I'm sure there's a ton of configuration options.
Oh, and it comes with a bunch of different languages.
That's nice.
It's not just a mess.
Yeah, because in my other jobs, I tend to write code in French.
That's not true, but I
suspect people who write code
in Portuguese
would really prefer not to have
all the words underlined.
All the words underlined.
And now, a word
from our sponsor.
Why choose Newark for electronic components?
From humble beginnings as a small electronics shop in 1934,
Newark has grown into a leading international distributor of electronics and industrial components.
They offer products, services, and solutions that support customers in a wide variety of applications. Industrial manufacturing and maintenance, medical product design, automotive, avionics,
telecommunications, security, and more.
From design and testing to production and maintenance, discover why so many choose to
partner with Newark.
Newark has operations in the U.S., Canada, and Mexico.
They are serviced from a regional distribution hub in South Carolina.
Newark is committed to supporting local language, currency, product, and shipping needs across North America and around the world.
As part of a global business, Newark has access to stock and strong relationships with electronic manufacturers.
They can easily serve all of your industrial electronic needs.
Learn more at Newark.com.
That's N-E-W-A-R-K dot com.
Okay, let's see.
Oh, burnout update.
Are you all healed? You ready to go?
After talking to Keith, I actually did decide it was time to talk to maybe a professional and found myself a psychologist who is nice.
And she has asked me a bunch of questions,
some of which have actually been helpful.
One of them was,
if you're avoiding things by reading,
what are you avoiding?
Like just notice,
am I avoiding things or am I enjoying what I'm doing?
And that has been very helpful.
Of course, she also asked me to notice when I had physical,
emotional, or mental discomfort. And it's nothing like
looking around to see if you're annoyed to find out, wow, you're annoyed all the time.
So, you know, that's been fun. And then
last time we talked about values which I know is like one
of those things we talked we talked to Keith about that too um and so we were talking about it we're
talking about I'm like this all sounds really familiar to me and I ended up going back to my
resume where it talks about my objective and what I want in a job.
And it pretty much laid out everything that I had been talking to her about.
And so I was like, okay, so I've actually done this exercise.
I just didn't know I was doing it.
But it was kind of weird to open my resume for my psychologist. So yeah, she pointed out that given talking to me,
one of the things that I clearly want in my life is fun, amusement, play. And I want that
in my professional job as well. Maybe not the same level of silliness, but some level.
And that was okay to have as a value, as something that would drive my search for goals.
Maybe you should go back to a toy company.
You know, it was really fun. And when the battery folks came in and my business card said Santa's elf and they didn't understand, it was so funny.
And the silliness, you know, I don't usually like what you do with your coworkers when you're not actually working, the socialization part.
Team building.
Team building. networking socialization part team building team building but getting to to make a pumpkin but i had a bunch of pumpkins and we were doing a pumpkin carving contest at work
and i combined a bunch of toys parts into a bunch of small pumpkins and made like a little
caterpillar of pumpkins and it was so cute um i guess i just really miss having broken toys all around me.
That seems wrong.
I mean, that could be arranged.
I mean, I do have a lot in my office, but still.
I mean, do you feel like that's been valuable,
that you've got some insight into your burnout?
Do you have an action plan?
It's still early days yet.
Yeah.
But noticing when I'm actively trying not to do something versus when I am enjoying leisure time is very helpful.
That's my big problem, is I get into the state of, I'm doing nothing.
Because if I were to do something, that would mean I'm not doing something else. And to choose between
these two things is a bad choice, because I should be doing the other thing. So I therefore do
nothing. I'm aggressively doing nothing because I don't want to exercise right now. Well, it's fine.
Or I'm aggressively doing nothing because what I should be doing is exercising
and what I want to be doing is origami.
And so I'm going to do neither one
except substitute two different work part things in there.
Yeah, I mean, usually for me, it's like,
I should be working, but I don't want to work.
But I shouldn't be doing anything fun
because that's even worse not working.
That's playing hooky.
She had me slice up my day
so that I was more focused on work at some times
and accepting of playing hooky at other times.
Yeah.
It wasn't great for my billable hours,
but it was a little nice.
I mean, if I take the idea that in order to get over burnout, I'm going to have to work
less.
That's true.
Then giving myself permission to play hooky was okay.
And then I really had to sit down and say, well, am I avoiding work or am I avoiding everything or am I avoiding nothing and I'm just enjoying this book?
I mean, yes.
If you actively want to just be idle and do nothing and watch TV.
That's valid.
We do that.
At least do it with intention.
Right?
It's like, okay, you know what?
I'm totally burnt out
and I need to turn my brain off.
Today I'm watching eight episodes
of whatever. Please
spoon feed me amusement.
I think that's
okay as long as you're doing it on purpose.
And not doing it
out of
a desire not to do something else.
And maybe not for a week straight.
That too.
Okay, now we have a long list of listener questions and comments.
Okay, I prepared my brain to answer these questions by, I don't know.
You're just going to stop there, huh?
Yeah.
That's an indication of how prepared I am.
Let's just trail off.
Let's see.
Scott came across a lab doing flexible electronics work.
The prospect of continuous blood pressure monitoring using a flexible patch with transducers.
And that was pretty cool.
He mentioned that there might be some origami
adjacent ideas. And I haven't quite gotten there, but I haven't read the whole paper he sent. It
did sound like it would be a fun graduate student group. It's using an ultrasonic phased array.
So it's a patch with a bunch of transducers on it. And doing complicated Doppler stuff, they can look at blood flow and things.
Interesting.
Yeah, a lot of these things are kind of the holy grail of medical instrumentation.
I remember when I was at, let's see, I'm trying to remember.
It was a long time ago, but people I was adjacent to were talking about things like various ways of doing continuous blood glucose monitoring, which is a big deal because it's a pain in the neck to...
Pain in the finger.
Pain in the finger, to take that a lot. Now there are continuous patches you can wear, but even those require a needle that's permanently poked into your, not permanently, but it's part of the patch and it's poked into your arm.
So they were looking at things like, you know, the obvious attempts like just shining light through your skin and doing magic to figure out, you know, what the glucose level is.
I think Google was doing something with your eye like a contact lens yeah yeah i don't
think that went anywhere i think it's just the signal is so bad for that kind of thing that
that glucose was really hard to extract in any meaningful way but the blood flow stuff i mean
they do that with ultrasound already so if they can miniaturize that and make it super non-invasive
that'd be pretty interesting.
Because blood pressure is another one of those things.
It's not like blood glucose, but you've got to put a cuff on your arm.
It's got to squeeze.
There's a lot of... It's not something you can just silently take.
I've always wondered about blood pressure.
Like, we take it on the arm with the cuff.
Yeah.
And if we took it somewhere else, it would be different, but it would be more consistent or less consistent.
I'm not sure it matters.
I think it's mostly a big artery it needs.
So I think you can take it.
I may be talking out of my depth here, but I think there have been ways to take it, like on the leg or something.
But I mean, the basic way is it...
But it'd have to be on your quad, not your ankle.
Somewhere where there's a big artery.
Or knee, maybe.
Yeah.
And yeah, they might have a correction or something, but...
Yeah, the glucose sensing contact lens has come and gone a few times.
I think 2005 was when I first heard about it.
And I'm seeing articles that are like 2018, 2020.
There's one from 2022, but there's no,
here we're going into production.
Oh, actually there's from 2018, they stopped the project.
Alphabet stops the project.
I think there were major problems.
It just was not...
Either it wasn't a good place to get a consistent read on it,
or the miniaturization and stuff was too hard or something.
Okay.
What do you use to make shareable flow diagrams
for a non-technical audience?
Flow diagrams? Oh. diagrams for a non-technical diet for a non-technical audience flow diagrams oh um
plant uml
for flow diagrams plant uml is pretty much at the tippy oops pretty much at the tippity top for me
um because you don't have to draw things with plant.uml.
Most of the ones I was going to suggest, you don't have to draw things.
I really like Mermaid.
Oh, yeah, that's a newish one, right?
Mermaid is very similar to plant.uml,
but Mermaid integrates with.md files, the Markdown files,
so that Markdown displays the image even though you've written
down the typey typey part.
Oh, wow.
And it has a CLI.
So did they decide to improve on Plant UML?
Clearly they...
You're inspired by it, right?
Because...
Yes, it's really similar.
Because they both have like a CLI thing where you can put in your thing and out comes a
png file or whatever and they both have different uh goal views like whether you want a swim lane
diagram or whether you want a flow chart they have different all right uh i agree i am wrong
this is better uh but there were other ones i don't see the need. I'm kidding. You pointed out there was an ASCII one.
Well, that's for just drawing.
It's called ASCII flow.
And I like to use that if you've got to put a diagram in code in a comment.
Because you can draw boxes.
It's like a drawing program, but with ASCII.
So you're sitting there drawing stuff with arrows and boxes and shapes and stuff and text labels, but it's all in ASCII.
And so you can just copy and paste once you're done.
And that can go into code.
Those I have found super useful for when you're doing complex buffer stuff and you need to explain what's happening.
Yeah.
I also do that as a troll sometimes when I'm doing a white paper or something,
just because I want to annoy everybody and have ASCII talk.
Because that's the way most of the technical things I wrote when I started my career
were like internet RFCs and internet drafts.
And by convention, since whatever, 1965 or 9 or 72,
or whenever they started doing internet drafts.
And RFCs, those are all just text.
No markup whatsoever.
So if you want a diagram,
you have to draw ASCII with dashes and pipes and things.
So I kind of have a nostalgia for that.
Let's see.
Let me look and see what else other people suggested.
There was Lucidchart,
which you have to sign up for,
but it's free.
And it, like Draw.io,
is more Visio-like,
where you drag boxes.
Or if you have Yed,
Y-E-D,
that's a local one.
Those are Draw.io
and Lucidchart are both online.
Yes.
I recently used one for something.
I don't remember which one I chose.
There are a lot.
It was for, I needed icons because I was making kind of a cartoon diagram.
So I think I might have used it yet, but I'd have to go look.
Yeah, it depends on your goal, right?
Because if you want to make something
for a non-technical audience
with pictograms and things,
then some of these are not the right thing to use.
Yeah.
You mentioned writing papers,
and you found a neat Python thing.
Oh, I didn't find it.
It found me through Twitter.
I think somebody, either EMSL, I think EMSL retweeted it.
It's, yeah, it's a Python module, and you can point it at your Python functions.
So if you've got a Python method, sorry.
You're using the right term. No'm gonna say function you've got a python function that does some mathematical operation it will take that turn it into la tech and then the la tech will produce
proper mathematical notation for your python function and then is that an image because i
know la tech can create the images.
Yeah, it'll create a PDF or an SVG
or whatever LaTeX creates.
You know, whatever your render
creates.
Do you have any recollection what that
was called? See,
this is what I was worried about. You were
going to ask me what it was called. That's like a quiz.
And I'm going to have to go
find it.
Stall them. That's like a quiz. And I'm going to have to go find it. Stall them.
Let's see.
Do I have any pirate jokes?
I don't think I have any new pirate jokes.
Okay, it's called
how do you do this? Because
LaTeX is called LaTeX, but
this is like LaTeXify.
Well, I mean, the X is
clearly intended there. All right. It's LaTeXify. I mean, the X is clearly intended there.
All right.
It's LaTeXify with LaTeX.
It's a Python module that I'm sure you can get from pip or something.
Actually, the way it's formatted here makes me think that maybe they're running it in
Colab or Jupyter. Anyway, I don't know. I didn't try it. This is cool.
Okay. Next from Rick. I've been starting to hear from more people who are getting into
embedded systems via MicroPython or Rust.
And the reason I've been hearing from them is because they reach a point where they wonder if they should learn C. It's not necessarily a new phenomenon, but it's somewhat surprising.
And then you had a flip question to that, which is, in what time frame do you think veteran embedded developers who know C or C++ will need to learn Rust or get frozen out of opportunities?
What?
Comment further?
Do you think people need to learn C?
This was a discussion on the Slack.
But yes, I think people probably should learn C unless they're fairly comfortable in the job they have.
If they'd like to expand opportunities in the future, they're going to probably come in contact with jobs that either are totally C or have a lot of C in the periphery.
Because kind of as we discussed, just C is what stuff is still built
out of for the most part. Middleware, you know, if you're getting stuff for your microcontroller
from the HAL or what have you, that's all in C. It's going to take a long time for that to be,
I don't want to say replaced, but also written in alternative languages. So if you think there's a chance that you're going to encounter that,
knowing C is extremely useful.
And I think most embedded projects that are using Rust,
there's a lot that are from scratch, which makes it a lot easier,
but then you've still got the middleware question,
which is missing in a lot of cases.
But there's a lot where people are taking existing systems
and saying, okay, let's write this part in Rust,
let's write this part in Rust,
which means you're interacting with a system
that's part Rust and part C.
And if you don't know C,
then you can't deal with that other set of code.
So it's not a value judgment on either C or Rust,
it's just the state of where we are right now, in my opinion.
And C makes you understand how the machine works a little better.
Even if it's unsafe and dangerous,
knowing how that stuff works is only helpful as far as I'm concerned.
What do you think? I know C and C++
and I know very little Rust.
I'm not going to claim
I know C++ anymore.
I know old C++.
I know the C++
that is part of C slash C++.
Yeah, exactly.
C++ has moved way beyond
where I last used it.
I mean, the last time I seriously used it was probably,
it's getting close to 10 years now, and it's got a lot more features.
Yes.
I don't think,
so there's the bug that happens when the Uint 32 number of seconds runs out from our current epoch that starts in 1970.
Yeah, it's 2036, I think.
We aren't going to be away from C until after that, for sure.
And let's face it, that's all I care about.
Oh, you're answering the second question now?
Do I need to learn Rust?
Yeah.
Yeah, no, no, no.
I plan to be retired before I need to learn Rust
to keep working.
I mean, there are certainly reasons I would learn Rust.
If a client said, we really need you,
and this is when we've got some Rust in here,
then sure, I'd learn it.
Or if I
wanted to learn it for fun. But I don't feel like my opportunities are going to be limited for quite
a while and probably not long enough that I'm going to care at all. I'll be whittling, you know,
stupid shapes out of wood on a bench on the wharf long before then. Well, it's better than fishing.
I don't want to deal with fish.
I'm telling you, we just get
fishing rods. We don't put hooks on them, and we
throw them over, and then we can just watch for dolphins.
You throw the whole rod over? That seems expensive.
And probably is considered littering.
Yeah. I mean...
I just meant you throw the...
the...
the sinker. Oh, just that you tie a sinker on it.
You're just putting lead into the ocean.
I mean, we can have the sinker out of whatever you want.
If we make it out of iron, doesn't that enrich the local...
Never mind.
Yeah, so if you were starting right now,
what languages would you suggest people would you suggest
people learn?
I would suggest people learn C and Python.
I don't want to suggest people learn C,
but the truth of the matter is
that's just where we are still.
If you want to work in embedded systems.
If you want to work in front-end development,
don't ask us. We have no idea.
I mean, you should learn JavaScript and whatever that whole universe is.
And if you want to work on apps, you should learn Kotlin or Swift.
But for embedded, C is still king.
Most of our clients are still asking for C.
Have you had a single inquiry that said, We would like you to do Rust development?
No, but I don't know whether that's self-filtering.
Self-filtering, because we do get some clients from the show and I think most of our listeners are like, yeah, we're not going to ask them to do Rust. They'll make fun of us.
I just think it's a different era and there's so much inertia behind C that it's just going to take a long, long time.
And, you know, it's like I was thinking the other day
when I reached for TickleTK to do a Python UI.
I mean, that was something I used in 1994.
And it's still around and people are still using it.
It's just a lot of inertia with stuff that works well and that people know.
And once you've got code bases, I mean, year 2000, they had to dig up a whole bunch of COBOL people because half the banking industry or whatever was still running COBOL.
And that's probably gone by the wayside now.
But COBOL was already, I don't know, 50 years.
I don't know how old.
It was pretty damn old by 2000. There would expect there's still COBOL out there.
And FORTRAN. Plenty of FORTRAN. FORTRAN
may be finally getting replaced by NumPy. With Python.
So yeah, I think I would suggest. Python is
super useful to have in your back pocket.
It's such a nice scripting language.
And C is just, that's what everything runs on right now.
And I know there's initiatives to get some rust
into the Linux kernel, and that's great.
But yeah, it's going to be a long time.
And things are going to, it's going to get murky
because things are going to coexist for a while.
And it's more likely there's going to be more projects where you have to learn both.
Both, yes.
Than where you can just say, well, I just know Rust.
I don't need to learn C.
Yeah, if you know Rust and you want to be really useful, figure out how Rust and C go together.
I will say.
That edge is going to be important.
Yeah, to that end, if you want to be more attractive, definitely learn both.
If I wanted more contracts, I would learn Rust.
And if I wanted more contracts with some reasonable guarantee of future contracts,
it would be not just learn Rust, but learn how Rust and C work together.
And how you can call one from the other, and what the downsides are, it would be not just learn Rust, but learn how Rust and C work together.
And how you can call one from the other, and what the downsides are, and where Malloc and the Barrow Checker over...
Oh, I don't even want to think about that.
I don't even know.
I don't think that has a name.
Anyway.
Yeah, so that's my thinking on that. Chris Gamble over at The Amp Hour and Goliath messaged us and asked if we had thought about using DALI for blog post pictures.
And it was pretty funny because he did it right after I had done that for the first time.
For Duncan's show, I chose a couple, I chose the thumbnail as a dolly
output. And it's funny, I hadn't really thought about that, but it is useful. There are lots of
times where we need just little pictures that don't really mean anything, but are related.
And it was pretty fun to generate a couple of pictures
and then choose one that was, I don't know,
like a robot looking at code.
I have mixed feelings about it.
I think there's a lot of problems with those things.
The copyright?
Even though I've been using them a lot.
Copyright, where they're sourcing their training images.
You know, displacement of, of other people. But I think for our use, we're not displacing anybody except maybe, uh, you know, stock images, which people make money from, but we wouldn't use stock images normally, but.
Yeah, it, it replaces me putting in random pictures of birds.
Yeah, exactly. So I don't feel like we're taking bread out of anybody's, anybody's mouth doing that. But, um, there are concerns of course, where people would be doing
that. And there's plenty of artists who have seen stuff and it was like, that looks just like my
stuff. And in fact, I can see parts of my work that have filtered through and uh and some of the sources for the training are
very strange places because it's a lot of them are just scraping what's publicly available on
the internet and that scraping goes in weird places and scraping isn't that's not copyright
free well yes they and they get around the copyright by doing weird things with research.
Right, they say, we're just doing this for research, so we don't have to pay attention to your copyright.
Oh, by the way, pay us for the output of our research.
It somehow gets laundered into a commercial product.
Anyway, I think it's very interesting.
I have been playing with it, but I haven't been, I would be hesitant to say, use it for something where I would normally pay someone for art. I wouldn't use it for a t-shirt design. I wouldn't use it for, you know, something I would normally contract, commission somebody to do. But yeah, it's going to be interesting to see what happens.
I think there's going to be some pushback and I think hopefully there's going to be some
resolution
on the copyright side where the
training data sets are better curated.
I would pay more
for a data set that I
felt more secure
using.
Speaking of t-shirts.
Yeah.
We did commission an artist.
Yeah.
And she did a good job.
And it is entirely my fault that I have neither paid her,
which I really should do,
and I have not set up t-shirts.
But at some point soon.
We can get them in for the holiday season.
Yes.
Yes.
For all those people who live in climates where you can wear T-shirts in January.
I'll put long-sleeve T-shirts on.
Okay, good.
Actually, you know the design would look really cute on a zippered hoodie.
Anyway, T-shirts coming soon.
Watch the newsletter.
Watch this space.
The newsletter, this space, other spaces.
Twitter, LinkedIn.
We'll get a satellite to fly over and cause a lot of light pollution.
And it'll drag a little streamer behind it like the planes do.
What else?
You posted a note about roller coasters are triggering crash detection.
What?
Oh, yeah, you saw that?
Yeah, yeah.
So the new iPhone 14 and Apple Watch have what they're calling crash detection for vehicle crashes, car crashes.
So the idea is you get in an accident and their accelerometer and a bunch of other sensors say,
hey, I think we've been in a violent sort of, you know, violent environment and this is probably a
car crash and then it calls the 911 for you or something.
Anyway.
Oh, oh, I see.
Yes.
Yes.
So it turns out this is triggering on roller coasters.
So you might be on a roller coaster and the alarm on your phone goes off saying are you okay do you
need me to call 9-1-1 and for me if i were on a roller coaster the answer would be yes please
please call 9-1-1 because i don't know how i got on this roller coaster uh but but yeah so that's
happening the reason i thought of that is because way back when i don't know if i talked about it on
this show uh fit fit bit we had an acceler of course, because it's for the step counter.
And with one
product, if you got on a roller coaster where for a moment you were in
zero G, it would crash.
There was a divide by zero somewhere.
And there's a whole blog post about this i think gosh i think
ty was it tyler who it was some i don't remember who was involved but i'll see if i can dig up the
blog post for the show notes because it was a neat debug um sleuthing but yeah yeah that just
made me think of that it's like roller coasters and accelerometers and software you gotta you
gotta if you got an accelerometer in your product and you rely on it for anything,
make sure you test your product on a roller coaster.
Oh, things you might not, you might not be thinking about.
At least throw it up in the air.
No, because a roller coaster is longer.
That's true.
And jerkier. Some of the big ones. So I hear. It's been a long time since I No, because a roller coaster is longer. That's true. And jerkier. Some of the
big ones. So I hear.
It's been a long time since I've been on a roller coaster.
1992 was the last
time I was on a real roller coaster.
No, no. And I'm still
nauseated from it.
When was I on a real roller coaster?
We went to Great America
when you left Cisco
for a pocket. Yeah, we didn't ride any roller coasters because I hate roller coasters.
I'm pretty sure.
We walked around and ate fair food.
I'm pretty sure I made you go on at least one.
I cannot imagine there was a single roller coaster at Great America I would agree to go on.
Maybe the kid one.
Maybe the kid one.
If they had a little kid one that was certified for five and under, that would be good.
I'm still nauseated from 1992.
Knott's Berry Farm.
Montezuma's Revenge.
Why would you get on something called Montezuma's Revenge as a ride?
That's just a bad idea.
And then there was the corkscrew. Why would you get
on something called the corkscrew? I don't know. Why would you get on a roller coaster that goes
forwards through its loopy loops and then backwards? It couldn't have been 92 because
we went to Knott's Berry Farm before we graduated. This was high school. But we did ride roller
coasters on that one because we were with a big group. I did not ride any of those roller coasters. I gracefully allowed
the rest of you to do it. I would ride on
the log ride, which is safe
because it's just one drop.
And anything of that
nature. But beyond that, no.
There was a Snoopy roller coaster. I definitely wanted
the Snoopy roller coaster in the kids
section of Knott's Berry Farm. That one's fine.
You haven't been on the Matterhorn since high school?
Those are all fine. Disneyland
roller coasters are fine.
Any upside down or flipping
around, none
of that.
Just no upside downs.
Okay. Bailey
thought we should talk about taking
breaks. Well, I think that was a break.
So we should go on.
Cameron asked about systems engineering.
Like, where do you start a complex project?
What methods or tools are helpful for organizing a project or your part in a project?
Yeah.
Should I learn to love drawing squares and arrows in PowerPoint?
And they mentioned something called SysML.
Yes.
Which I don't know anything about.
Which I don't know anything about.
Yeah, I'm not a systems engineer.
The last time I, but I have done it.
I did it, I guess the last time I really did it was, well,
one company, we did a whole design for the
whole system. And I did that in collaboration with electrical engineering, mechanical engineers. So
it was less about being a systems engineer and more being a cross-functional group
designing a system. But there's a more formal thing that systems engineer, right?
Yeah.
And I know Fitbit had a group that was systems engineering, and it was made up of, quote, systems engineers.
They seem to be more along the lines of, oh, my God, we have all these subgroups, and how do we get them to talk to each other?
Yes.
Tom Anderson said, systems engineering, isn't that what project managers do in their spare time?
Which, yes, kind of.
Yeah, and sometimes it's where engineers who have
too many
ideas end up.
They want to tell people how to do things.
Well, and sometimes it's where
engineers who've kind of grown out of their role
go in
and look at all of the other roles.
So, I mean, you know,
where to start with a complex project is,
my go-to answer for that is always
break it into large sections
and then break those down
and find the places things communicate.
You know, block diagram
and find the big blocks
that have the question mark in them
and the risks and find the risks.
But, you know, block diagramming, just, you know, a lot of things start,
I know it's cliche, but a lot of things start with napkin sketches
and it doesn't have to be on a napkin, but.
I agree.
And I mean, this, we spend a whole section in the class about diagram your project,
diagram it this way, diagram it that way.
And I think that that's really important because the way that you look at things changes.
A hardware block diagram versus a software block diagram, those are pretty similar.
But then if you start thinking about control or data flow, now you're looking at different diagrams.
And you're thinking about the system in a different way.
Actually, I was talking to someone recently who mentioned that one of the people they were working with
didn't want to do the documentation before the design.
They only wanted to do the implementation.
They were only excited to write the code. And I totally understood,
but a lot of the job is that pre-work. It's the thinking about it. It's the documenting it so
other people can comment on it. I don't want to go on any dates. I just want to get married.
Yeah, kind of. I don't want to learn to draw. I just want to be Leonardo da Vinci.
I mean, it isn't that serious.
No, it's not.
The fun part for a lot of people is writing code.
And the amount of times I've gotten in trouble with writing the worst code is when I have dived right in and written the code.
The fun part is writing the code and having it work.
Yeah.
And if you don't define how it works ahead of time,
then you can define how it works
whenever you feel good enough.
And that's where the dopamine hit comes in, right?
Oh, yay, look at this.
I made this do something.
It works.
And meanwhile, it's, you know...
It's not doing anything you actually wanted it to do
or doing it in a way that is sustainable.
Yeah.
Yeah. I mean, that's the difference between work and play well sometimes sometimes yes i mean i sometimes
certainly with some of my origami work i am basically typing like a monkey at it instead of
sitting down and trying to figure out the equations necessary to work on curved
blah blah blah blah
none of you care um drink
uh yeah i'm and that's okay with me because i i don't i'm not going to write a technical
paper about it i'm just trying to figure out how to do this one pattern yeah yeah but
there's a reason we do design and design is super important and it
feels like something that's like documentation and nobody wants to do documentation but this
is documentation before the fact as you're thinking about it and you get paid for thinking
not for typing typing's easy wow unless you're Christopher, in which case, install code spell and you'll be happier.
So the thing is, if you're in a role where a systems engineer is required, it's already a complex product or whatever.
I hate that word.
Content, product, whatever.
Yes, it's already a complicated project, which means you're already in what's probably a larger group, which means there's already lots of engineers and subgroups and factions and what have you.
Which means that part of the job of systems engineer, after kind of getting a handle on having an overview of how the system works, what the major parts are, how they communicate, is to go to all those people and ask, what's wrong with this?
What am I missing? What's my misconception? Is this a valid representation of the system,
or have I made a mistake? And they're going to say, it depends.
Well, they might say it depends, and then you need to nail them down. But so many times I've
been in places with systems engineers and they don't actually
understand things and sometimes you just collate the diagrams and i have to argue with them and
say yeah but here's how it actually is working and like but this is what my diagram says
and i'm like but your diagram isn't on 15 million people's wrists. Anyway, so that's just something to keep in mind.
Your job is not to
be the god of the system.
It is to be
the glue between
the interdisciplinary groups,
in my opinion.
I'm not going to disagree with that.
The technical go-between.
And yes, you're going to define things, and you're going to do some of the
design, especially at the start of a project. But as that gets away from you and other people do their implementations, pieces of that design start to change because you're wrong about the details. You're always wrong about the details. And people have different ways of doing things. And those big boxes get filled in with smaller boxes. And so it's your job to make sure that you still understand what's going on and keep up with that.
So that you can tell people, oh, what you're doing inside this box, that's great.
But because of the way the whole system works, the firmware update code will need to be updated.
And that's 27 layers away from you.
Yeah.
Please don't do that.
Yeah.
And that's really hard.
It's really, really hard.
So that's why systems engineering is a different way of thinking.
And you have to have, depending on the project, some interdisciplinary knowledge. You have to have some electrical,
some software, possibly some mechanical.
I think that everybody should have a systems view, at least a little bit. If you just focus
on what you're doing, there's a decent chance that what you're doing isn't going to be useful
to other people.
This is completely different from the systems engineering course that I took,
that we all took in undergraduate, and that I subsequently took as a graduate,
which I did much better in.
Of transfer functions.
Yeah, it's just transfer. This is all a PLOS transforms and stuff. And I still
do not understand why it's called systems engineering because there's no systems involved.
It's just a bunch of integral transforms.
They should call it integral transforms for engineers.
Thank you for coming to my TED talk.
It's no, it's, it's about abstracting systems into generalized forms. You can treat a spring dashpot whatever system
the same as you can treat
an RLC circuit if you
put them in the right terms.
And then you can talk about
the things that can be used
for both of these very different
systems.
They're the same system in physics.
It's the same equations.
I know, and that's what
systems engineering is about. It's the same equations. They all boil down. I know, and that's what systems engineering is about.
It's boiling it down to the...
It's just integral transforms.
It's just Fourier and Laplace, and
it's just... They make it sound
cool, and you know what?
It's just a bunch of drawings.
I like Fourier. I know you do.
I do too, but I just
pretend when people get confused, because
when I started first hearing systems engineer in a work context,
I was like, oh, wow, you're analyzing the frequency response when we do this?
Oh, no, no, I'm talking to Joe about which part we're going to buy for the LED driver.
What? Why are you called a systems engineer?
My class was about this.
Got a D in that in undergrad
because it was dumb.
That was the grade I got?
Dumb.
I'm sorry.
There was no Laplace transforms in that course, I remember.
It was all about buckets and stuff.
I don't remember.
I don't think I went.
I think I went to a few lectures
and he was talking about electronics
as pneumatic or hydrodynamic systems,
like as an analogy.
And it was like, this is, no.
Because they're all the same.
They're the same enough
to cause a great deal of problems and confusion.
Fair enough.
Roberto would like to know if we want to do another show about Miseracy.
How do you feel about Miseracy these days?
I think Klang is better.
In the words of Don Draper, I don't think about it at all.
Ooh, burn.
Does that count as a tools burn or not?
I don't.
I have no problem with it.
It's that I'm not working on projects that use it,
and it hasn't come up.
When I was working on safety-critical stuff,
we used a subset of it,
so that was fine.
But I don't know what there is more to say about it.
Maybe that's my ignorance,
but we turn on the checks in the expensive compiler we bought
and we corrected things that were non-compliant.
And then we commented out all the warnings we didn't want to have.
We commented out all the warnings for things that made it impossible to write our software.
Yeah. I feel like there
are more static checkers
and
I think MISRA may have
a place, but
its expense means that
it's very much
in danger of losing to
free tools.
My cynical annoyance with MISRA is you have to pay for it.
And it's just a list of rules.
Yes.
It's like,
there's no reason this can't be incorporated into clang.
Yes.
So it kind of bugs me.
Yes.
But,
you know,
I,
having said that, I haven't, like I said, I haven't really thought about it in a long time.
It has its place.
It's useful.
But it's not going to save you from bad code necessarily.
No, if you really try,
nothing will save you from bad code.
And I really try sometimes.
Silas mentioned the episodes with Dennis Jackson where Dennis mentioned a curated list of
reading as you go from software to embedded.
Yeah.
And I talked to Dennis, asked if he had updates to it,
and he said not really, that what was on the show notes
was pretty much still what he recommended.
Okay.
So I will copy that into our current show notes,
or I'll put a link to those shows.
But no, I don't have anything new for you there.
Silas also mentioned the Agile Embedded podcast
and a recent show about technical debt
being particularly valuable.
I have not heard that show,
but it does look pretty cool.
Technical debt sounds like an interesting topic.
We haven't really done.
Because it's look pretty cool. Technical debt sounds like an interesting topic. We haven't really done. Because it's all technical debt.
Once you've written a line of code, you're in debt.
Exactly.
I have another question from Gabriel,
who listened to an episode recently with Jean Labrosse.
That would have been about micro-COS
and wanted to
email us about
getting more into embedded systems.
Let's see. I have a
dilemma. I've been stuck in roles
that offer little embedded systems
development experience. I feel like
I'm not experienced enough to go for senior
or principal jobs.
The reason I was stuck was blah blah blah, blah, blah, blah, blah.
What's the question?
I now have no restrictions, but I'm finding it difficult to get work.
I write C code from drivers to APIs, application code from my home projects, development boards, STM32, M0, M3s, free RTOS.
How do these home projects translate into experience that employers are looking for?
Home projects are not the same as work projects,
where you are asked to deliver a product for a real-world application to a market.
Well, you're in luck, because home projects translate pretty well
into application to market a lot of times,
especially if it's just mostly firmware.
The things you're doing to make a home project,
especially if you're using FreeRTOS and STM32M0s and such,
I'm assuming in C if you're using FreeRTOS,
are not appreciably different.
The only difference is the process involved, the rigor,
the design work maybe. But you've seen everything that you need to see. You know all the terms
that you need to know. And so I would apply to many jobs and take those projects with you.
And take one you're particularly proud of
and polish it up if the code is embarrassing to you because it was a home project and you did it
you know haphazardly then clean it up but that's going to be a better foot in the door than
anything on your resume or anything you can say in an interview, in my opinion.
You went on.
I'm sorry.
No, that's cool.
I feel stuck because I feel unemployable, and yet I have the foundation with my Master's of Science in Automotive Electronics and more than eight years of experience up to a team
leader level.
Okay, here's the deal.
While what Christopher said was true.
It's still a lie.
The problem is not
that you don't have the embedded experience.
The problem is that you feel
stuck.
It is a good time
to be looking for an embedded systems job.
There are jobs out there.
If you want a job in the
automotive area, there are definitely places to look for. So email us back and tell us where
you're looking because you have everything you need. Now you just need to go out and ask the
right person for a job because there is going to be somebody who needs what you have been doing and what you want to be doing.
Even if you're not experienced enough to go for a principal engineer job or a senior engineer job, it sounds like you're getting there.
So take a project and take it with you so that you can talk about it
and maybe from Dennis's
list of how do you get from
software to embedded
like I said those will be in the link
so you can check out if there are any
things you feel like you need in there
but other than that search for the jobs you want.
I think you're probably more employable than you think.
And if you've got eight years of experience up to the team leader level,
maybe broaden your horizons slightly.
There's plenty of embedded teams that are looking for project managers
and things along that lines that are
still technical but are senior in a different way senior in in the sense of you've seen things
not senior in the level of oh you know all the algorithms or whatever
but um but yeah i mean just reading I mean, this is an attractive resume.
So I'm a little confused.
There should be things out there.
So don't feel too stuck.
I think you have more going for you than you think.
And if you pay the buck to go into Patreon and join our Slack group, we do have job postings there.
But more importantly, we have a jobs chat where you can post your resume and people will give you comments.
Yeah.
And it's a great way to make sure that you didn't have a spelling error or something like that on your resume.
And people will do mock interviews too.
Yes.
There are people who have offered that. So that's your resume. And people will do mock interviews too. Yes. There are people who have offered that.
So that's good practice.
If you're finding the interview process is maybe daunting, that can help.
Let's see.
Barry was very complimentary, is an EE who didn't attain this degree until he was 52 years old, which was only a couple of years ago,
took the usual classes as well as assembly language classes, and really enjoyed that so
much that when he ran across a game on Steam that starts with learning logic gates,
he was just excited enough to tell us,
which I'm happy about.
The game is called Turing Complete,
and it's turingcomplete.game
if you are looking on the internets.
I'll check it out.
There have been a couple of others.
Yeah, I'm drawing a blank,
but there's kind of a game company that made,
there was one that was like Shenzhen something,
.io, I can't remember the name.
Somebody will write in,
but there were a bunch of games from like the same designer
that were very low-level computer puzzle-solving games.
I've played a couple of games like that,
and they are very fun, because of the logic.
I mean, it's all just logic tables and logic gates,
but how they combine together,
it's fun.
For me, I had a little trouble,
because they seemed too much like my CS60 final.
Well, yes, but...
Let's see, from Bishoy uh could you please talk about using c++ visual studio c
for embedded system development i don't understand the question wants to target stm32 microcontrollers
m0 uh are you talking about using visual studio code hope so, because you have C++ in there.
Yeah, so if you're talking about Visual Studio, don't do that.
Run away.
If you're talking about Visual Studio Code, then...
Then we're good.
What you really want is a Cortex debug.
The extension.
The extension.
And then you should be able to target an STM32 with a debugger, ST-Link, J-Link, OpenOCD, Blackmagic sort of thing.
You'll need to have the ARM GCC and GDB toolchains installed too.
Okay, so yes, Visual Studio Code, you need the debug cortex, and you need to also install the ARM compilers.
How to do this?
Yeah.
There's definitely a how to do this.
It's not supposed to be hard.
The students in my class do it.
You can get started with the STM32, CUBE, IDE, and then move over to Visual Studio Code.
You can also use Platform.io.
Platform.io is kind of a path along the way.
It's not directly using the CMSIS house.
It's using something a little simpler.
And that runs in VS Code.
You know, if you really like,
I guess you have to do some of the cube stuff
sometimes for setup though.
Anyway, right?
No, you never have to do the cube stuff.
You can always make your own clock tree yourself.
So you have to use the cube stuff.
You really don't.
So if you want to do the clock tree,
you've got to use the cube stuff.
I'm saying use the cube stuff for the clock tree.
I'm saying you don't usually.
You really don't usually have to.
I've lived the life without the cube.
You set up the clock tree by hand.
I mean, you just let it do all the defaults.
And sure, you have to calculate the PLL for the baud rate, but...
All right, all right.
Sorry, I just had a bad experience with the, guess what?
Oh, the clock tree on the Cypress.
The PSoC clock tree.
Well, that's a different story.
A couple weeks ago.
That you do have to use the top design.
Yeah, I'm surprised that STM32 is easier.
Oh, no, because STM32 is just filling in registers.
It's not doing anything with the hardware.
Well, I'm sure... No, maybe the PSoC is too. I don't know. It's not doing anything with the hardware.
Well, I'm sure, no, maybe the PSoC is too.
I don't know.
Anyway, there were a lot of clocks.
Yes, there were a lot of clocks.
It was a nightmare.
Yeah, no, there's a lot of research for that. And, you know, I will look for a good web page intro and put it in the newsletter.
I'll put it in the show notes too, not just the newsletter.
Fine. But then my newsletter is the show notes too, not just the newsletter. Fine.
But then my newsletter is just show notes, you know.
Well, the top part is just show notes. And then we have a little section
about what's going to be coming up next.
And then we have a section about bonus stuff, which
this week we have like three separate...
I've renamed that to topics of interest.
Ooh, topics of interest. It's much more
you know, highbrow.
But there were several topics of interest that went into that list.
So you get the...
Yeah, okay, okay, yeah.
So feel free to sign up for the newsletter.
And if you've got stuff that you'd like to see in the newsletter, let me know.
Yeah.
Different things we can do with it.
If you want job postings in there, we can maybe make that happen.
Then we'll have to decide if we're charging for them.
Then we'll have to decide how much we're charging for them.
That's why I said we can maybe make that happen.
All right.
We've been talking for an hour and 20 minutes.
Okay.
And I, I, I am tired.
All right.
I'll read some Winnie the Pooh and you can take a nap.
In the meantime,
thank you for listening. Thank you to Newark for sponsoring the show.
Thank you to our Patreon subscribers for subscribing and supporting us. And if you'd like to become one for as low as a dollar, you join our slack although with inflation that may go up to you know
more than i don't know i'm raising the president it's fine join for a dollar join the slack you
can you can you can talk to fellow listeners about stuff thank you to christopher for producing and
co-hosting that that's me. Thank you to Alicia for hosting
and finding interesting people to be on the podcast.
And, you know.
At this point,
Pooh and Piglet have decided
to trap a heffalump
with honey.
And Pooh is going to get some.
As soon as he got home, he went to the larder and stood on a
chair and took down a very large jar of honey from the top shelf. It had H-U-N-N-Y written on it,
but just to make sure, he took off the paper cover and looked at it and it looked just like honey. But you never can tell, said Pooh.
I remember my uncle saying once that he had seen cheese just this color. So he put his tongue in
and took a large look. Yes, he said, it is, no doubt about that. And honey, I should say right
down to the bottom of the jar, unlessunless, unless of course,' he said,
"'someone put cheese in the bottom for a joke.
"'Perhaps I had better go a little further just in case,
"'in case Heffalumps don't like cheese, same as me.
"'Ah!' And he gave a deep sigh.
"'I was right. It is honey.
"'Right the way down.' "'Having made certain of this, he took the jar back to Piglet, "'and Piglet looked up from the bottom of his Having been certain of this,
he took the jar back to Piglet
and Piglet looked up from the bottom
of his very deep pit and said,
Got it?
And Pooh said,
Yes, but it isn't quite a full jar.
And he threw it down to Piglet
and Piglet said,
No, it isn't.
Is that all you've got left?
And Pooh said,
Yes.
Because it was.
So Piglet put the jar at the bottom of the pit and climbed out,
and they went off home together.
Well, good night, Pooh, said Piglet, when they got to Pooh's house.
And we meet at six o'clock tomorrow morning by the pine trees
and see how many heffalumps we've got in our traps.
Six o'clock, Piglet.
And have you got any string?
No.
Why do you want string?
To lead them home with.
Oh, I think heffalumps come if you whistle.
Some do and some don't. You can never tell with heffalumps.
Well, good night.
Good night.
And Piglet trotted to his house, trespassers W, while Pooh made his preparations for bed.