498: To Consume Stickers

Transcript from 498: To Consume Stickers with Christopher White and Elecia White.

Elecia (00:00:07):

Hello and welcome to Embedded. I am Elecia White, here with Christopher White. Today it is just us, just talking to each other, catching up.

Chris (00:00:17):

Good morning.

Elecia (00:00:19):

Good morning. How are you?

Chris (00:00:21):

If I told you, I would end up on a list.

Elecia (00:00:23):

On a list? And not a happiest person in the world list?

Chris (00:00:27):

<laugh>

Elecia (00:00:31):

What have you been up to, that you can talk about?

Chris (00:00:34):

<laugh> Makes that sound like I have a secret identity or something. Or some nefarious-

Elecia (00:00:39):

That list is looking more and more likely <laugh>.

Chris (00:00:40):

Nefarious clandestine work. What have I been up to?

Elecia (00:00:45):

I did recently ask you that if you were pursuing a life of evil crime, what would your job be?

Chris (00:00:53):

Did you say evil crime? That sounds more-

Elecia (00:00:57):

Actually-

Chris (00:00:57):

Vehement than you posed to me.

Elecia (00:00:59):

I think, "A life of evil. What would your career path be?"

Chris (00:01:02):

I still do not think it was "evil." Okay. Because that changes matters. Aaah! I cannot remember what the question was. What was my answer?

Elecia (00:01:09):

Criminal? Maybe it was, "A life of criminal activity."

Chris (00:01:12):

Yeah. And who gets to define what is criminal, right?

Elecia (00:01:15):

All right! All right.

Chris (00:01:17):

Yeah. Because I think I said something.

Elecia (00:01:18):

You said you were going to be a hacker, and you had specific hacking targets, that we will not discuss.

Chris (00:01:23):

Yeah. I think that would get me on a list. I am not doing that. For the record. Any of it.

Elecia (00:01:28):

For the record, my answer was, "I would bake phenomenally good cookies."

Chris (00:01:32):

Yeah. And I did not understand how that factored into being evil or criminal.

Elecia (00:01:37):

Well, I would-

Chris (00:01:39):

<laugh> Unless the good cookies contain something, you are not-

Elecia (00:01:43):

No! I would not use any recipes.

Chris (00:01:45):

Oh, highly illegal.

Elecia (00:01:46):

It would be like you would get the perfect cookie one day, and know that you could never have it again.

Chris (00:01:51):

Okay. Do you understand what "crime" is?

Elecia (00:01:55):

<laugh> Well, that was why I thought it was evil. <laugh>

Chris (00:01:57):

Okay. I think you need to work on this a little more. Because if that is the best you can do for evil, I think you are doing all right.

(00:02:04):

What have I been up to? I have been up to some work. I have been up to music. I have been up to some roleplaying gaming, which I have not done for-

Elecia (00:02:20):

You seem to really enjoy that.

Chris (00:02:21):

Let us say 30 years prior. That has been fun.

Elecia (00:02:23):

And second-hand roleplaying is pretty fun. Because I get to hear everything he says, and it is just out of context and hilarious.

Chris (00:02:29):

<laugh>

Elecia (00:02:29):

I was like, "Does it have fur on it?" And I had no context at all.

Chris (00:02:41):

<laugh> Look! It was very important. We dealt with a monster, but we disposed of it. But I realized later that we needed evidence of the monster to take to someone, and I was hoping that the monster chains had to have still sets--

Elecia (00:02:56):

You are now experiencing third-hand roleplaying games. <laugh>

Chris (00:03:01):

Yeah, I have been doing that. I have been spending too much time watching the downfall of civilization. I have been-

Elecia (00:03:08):

It is a terrible game.

Chris (00:03:10):

It is a really bad game! Yeah.

(00:03:11):

Yeah. Did I mention work? I said- Must have said work.

Elecia (00:03:16):

I think so. But how are drums going?

Chris (00:03:18):

Drums are going okay. I am very tired by everything, so I am having a little trouble maintaining the quite intense pace that I was at.

Elecia (00:03:29):

Which is like an hour to an hour and a half a day. It is-

Chris (00:03:33):

And as I say that, last weekend I think I did two and a half hours a day, to try to make up. So I have taken a couple days off this week. I am going to pick it back up today. But it is going well. It is interesting. I have not- To bring this back to a larger topic, I have not studied anything intensely for a long time. And-

Elecia (00:03:55):

With a teacher.

Chris (00:03:56):

With a teacher.

Elecia (00:03:56):

I think that is important.

Chris (00:03:57):

Yeah. With a teacher or anyway, but with a teacher, definitely. So watching the pace of progress and starting to notice progress, is actually something I have not experienced for a while.

Elecia (00:04:12):

We work for ourselves. It is not like we get performance reviews.

Chris (00:04:14):

Yeah. For work, yeah, we learn stuff, but it is usually ephemeral stuff. Like, "How do I solve this one problem?" Because we are standing on education that took decades, that we are already familiar with. So learning new things at this stage of our career is mostly like, "Ah, shoot! I have to solve this one special case of problem, that I might not see again." Or there is a new API, but it looks like a lot of old APIs, or whatever. Or there is a new chip, but everything looks kind of similar.

(00:04:43):

But chipping away at a skill that you could continue to chip away at for the rest of your life, and mark progress, is not something I have done a lot of recently. Seeing progress plateau. Seeing it go backwards. But seeing that the curve as a whole is going up. Then looking back six months or a year and saying, "Holy crap! I could not do that before. I did not even realize it."

Elecia (00:05:10):

It is funny you say that, because I can think about all the things that you set out to learn, and then you learn. Like Morse code.

Chris (00:05:19):

That is a thing, right? It is a measurable thing. Yeah, I did learn that, but it is a small thing. It is something that anyone can do in a month or two.

Elecia (00:05:27):

It depends on the fluency and competence you want to get to.

Chris (00:05:31):

Yeah, no, right. Sure, sure. No, that is fair.

Elecia (00:05:33):

It is like language learning. Which is another thing you have picked up recently.

Chris (00:05:36):

But <sigh> music is a larger thing to me.

Elecia (00:05:40):

Huge.

Chris (00:05:42):

Even within drums, there are several lifetimes of- 50 different genres and techniques and things. Somebody who is an absolute world-class drummer in one musical style, might come up against something and not be able to do it for years. Like, oh, a great jazz drummer might struggle with Brazilian or Afro-Cuban stuff, or something like that. So there is always stuff to do.

(00:06:12):

Yeah, I guess the thing that is interesting to me is getting very frustrated as I go along with this, but then having moments of, "Wait! I actually can do this now."

Elecia (00:06:24):

It is amazing how if you spend an hour a day for six months-

Chris (00:06:28):

Well, at this point, it has been a year.

Elecia (00:06:30):

Well, your intense class has only been half a year.

Chris (00:06:34):

Intensity has not changed that much. I get more feedback. That is all.

Elecia (00:06:37):

You get more- Oh, okay. I think sometimes we all want to do things. I want to get better at origami. I want to share some of my origami ideas. I want to get better at robotics. I want to not feel like I missed something in trigonometry and calculus, that would just make my life so much easier. And the truth is that if you just put in the time...

Chris (00:07:03):

But that is the hard part <laugh>.

Elecia (00:07:05):

Just put in the- "Just" that is such a stupid word.

Chris (00:07:08):

Put in the time when you do not want to, necessarily, sometimes.

Elecia (00:07:12):

Yeah.

Chris (00:07:12):

And put in the time when it feels like it is not working.

Elecia (00:07:16):

Oh, yeah.

Chris (00:07:16):

That is tricky, because sometimes it is not working, and you do need to change something around.

Elecia (00:07:21):

That is where teachers in classrooms, and other students can help you.

Chris (00:07:26):

