Embedded - 493: Put the Peeps in the Chili Pot
Episode Date: January 24, 2025Elecia and Chris talk with each other about the state of Chris’ mind, what makes an embedded developer stand out, “LEGO block” based design, unit tests, and astronomy. Whew! Elecia was recently ...on the Changelog podcast, talking about the world of embedded systems. Chris has been working with Micropython (we talked with Damien George about Micropython on episode 456). He’s using a Pyboard to start, but is looking to move on to this board from Sparkfun. Wikipedia has a nice reference on what the pulse-per-second signal is all about. Elecia talked about her experience using CFFI to drive unit tests. She also talked about some facts from Information is Beautiful. Chris’ telescope is the ZWO Seestar S50. There’s also a smaller Seestar S30 now which has a wider field-of-view. Title reference (Chris and Elecia both thoroughly enjoyed The Good Place, the TV show this is taken from.) Transcript Nordic Semiconductor has been the driving force for Bluetooth Low Energy MCUs and wireless SoCs since the early 2010s, and they offer solutions for low-power Wi-Fi and global Cellular IoT as well. If you plan on developing robust and battery-operated applications, check out their hardware, software, tools, and services. On academy.nordicsemi.com, you’ll find Bluetooth, Wi-Fi, and cellular IoT courses, and the Nordic DevZone community covers technical questions: devzone.nordicsemi.com. Oh, and don’t forget to enter Nordic Semiconductor’s giveaway contest! Just fill out the entrance form, and you're in the running. Good luck! Here’s one of the astrophotos Chris has taken: The Horsehead and Flame nebulae in Orion taken from a Seestar S50
Transcript
Discussion (0)
Hello, and welcome to Embedded.
I am Elysia, here with Christopher, and it's just us today.
So we're going to talk amongst ourselves about, I don't know, new podcast ideas, data loggers, telescopes, questions from listeners, all kinds of things
why we've been gone for
three weeks two weeks
some weeks we just missed one show
okay we've been gone for
two weeks
why have we been gone for two weeks
just too much just too much
everything's too much there's just too much of everything
it's fine we did it was weird
that we did okay through the holidays,
but then as soon as work started up, it was like, uh, anyway,
we're happy to be back.
And I am madly scheduling for the next six months.
So excellent. Who are we talking to in six months?
Uh, well, I have been promising Shimon, the Nand Tetris guy, forever.
We are going to talk to Kwabena from OpenMV.
They have something new coming out.
There's rumors that one of the Salier guys will come by, chat with us, and I have an idea about some sensors.
And so I actually just signed up for LinkedIn Premium so I could spam a bunch of sensor developers, MEMS sensor developers, so that I could ask questions.
I mean, that's what this show is about, really.
It's not about the listeners. It's just about me being able to ask the questions I have in my head
to people who believe they
are coming on a show for an entirely different purpose.
Right.
It's a trap. How are you? It's all a trap.
Yeah, it's always been a trap. I'm okay.
It's been...
Yeah, I'm okay.
Holidays were
a time of relaxation,
but you always superimpose on top of a time of relaxation all the projects that you want to do.
And so I didn't get a lot of them done or even start them or even look at them.
You know, when your project list is 200 lines long, the first project should be prioritize the top three and don't worry about the rest.
There was that.
And then getting back to work
has been fine, mostly.
I'm down to one client now,
which means I can focus.
Which was fine until they got a great idea to try a different
project entirely.
Yeah, so we're preparing for maybe a different project, which has been
a bit of a scramble.
From the outside, it's been great.
Lots of interesting new science
and cool stuff.
Well, you can do it.
Yeah, I don't know, anytime.
And I don't think I have recovered from the burnout that I thought I should have recovered from a year and a half, two years ago.
So I think I'm just stuck now the way I am.
And so this will be just a slow glide slope to, um, to, um,
Retirement.
Yeah. That's the thing.
What are you doing to get over burnout these days?
Um, what am I doing to get over burnout? Well, I tried to reduce my workload,
which failed because the workload increased at my existing client. I've tried to, well, so just
recently I have been disconnecting from not the internet exactly, but a lot of things on the
internet. So I have pared back my social media usage. Well, not just social media usage, but I have pared back my social media usage just to Mastodon,
where I have a curated list of people who generally talk about random things and not about, you know, outrages and events in the world.
Horrifying, terrifying, and enraging sort of things.
Mm-hmm.
I have disconnected from the news.
I have not read any news intentionally since Wednesday of last week, which is my longest run.
I have seen some unintentional news, but only a couple little things.
Some of that was from me. I'm sorry.
And so that's been okay.
That's helped to keep my anger level down, which is what I was getting in trouble with,
which isn't really burnout, but it's not helping with the burnout. Um, and so I've been reading
more. I've gone back to, I decided there's a little bit of, uh, activation energy problem
sometimes with reading, like, Oh, I don't have a really good book I'm reading right now,
or the book I'm reading is okay. And I read 20 pages of it a, and it's fine, I'm enjoying it. Or if I want to find a new book,
you know, do I really want to expend the 100 pages of energy it takes sometimes for me to
get into a book and really get addicted to it? So I've just been rereading some old books that
I knew were good and that I knew that I liked, which has been taking... Sometimes I feel like
my eyes just need to read something, and so they used to gravitate...
They often gravitated to reading crap
on the internet or on social media
and reading stuff, you know?
And putting a book in front of
my face does the same thing, as long as I
can stay into it.
You read
The Lord of the Rings and some
of the bonus material. That I did over the holidays.
That took me a while. And then you started Bujold's Rokosigan series.
Restarted for maybe the third or fourth time.
Yes.
I mean, you've read it before.
But it's been a long time, maybe 10 years since I've, maybe longer since I read it.
I've never gone that long between rereads on that one.
But I don't reread the whole series usually.
It's a good series.
You know, it was written starting in the 80s.
It's kind of classic sci-fi space opera
stuff but she's a very good writer with some strange ideas and um a expansive vocabulary
so she's fun to read and uh yeah i've been trying to keep my head down a little bit um
but i don't don't know that I'm doing anything else
that's particularly burnout-reducing.
I've not been convinced that anything really works.
And you have been learning things.
You've been taking an extensive drum course.
Yes.
And you have been exercising.
Less than usual, but yes.
But some of that's because you've been drumming for an hour and a half a day or some incredible nonsense.
A little bit.
And we do have the little dog, so we do take walks.
We've been walking a little more.
Yeah.
And then what about mental shifts?
We talked a little bit about growth mindset versus fixed mindset.
We talked about that two days ago. I haven mindset. We talked about that two days ago.
I haven't had a mental shift since two days ago, no.
Do you think that helps?
No, not to tell me.
Mental shifts are not...
They're fine to talk about.
They're very hard to implement.
And the mental shifts I have been trying to implement
have more to do with anxiety-related things
than burnout or goal-related things.
And those are hard enough to deal with.
So adding another mental shift is...
You built a little car, a puzzle, wood.
Yeah.
Does that sort of activity
where you're building something
help a part of your brain, or is it just
activation
energy? I don't know.
I don't know if getting things done helps.
Getting things done does help.
Getting things
so I don't have to worry about them helps.
Unfortunately, there's
always more to worry about. Well, I, there's... Always more to worry about?
Well, I think it's Merlin Mann who has this analogy,
but it's like a Kleenex box.
A lot of people with anxiety just think,
if I can get past this thing that's making me anxious,
then I'll be able to relax.
But there's always another Kleenex in the box.
Oh, yeah.
And so there's some of that.
Like, I do relax after some anxious thing
gets cleared, but it's not for a super long time. But things like little projects and things,
those are not anxiety-provoking to me. So the goal of those is I need to focus on something
that's completely disconnected from anything that I'm worried about or working on that has no stakes.
So, and even then, you know, I got a little mad at it yesterday
because I broke some of the pieces.
You heard me.
So I can't even, you know, fully relax doing that.
I think I watched, you know, a movie while I was doing it.
So I wasn't completely focused on that.
But yeah, it's a challenge.
One of the challenges at the risk of discussing current events or current anything is my distaste for the tech industry has not improved.
And the tech industry has not worked to improve that.
Did you notify them?
I did notify them and they did not listen.
Yes, my deletion of accounts had no effect on them. My complaining about them on this podcast or in other media or shouting at them loudly from the kinds of things I want to work on and for whom I want to work is causing me some consternation.
The kinds of things I want to work on and the people involved in them continue to shrink.
Let's put it that way. So not only is tech, even if something is disconnected from
all the bad stuff in tech, I feel like somebody's thrown paint over all of it. So even when I'm
doing something just normally with a computer, there's always that little thing in the back of
my head. It's like, well, you know what this company did today? Or you know what these people
are doing? Or you know what this person said? Or you know who's in charge of this or who's funding it. And it's getting harder for me to quiet that little
voice. So there's a little bit of enjoyment about using technology of any kind that's been sapped.
And then when you put work on top of that, it's like, well, I'm putting myself into this. I'm
kind of endorsing this by working on it or for it. And what does that say about me? And if I don't
fully feel on board with this, then it makes it much harder to actually do the work. So that's
the, I think that's what's kind of replaced the burnout for me is I, I'm not as tired as I was about working on stuff. But instead of it being
a me problem, it's a me problem plus a them problem. And I have improved that. I did make
some changes in my work, so I wasn't doing some of those things. But it's still hard because
there's always that... I feel like things have changed.
And maybe they haven't changed.
Maybe it's always been this way and now we just know it.
But that doesn't make it better.
The global bumblebee population increased 47% in 2024. So how can we train the bumblebees to be our bee army.
The fifth person
has been fully cured of HIV.
Yeah, I saw that.
Europe could power the entire world
with wind power. Why don't they?
It's not
distributed yet.
Amazon
deforestation, is that an all-time
nine-year low?
Yeah, that one I'd want to look at the graph, though, because at a certain point, you just can't go any further, right?
So that's a stat that could be, yeah, yes, I understand you're trying to give me positive things, but that doesn't...
No. I understand being down on the tech industry, and especially some of the tech industry leaders. I want them to be rational, logical, moral, humane human beings. That's a lot to expect, I know.
You can be completely rational and logical and inhumane.
That's why I needed all of the adjectives.
I think that's where most of them are sitting right now, but yes.
But I have to feel like I have done good in this world. And I have to feel like I still can.
And some of that is project choice.
I mean, if I could work on anything, it probably would be educational toys again.
Not only was that fun for me, I could see kids learn to read.
And that was just everything I wanted.
Medical devices we've worked on
have had an impact.
Sometimes.
Not all of them.
Not every time, but...
And there were things about
at least one of the medical companies.
Both of them. Both of them that were
in retrospect
very similar issues to
everything else. But the product was great, maybe, or helpful,
but there was a lot of other problems with the people.
You've worked on more than two, so this is confusing, but that's okay.
I said two of them.
Oh, okay.
Yeah, one of them was fine.
I see your point.
I'm not trying to convince you of anything.
I do not wish this convince you of anything. I don't, I don't, I would, I,
I do not wish this mental state on anyone.
And you are in a better place, I think,
because you haven't had a string of things that, that,
have been challenging that way.
Like, you got off one of them way early.
And, you got off one of them way early. And, you know.
I mean, I go back and forth with ShotSpotter.
It did help people.
You don't work for ShotSpotter.
Oh, you're worried about your current clients.
No.
I mean, there's nothing I can do about my past clients.
I'm not sitting here stewing about past clients.
I'm worrying about future clients.
And you don't think that you can work on useful, interesting technology?
I think it's difficult to find, A, and it's difficult to find useful, interesting technology that is not funded by people I find reprehensible.
Nothing you have worked on fits that.
I mean, you've done very well.
I haven't.
And there's a few things I've done that are fine.
But I've been closer to the VC realm than you ever have in recent years.
You've been mostly on research stuff and small little startups and science things.
And I haven't.
If you,
if no matter what you have,
you can find a way to make it bad.
Like if I think about.
That's not what I'm saying.
Leapfrog toys.
It's like all the plastic in the environment.
So I'm trying to be very careful here and not saying anything specific,
which is making it very difficult to have this conversation. You've worked on toys. You have worked on many medical products. You've
worked on undersea research. I have mostly worked on consumer products or a couple of medical
devices. Three medical devices? Yeah, three medical devices, one of which was fine, one of which was
insane, and one of which was maybe fine, but the company was run by insane people.
I mean, I've worked on DARPA things.
I've worked on...
Anyway, yes.
You're not going to fix me on this.
I don't need to fix you.
I just...
This goes back to the mindset. And I don't know that it's fix I just, this goes back to the mindset.
And I don't know that it's fixable that way.
You're right.
You can't shift me to enjoying things that I'm not enjoying.
Oh, but it's an attention economy.
If you can pay less attention to the bad parts and more attention to the goodness, then that's...
I'm not talking about anything, right?
I mean, yeah, what am I trying to say?
I mean, you're not talking about your current clients.
No.
I'm not talking about...
Your frustration is not with your current...
No, that's right.
It's with some future that you haven't investigated?
No, it's with computers.
It's with computers as a whole. It's with technology as a whole it's with technology it's with technology i know yeah technology technology
right now is dominated by uh a small set of powerful companies that have done something
politically in the last month that you and I find distasteful.
And you cannot go forward without using those products.
Okay.
And I'm not saying anyone should stop doing anything.
It just makes it harder for me and less fun.
Yeah.
Right?
I mean, so, yeah, it's a consumption thing more than a you know oh i don't like what this company
is doing i would stop using this product but i can't because it's computer fair okay that wasn't
very much fun i'm sorry everyone we'll put that to the end of the show uh yeah okay So I do have a listener question from Rene, who is actually the person who helps us with our social media. So he's not just a listener. He's also a friend. And I guess we pay him, so that too. But anyway, in the recent show with Nathan Jones, there was a discussion about the fact that putting
together an embedded system seems to come down
to putting together various parts.
The Lego bricks approach.
Yeah, modular.
And I know you have some current data logger
things to talk about.
Rainey wanted to
know what
can he do
in the embedded space to distinguish himself from others
if we're all reading the same data sheets and using the same techniques?
Yeah. Do you have an answer for that?
Sure. Sorry, I figured you would answer it.
I feel like I always go for those, so you should go first.
Systems thinking is a big part of it.
Instead of, yes, we have all these Lego blocks, but how do you put them all together?
Experience with the Lego blocks is really important.
So the first time you work with an IMU,
you're not going to understand how it all works.
Accelerometers and gyros are like magnets.
They do things you can't see, and it's really cool, but then you start to get confused as
to which is which, and until you really have them in your head, you can use them, but you're
never going to be quite sure what's happening.
And that's true of most things.
You need time and usage to acclimate to what it is they're supposed to do
and their most common failure mechanisms.
So just try it out.
But the system's perspective of where the data comes in, how it gets transformed, and where the data goes out.
And that transformation may be data storage, it may be filtering, it may be AI, it may be whatever.
And how it goes out could be to the cloud, to the user, to some LEDs. So stop thinking about your system as an accelerometer and a GPS
and a data logger and all these individual pieces and start trying to architect it
as a view of what you want. So going back to the Lego idea, your goal is to become familiar with all of the possible Legos, or at least the very common ones.
And then to start to understand the language of how those go together.
Sure, you can make a 9x9 block out of 2x2 pieces.
Actually, I don't even know if that's true, but out of one by one pieces for sure.
But it doesn't hold together very well.
If you hit it with a hammer,
you can do anything with any combination.
Yes.
So if you want something to be able to hold together,
you don't use one by one pieces in Legos
because those just kind of fall apart into columns.
So your systems thinking starts going into patterns
of how these Legos go together.
It's not just what are all of them,
but the synthesis of them together.
And the way to build that sort of thinking
is to sometimes look at the things around you
and say, how would I block diagram this?
I know I'm really into block diagrams.
But I think it helps to understand your data pathway and how the common vernacular idioms, design patterns, that we use to build the systems. And that requires looking
at other systems. I think the short answer is to read. I mean, if I want to actually answer
Rainier's question for a change instead of just mumbling about it. Read all the books.
I'm not very good at it.
I mean, I try to get to one technical book a quarter.
I haven't chosen those quarters.
And I usually have a deadline of having a guest on the show, which helps a lot.
But if you can read Code Complete, read the design pattern book or read the Java, the headfirst design pattern book, just what those do for you is to tell you how somebody who really thought it through wanted to design stuff.
Beautiful Code is another one.
It's not an easy read,
but this is code that somebody really thought
was worth showing off.
And they talk about why.
And maybe that can influence you
towards more of the architectural thinking,
more of the systems design, and more of the how thinking, more of the systems design,
and more of the how do I write less code
and get more functionality?
Okay, that was my answer.
Okay, I have a couple thoughts.
First of all, I think that's a good conference topic.
Going from modules to,
I don't know,
I lost it,
but that whole thing
you just did.
Gaining the skills
from...
Moving from
Lego blocks
to systems thinking.
So,
think about that.
Christopher knows
that I'm trying
desperately to think
of a conference topic.
I have two thoughts
on this.
I have not read
many of those books,
so I can't comment on those. I do have a question about those in a second. even with the arrival of things like Zephyr which makes some things trivial
and many other things non-trivial
but just device drivers
understanding how device drivers work
understanding how data flow works in firmware
from a purely electronic point of view
I don't really know how to speak to that
but plugging stuff together is no big deal
but from a firmware standpoint an embedded software development standpoint being really good at integrating
multiple sensors and sensor systems and lego blocks if you want to call them that
into a coherent software uh a piece of software that you know takes the data in doesn't have
underruns or overruns handles errors and error conditions, is efficient and low power,
all that stuff, that's much, I mean, those are the skills.
The rest of it, I don't care what I2C device somebody hands me.
I mean, I can read a data sheet and do the stuff,
and they're all slightly different, but they're all basically,
I mean, you've seen one, you've seen them all,
they're all misdocumented in different ways and they do their stuff. But I think that's where the
real expertise resides is in knowing how to make any system work efficiently and cleanly and
reliably. And that's where you can distinguish yourself
because there's tons of, you're right,
there's tons of people out there
who can grab an Arduino or whatever
and put some modules together
and have something do something.
But having it be high quality,
that's where the distinction comes from.
And I don't know how you prove that to someone.
Usually in an interview,
they'll ask questions that probe that and they're looking for specific answers. distinction comes from. And I don't know how you prove that to someone. Usually in an interview,
they'll ask questions that probe that and, you know, they're looking for specific answers. But I think that's where I would put my emphasis in distinguishing yourself, not in,
you know, anything specific about getting better at data sheets or whatever.
And maybe some knowledge about the choices of things, too,
because once you get enough experience with the Lego blocks,
you know some of them are better than others.
Yeah.
When you talk about data float, do you mean things like DMA,
circular buffers, ping pong buffers,
and why you would use each of those?
Storage, latency, how to keep pipeline flowing,
how to deal with multi-rate
systems where you have one thing that's operating at a kilohertz and another thing that's operating
at 10 hertz, but they both have to come together in some way that makes sense.
And those seem divisible, but never quite are.
Buffering and all that stuff. That's all the hard stuff that nobody provides for you.
Even a nice RTOS or a nice HAL don't really provide for you.
I mean, at some point, you have the data coming in, and you need to do something with it.
And you need to centralize the control of all that and the state management and all that.
I mean, the firmwares were, for me, for an embedded systems developer,
that's where the expertise is.
And the rest of it, I could care less about.
I'd 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 VS Code extension provides the most advanced and user-friendly
IoT embedded development experience in the industry. Nordic's Developer Academy online
learning platform equips developers with the know-how to build IoT products with the Nordic solutions.
Nordics DevZone brings together tech support and a community of customers to provide troubleshooting and assistance on technical topics. 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're in the running.
That link is in the newsletter and in the show notes.
Do you want to talk about your data log?
Yeah.
So, I don't know.
Speaking of projects that are basically
just grab a handful of boards
and shake them in a box.
Yes, a smaller handful every day.
So, yeah,
so I have a project
where I need to make
basically a GPS data logger
that I need it to be
fairly high accuracy in time.
So beyond what
just reading the NMEA messages off the UART would give me.
Beyond the GPS messages.
Yeah, which I think a few hundred milliseconds here or there
are probably off based on UART timing and code and stuff.
So I need something that will also use the PPS signal.
Pulse per second.
Right, thank you.
Which is a GPIO that comes off GPS modules.
Wow, there's a lot of GPs in there.
And it's a highly accurate once per second at the start of a second signal.
And then software can use that to say, okay, this is where the time happened,
and this is how many microseconds at this timestamp and stuff.
So I want that.
I want to grab that, the time happened, and this is how many microseconds at this timestamp and stuff. So I want that. I want to grab that, the GPS location, timestamp it with a high-precision, high-accuracy timestamp,
and store it on an SD card.
That's all I want to do.
Just put that in the CSV file and continuously do that forever.
Do you have more data to put in there?
No, that's it.
So it's really just a GPS logger.
If there's an IMU, I might throw it in there
for kicks, but I don't have any use for it.
Why don't you
just buy a Garmin?
Because I have to put it in a very small
radio-controlled airplane.
And also, those don't
do that. You don't think this already exists?
I have looked.
Okay.
I mean, yes, I can buy
a Garmin or whatever, but
they're too big and heavy.
I need something that weighs just a few,
ideally 100 grams
or something.
Sure, if there's something out there that weighs nothing,
I'm happy to do it, but everything
I found was big and heavy and bulky and for
trucking trucks.
Right.
Which don't care about weight.
Anyway, where was I?
Maybe throw in some IMU data.
I think you're going to end up with more data in there.
At least maybe not right away, but maybe someday.
I don't think so.
Oh, I'm sorry.
I'm on a different project again.
Go ahead.
Yeah. That project doesn't have this problem.
This project has other problems.
I love that project so much.
I may hand it to you.
All right, so that's all I want.
And I've tried to piece it together.
I started out with like, okay, I guess DM32, and I'll do this, and I'll do it by NC.
And then I was like,
I don't want to make this a big deal.
It just needs to do a simple little thing.
And I was like,
micro Python,
micro Python.
We talked about this on the last,
last show where I was talking to some,
either the one with Nathan or,
um,
yeah.
Anyway,
so this is a recap.
Uh,
so I have a pie board that runs micro Python.
It's an STM 32 based thing that runs micro Python.
It's an older board.
It looked nice because it had an SD card slot.
I have a GPS that does PPS.
I did some limited testing and everything worked.
But now I need to package it up and write the actual code.
And I'm finding that I want to have a little display on it. And now everything's kind of a mess
because the PyBoard's sort of old.
A lot of stuff's not as supported in MicroPython as it was.
I'm having trouble with power.
It's all this mundane stuff that you have to do.
Like, yeah, it works great on my desk on a breadboard,
but I'd actually like to package it in a compact way and have a battery
and make it so that somebody can charge the battery
and make it so somebody in the field knows what's happening with this
and that it's working or not working, who isn't me.
So I need to make it a little you know product uh and it's that where i'm today i was like
piecing starting to piece it together like this is these a lot of wires these pieces are not great
so i went on spark fun looked around some more and it's like oh there's more support for the gps
stuff i want to do and the display and the raspberry to do, and the display, and the Raspberry Pi 2040, and the ESP32.
And I'd already had tried with the Raspberry Pi 2040,
but that would mean more wires because they don't have SD card.
I'd have to get a breakout board for that.
So I found some ESP32 boards from SparkFun that have SD card slot.
They have a bunch of other stuff.
They have a quick connector, which I may or may not use.
And it has an onboard battery charger and power subsystem.
So I'm eliminating a board there.
I'm getting better software compatibility.
Still using MicroPython,
but I think I'm moving to ESP32 ports
to save me some time.
But yeah, this is definitely,
this is a quick Lego project
where I don't necessarily super care about doing a great job on the software.
I just need something that works and is as minimal as possible, but also has a red light, green light that says, yeah, I've got GPS.
I'm writing stuff.
Battery's good.
Go fly.
You can do that all with one LED?
No, I mean, there's a little display.
Oh, you said display.
I still translated that to LEDs.
No, there are LEDs on the boards, and I don't know how to bring them out.
I might have to pop those off and do something.
Straws.
Straws.
I believe they're called light pipes by fancy folk.
Oh, okay.
But I call them coffee stirrers.
Oh, the solid plastic ones.
Yeah.
Okay, not an actual straw.
Because that would, with a hole in it, that wouldn't do anything.
You could do that too?
That wouldn't do anything.
All right, all right.
I mean, I guess you could look into it.
Please hold the straw up to your eye to check the battery level.
I want a podcast where people like me, which reminds me.
I was on the ChangeLog podcast.
Yes.
Last week.
Let's see.
The 15th of January. They have two folks, Adam and Jared, and they were super nice. And they are software folks who were interested in asking questions about firmware and making and
putting together boards and professional development and all that. It was pretty fun.
It would have been nice if I had remembered before the morning before,
so I could have, you know, prepared a little bit.
But suddenly on my calendar, there was a record of the change log.
And I was like, what?
And you'd had to do it on video.
And at the last minute, they told me, we're doing video first. And I was like, okay, then do we do the talky part?
But no, they just meant that video was the most important.
And I was like, as long as you don't care that I look half asleep and drunk, we're great.
You did fine.
So I'll put a link to that in the show notes.
Let's see.
How about another listener question?
Sure.
I didn't really read this one ahead of time,
so we're going to hope that Grant P. has written this in a way that I won't stumble over too much.
Grant is working with a team of embedded developers
trying to make a guide to systematic troubleshooting of returned devices.
It could be hardware or software issues on their battery-powered, low-powered IoT device.
And do we have any recommendations for resources to help guide the mindset of troubleshooting the returned devices? Grant is leaning into this
with the angle of being forensic, that is trying to collect as much important
information early on without disturbing the crime scene,
such as the download internal and external flash.
Huh. I have very little experience with this sort of thing,
except at a distance.
I do think that the skill set is sometimes different than the developer skill set.
Some of the better testers I've worked with were not developers.
Or certainly not the people who are working on the product itself.
Because there's some bias there, right?
Right. The engineers tend to think about the good path, the intended path.
And good testers and
good quality control
tend to think more about the
how am I going to put things in a
semi-random way?
What is the worst thing I can do to this thing?
You know?
Where it's like, oh, I don't want to break it.
I made this.
Well, and the engineers tend to do the same thing
each way.
Each time, it's like I do these set of steps
because these are the set of steps
that I used to develop the system. And the tester's like I do these set of steps because these are the set of steps that I used to develop the
system and and the tester's like huh let's just take those steps and shake them up or even better
don't talk to me and I'll develop my own steps yes and when it breaks you'll be like what did
you do why didn't you do it my way and I be like, no one should have to do it your way.
In terms of techniques and things for being forensic, gosh, I don't know.
I mean, it really helps if your developers are on board.
Providing visibility.
Providing the debugability.
Like, why did the system reboot?
How many times did it reboot
with this cause of watchdog?
Does the system right now
as it's booting
have any information
in its power on self-test?
You're writing core dumps
or small core dumps
or things like that,
backtraces.
I think Nordic is sponsoring this show,
but I should mention Memfault
because a lot of what they do
is trying to get these
sorts of crash dumps
out of your system in a way
that is useful.
So
if you can get your
developers to provide
crime scene tape,
that would be awesome.
It depends on the kind of device, too.
If there's long-term storage,
that changes kind of what you can do.
If there's...
Yeah, it would be nice to read everything out
before you modify it.
You don't want a system that you have to flash the
firmware in order to figure out what's wrong,
because the chances are you just erased what you needed.
Yeah, is there stuff you can do from the bootloader that's non-destructive?
But it's tricky because...
Or even a bed of nails if you're willing to take it apart.
But again, that can be difficult if it's only flaky when the board's together.
Yeah.
And I think it's a really hard problem because anytime you measure something, you run the risk of altering it.
Right.
So, yeah, getting as much information at the time of fault and squirreling that away is really helpful.
Because trying to reconstruct what happened to something, if it's just not working, you get it, it's not working, and somebody says, blah.
You know, sometimes it's, yeah, this component is dead, or, you know, there's a firmware, well, if there's a firmware bug that's causing some strange behavior, that's the hardest to kind of backpropag propagate to the source if there's not a lot of
trace data. Right. You kind of need the stack dump. From an electrical perspective,
you probably have a way to open your device if the place where you open it could have
some test points or pins, not even pins, pads,
so that you can test as much as possible with only removing a very small part of the system,
just removing a cover in order to get to those test pins.
That will help because then you don't take apart the board.
And when you do take apart the board and you find the solder glob,
it's, oh, okay, that makes sense.
But you want it to fail. I guess, okay, so you get the board and you find the solder glob, it's, oh, okay, that makes sense. But you want it to fail.
I guess, okay, so you get the board back.
First step, does it fail for me?
That's got to be the first step.
I don't know, because that could be very destructive.
Actually, you're right.
The first step is, do I have any information about how it failed before I try it again?
Can I get data from it without running it?
Yeah.
Which I guess means that if you have an SD card or a flash, you want to be able to power the flash and read it.
Which goes back to opening the device with a minimal ramification on the board.
Which I think goes back to if you want to be forensic,
you need to have as sophisticated fault handling and logging
as you can possibly get in the firmware.
Because anything else, you know, if it's electronic,
I don't know how to talk about that.
Yeah, you probe it until you find something that's not working, I guess.
But if it's a software fault or a suspected software fault,
your only choices are what logging happened when the fault happened
or, well, I guess we try it again in an environment where we can observe it.
Right?
Yeah.
Yeah. observe it right yeah and i mean as you as you get boards back and you start collecting them into
battery failures um battery disconnect failures battery low voltage battery won't charge you know
you get all these buckets and then you get these over here where the firmware won't update for some reason or it won't boot.
And then you start looking at the buckets and see which bucket has the most in it.
And that's where you need to spend more of your time doing the forensic information.
Don't, I mean, I really think it is important to have the basic forensics of why did it crash and why did it boot but don't build too
much in until you get an idea of what's likely to go wrong because you can make the best absolute
most rock solid subsystem but it turns out that was never going to fail you could have just put
in something cheap this is this is about optimization yeah you don't optimize the fast You optimize the slow parts. It's the airplane picture with the holes in the wings.
Oh, tell that story. I'm not sure everybody knows that one.
So I don't know if it's apocryphal or not. I'm not sure that it is, but...
World War II?
World War II, yeah. So I'm going to butcher this story, but the picture goes around on the web. And the
picture is a picture of an airplane with a bunch of red circles all over its body in various
locations. And the question was, well, we keep getting these planes back from the field for
missions, and they've got damage in these areas. And so the first thought from whoever, apocryphally, was doing this work was,
well, we need to put more armor in those areas. And the twist in thinking is, no, you don't.
You need to put more armor in the areas where there weren't hits because those airplanes did
not come back. And that's trotted out on the internet a lot of times for incorrect thinking about fault handling and securing things.
You're putting your safety where things don't happen.
Which I think what you're saying is don't invest a lot of time in things that are already rock solid.
Yeah.
Don't invest in the things that aren't failing or are failing in completely expected ways.
Yes, getting bullet holes when you're being shot at.
That's actually an okay failure.
There's a lot of nuance to that because you don't actually want bullets to go through airframes because people are inside them usually.
But, you know, the airplane came back. whether or not the airman came back that's a
separate issue but um but yeah but definitely don't don't over engineer areas that you know
try not to over engineer areas that don't need it don't need it yeah don't like like like you know, I don't know, you have an SD card that gets used once every two months to write one thing.
Well, don't put a lot of effort into the wearer leveling system or something, right?
Or don't get a really expensive card that can handle a billion writes because you're not doing a billion writes.
Yeah, that sort of thing.
One of the related topics that came up on the Slack was how do you write unit tests?
And I was hoping you and I could talk about it a little bit, because this actually is a harder problem than I expected.
I mean, a lot of people have very strong feelings about a lot of it, down to the level of methodologies, right?
I mean, test-driven development is not unit tests per se, but it is a philosophy around testing.
That you write the tests first.
Yeah.
Which, I like the thought of that.
I don't necessarily do it, but I do always think about what the tests are going to be as I'm writing.
Sure.
Which was a change for me from the start of my career.
To think about, okay, well, how do I test this and how do I write this so it is testable?
But no, it wasn't even, or maybe it was, that wasn't what the conversation was about. No, it wasn't.
I thought it was about which framework do you like.
No, no, no.
Oh, that was a separate one?
Okay.
This was more what makes a good test.
Okay, so let's say we're writing string copy.
This is a function everybody kind of knows.
You have one string in, you have a bunch of memory in.
How do you write a unit test for string copy?
You put in cat, you make sure cat comes out.
You realize that a lot of people forget the terminator,
so you make sure that the terminator happens in the one you get out.
Mm-hmm.
But that's, I mean, is that testing stir copy or is that testing the user of stir copy?
No, no, that was, did stir copy remember to copy the null?
Oh, remember to copy the null.
Okay.
Mm-hmm.
You test some characters that are not A through Z.
Sure.
You pass null in.
You pass null for the source.
You pass null for the destination.
Yeah.
And then do you get a Monte Carlo simulation to create a thousand different strings
and then verify they all come in and out the same?
I wouldn't.
Exactly.
But this goes back to the conversation about overengineering.
I think you test, well, I mean, yeah.
You test the good path.
You test the good path.
You test what you intended to do.
And as an engineer, I tend to try to think, okay, what is the most common or what are the two
or three most common errors that are likely? Like failing to put on a null termination inside string
copy. And then I have to admit, I'm kind of done at that point. It's kind of the 80-20 thing, right?
For something as simple as strcpy, how much effort do you want to put in for how much benefit?
And you listed some major things.
Does it copy the string?
That's like 95% of what it should do, right?
Does it also copy the null character?
Yes.
Does it test for garbage, you know, bad input, bad pointers or whatever?
Sure.
Okay, good.
I mean, sending null in as the source is really important.
So beyond those things, I think you've got your 80-20 benefit, right?
You've caught most of the things.
And now what the unit test is for at that point is did somebody break this?
Yeah.
In the future. Not did it suddenly decide to stop
working properly or did it suddenly decide to stop working if i try to copy this line of shakespeare
what is actually likely to happen right is and you're allowed to look at the code if you're
writing a unit test you're not a black box developer. So, when you're looking at the code, like your Monte Carlo thing, what is that
going to catch, looking at the code?
Nothing.
Right? I mean... Maybe
you also test for a really
long string.
But what is that testing?
If you know the code,
what is that testing? That would
test...
I mean, if I know the code, I'm not sure.
Maybe the for loop was written incorrectly.
Maybe it has an artificial limit somewhere.
Looking for an artificial limit.
And the idea that in the future
someone might change it.
Yeah.
The other...
Yeah, see, the white box
testing, being able to look in the code,
it's easy for me to just logic away all of the tests at that point, which isn't good.
But that's not necessarily bad, because the point of the unit, my feeling about unit tests is you're trying to establish a base level of functionality and check that it doesn't regress.
And you're trying to do it, my philosophy has always been do it around the core stuff.
Again, finding the things that are likely to break.
Make sure it works and then check the most likely to break things.
Most likely to break things are the most critical things if they were to break, which is slightly different.
Yes.
So if you've got something that's your device right and it's
doing some signal processing and there's a filter and the filter is the device like that is the most
important part of the signal processing chain if that doesn't work then your outputs are all wrong
and the thing doesn't work right a kalman filter or something like that i don't know how you do
a test a kalman filter just go with me here something like that this I don't know how you do a test of Kalman filter. Just go with me here. Something
like that, this core little building block, that's maybe one function that does a bunch of processing.
That's the thing I would spend all my effort doing and maybe do what you're suggesting about
have a wide range of inputs and outputs to check from. Not as a exhaustive test, like,
okay, we have to put all the real numbers in and check that all real numbers
are processed correctly coming out and then after the heat death of the universe we can say we can
ship it but like a broad range of things kinds of inputs and just check those against the expected
values and that's again just to catch did somebody come in here and tweak something unexpectedly and
now it's not doing a week maybe it it's not doing anything wrong. Maybe it's filtering differently, and it's just shifted
a little bit, and maybe that's not a problem. Maybe it's still within normal limits, but you
still want to catch that and say, oh, this changed. So that's my philosophy toward it. Less about
test every function in your thing and have a unit test for it.
Because a lot of those functions never change.
You write them once, you write a unit test,
and then nobody ever goes back and looks at either one again.
One of the things with unit tests that I have found that I have a strong opinion about is that they are one of the sources of documentation for the code.
That's fair.
I have a strong opinion about that because I learned about CIFI,
which is a Python C runner.
So you put in some C code and then Python runs your test. But the C code is in Python,
and the headers was actually text in Python.
And it was shocking.
I have no idea what you're talking about.
I think I'm having an episode.
I think I did.
I mean, it totally defeated the purpose.
It's in Python, but I write C code, which is...
In quotes.
In quotes, which is interpreted in Python,
or does it go and compile it and then execute it?
I mean, it must compile and execute it.
Is this like putting an assembly block in C?
Yes.
Except putting C in Python.
Yes.
All right.
And as far as being able to use it
as a documentation method,
I ran screaming.
It was used as a documentation?
No, no, no.
When I write unit tests, part of what I'm doing
is making sure...
The first thing that I do with
string copy is try to copy cat.
And then if somebody comes and looks at that,
they're like, oh, this is how I use that function.
What's the ostensible purpose of this?
Large automated unit tests.
Oh, so it's a unit test thing,
but you put the C in the Python?
Python, and you drink them both up,
and you call the doctor in the morning.
Yeah.
So the code...
I just placed...
He just answers the question.
Bear with me here. The C code that you're putting into Python is the test or the code under test?
The test.
And the header.
Why?
So the question I have.
So many questions.
You put the peeps in the chili pot.
And it tastes bad.
Yes.
The question I have.
Just the one.
Is once you have the unit test in C, why are you in Python?
So that Python can run all of the tests and tell you what went wrong.
And so you can do like Monte Carlo
things. Do you understand
the person I'm not talking to you,
I'm talking to whoever made this. Unfortunately, the person we're talking
to is probably listening, so I'm going to
be in so much trouble, but go ahead.
I just can think of eight different ways of doing that
that don't involve embedding C code in
Python, that's all. I mean, you could script, have
Python run the unit tests and check that's all. I mean, you could script, have Python run the unit tests
and check for the output.
I mean, Python can execute things and check its output.
But the goal was to be able to have a whole bunch of different inputs
to the function, like we were saying with the Monte Carlo simulation of inputs.
But isn't the C code doing that?
Python is driving the inputs
to the unit test?
The Python,
so you put the C code in,
the unit test C code,
as opposed to the code under test.
Yeah, yeah, yeah.
Unit test C code,
Python can update that
to have different tweaks.
Oh, so it's doing code generation.
I think so.
It's able to modify the C code.
Yeah.
Ciffy, C-F-F-I.
It is...
It is something.
Really something.
It's like when my neighbor told me
that my octopus
art in the library looks like it was
really a lot of work. And I was like, all right, I can hear that that's not a compliment.
And that's okay.
You don't have to love everything I do.
I'm too old for this.
I'm sorry, Christopher has retired.
Can you put an assembly block inside the C block inside the Python block?
No reason I can't.
Why don't I just go ahead and do that right now?
Let me go type, type, type that in.
I'm trying to figure out another level
that we could wrap it in somehow.
Can we put Python inside something else?
I mean, there's no reason why Python
shouldn't run from a shell script.
No, but you can't embed it like that, I think.
I don't think embedding it is a good idea.
Can we put the C code inside MicroPython?
Also, weirdly, as I was doing this,
I realized that I am totally dependent on color coding now.
Oh, in editors?
In editors.
I didn't realize how...
I mean, because I can type things into Slack or message boards and stuff, and it doesn't really bug me, but.
Black and white photography to color.
Yeah.
Yeah.
Wow.
What do you mean you didn't change that to be a variable color versus a keyword color?
So you take the C code and you put it in the Python code.
You stir them both up.
I just,
I'm sure that
it might make sense
if I think about it
and see how it's used more.
But my first impression is what?
No,
I put it in Complaintatorium
and somebody
immediately said,
yes,
yes,
so much yes.
Or enthusiastically agreed
that this was wrong.
I just think that
not every idea is a good idea.
There's a lot of ideas out there.
If you wanted to do mass testing on the order of trying all the inputs.
Yeah, but I thought there were other frameworks that did all that.
There are.
And are driven from Python or whatever you want.
I'm leaving parts out of the story.
All right.
That's fine.
There was a discussion of what way was better.
That's fine.
I don't want to make anybody.
I actually agreed to this way.
I don't want to make anybody mad.
And I didn't realize about the header.
And I don't want to, you know, I don't want to.
Tell me about your telescope.
So, yeah.
So, yeah.
So one of the things I've been doing is trying to look less at things on the Earth and more at things that are hundreds to thousands of light years away where no one can bother me.
So I've been trying to get back into astronomy.
So it's difficult because astronomy is expensive and it's difficult and hard and a pain in the butt and it's cold.
And we don't, I mean, we have light pollution.
We can see stars.
We have better light pollution than like 90% of people.
But we can't see the galaxy, the Milky Way.
We can see the Milky Way on a good night, I think.
We certainly can see it.
I cannot.
We certainly can see it from the beach which is a quarter mile away so it's not
like we're in a it's the suburb that's causing light pollution to be through the sky it's that
our street has you know there's houses next next and our eyes aren't adjusting properly
so we're at what's called portal five portal five a portal fortals this is a good place heavy
episode it's a portal five zone which i don't remember what that translates into, minimum magnitude.
I think it's like you can see magnitude 6 stars or something like that, but it's the limit.
It goes from Bortle 1 to 8, and 1 is the darkest sky on the planet.
And that's like you're in the Atacama Desert or something.
And it looks great, but you'll probably be eaten in seconds.
Or desiccate.
Eaten by what? The chinchillas?
The pumas.
We watched this great nature show, but he kept saying puma.
We're past an hour here, so I'm just going to...
You can stop listening because nothing here is going to be serious from now on.
But yeah, who was it?
That was, was it Hiddleston?
Tom Hiddleston was narrating it?
Or was it Bumber Catch?
Benedict Cumberbatch?
Benadryl Cumberbatch.
One of those two guys.
No, Cumberbatch was the guy who couldn't say penguin.
He says penguin.
Hiddleston is the one who says puma, which may be a perfectly fine.
Anyway, Bortle 1 is where the pumas eat you.
Okay.
And then it goes down from there.
Bortle 4 is like you're way out of the city in California somewhere.
You can see the Milky Way 3 and it's above. You're way out of the city in California somewhere.
You can see the Milky Way, three, and it's above.
That's a measure of how dark your sky is most of the time on average.
So for visual observation, that's really important because you simply cannot see stuff if the sky glow is too bright.
Your eyes don't work that well.
But you've got a telescope to defeat all of that.
I like doing astrophotography, and i was never very good at it i've done a little bit in recent years with my
regular camera uh for some comets and stuff um and you used to have a pretty good rig i had a
pretty good rig yeah so i had a pretty good rig that i bought in the late 90s. It was expensive. It's now very old. And I got rid of that. I got rid of it
because it weighed about 75 pounds. And there was just no way. At night, I was taking all that stuff
out there and setting it up and polar aligning it and doing all of its crap, hooking a camera to it.
And we've a lot of trees. So polar aligning actually is quite an adventure.
Anyway, it's really a pain in the butt. Takes about an hour to set up. I ruined my back doing it. And we have a lot of trees, so polar aligning actually is quite an adventure. Anyway, it's really a pain in the butt. Takes about an hour to
set up. I ruin my back doing it.
And then I'm cold and don't want to do anything.
In the last
five years, there's been some advances
with telescopes, amateur
telescope stuff.
One of the advances has been
due to something called plate
solving.
Tectonic plate solving?
No, nobody solved that.
Since we have a lot of really capable computers that don't cost anything now,
like Raspberry Pi-level stuff, and they can store a lot of data,
what you can do for...
I'm all muddled, but what you can do is you can point something somewhere and
the telescope can figure out where it's pointed, right? Just by looking. So it says, oh, there's
a bunch of stars. I have a vague sense of where I'm pointing based on my compass and that elevation
that I'm pointing. And so I'm looking at these stars, what stars are those? And it can go through
a database and figure that out
and suddenly know where it's looking.
So that's very important.
So what that has made is a lot of kind of go-to telescopes
where you can say, go find me the M81 galaxy and point at it.
They've always been these things,
but they've required a lot of calibration to set up.
Like you have to point either polar align or point at three.
If it's not an equatorial scope
where it's rotating
about the celestial pole,
if it's just pointing
up and left and right,
alt azimuthal it's called.
He's doing hand motions.
It's a duck.
Then it has to do,
look at some particular stars.
You have to calibrate it.
And it's kind of a pain.
But now you don't have
to do that anymore. You can set a telescope out, level it, and if it has calibrate it. And it's kind of a pain. But now you don't have to do that anymore.
You can set a telescope out, level it,
and if it has a compass in it, which most of them do,
you can just press a button and it figures out where it is,
or it will just go wherever you tell it to and look at that object.
So that's all gotten really easy.
So you can build a system with a camera, a mount,
and one of these little computers that will not only point where it wants, it will run the camera too and take the images and store them.
And some of them will stack them and do some processing.
And I don't know if I want to get deeply into stacking.
It's complicated.
But anyway, you can build a system for like that
for like $1,500. It'll be very
capable of astrophotography and
pretty easy to use. It still has
a lot of wires and setup and you have to do some Linux-y
things and be an expert.
There's something called Stellarmate that runs on
Raspberry Pi. There's something called Astroberry
which
sounds like a breakfast cereal.
Astroberry. Start your day off right.
And some other stuff.
They run on Raspberry Pi and do all this stuff for you.
And you plug your camera into it.
You plug your telescope into it.
All telescope mounts.
You don't plug your telescope into it because they're just optics usually.
But the telescope mount is the thing that moves around and points at stuff.
And that has a standard interface and has for years for how to plug into things.
So those all work.
Lately, companies in the last year or so,
maybe two years, but mostly the last, yeah, I think last year too,
companies that make some of these parts
have started integrating them into little smart telescopes.
And the great thing about little smart telescopes is I don't have to spend a lot of time worrying
about stuff.
So the little smart telescope has the telescope.
It has the camera sensor.
It has the mount for moving it.
It has the little computer for figuring out where it's going to go and for taking images
and storing them.
And it came with a tripod, but you weren't into it.
It's a fine tripod, but it's very short.
So if you need to raise it up a little bit, it's for tabletop kind of stuff.
So if you're in an apartment and you've got a view of the sky,
you could do that with a balcony.
And it talks, unfortunately or fortunately, to a phone,
the Android or iOS.
Bluetooth.
Wi-Fi for the real data stuff.
But Bluetooth to say, I want you to go check out Ryan's belt.
No, I think that's all Wi-Fi.
It did do Bluetooth, but I thought that was just for discovery.
Like, where's my telescope?
And it can run autonomously.
So once you've said, go image M81 and have a ball and take a bunch of shots of it for later integration, you can leave and disconnect your phone.
And in fact, he did.
I think we watched the whole movie.
And it just sits out there in images, which is kind of cheating.
There's been some people on the telescope forums I'm on who were like, well, back in my day, you had to get a star atlas out
and figure out where to point things by hand,
and then you had to use film and develop, whatever.
I don't care.
I'm old, and I've already done all that stuff and paid my dues.
So at this point, I just want to take pretty pictures.
So this is getting me back into astrophotography in a really easy way.
And the great thing about it, yes, low friction.
And that's what I've been trying to do with my life is many of my hobbies I've been trying to make easier so I can enjoy them instead of the apparatus around them.
Yeah, when you're talking about building one, I'm like, okay, I've seen you do that with like before we had TiVo-like things.
It's not as bad as that now for that.
And it seems like you're partially building a pet, which is great if what you wanted to do was build something to mess with.
Those systems are less pets.
The telescope system is less pets because the little computer thing just does everything but but yes that's certainly further along the pet direction than this thing which is like just put it out there level it and maybe
remember to turn on the dew meter do do do heater yeah which it has an integrated do heater it's got
everything it's really cool it's like a dew heater keeps uh condensation from developing on the front
lens because it gets cold and then that'll ruin
all your images. So it heats it up so that doesn't happen. And it has a battery, so it's not plugged
into anything. So it's got a big, big LiPo battery or whatever that can run for six hours, or you can
plug an auxiliary battery into it, but it's got basically no wires. And the problem with the other
thing, when I was doing astrophotography before, you had to have a computer plugged into it because the computer had to talk to the camera, which meant you had to be out here in the freezing cold with basically, you know, your work set up with a laptop and wires and the laptop had to survive.
And it's dark and it's cold and the laptop's like, it's 28 degrees out here.
Why are we here?
My screen doesn't work anymore. Anyway, it's 28 degrees out here. Why are we here? My screen doesn't work anymore.
Anyway, it's very cool.
And the way all this stuff overcomes light pollution,
you can do, so you can get one of these smart telescopes
and I've seen fantastic images
from people who live in Tokyo,
which is probably the worst light pollution thing
you can imagine, right?
You probably can't see very many stars.
But information theory being
what it is, the photons from all those objects are getting through. And if you take enough images
over enough time and stack them, mathematically average them, sum them, whatever, you need a lot
of overhead if you're going to sum them you have to have a big
you know big storage place or you average them and to divide them as over time but uh
that signal will eventually overcome the noise and the no and the sky is light pollution yes
and the light light pollution is noise whereas the stuff from the stars or nebula or galaxies is not noise, it's signal.
And so you take long enough stuff, you average them together,
the noise falls, the noise floor falls, and you get your signal.
And so I've seen spectacular images from people from Tokyo, big cities and stuff.
And so you can actually do some astronomy in places where you normally wouldn't be able to see anything,
even with a big telescope, because your eyes aren't doing that integration
and getting the signal-to-noise fixed.
So I've started playing with that.
It's been a lot of fun because it's very easy.
You do get some cool images.
You get some cool images quickly,
so you can also use this telescope and similar ones
for something called EAA, which is electronically assisted astronomy, where you're
not necessarily trying to take pretty pictures. You're trying to just look at an object that you
normally wouldn't be able to see easily with an eyepiece in a matter of a minute or two.
So there's definitely some nebulae and galaxies that with 30 seconds to a minute of
letting this thing integrate, which you can watch it do on your iPad or your iPhone or iPad or
Android, as the images come in and it stacks them, it slowly gets better. So you can kind of see it
developing over time. So I showed you a couple of things where it was like, you know, the horsehead
nebula or something, which is something I'd always wanted to look at visually, which you have to have a really dark
sky for, have your eyes dark adapted, a really big telescope to get enough light in, and then
you can kind of see the shape, basically. With this, in my backyard, front yard, with cars driving
up, after 45 seconds to a minute, there it was. You know, you could even see some color from it.
And from, after an hour of integration, you can see it even see some color from it uh and from after an hour of
integration you can see it in full color with lots of contrast and stuff and another nebula that's
next to it a bunch of other stuff anyway i'm going on about this randomly but you've been excited
about it yeah and again i i wanted to get back into it without too much trouble. Because the trouble makes me not do it.
Right.
I mean, now you look at the clouds in the late afternoon and shake your fist at them.
But get off my lawn, clouds.
But yeah, and it does, it makes, it is very pretty.
And it's a toe.
And I think it will help us go out and experience more. And it's something so small. That's the thing, I didn't mention how big it is. It weighs five pretty. And it's a toe. And I think it will help us go out and experience more.
And it's something so small.
That's the thing I didn't mention how big it is.
It weighs five pounds.
Yeah.
It weighs five pounds.
It's tiny.
It comes in a little suitcase.
That's about the size of a little bigger than a lunchbox, I guess.
And you can fit everything in that, including the little tripod.
So you could grab that and go, you know, drive off somewhere to a darker sky pretty easily. And yeah, because it's easy, maybe I'll get back into it more. Maybe I'll
piece together a system with a better camera at some point with one of these other boxes. Or maybe
I won't. Maybe I'll just get... Okay, the other thing, I'm going to talk money here. It was $500. Actually, it was $450.
$450 for anything in astronomy is absolutely insane. I've paid more for an eyepiece for a
telescope. And this is a complete system. And I know it's coming from China, whatever, and there's
all this scale, whatever. But I mean, a lot of this stuff has gotten cheaper and having it integrated means,
you know, they can cut corners in ways that maybe building your own system would be better,
but this is really an easy way to go.
Five pounds. You just take it out, you plunk it down.
And they have a smaller one they just came out with that's got a smaller telescope. So it's not
as good at gathering light, but has a wider field of view, so it's better for big nebula and stuff.
And that's only 340.
It does all the same stuff.
To get into astronomy
or astrophotography,
it's so friendly
and easy to do.
So I'm pretty happy with it.
Depending on where that
house burnout discussion
happens,
if it happened before and everybody's heard it or it's coming up and they haven't.
I'm going to leave it where it is.
This is good technology.
Yes.
But it's made by a random company in China that I don't know anything about.
Okay.
Well, it's not a random company in China. It's a company called ZWO. I don't know if you okay well it's not a random company in china it's a company called zwo i don't know if you pronounce that zwo or something but they make a lot of astronomy
stuff they're the one one of the companies that makes the little box that talks to your camera
and your telescope um that you can build a system around the people and they make cameras
so they've been doing astronomy stuff for a while but they only make astronomy stuff as far as I know. Maybe they make lasers for incinerating puppies.
I'm not sure.
I haven't, you know.
Not everybody has to do something terrible.
I know.
I'm saying.
I don't think they do.
I just don't know why that's where you go.
I don't think they do.
Zed Woe, if you want to come on the show and defend your telescope
I didn't say they did
Okay, I think that's it for the show
I think you want to get rid of me, so yeah
No, no, I do not want to get rid of you
But I do want to thank you for co-hosting and producing the show
I want to thank our listeners for listening
Our Patreon supporters for supporting thank you for co-hosting and producing the show. I want to thank our listeners for listening, our Patreon
supporters for supporting,
and Nordic for supporting the show.
If you could do us a huge
favor and go sign up for Nordic's giveaway,
we want to see what they give away.
I think it would be pretty cool. Totally
worth your time. If you want to
support us and not get a giveaway, why not?
Then
please leave a review on
I was going to say Amazon, but that's not where
this show comes from, is it?
Leave a review on Apple
or wherever you get this from.
The only place you can review podcasts is on
iTunes. It's not even called iTunes
anymore. Podcasts. Whatever
Apple's new app for podcasts.
But that's the only place you
can review things, really.
Or you can review my book on Amazon.
Yeah.
But mostly sign up for Nordic's giveaway, please.
Yeah.
If you want to contact us, it's show at embedded.fm or hit the contact link on Embedded FM.
And we might answer your question next time,
although we did not get to Embedded Swift,
which maybe we'll do a whole show about.
I'd like to read about that some more before I talk about it.
And I guess now we have Winnie the Pooh.
Are you ready?
Yes.
Okay, when we left it, there was a plan to, I believe, steal Roo?
Yes, the plan to capture baby Roo had been discussed. Rabbit
had read out his plan in which he was just going to take Roo and I think put in a loaf
of bread. Oh no, Piglet. Piglet was going to go into Kanga's pocket and Rabbit would run away with Rue.
This is a terrible plan.
But anyway.
Well, Rabbit read this out proudly.
And for a little while after he read it, nobody said anything.
And then Piglet, who had been opening and shutting his mouth without making any noises, managed to say very huskily,
And afterwards? What do you mean? When Kanga does
discover the difference, then we all say, aha! All three of us? Yes. Oh. Why? What's the trouble,
Piggly? Nothing, said Piggly, as long as we all three say it, as long as we all three say it,
and I don't mind, but I shouldn't care to say aha by myself. It wouldn't sound nearly so well. By
the way, he said, you are quite sure about what you said about the winter months? The winter months?
Yes, only being fierce in the winter months. Oh, yes, yes, that's all right. Well, Pooh, you see what you have to do? No, said Pooh.
Not yet, he said. What do I do? Well, you just have to talk very hard to Kanga so that she
doesn't notice anything. Oh, what about? Anything you like. You mean like telling her a bit of poetry or something?
That's it, said Rabbit.
Splendid.
Now come along.
So they all went out to look for Kanga.
And Kanga and Roo were spending a quiet afternoon in a sandy part of the forest.
Baby Roo was practicing very small jumps in the sand and falling down mouse holes
and climbing out of them. And Kanga was fidgeting around saying, just one more jump, dear, and then
we'll go home. And at that moment, who should come stumping up the hill but Pooh. Good afternoon,
Kanga. Good afternoon, Pooh. Look at me jumping, squeaked Roo, and fell into another mouse hole.
Hello, Roo, my little fellow.
We were just going home, said Kanga.
Good afternoon, Rabbit. Good afternoon, Piglet.
Rabbit and Piglet, who had come up from the other side of the hill, said,
Good afternoon, and hello, Roo.
And Roo asked them to look at him jumping, so they stayed and looked.
And Kanga looked, too.
Oh, Kanga, said Pooh, after Rabbit had winked at him twice.
I don't know if you are interested in poetry at all?
Hardly at all, said Kanga.
Oh, said Pooh.
Roo, dear, just one more jump and then we must go home.
There was a short silence while Roo fell down another mouse hole.
Go on, said Rabbit in a loud whisper behind his paw. Talking of poetry, I made a little piece as I was coming along. It went like this. Let me see. Fancy, said Kanga. Now, Roo, dear, you'll like
this piece of poetry, said Rabbit. You'll love it, said Piglet.
You must listen very carefully, said Rabbit.
So as not to miss it, said Piglet.
Oh, yes, said Kanga, but she looked at baby Roo.
How did it go, Pooh, said Rabbit.
Pooh gave a little cough and began.
Lines written by a bear of very little brain.
On Monday, when the sun is hot, I wonder to myself a lot. Lines written by a bear of very little brain. rose that hardly anybody knows if those are these or these are those. On Wednesday, when the sky is blue and I have nothing else to do, I sometimes wonder if it's true that who is what and what is
who. On Thursday, when it starts to freeze and hoarfrost twinkles on the trees, how very readily
one sees that these are whose and whose are these
on Friday.