But sometimes it is working, and it is just like, "Yeah. This is hard, and it is going to take you a month or two of feeling like you are not making any progress. Until suddenly, oh, you do."

Elecia (00:07:40):

Those moments of inspiration where it clicks, those do not happen because you did not put in the work. Those happen because you were ready.

Chris (00:07:52):

Yeah. I think there is another aspect, too. Like, the stuff I am working on, they are exercises. They are a bit more musical than a lot of music exercises tend to be, but they are still exercises.

(00:08:00):

They are drilling, repetitive things over and over and over again, that at first glance, you might think, "Well, this does not apply to me playing music for my band. I do not see how this connects." But after spending six months of mostly doing those kinds of exercises, when I go and play a song, it is like night and day.

Elecia (00:08:23):

Well, a lot of the exercises you have been doing have been improvisational.

Chris (00:08:26):

That is true. That is true.

Elecia (00:08:28):

And yet, when you record music with your brother, you take, I believe the count was 532 takes.

Chris (00:08:36):

Well, that is one thing I am trying to get away from.

Elecia (00:08:37):

<laugh>

Chris (00:08:38):

By being able to improv better. I will not be just spamming things until I find something that seems to work, and then working on that. But anyway.

(00:08:46):

It is that the side effect of being at the drums every day for an hour or two, and carefully playing, regardless of what I am doing, makes me a better player. Just engaging with the instrument. My muscle memory, my strength, my hands, my stamina, all that stuff get better, regardless of what I am playing.

(00:09:08):

As long as I am not playing something actively harmful. By harmful I mean out of time, or I am not paying attention to my technique well, and I am-

Elecia (00:09:18):

And you are hurting it.

Chris (00:09:18):

Reinforcing bad habits, or that sort of thing. I think that is true of a lot of things. I think that is what people miss about school and education and college and things like that. It is like, "Okay, yeah, you may not want to learn discrete mathematics, because you cannot think of-"

(00:09:31):

This is the classic thing, "What am I ever going to do with calculus?" Maybe nothing. But you are going to learn how to learn calculus, and knowing how to learn calculus means you know how to learn a bunch of other things. Maybe some other things that are hard, that you do care about or need. But yeah. Muscle memory. It is important. Repetition is important. That is a sad fact of how our brains work. So yeah, drums. What else? <laugh>

Elecia (00:09:57):

I guess that segues into journaling. Good news, everyone. I discovered journaling.

Chris (00:10:02):

<laugh>

Elecia (00:10:06):

Even better news. I am not that evangelical about anything.

Chris (00:10:11):

Did you discover journaling? Or did you discover an excuse for stickering?

Elecia (00:10:16):

Can I plead the Fifth on this one?

Chris (00:10:18):

<laugh>

Elecia (00:10:18):

So I would say that I wanted to try journaling. For me it is- Okay. Well, I am going be a little bit more tactical. I put in whether or not I made my exercise goals, what I ate, a little bit about what I did. Like, "Went to the beach." Or, "Hung out with Christopher, and watched a movie, whatever."

(00:10:43):

Then I look up a journal prompt on the internet, of which there are millions of journal prompts, and I write whatever it wants me to write. I actually did not do the evil career one. It just made me laugh. But like, "How do you see your life in ten years?" Or "What are your values?" Or-

Chris (00:11:05):

Those are pretty broad.

Elecia (00:11:06):

Those are pretty broad. And sometimes they are very specific ones. Like, "What are you grateful for today?" Or yesterday it was, "What annual holidays, celebrations, or events do you most enjoy?" And it turned out I was like, "I like Halloween. But we did not even really celebrate last year."

(00:11:27):

But then I started thinking about when the cherry blossoms first hit, and I just get so excited knowing that the narcissus are coming. Or that first day over 80 degrees Fahrenheit, where we go to the beach and get warm by lying on the sand. So it turned out that mine were not holidays, and I went back and thought about holidays. Anyway.

(00:11:48):

This introspection part has been better for my mental health, than any talk therapy has ever been. Because I lie to my therapists. Not intentionally. But I want to present myself as a kind, caring, competent human being. And the truth is inside some of that is not always true. And yet I will put that shiny exterior on, and I cannot take it off for a stranger.

Chris (00:12:23):

To be fair, I do not think you have ever had a good therapist.

Elecia (00:12:27):

That may be true. But I have had more than three.

Chris (00:12:31):

But yeah. A good therapist will find ways to break through that.

Elecia (00:12:36):

But I do not really have the patience to let them.

Chris (00:12:38):

Yeah, but there is nothing wrong with journaling.

Elecia (00:12:42):

The journaling has been really good for- I actually discovered something about myself I did not know. I hate to ask for help. Not even a little bit. But when I talked to Chris about this after I journaled about it, I realized just how much I hate to ask for help, and will do anything to avoid it.

(00:13:04):

If help is offered, I can take it sometimes. But overall- I did not really get this, as an extreme part of myself.

Chris (00:13:17):

But what kind of help? Like, "I have fallen, and could you help me up?" Or, "Can you explain this? Can you sit here and work with me on this problem I am stuck on?" Or, "Can you..."

Elecia (00:13:33):

"Can you open this jar for me?"

Chris (00:13:36):

Okay. That is pretty specifically. That is not even help.

Elecia (00:13:42):

"Can you put this in simpler terms, so I have an easier time to understand?"

Chris (00:13:45):

Got it.

Elecia (00:13:45):

I would rather beat my head against the wall trying to figure things out, than to ask for help. There are times this is not true like for clients. I know that there is a cost balance and I need to be responsible with their money, and ask the questions before it gets too expensive.

(00:14:07):

But asking Chris to carry the groceries when I am perfectly capable, will not happen.

Chris (00:14:14):

<laugh> Okay.

Elecia (00:14:14):

It has only been recently that I am like, we walk out of the grocery store. I am like, "He paid, so I am carrying all the groceries. I should hand one to him."

Chris (00:14:26):

Also, to be fair to me, I ask you all the time, "Do you want me to take one of those?"

Elecia (00:14:30):

I know. I know. I know.

Chris (00:14:30):

This is not- I just do not want listeners to think that I am... <laugh>

Elecia (00:14:33):

No. But I grew up to be so independent. That was a large part of my childhood, was needing to be that independent. And now I realize that I am stuck there. Which is fine.

Chris (00:14:49):

You do not have to be stuck there. A realization like that...

Elecia (00:14:53):

I have been stuck there.

Chris (00:14:54):

Yeah, okay.

Elecia (00:14:55):

It is not like I am changing anything radically. It is just, "Oh, I did not-" It was just a simple journal prompt on the internet, "How do you feel about asking for help?" And I was like, "Oh. I feel really bad about asking for help." So I do not know if journaling will work for you.

(00:15:17):

I do all that, and then I have stamps. Where I have little puppy dog tracks, and for each walk we take the dog on, whether it is a long walk or a short walk, I get a puppy dog stamp. If we go to the beach, I get a fishy stamp. Oh, a sticker. Sticker. Those are washi tapes. If I write about memories, I get a bubble. If I row on the exercise machine, I get a little sushi sticker.

(00:15:46):

I have origami stickers and dragon stickers and space stickers and sad teddy bear stickers. I have hedgehogs from when I am cranky. Sloths from when I am lazy. I have mugs for when I get cappuccinos, which actually does not happen that often. And flowers from when I garden.

(00:16:07):

It is entirely a way to consume stickers. And I love it. It has been really helpful for me, to acknowledge the good things in my life, as well as explore my own mental corners.

Chris (00:16:22):

All right.

Elecia (00:16:24):

You journal a little bit?

Chris (00:16:25):

Not really. It is more of a-

Elecia (00:16:28):

Because I gave you a sticker for when we went to go-

Chris (00:16:30):

It is more of a- What do you call it? So I do not have ADHD. But I have probably ADHD adjacent issues. Maybe I have ADHD. I do not know.

Elecia (00:16:39):

I get mushrooms from when I think about autism.

Chris (00:16:41):

But I make a list every day of things- Not- Try not to make a list of things to do. It is not a to-do list. It is a "things I could do" list.

Elecia (00:16:49):

Hmm.

Chris (00:16:51):

Sometimes it is a to-do list, like to make sure I keep doing some stuff that I am supposed to do every day. But it is mostly just a check off to say, "Oh. You know what? I did not sit on my butt the entire day. I did these five things." It is more of a "did some stuff" today.

Elecia (00:17:04):

Accomplishments.

Chris (00:17:04):

So it is, "Work for this client. Work for this client. Meditate. Practice French. Exercise. Practice drums." Maybe that is stuff I do every day no matter what, but it is nice to check it off. And then I put extra stuff, if in fact there is something I do want to do or whatever. And then, yes.

Elecia (00:17:23):

We got you stamps and stickers. But you have not even opened your scratch and sniff stickers.

Chris (00:17:30):

I know. <laugh> I will start using them.

Elecia (00:17:31):

<laugh>

Chris (00:17:31):

I got away from the- Last week was not great.

Elecia (00:17:35):

Did the meteor stamper not help?

Chris (00:17:39):

Nah.

Elecia (00:17:40):

There have been days that I have thought about getting that, and just stamping the whole page.

Chris (00:17:43):

There was not really a context to use it in my to-do list.

Elecia (00:17:45):

Oh, that is...

Chris (00:17:45):

Going out and stamping it on everyone's forehead-

Elecia (00:17:47):

<laugh>

Chris (00:17:48):

As I walk around the street, would not be looked upon as probably something I should do.

Elecia (00:17:57):

Let us see. We should talk about something...

Chris (00:18:00):

Involving computers?

Elecia (00:18:01):

Mildly technical. You had a GPS logger?

Chris (00:18:04):

Yeah. From one of my clients. I think I mentioned- Did I mention last time, I ditched MicroPython, I went to Arduino?

Elecia (00:18:14):

Noo!

Chris (00:18:15):

Yeah. So I ditched- Anyway. Back up. Context. GPS logger. It goes in a radio-controlled airplane. I wanted a high frequency GPS logging. So there are modules now that will do 20 Hz. This one actually does 25.

Elecia (00:18:29):

<snuffle>

Chris (00:18:31):

What is the problem?

Elecia (00:18:33):

It is not high frequency!

Chris (00:18:34):

It is higher than one!

Elecia (00:18:37):

I know. I know. Sorry. I am working at much higher frequencies right now. Go ahead.

Chris (00:18:40):

And for position, unless you are a hypersonic missile- This is a little air controlled airplane, it is fine. Anyway, it is 20 Hz. I need it because I need to sync some data with some other stuff, and the onboard GPS of the plane is only one hertz. Anyway. Do not ride me. This is how I am doing it.

(00:18:59):

So I needed to make a little embedded device that was a GPS microcontroller SD card, that would just log to CSV. Position, altitude, time.

Elecia (00:19:09):

Power is not an issue, but space is.

Chris (00:19:11):

Power is not a big issue, but space is. Yes. I started out with MicroPython. I started out on a pyboard. That did not end up working, because the pyboard is a little old, and some of the modules I wanted were not compatible. So I ditched that. And went to an ESP32 with MicroPython. It turns out MicroPython is great, okay, do not get me wrong.

(00:19:31):

But as we have said before, if you are doing something in Python, a computation or a processing that does not have a module that is written in C that Python is calling into, it may not be fast enough. So parsing the NMEA messages off of serial, which is the format that GPSes give you for their data- Parsing those at anything greater than one hertz was not possible in Python directly.

(00:20:05):

Before you say, "What?" I tried to do the same thing on Orin in regular Python. It could not keep up with 20 Hz in regular Python. I had to write my GPS logger that I run on Orin in C.

Elecia (00:20:20):

That makes no sense.

Chris (00:20:22):

Go try it! <laugh> I tried various modules for NMEA parsing. All the standard ones. They cannot keep up. And especially cannot keep up on an ESP32. So on the ESP32, I dithered for a bit, thought about just doing it in C, using ESP-IDF or whatever. I do not know what it is called.

(00:20:47):

And then I said, "Well, let us try Arduino. This is not a product. I want a one-off." Redid everything in Arduino. Arduino is way better than I remember it being. There are tons of modules for all kinds of stuff. I am using TinyGPS, which is a really nice little GPS and NMEA parser. Very fast. Keeps up fine at 20, 25 Hz.

(00:21:05):

It took me a while to develop the whole thing, because it is actually- I want people to be able to use it in the field. So it does a display. It has a state machine,. It has error checking. It has some power management stuff. Not very good power management stuff, but at least it will tell you the battery is dead.

(00:21:25):

And it has all the electronics and the mechanical part. It has got an enclosure, the electronics, the antenna, battery, all stuff enclosed. That was the hardest part. Like the software, I can do software. These are just modules. I am soldering them together with point to point wiring, like a crazy-

Elecia (00:21:45):

Like a soldering man, man.

Chris (00:21:46):

Somebody from the seventies, which is probably what I am.

Elecia (00:21:48):

<laugh>

Chris (00:21:50):

Mostly for space reasons, because putting another-

Elecia (00:21:54):

Header.

Chris (00:21:54):

Interposer board or header was going to take up too much space. Getting all that stuff in there was super hard. Getting the soldering right was hard. Not right, but getting it so the wires could route in all this small space. Getting the grounding right. It was a real pain.

Elecia (00:22:09):

You are getting some @ messages about KiCad, and how easy it is to build new boards.

Chris (00:22:14):

I do not have time to do that! I would advise people to look at how much it costs right now or in the next week, to get a board from PCBWay or wherever, because it is going to be prohibitive. Anyway.

Elecia (00:22:25):

Are we going to talk about that?

Chris (00:22:27):

No.

Elecia (00:22:27):

<laugh>

Chris (00:22:27):

Anyway.

Elecia (00:22:32):

About the ramifications of the whole-

Chris (00:22:35):

Let somebody else's podcast do that. I do not know how to do that.

Elecia (00:22:37):

Okay.

Chris (00:22:38):

It is going to be bad. Everything is going to be really expensive.

Elecia (00:22:40):

Jobs.

Chris (00:22:41):

The entire maker community in embedded space is going to change radically. There you go.

Elecia (00:22:45):

And you thought the chip shortage was bad.

Chris (00:22:48):

This will be a chip shortage too.

Elecia (00:22:49):

Exactly.

Chris (00:22:49):

You get both. For free.

Elecia (00:22:51):

For free?

Chris (00:22:53):

Not for free. So yeah, it was a real challenge. Then I got it all done and it stopped working. Like it would not get any satellites. I spent a whole day adding more debugging and stuff, and then it just started working and it has worked perfectly since.

Elecia (00:23:05):

He was so mad!

Chris (00:23:05):

I have no idea what was wrong. I think I just did not have the antenna cinched down enough, or something in the SMA connector. I do not know. I hope there was not something that is going to come back to harm me.

(00:23:16):

But I am going to build a second one, with some lessons learned. Because I used too heavy gauge wiring. That was one of the problems. I have some hook-up wire. I think it is- I do not remember what it was. But it is 20 something. 22 maybe? But anyway, it was a little thick and hard to- The boards are very close together, so they have to bend. And, yeah.

(00:23:39):

I did a bunch of CAD work. Now I can make enclosures. I am really good <laugh> at making enclosures now. I have got that under belt as a skill. I hope it fits in the stupid airplane that I have not even seen. But if it does not, all of it is coming out and getting wrapped in shrink-wrap and Kapton tape. It will just have to squirrel around in there.

(00:24:00):

Yeah, but it is cool. It has got a little OLED display. It has got a Li-poly battery. The ESP board I have- Oh. So the parts I used, I have a SparkFun Thing, W R O O M. I do not know how you pronounce that. USB-C, that is ESP32. That is a pretty nice little board. It has got ESP32. It has got an SD card slot. It has got Wi-Fi, which I am not currently using, but may.

(00:24:23):

It has got a LiPo charger, so you can just plug the battery right into it, and then the USB on the other end, to charge the battery. Bunch of peripherals. Nice header, with maybe a little bit less peripheral accessibility than I like. I had to do some games to route things where I needed them to, because there were onboard parts that were sharing some of the pins.

(00:24:52):

The one thing I do not like about it is it has a fuel gauge, but for some reason they chose a really weird part for the fuel gauge, which does not do any learning. So it has an onboard curve- A fuel gauge is, if you do not know, it is a chip that sits alongside the battery and the charger, that monitors the battery voltage.

(00:25:11):

LiPo batteries are very strange. Well, they are not strange now, but they are strange compared to older batteries. In that as they discharge, the curve is- It is very flat for quite a while. So you will discharge a little bit. As time goes on, the voltage will come down, but then it will stay quite flat, and then it will go down further. It is a weird shape.

(00:25:31):

But it is very hard to deduce from that how much charge is there, because that is the only visibility you have into the battery's charge. Is either, I know it had this much storage and I have been counting Coulombs coming off of it, or I watch the voltage and there is a lookup table.

(00:25:50):

This battery- The fuel gauge they put on the SparkFun Thing for this one, does not do any Coulomb measurement, as far as I can tell. It just uses a curve. But the curve is fixed. And batteries are all different from all manufacturers. Those curves are not the same.

(00:26:05):

So what the data sheet for this particular fuel gauge actually says is, "Oh, if you got a battery you want to use, talk to us and we will customize the curve for you," which obviously you cannot do from a SparkFun Thing. So this has a random curve that is not really applicable the battery I have got.

(00:26:20):

So it is kind of lying about the charge, and it does not detect- I had to do a bodge wire to the charge light, because there was no way- Because this thing was so screwed up and did not know what battery it has, there was no way to detect charge by saying, "Oh, it has got a positive charge rate." Sometimes it does when I plug the charger in, sometimes it does not. I do not know why. Probably because it is mathing wrong. But, yeah, so. Otherwise the board is great.

(00:26:46):

And then I have a SparkFun- Really nice SparkFun GPS module, that has a newer u-blox chip that goes at 25 Hz, LiPo battery and a display. I said a display. Yeah. Some LEDs. Oh, the fun thing about LEDs is I wanted the board LEDs, that are kind of deep inside the box, to be visible outside the box.

Elecia (00:27:09):

Light pipe.

Chris (00:27:10):

I had this brilliant idea, which apparently everyone else has had in the world, to make a light pipe out of hot glue. So I put a hole in directly over the LEDs in the case lid, which is a centimeter or more away from the LEDs. You probably could see through that if you just left it a hole.

(00:27:31):

But if you put a piece of tape over the top, and then jam hot glue from the other side, so the tape keeps the top flat. And then make a-

Elecia (00:27:43):

So on the inside, you are hot gluing.

Chris (00:27:45):

Bubble of hot glue. Yeah.

Elecia (00:27:46):

Okay.

Chris (00:27:46):

So it is a little- You do want it to be not just a random shape. You do that, the hot glue acts as a light pipe and a lens, and gathers all that light up. On the top it looks like you intentionally made a nice little-

Elecia (00:28:01):

It does look really nice.

Chris (00:28:02):

Diffuser. It is probably not super sturdy. It is glue. It is just held in there with friction. But for this purpose...

Elecia (00:28:09):

Did you put the board in while the glue was dry?

Chris (00:28:12):

The board? It is not in contact.

Elecia (00:28:14):

Okay.

Chris (00:28:14):

Yeah. No, it is pretty far away actually. Yeah, so that was a neat discovery. I subsequently looked it up and many people do that, but that is fine.

Elecia (00:28:25):

I asked my EE recently about our lack of fuel gauge, and how we would be dealing with the discharge curve of our LiPo batteries. He assured me. He assured me, that it would be no problem. That we would be able to tell where we were on the discharge curve.

Chris (00:28:42):

You can do it yourself. Yeah.

Elecia (00:28:44):

I just laughed and laughed, but very quietly because we were typing, and decided we could handle that later.

Chris (00:28:50):

You can do it yourself, by just-

Elecia (00:28:53):

Oh, totally.

Chris (00:28:53):

Putting that into a ADC.

Elecia (00:28:55):

But it requires you to know that you are charging.

Chris (00:28:57):

Mm-hmm.

Elecia (00:28:58):

Basically you take a chip and you put it inside your software. It is all very possible.

Chris (00:29:02):

You got to build the curve yourself, and do all that stuff.

Elecia (00:29:04):

I was thinking that-

Chris (00:29:06):

Pretty much easier to buy one.

Elecia (00:29:07):

It is easier to buy one, as long as you can get one with a reasonable curve.

Chris (00:29:11):

Well. There are way more sophisticated ones, that will learn the curve.

Elecia (00:29:14):

Learn the curve. Yes.

Chris (00:29:14):

Monitor other stuff.

Elecia (00:29:16):

Yes. Yes. I like the learn the curve ones, although they require you to power it up and discharge it several times so they can learn the curve, and during this time you are doing board bring-up and you are going, "Why is the fuel gauge not working?" Every single time I forget that I have to charge and discharge several times, before the fuel gauge works.

Chris (00:29:36):

Yeah. So I am going to take that out today, and do some ground testing with the rest of the system. I hope it works for the flights, but we will find that out in a few weeks.

Elecia (00:29:45):

Oh, this was the plan where I have to hold the plane.

Chris (00:29:49):

Yes. And walk away.

Elecia (00:29:51):

While Segwaying away. Because I had a Segway for a very brief amount of time.

Chris (00:29:55):

Emphasis on the "had."

Elecia (00:29:56):

Had.

Chris (00:29:56):

Do you want to discuss why it is a past tense Segway?

Elecia (00:30:01):

Or the bruises on my wrist?

Chris (00:30:03):

<cough, cough>

Elecia (00:30:05):

Yeah. So...

Chris (00:30:09):

This is not a full bore- This is not the early aughts Segway, the big one.

Elecia (00:30:14):

No, this is the Nine-

Chris (00:30:14):

This is the newer Ninebots.

Elecia (00:30:15):

Ninebots.

Chris (00:30:16):

Yeah. Which are a little smaller.

Elecia (00:30:18):

But it is the one with the handle, not the one with the knee driver.

Chris (00:30:20):

Right.

Elecia (00:30:20):

We really should back up, for people who have never met me in person, or who have only seen me when I am fully on. I am a klutz. I fall down a lot. It is a ridiculous thing.

Chris (00:30:36):

Barring the Segway, you have not fallen down in quite a while.

Elecia (00:30:40):

That is not true. You do not know that I have fallen down, because I have not skinned my knees lately.

Chris (00:30:46):

I think I would notice, but okay. Where are you falling? Are you going to other places to fall?

Elecia (00:30:52):

Well, I fell at the beach not too long ago. I just tripped.

Chris (00:30:57):

I do not remember that.

Elecia (00:30:57):

I think there was a seashell in the way or something. I do not know.

Chris (00:31:01):

<laugh> All right. Stipulated you have fallen some more.

Elecia (00:31:05):

At one point, despite Christopher's abhorrence of me getting a motorcycle, he said I could have one if I went for a whole year without falling. I still do not have a motorcycle.

Chris (00:31:17):

To be fair, that was mean. But I figured it was the only way to guarantee that you would never get a motorcycle.

Elecia (00:31:24):

Right. Anyway. Klutz. So I got the Segway in part because I was working on an inverted pendulum sort of thing, and needed to understand intuitively some of the problems that were going to come up with the development. And let us just say, there are some problems with inverted pendulums and control.

Chris (00:31:49):

Do you know why that <laugh> is?

Elecia (00:31:51):

Innately unstable.

Chris (00:31:55):

Yeah. Especially if you cut some corners.

Elecia (00:31:58):

Which I think the latest Segways cut a few too many corners for people who are klutzes. But, yeah. I had an incident and...

Chris (00:32:13):

Hmm. Is that true? Or did you have two incidents?

Elecia (00:32:17):

<laugh> I had two incidents. In the first one, realizing that I was in an unhappy way, I stepped off the Segway. I was on an incline and the Segway continued down the hill, narrowly missing an oncoming car.

(00:32:38):

And then for some reason it veered off to the right, where it hit a small curb and flew a bit into some bushes. Where I walked the quarter mile to where it was from where I had gotten off of it, and then rescued it from the bushes, and the dog who was very angry at me-

Chris (00:32:58):

Not our dog.

Elecia (00:32:59):

Not our dog. The dog who lived at the house that had the bushes-

Chris (00:33:02):

Who was now either attacked by a small two-wheeled monster.

Elecia (00:33:05):

<laugh> Yes. Exactly. But after that-

Chris (00:33:08):

Whoa, whoa, wait. Hang on.

Elecia (00:33:08):

Once they cleared out the dirt, and the grass and the assorted flowers-

Chris (00:33:13):

It was fine. Yeah.

Elecia (00:33:14):

It was fine.

Chris (00:33:14):

Yeah. The inciting incident was not that it was an unhappy way.

Elecia (00:33:17):

<laugh>

Chris (00:33:17):

If you have seen the Netflix show, "I Think You Should Leave," the steering wheel come off. <laugh> I want a car where the steering wheel does not come off. But effectively you told me that the steering wheel came off.

Elecia (00:33:38):

The handlebar.

Chris (00:33:39):

The handle. The handle. The thing you hold that allows you to steer.

Elecia (00:33:43):

And so it turned into a hoverboard.

Chris (00:33:45):

With no steering.

Elecia (00:33:47):

Well, I suspect there are people who could ride it that way.

Chris (00:33:50):

No, you cannot steer it. Remember. Because it takes input from the handle.

Elecia (00:33:52):

Yeah. But having worked with it enough- Anyway.

Chris (00:33:57):

Okay. Steering wheel come off, and then you decided that that was just fine and you would continue on.

Elecia (00:34:03):

Well, the steering wheel only came off in certain angles. It seemed like it was on purpose. It was just that I was on a steep enough incline, trying to go slow enough-

Chris (00:34:14):

A breakaway steering wheel, as one wants.

Elecia (00:34:18):

<laugh> So I go down to a more deserted street. It has got some hills on it, but it has also got some flats, so I can practice. Because I have only had it- I had tooled about on it enough that I could go around the block and all that. So I was practicing.

(00:34:34):

Then I decided I was done practicing. I was going to go to the grocery store, which was the mission. Tried to go up-

Chris (00:34:46):

We can see our grocery store from our house. I just want you to make it clear how long this distance is. It might sound like she has been on a long journey where all this happened.

Elecia (00:34:55):

I was gone for at least 20 minutes.

Chris (00:34:57):

It was all within 500 feet of the house.

Elecia (00:34:59):

<laugh> That is not quite true, but I will allow it. We cannot actually see the grocery store. We have to walk at least a hundred feet to see the-.

Chris (00:35:07):

If I got rid of some <laugh> houses might be able to.

Elecia (00:35:13):

<laugh> So I tried to go up a driveway. It is funny because that was on my list of control problems. Yeah, I experienced that traction control problem and yaw instability quite personally. I do not know. Part of me is like, "I should not have held onto it. If I had not held onto it, it would have sorted itself out and then it would have stopped."

(00:35:39):

But of course I had just seen it drive away from me, at reasonably high speeds down the hill. So I was not confident with letting it go. So I held onto it and that just pissed it off. Because once I was off it, now it was just insane. It was like you get those little dogs and they get really mad for no reason, and they just jump up and down around their leashes. It was like that.

Chris (00:36:07):

So how these things are supposed to work is- So it is only two wheels. So you have an interesting dynamics problem, where your system has to both balance and keep you upright, on two wheels. Not bicycle wheels, but side by side wheels.

(00:36:29):

But also take input from you, in the form of leaning forward or leaning back, to take that as kind of the throttle. So if you lean forward, it starts moving forward in proportion to how much it thinks you are leaning forward, while also keeping you balanced. It seems like a tricky problem. It is solvable in physics. It is differential equations and you do it in control systems.

Elecia (00:36:51):

It is a junior senior project sort of, in your college problem usually.

Chris (00:36:56):

But there are hard aspects to that. Because if you are relying only on detecting that counter torque, you really do not know whether or not anybody is actually at home.

Elecia (00:37:09):

Well most- The old Segway solved this by knowing whether or not somebody was on them.

Chris (00:37:15):

This is my point. Yes.

Elecia (00:37:17):

They had a system that would detect rider. It was pretty clear that the new system does not detect rider. Or possibly, I destroyed that part-

Chris (00:37:27):

In the first accident.

Elecia (00:37:27):

In the first accident <laugh>.

Chris (00:37:30):

I do not know. It is just interesting to me. I did notice when I was trying it, before this happened, that there were times where if you went over a bump or got a wheel off, it would go insane. It would just spin up the wheel to maximum, because I think it was thinking, "Oh, this person just leaned forward all the way and we got to go fast to balance, otherwise they are going to fall over."

(00:37:54):

So I think there is a lot of misinterpreting in that control system and what is going on. Especially once the rider is gone and it is still rolling, if it does not know you are not there.

Elecia (00:38:04):

And I was holding- I was on the ground, but holding-

Chris (00:38:07):

It is trying to balance. Yeah.

Elecia (00:38:08):

The handlebar, so it was way pitched over.

Chris (00:38:10):

So yeah, very interesting problem from a safety point of view, "How do you make this fail safe?" Which evidently-

Elecia (00:38:19):

It did not.

Chris (00:38:20):

For some reason, maybe due to damage, maybe due to design, it did not.

Elecia (00:38:25):

But I am fine. I got some bruises. I actually, as far as the controls problem, I learned a ton, before I fell mostly.

Chris (00:38:33):

<laugh>

Elecia (00:38:33):

So it was totally worth it. But yeah, Chris does not agree that it was worth it.

Chris (00:38:43):

I do not know.

Elecia (00:38:44):

It got him a helmet, and we have been on bike rides, so for me that is double worth it.

Chris (00:38:49):

Yeah. I still think bikes, having couple hundred years of development, are possibly superior.

Elecia (00:38:57):

Because all hoverboards have been recalled at least once, if not permanently.

Chris (00:39:02):

To be fair, some of those are just for fires.

Elecia (00:39:05):

That is true.

Chris (00:39:05):

Which is an unrelated problem space.

Elecia (00:39:10):

<music> I would like to thank our show sponsor this week, Nordic Semiconductor. Nordic has a vast ecosystem of development tools. It helps us reduce our development cycles and accelerate the time to market. For example, the nRF Connect for VSCode extension provides the most advanced and user-friendly IoT embedded development experience in the industry.

(00:39:32):

Nordic's Developer Academy online learning platform, equips developers with the know-how to build IoT products with the Nordic solutions. Nordic's DevZone brings together tech support and a community of customers, to provide troubleshooting and assistance on technical topics.

(00:39:48):

Visit these key websites to learn more, nordicsemi.com, academy.nordicsemi.com and devzone.nordicsemi.com. And to thank you for listening, Nordic Semiconductor has a contest to give away some parts. Fill out the entrance form and you are in the running. That link is in the newsletter and in the show notes. <music>

(00:40:15):

Oh! Nordic. We should- Did we just play the Nordic ad?

Chris (00:40:20):

Yes, we did.

Elecia (00:40:21):

Wow. I actually have a little bit of extra to talk about for Nordic, because they are fantastic sponsors and we love them. One of the things they do as part of the sponsorship, is to have giveaways. We have three winners from the past three months of giveaways. We have Thomas Stranger, Fionnan Reynolds, and Nathan Olff.

(00:40:42):

If you would like a giveaway, which I think is their Power Profiler Kit II. It is pretty cool. It is not like it is a super expensive thing, but it sure would be fun to get one in the mail for no reason. No reason other than you gave them your name. So please do sign up for their giveaway. It helps us, because then they know that you are listening. There will be a link in the show notes, of course. And happy profiling.

Chris (00:41:15):

On that note, we have a newsletter which comes out sporadically. At least biweekly, but sometimes more often if we have something to say.

Elecia (00:41:23):

Biweekly as in every other week, not twice a week.

Chris (00:41:26):

Very confusing.

Elecia (00:41:27):

It is a dumb word.

Chris (00:41:28):

Well, it is not semi-weekly. That would be- You know what I mean. Every 14 or so days.

Elecia (00:41:35):

A fortnight. It is a fortnightly.

Chris (00:41:36):

Fortnightly. There we go. No. Well. No, that is wrong too. It is mostly fortnightly, sometimes weekly. Anyway, we have a newsletter.

Elecia (00:41:45):

It is not like we do this for money. We do not.

Chris (00:41:46):

There is stuff about the show in there. It is usually pretty short. But sometimes we will write a little post about something. A project somebody has done. Something that is on our mind. Something that comes up due to a show. Stuff like that. Maybe an old blog post that we would like to get more visibility on.

(00:42:03):

Usually excerpts of the transcript and things to get you into the show.

Elecia (00:42:05):

The links.

Chris (00:42:06):

There is always a set of links, that we and our social media people find throughout the web in the intervening period.

Elecia (00:42:14):

Thank you, Raynay.

Chris (00:42:16):

They are always very interesting things, that are fun to look at and distracting.

Elecia (00:42:20):

And often quite relevant.

Chris (00:42:22):

Yeah. Yeah. We are considering adding job postings. If you are on the newsletter now, you might see one from me. If you would be interested in posting jobs to a list of couple thousand embedded adjacent people, let me know. I would like to gauge some interest before we go down that road. Initially it will probably be free till we see how it goes. But there might be a nominal fee for it, for a month's worth of ads in the future. Anyway, just exploring that.

Elecia (00:42:56):

It is not that- The job ad you posted is not to work for us.

Chris (00:43:01):

Right. It is for a client who has another project he is trying to fill. Trying to help out with that.

(00:43:06):

If there is something else you would like to see in the newsletter, let me know. I generally am the one to put it together, and I am open to ideas for interesting new things to write in it.

Elecia (00:43:22):

We should note that the last one, which was actually a personal essay and really good, was written by Chris and not me.

Chris (00:43:30):

Yes.

Elecia (00:43:31):

Sometimes the longer essays are written by me, or taken from things I am writing for other stuff.

Chris (00:43:38):

Yeah. That was it on the newsletter. Oh, the other thing on the newsletter, is we have shifted away from Mailchimp, because we crossed some threshold where it was going to be very expensive to continue.

Elecia (00:43:48):

Where it went from free, to $60 a month?

Chris (00:43:50):

I think it was actually more, once I looked at it closer.

Elecia (00:43:52):

It went from free, to more than we were willing to pay.

Chris (00:43:55):

Yeah. Significant amount of money a month. So we have shifted providers, to our web hosting provider Squarespace, where we do have to pay them as well.

Elecia (00:44:06):

But not as much.

Chris (00:44:07):

Not as much. So if you were on the newsletter and you are not, you did not get one this week, please resubscribe. I had to export our subscriber list from Mailchimp, and import it into Squarespace. It is entirely possible I made a mistake. On the flip side, if you did get it and you do not want it, just please unsubscribe.

Elecia (00:44:29):

We will try not to do this to you again.

Chris (00:44:30):

I may have imported people who had previously unsubscribed, and were marked incorrectly or something like that.

Elecia (00:44:36):

I should add a link in the show notes to the newsletter, so people know where it is. Below the Nordic link, so that people can sign up for the Nordic thing.

(00:44:45):

Okay. Let us see. How about some listener questions?

Chris (00:44:51):

I would love to answer listener questions.

Elecia (00:44:55):

Maybe the Electronics Destroyer wrote in.

Chris (00:45:02):

<laugh> Please continue.

Elecia (00:45:06):

They have a group that builds and displays light up boards with different messages. Neat individual letter boards that volunteers hold, spelling different messages around town. The website is northcountryearthaction.org/light-brigade.html

(00:45:17):

I am going to put that in the show notes, but mostly it was that I got to say, "Maybe the Electronics Destroyer." Also notes that they have been a listener, and ran an electronics recycling company. Tore apart all sorts of things. While that company closed in 2015, "Tearing apart can be more fun than putting together!" I do not know. Maybe. Sometimes.

Chris (00:45:52):

<laugh> That depends. Sometimes.

Elecia (00:45:53):

I do have plans to tear apart the Segway.

Chris (00:45:56):

I do not want to disassemble the GPS logger, any more times.

Elecia (00:46:01):

You have already done that. Maybe the Electronics Destroyer also suggests we all come to the Adirondacks and visit Lake George and Lake Placid.

Chris (00:46:09):

Someday.

Elecia (00:46:10):

Okay. Let us see.

Chris (00:46:12):

Is it "adiron dacks" or "ad iron dacks"?

Elecia (00:46:16):

Um. Yeah.

(00:46:18):

Matt Keeter emailed about talking about fault logging. Recently gave an Open Source Firmware Conference presentation about designing for debuggability in production, where you do not have access to a system that is faulting. Sent the video and slides, which I think were really good, so check that out.

(00:46:46):

I believe Matt also works at Oxide, so I suspect some of it will be Rust positive.

Chris (00:46:54):

<laugh> Rust positive. That is great.

Elecia (00:46:59):

Edward emailed and asked if we have any advice for someone trying to break into embedded software professionally.

Chris (00:47:07):

"Recently got an ESP32 and my plan was to essentially go through all the pre-made examples and documentation, and try to learn the ins and outs of the chip. Is this a good approach?" Yeah. Messing around with Arduinos before that. Break into professional.

Elecia (00:47:25):

Studied computer engineering.

Chris (00:47:26):

Studied computer engineering. Definitely your plan with the ESP32 is good. That is a decent microcontroller. Although, it is a little idiosyncratic. It is probably not one that is- It is very popular, but I am not sure how popular it is in industry.

Elecia (00:47:41):

It is more hobbyish.

Chris (00:47:44):

It is a slightly more hobbyish, than-

Elecia (00:47:45):

Although industry uses it, so it is not-

Chris (00:47:47):

Yeah, that is why I am hedging.

Elecia (00:47:49):

It is after Arduino, but maybe before STM32 anything.

Chris (00:47:54):

Yeah. I would slightly encourage you to maybe get a discovery board, and work with that instead. Just for most kind of- That is not to say that learning ESP32 will do you any harm. It is a microcontroller. Similar principles apply.

Elecia (00:48:13):

We recently got Adafruit Bluefruits.

Chris (00:48:16):

Bluefruit. Nordic. Yes.

Elecia (00:48:17):

Those were really-

Chris (00:48:19):

Those are really good. That is actually- You know what? That might be better.

Elecia (00:48:21):

I change my answer to that.

Chris (00:48:22):

Especially if you want to do any Bluetooth stuff, instead of just blinky light or I2C SPI stuff. If you want to do anything with Bluetooth, that would be a good thing to start with.

Elecia (00:48:32):

But check out Adafruit. Check out SparkFun. Hackaday. Instruct-

Chris (00:48:41):

Instructables?

Elecia (00:48:41):

Hackster.io.

Chris (00:48:41):

Hackster. Yeah. Instructables is more a random projects.

Elecia (00:48:45):

See what projects interest you. It is not just about what processor you are using. It is what application you are going for, that will keep you engaged, when you get frustrated at the processor.

Chris (00:48:55):

A cheap and easy way to do that part, to try to explore things, is go to wokwi.com.

Elecia (00:48:58):

Right!

Chris (00:49:01):

Where you can explore a whole bunch of different boards. I believe some different languages.

Elecia (00:49:06):

Yes, yes, yes.

Chris (00:49:07):

MicroPython, C. I think he has Rust? I would have to check.

Elecia (00:49:10):

I think he has Rust.

Chris (00:49:13):

As well as a little bit of electronics, because you can build boards on that. It is all simulated. It is very cool. We have shows about it you can go back and listen to.

Elecia (00:49:20):

And you do not have to spend any money to do it.

Chris (00:49:22):

It is totally free.

Elecia (00:49:24):

You can do Arduino interface, but you can also do the straight C interface. You are not stuck in any one place.

Chris (00:49:34):

That would be a good place to just kind of explore first, before you make any decisions. Along with some books.

Elecia (00:49:42):

There is a book in this field that I have heard of.

Chris (00:49:46):

I do not know what you are talking about.

Elecia (00:49:47):

It is called "Making Embedded Systems."

Chris (00:49:48):

Who wrote that?

Elecia (00:49:48):

I did.

Chris (00:49:51):

Wow. When did you do that?

Elecia (00:49:53):

It seems like four lifetimes ago, and yet yesterday.

Chris (00:49:56):

Hmm. All right. But definitely- Yeah, the approach of doing projects, going through the pre-made examples, and that stuff. I have one more suggestion, if you really want to go whole hog and be attractive to companies doing embedded now. Is as soon as you get through the initial hump of stuff, immediately start learning Zephyr.

Elecia (00:50:17):

I would have gone, immediately start learning...

Chris (00:50:21):

Free RTOS?

Elecia (00:50:22):

Edge.

Chris (00:50:22):

Oh! No!

Elecia (00:50:22):

Edge Impulse.

Chris (00:50:24):

No!

Elecia (00:50:25):

You do not think so?

Chris (00:50:27):

I mean, if they want to. If they are into that.

Elecia (00:50:27):

If you are already liking machine learning and AI-

Chris (00:50:31):

Yeah. Yeah. But that is-

Elecia (00:50:31):

There is space for you there.

Chris (00:50:32):

That is still a niche thing.

Elecia (00:50:33):

You did not mention what you do do professionally.

Chris (00:50:35):

Yeah.

Elecia (00:50:35):

I guess I assumed software, but I do not have any reason for that. Topics to focus on and study resources, it depends on what you are having trouble with. If you are having trouble maintaining motivation, then communities. Go on the Adafruit Discord and hang out with people who want to do things.

Chris (00:50:59):

Find a project you are interested in making.

Elecia (00:51:02):

Maybe something that either makes you laugh, or makes your life easier, or helps someone else. It is easier to maintain your motivation that way.

Chris (00:51:12):

Or a project whereby you maybe learn two things at once. Like, "Okay, I want to make something," "I want to learn how to do signal processing or some audio thing." Or, "I want to learn how to make a display out of RGB LEDs, and control that." That is something you can learn alongside the embedded system that needs to drive it. So anyway. There are just different ways to motivate. Sometimes-

Elecia (00:51:42):

Art, music-

Chris (00:51:43):

Sometimes anchoring one thing you are interested in, with something else you are interested in, as a force multiplier.

Elecia (00:51:51):

Let us see. Gabe has some nice things to say, but says, "Most of the time I do not do personal projects outside of work. I worry about this having an impact on my abilities as an engineer, and wonder what your opinion is on personal projects. If those are important to making a good engineer?" <laugh>

Chris (00:52:17):

This is going to sound weird. It is going to sound very weird. But contrary to the answer I just gave- No! I do not think so. I do no personal projects. I have never done any personal projects that are- Okay. It is a little bit of a lie, but not much. I have done small number of hours of personal electronic projects, that are not just kits and stuff.

Elecia (00:52:43):

Those do not count? Why would those not count?

Chris (00:52:46):

Because I am not really learning anything, soldering up a kit. I do not think- If you have already gone through the education stuff, and you are in the pipeline and you have a job, then no, I do not think you need to do personal projects. Unless you want to.

(00:53:03):

But if you are trying to level up and get into something and an experience, and you do not have a job to bootstrap that experience, then yes. How is that?

Elecia (00:53:14):

So if you are enjoying your job, and you are learning things on your job, then focus on your job. You do not need to worry about personal projects.

Chris (00:53:24):

Yeah.

Elecia (00:53:26):

If you are not learning things on your job, then think about a personal project that would help you learn things.

Chris (00:53:33):

Yeah. Yeah.

Elecia (00:53:33):

If you hate your job, but you are learning things or getting paid enough money to stick it out, then personal projects in a different area. So when I have a lot of coding to do, that is when I tend to do writing as a personal project. When I have writing to do for work, documentation or whatever, and if I have to do that for a while because it is an FDA or FAA project, then I tend to have coding projects. Little coding projects, silly coding projects.

(00:54:10):

Being a consultant, sometimes I have coding projects because I do not have paying work, and my coding project is a way for me to learn things. But if you have paying work, the fear that you are going to fall behind because you do not have to do free work. No. No. Do not beat yourself up about that.

(00:54:32):

If you like doing the coding projects at home, great, do them. But your brain only has so many oomphs to give. You do not need to spend them on trying to impress an industry, when you have a job in the industry,

Chris (00:54:52):

We do not do this to other jobs. You do not see people going up to plumbers and saying, "Do you like to install toilets after you come home, at your house?"

Elecia (00:55:02):

For free?

Chris (00:55:02):

For free.

Elecia (00:55:03):

Open source toilets?

Chris (00:55:06):

People who work on-

Elecia (00:55:09):

Do you design the inside of toilets, for your own amusement?

Chris (00:55:11):

There are jobs where the people are passionate about stuff. Maybe chefs come home and they like to make stuff. But they are probably not running-

Elecia (00:55:18):

But I bet there are lot of chefs- A lot of chefs say-

Chris (00:55:19):

Running a line in their home kitchen, right?

Elecia (00:55:22):

"I eat noodles and eggs for most meals."

Chris (00:55:25):

So we do not demand that. It is fine to do it, but we do not demand that of other professions. I feel like there is a movement to demand that in our profession, and I do not like it.

Elecia (00:55:35):

If you would rather read science fiction books or-

Chris (00:55:37):

Play the drums for two hours.

Elecia (00:55:39):

Cooking books. Or <laugh> play the drums for hours a day. It is better to be well-rounded than to be burnt out, for sure.

(00:55:47):

Let us see. Yen asks how we are doing mentally.

Chris (00:55:55):

<laugh> See previous newsletter.

Elecia (00:55:57):

Any changes to your strategies for preventing burnout?

Chris (00:55:59):

Ahh.

Elecia (00:55:59):

Let me go on with Yen's message.

Chris (00:56:03):

Yes. I am sorry. Sorry.

Elecia (00:56:05):

For Yen, having a clear boundary has made them feel that things are more under their control, which is helpful. "For instance, allocating a time block to focus on aspects I enjoy. Coding, designing, instead of project management. As well as consistently stopping work on time." Not saying they can pull it off every time, but it is beneficial to them. These are good strategies.

Chris (00:56:27):

Excellent strategies.

Elecia (00:56:29):

Journaling has been one of the things that has helped me. It is weird, because there are times where I am like, "We have to go to the beach. I need a sticker." Which is bonkers, but effective. It actually makes Chris go to the beach, because I need a sticker, which is silly. I need a sticker, which I already own. Anyway.

(00:56:59):

But it also, like Chris's journal, has helped me to realize that I am doing things. Even though at the end of the day, I never get everything done I want to. In work, in life, in everything. I am making progress. I am doing things.

Chris (00:57:19):

Let me stop you there. Because I also think you do not necessarily always need to make progress and do things.

Elecia (00:57:25):

I have been thinking about that lately too. That at some point, you do not have to make progress.

Chris (00:57:32):

It is a bit of a- I know the growth hacking in the growth mindset stuff, seeps into everybody's life these days, because it is very popular. But we do not actually need to always be doing stuff and improving things. Sometimes it is okay to just not do anything.

Elecia (00:57:49):

But then they say that you have to keep learning things, or you will get Alzheimer's or whatever.

Chris (00:57:53):

Who says that? And you will never stop learning things. I am just saying, there does not have to be an every day-

Elecia (00:57:58):

Push.

Chris (00:57:59):

"What did I do today to improve myself?" Sometimes I did nothing to improve myself, and that is improving myself more than going out and trying to climb a ladder.

Elecia (00:58:09):

The best thing I did today to save the world, was to not try.

Chris (00:58:12):

Yeah.

Elecia (00:58:12):

Because that means that tomorrow, I will actual have the energy and oomph to do it.

Chris (00:58:20):

To their question. The strategies are good. One of the things I find about burnout is very difficult, is sometimes strategies are difficult to implement.

Elecia (00:58:28):

But time boxing is one of the easier ones.

Chris (00:58:30):

Time boxing is easier. A little harder, because we have got this loosey-goosey consulting schedule, which I have never been very good at managing, especially when I have burnout.

Elecia (00:58:38):

Yeah, time boxing is harder to do when you do not want to start.

Chris (00:58:41):

Do not want to start, or do not know when somebody is going to ask you a question, or want to do something. Because the clients are kind of asynchronous. We are not in an office with them.

Elecia (00:58:52):

Yeah. I clocked out when I should not have recently.

Chris (00:58:54):

Right. You clock out at four, "I am done." Then at five o'clock, "Oh, could you look at this for me?" And it is like, "I can say, 'No,' but it is hard." Or, yeah. So there is that stuff. I am trying to be better about setting some boundaries.

(00:59:08):

They asked what we are doing going forward. I am cutting back on some clients. I am looking to take a bunch of time off. Both in the short term, just a day or two here and there, and longer term, maybe take a longer break. But that is my plan, is to put some more distance between me and the computers.

Elecia (00:59:31):

It is funny, because your drums are surrounded by computers.

Chris (00:59:35):

But they are drum computers.

Elecia (00:59:37):

Those are different.

Chris (00:59:40):

That computer cannot talk to the internet. That computer cannot run any social media. It is also the most expensive <laugh> computer we have.

Elecia (00:59:50):

<laugh> What is it?

Chris (00:59:51):

A drum module. That?

Elecia (00:59:53):

Yeah. But it runs your electronic drums?

Chris (00:59:55):

Yeah.

Elecia (00:59:55):

Okay. Yen followed up with a practical, possibly complex question.

Chris (01:00:02):

Hmm. Okay.

Elecia (01:00:05):

They want to make an event-driven serial communication stack, that is compatible with both bare metal and RTOS. Strategies and suggestions for that?

(01:00:14):

The best way that they have thought of is to have an event queue function/size be specified in the application layer. So that bare metal apps push events to the comm stack in a main loop. The push/pop does not need to be ISR safe. Bare metal apps can implement the safeguards.

Chris (01:00:38):

Or RTOS app. Oh, okay. We are still in bare metal.

Elecia (01:00:40):

Still. Bare metal has to implement safeguards. Where RTOSs can use the functions as wrappers, and call APIs that have the interrupt disabling and volatile variables.

Chris (01:00:55):

That sounds fine. That sounds good. I think you are slightly in danger of implementing an RTOS with some of that stuff. And at that point the distinction is not as clear.

(01:01:04):

But yeah, having it run in a loop in bare metal, or having it run in a task and the RTOS is basically equivalent, so the communication mechanisms, and the protections, for the things you are after.

(01:01:17):

You are skeptical.

Elecia (01:01:21):

No, Yen went on to say the problem for the approach that he described.

Chris (01:01:26):

Oh! See, I never know when you are finished. <laugh>

Elecia (01:01:28):

No, no, no. You were right there. Is that it seems to make the event queue a requirement for the comm stack.

Chris (01:01:34):

Yeah.

Elecia (01:01:36):

They were hoping the queue could be optional. Or maybe move the event-driven to have queues.

(01:01:42):

No, as Chris was saying, at some point you are making an RTOS, and your bare metal apps have to call into that hardware abstraction layer. It is a hardware abstraction layer, and message queues, event queues, they are common.

(01:02:04):

So at some point you have to say, "Yes, I want a bare metal thing. But I also do not want to invent the wheel. So I am going to accept that there is an event queue, and deal with it that way."

Chris (01:02:23):

Yeah. Or you can hide the event queue further. There is always more abstraction you can layer onto things.

Elecia (01:02:29):

Yeah.

Chris (01:02:30):

I am mostly joking, but that is actually true. If you do not want people to see the inner workings, then put it behind somewhere else.

Elecia (01:02:39):

Oh. Yen also says, "Happy holidays and happy 2025." So this one, we might be a little late on replying to this one.

Chris (01:02:48):

Well, hopefully they have solved the problem. <laugh>

Elecia (01:02:51):

It was an interesting question.

Chris (01:02:53):

It is an interesting problem. Yeah.

Elecia (01:02:55):

But there is no- There is no obvious solution. It is always a hardware abstraction layer, and you are trying to make one that is compatible for bare metal and for RTOS.

(01:03:08):

If you want to use event functions, then you have to implement them in the bare metal. Or you have to have the hardware abstraction layer be dumber, and then the bare metal has to implement stuff on top. And so does the RTOS. So there is no single obvious solution.

(01:03:30):

Let us see. Are we out of time? I have one more thing we could talk about, but we do not have to.

Chris (01:03:40):

I am running a little long, but we can do it if you want.

Elecia (01:03:44):

I think I will keep one of them for later. I am not going to the Embedded- I am not keynoting. I am not speaking at the Embedded Online Conference. Not because I think they are bad or anything. Just I ran out of time and my presentation is not coming together. And for my own mental health, it seems like that is not a good thing for me.

(01:04:04):

We will be having one of the speakers on in a couple of weeks, so getting a preview. I am excited about that. I will probably be talking to a few other folks giving talks, because it is nice that people are interested and with it and excited to talk to other folks. And those are the folks I want to talk to on the show. Phew!

Chris (01:04:31):

Great. Did it.

Elecia (01:04:34):

Okay, so we did get one more. Let us see. I guess I should say the thank you and everything before we do the final bit.

Chris (01:04:41):

Okay.

Elecia (01:04:44):

Thank you to JoJo, to the dog, for being very quiet. Thank you to Nordic for sponsoring the show. And for their giveaways. Do not forget to sign up. Thank you to Christopher for co-hosting and producing. And of course, thank you for listening.

(01:04:59):

You can contact us at show@embedded.fm if you would like to say, "Hello." Or, "You guys said a lot of weird things. Why did you do that?" Or, "Would you like to have a full-time job podcasting about random things?" Just let us know.

(01:05:18):

So the last listener question we got, request question, was the Cookie Monster vocal metal version of Pooh's poem. This is, "Lines written by a bear of very little brain." I do not know if this is going to come out.

(01:05:42):

[Winnie the Pooh excerpt]