Embedded - 381: Mass Sponge Migration
Episode Date: July 22, 2021Chris (@stoneymonster) and Elecia (@logicalelegance) discuss Blender, Make, TCP/IP, and listener questions (mostly about the podcast itself). Lightweight IP: an open source TCP/IP stack for embedd...ed systems Look for Lazy Tutorials for Blender in Ian Hubert’s YouTube Channel or if you want something a little simpler, try the Blender Beginner Tutorial (donut!). Ukulele and acoustic guitar kits are at StewMac.com Book with sponge sneeze information: Brilliant Abyss by Helen Scales This episode was sponsored by InspectAR. If you design, debug, or just need to use PCBs, InspectAR can give you superpowers. It’s an augmented reality app and platform that allows you to visualize every layer, every connection, every aspect of your actual physical board in real time InspectAR is free for trial and home use. With a subscription you get powerful collaboration and debugging features including annotating the AR view, sharing comments, setting up test and calibration procedures. Check it out! Â
Transcript
Discussion (0)
Welcome to Embedded.
I am Elysea White, here with Christopher White.
It's just us this week, and we have a whole bunch of listener questions.
Okay.
I have a whole bunch of listener answers.
Most of them conflicting.
Not sure it works that way.
Oh.
Well, first we will do news.
News.
Do I need to put in a little do-do-do-do-do-do-do-do-do thing?
Yes, you do.
Okay, I did that.
Okay, so I've talked a lot about my talk about map files.
That's on YouTube for your watching pleasure, as well as the bloopers file.
The bloopers. The bloopers file. The bloopers.
The bloopers file?
The bloopers video.
Christopher put a lot more work into.
Bloopers.
It's like in a drawer.
It's investigate the blooper file.
Yes.
And your Kickstarter is over.
It's over.
How'd it go?
Over for them, not over for me.
It went very well.
I'm very pleased.
I'm learning all about the intricacies of delivering things to 100 people,
which is a number that seems small until you start doing things like sending out emails to them,
realizing that that needs to be automated.
And then when stuff breaks and you have to send out 15 by hand, that's actually quite a few.
And anyway, yes, fulfillment, fun.
Okay, so...
We haven't even gotten to shipping actual things yet, so...
Your Kickstarter is over and you're funded and everything went well that way.
Yes.
You got sick of promoting.
Yes.
So you didn't do it as hard at the end as you did at the beginning, but that's normal.
That's not actually true.
I did a ton in the last week.
Oh, but there was a week there that it was a little bit lighter?
There was some in the middle where it was lighter, but toward the end.
How much did you enjoy promotion?
Not a lot.
What was the worst part about it?
Having to come up with something to say that's different than things I had already said.
You had to live.
Like, hey, it's me again about this thing.
I mean, some of it is just, you know, the only way to promote now is social media unless it was to try to get something going on.
Somebody else to help me promote, you know, on a blog or whatever,
an interview somewhere.
Anyway, that wasn't going to happen.
But with social media, the thing is, you know,
people don't see everything every time.
So you do have to kind of repeat yourself.
But I really find that distasteful.
So I didn't really enjoy that.
And there was a lot of, you know, okay, I got to do a quick little thing.
Well, everybody likes videos, so now I got gotta do a quick little thing well everybody likes videos so now i gotta do a quick little so you know just a lot of time to put into having something to kind of catch
people's attention something new and interesting and and not the same old thing put something out
there about the record maybe a teaser for a song but not reveal the whole record ahead of time and
you know what's the balance there and i don't know i know i just don't like talking about things i've done or things i've made and so trying to get people interested in it is
a bit of a conflict so that uh yeah it mostly mostly was just you know waking up every day
thinking i should really promote the record today which i do well i've used most of the pictures i have part of the problem is with not being able to do like a
photo shoot and stuff and some spontaneous stuff with my brother you know that that was difficult
so probably should have tried to figure out how to do that ahead of time there's there's a bunch
of things were i to do it again i would do differently like spending a month before even
launching the Kickstarter.
And I did some of this, you know, collecting things that I could use for promotion.
Yeah, you had a list.
And I had a list of things, but they weren't well-defined or done.
And I had a list of pictures and videos and things and stuff of that nature.
But it would have been better to just kind of have like a dozen things done that I could dole out, which I really didn't have. But then I had
to spend time doing other things. So yeah, it's all a balance of how much time do I have to do
for this? So it went fine. I'm not really upset about anything. It's just promotion is not that
enjoyable. So one of the things that you did that was other things involved those cat videos we requested.
Yes, yes, yes.
And I know you're not done with that.
No.
But as part of it, you've been learning Blender.
Yeah, I don't think I'll actually end up using Blender for that. But if I do more stuff, yes, I have been playing around with Blender.
So tell me about Blender.
Blender?
Blender is a very cool program.
And I've played with it over the years.
I think the first time I played with it was when it was back, you know, before it was a 1.0 even.
And then it was even more inscrutable than it is now.
Blender is a gigantic 3D graphics package.
It's open source. It's free.
It does just about everything you could imagine having to do with 3D graphics.
So it'll do modeling.
It has a thing where you can create models, sculpting, texturing.
It has animation.
It has things where you can rig.
If you have a model of a person, you can rig the bones in it
and do inverse kinematics and all that stuff to properly animate them. It does video stuff, so you can
model camera motion in existing video and then put that in a 3D world space, put 3D objects in it.
Everything you want to do with visual effects or 3D graphics, you can pretty much do in Blender
at a really high level of quality. It has rendering capabilities that
are really excellent. You can do basically, people have done whole movies in it, and they look like,
you know, Pixar. Maybe somebody in the industry who knows better would say, nah, you know,
Pixar stuff does this and that, and it's much better. But, you know, from a layman's perspective,
it's a very powerful package. The only problem with it is that it's extremely complicated
and it will do anything you want but you kind of have to
i think an analogy i used is it's like somebody gave you a lamborghini but it doesn't have an
engine computer you have to you have to do all the engine timing and the valves by yourself
while you're driving.
So there's just a lot of, the UI is very complex.
There's a lot of duplication throughout the UI.
There's a lot of knobs for everything.
And they're strewn throughout the UI in all kinds of places.
And there's, you know, every option is kind of exposed to you.
And some of them are important and some of them aren't.
And it's hard to make sense of what they are. So it's a real learning experience to try to get any kind of deep knowledge of it.
And like I said, it does so many things. I'm not even sure it makes sense to get deep knowledge
of it because people will use it for different ways. Like I'm not interested in sculpting,
so I can kind of ignore that part of it. I'm not really interested in changing models. I would like to do things with visual effects and maybe movies and go grab a model from somewhere else and use that. Maybe make some small modifications. so many powerful things, but it's also very frustrating. And I end up watching a lot of YouTube tutorials where they'll blow through stuff,
and even the experienced people are like,
oh, I just figured this out, there's this option,
if you right-click here and do this and this and this
and this and this and this, we get this thing over here
which isn't well-documented that does the thing I wanted.
And so it's interesting.
I think the UI has gotten a lot better,
which is terrifying.
Given how bad it is now.
And it's quite usable, and it just takes some time.
But it's interesting.
The stuff I'm going to use for video stuff is probably not that.
I have some other 3D graphics things that integrate with video that are far simpler to use and produce pretty good results,
but what they can do is more constrained so there were two things in blender that i thought were very cool
that you showed me yeah one was you made a cube of jello yes i got that off a tutorial
how long did it take you to make that 30 minutes was that after you knew it pretty well i mean
somebody would like no i just i basically followed it well if you don't know the the very basics of the blender ui it's very hard
to follow the tutorials because you don't know what they're doing so if you don't know how to
get around and rotate things and change modes uh it's probably not that easy um but having that
knowledge i was able to at least kind of understand what the tutorial was doing and click along.
But the tutorials, sometimes they leave a lot of stuff out.
So if you don't know how to do some simple things, you might get lost or get into a situation where I tried that and it didn't work.
And it's because you were in the wrong mode or clicked the wrong thing.
And then you also scanned one of my origami octopus yes
and somehow that ended up near the jello cube well it's in the jello cube now oh is it yeah
i'm having trouble getting it to stay in the jello cube octopus are like that uh yes yes yeah
that's another thing you can do is there's simple iphone apps now to scan 3d objects and they work
pretty well and then you can export them as a file and just dump them in Blender, and suddenly you've got whatever was on your table in a 3D world.
And it gets the texture mapping and everything, so you don't have to do that even.
And then there was the YouTube guy, the One Minute Tutorials.
Yeah, Ian Hubert has a channel on YouTube he does a lot of Blender stuff
he has a series
called one minute
or lazy tutorials I think it's lazy tutorials
for Blender
and he goes through one very specific
thing at incredibly
fast
and if you don't know Blender pretty well
they're not really followable
I can't follow most of them.
Um.
But it's amazing what he makes.
Yeah.
Like.
It's simple stuff.
Like, make a city in Blender.
It's a one-minute video.
Yeah.
And he'll go through it.
And if you go through, it probably, you know, if you spend an hour going through the one-minute video and you knew some Blender, you could probably.
But it gives you the high points of what you need to do.
And it's like, make a this, then do this, and then extrude this, and then that, and
then that, and then that, and then add it in, and you're good.
They're fun to watch, and they're a minute, and they're kind of inspiring.
They're very inspiring.
It's inspiring because, okay, maybe that's not that hard.
If he can make a tutorial that I can kind of follow that only takes a minute to describe
doing this thing that seems pretty complicated, maybe if i spend an hour on it i'll be able to get a result
that's not not too bad i think the other one we watched was the fish one there was the fish one
and there was the animating the person yeah well that was much more much oh animating person uh
oh yeah he was just looking back and forth not his it was pretty cool. Not his demo reel, which is a whole other level of stuff.
He also has, he works on movies himself.
He's got two demo, two or three trailers for kind of movie shorts he's working on, and they are both very impressive. Oh, that was unreal.
And he does most of the work by himself. And they're like, you know, I wouldn't say they're contemporary ILM quality, but they're probably 10 years ago, you know, AAA movie quality.
Well, when we watch a movie, you know, there are hundreds of people.
Yeah.
So it's kind of interesting to see one guy.
One guy and what he can produce.
It was really neat.
Yeah.
I wasn't trying to follow the blender at all.
I was just looking for what can you do.
What would be the
first place for people to start?
With Blender? Yeah.
There are a lot of tutorials out there.
I can put some that
I've followed in there. There's a whole bunch
that start from basically zero
that are pretty good.
One I did a few years ago
that's recently updated for the newer version
of Blender, you basically make a, it's more modeling. You make a donut and a cup of coffee
model, and that's pretty neat. I wasn't super into modeling, but it does teach you most of
the interface and you get something out of it at the end that's kind of fun to look at. But yeah,
there's a ton of good YouTube tutorials and I'll try to get the list that i've got and put them in there um and they're not
terribly like it within an hour you can kind of if you're familiar with like photoshop or
any of the other kind of pro creative applications most of the concepts kind of will seem familiar so
after an hour you're probably pretty familiar with the basics of the interface even though
it's kind of intimidating to look at i know this isn't very embedded but watching you learn blender
has been so fun i mean i'm not trying to learn it i not sure I am. But you keep coming up with neat things.
Well, it's just that you can do everything, and it's kind of mind-boggling.
I watched a tutorial today where somebody was like, okay, here's how to do face tracking in Blender.
And he put dots on his face and took a video, and he turned himself into a zombie, and he put a 3D model of zombie teeth in.
And that one's much longer because it's much more complicated.
But, you know, you can do all kinds of the things that happen in visual effects in Blender, including all the stuff you're used to where somebody wears a mocap suit with dots on it and does their thing.
So, I don't know why I'm doing any of this.
Probably because I'm overambitious with some music videos and I probably won't continue doing this for very long.
But you've gotten pretty far.
I don't know.
I mean, I don't know how far you've gotten in the world of Blender,
but you've gotten far enough to entertain and amuse other people.
Okay, well, I'm not sure that's a high bar.
Well, it's me, so no, it isn't a high bar, but still, it is pretty cool.
Hey, everyone.
Today we'd like to tell you about InspectAR.
If you design, debug, or just need to
use PCBs, InspectAR can give you superpowers. It's an augmented reality app and platform that
allows you to visualize every layer, every connection, every aspect of your actual physical
board in real time. Need to know what a pin does? No problem. Need to know where a trace goes two layers deep? Okay.
Not only does InspectAR bring your EDA tool's level of visualization into the real world,
it gives you deeper insights too.
Click on a component on your board and easily identify it.
See its datasheet, supplier info, or pinout.
InspectAR imports your PCB manufacturing files,
and if you're using an off-the-shelf board,
you might find it already in the list of sponsored projects.
Once your project is set up,
just point your phone camera at your board and see the technology work.
You can dial in exactly what you want to see,
and what layers to overlay, just like in your design software.
It'll simplify your analysis and repair of hardware through augmented reality,
with your phone or other camera, not a fancy headset.
InspectAR is free for trial and home use. With a subscription, you get powerful collaboration and debugging features.
Annotate the AR view, share comments, set up test and calibration procedures, and more.
I've tried out InspectAR myself, and it really is amazing. I encourage you to check it out. Test it with some of the many pre-populated projects or common dev boards
and find out how much it can speed up your troubleshooting and firmware development.
InspectAR works on nearly all mobile and desktop operating systems.
Go check it out at inspectar.com or use the link in the show notes.
Our thanks to InspectAR for sponsoring this week's show.
Okay, so I have one question that's not on our list.
This one is from Silas.
Sophomore in college, doesn't know people doing embedded.
So our show is good for Silas. Currently looking at build systems other than
make, could we talk about our experience with build systems? Is there a de facto standard in
the embedded world? How have build systems changed over the years? And as a beginner,
what should they learn? Make or some other system?
To the last question,
there are many build systems that boil down to make at the end.
And if you want to understand what they're doing,
you need to understand make.
I'm thinking specifically of CMake,
which generates make files,
and they're probably inscrutable at the end,
but it's probably worthwhile
knowing how to use make especially
for small projects so there's that there's a lot of build systems out there and i don't know that
i can really speak to many of them uh there's a lot of newer ones that are very complicated like bezel and um some other things that i'm drawing a blank on me i'm i'm
stuck in cat can make which is well there you go there's another one terrible um i would say
and people may dispute this but i would say learn make learn c make even if you don't want to uh and then if somebody else comes along and
you're working in some place that does something different just learn it there but i wouldn't waste
a hell of a lot of time trying to learn a whole bunch of different build systems especially since
there isn't really a standard i mean if you want a standard, make files are the standard simply by inertia
and the longest time they've been around
and the fact that many things are built on top of them.
So if you've got to learn just one,
I would say make files.
And people may say, no, don't do that.
Learn CMake.
But I think it's still make files is the standard.
Beyond that, CMake is probably the next level up of standard,
but then everything gets kind of messy from there. I'll make files as the standard. Beyond that, CMake is probably the next level up of standard,
but then everything gets kind of messy from there.
I feel like you have to know about how Make works to make CMake work.
I don't know. I can't.
I'm so far from that time that I'm not...
I don't know.
Silas mentioned reading Robert Mecklenburg's Managing Projects with GNU Make and mentions module has its dependencies listed. And those are all
things that can be solved pretty easily in Make. I think you just need to read a little bit further
in that book. I agree. Yeah, dependencies especially, there's ways to do dependencies
in Make that are pretty straightforward. I mean, they're not perfect. Make's dependency stuff
is limited compared to some more sophisticated things.
I would strongly encourage you to learn make, especially at the beginning of your career.
It's kind of like having invisibility as a superpower. You may not want everybody to know
because it's a lot more useful if people don't know. You don't want to get stuck being the
invisible person, but it does form the basis of a lot of
things and understanding it is unlikely to be a waste of time it's not going to hurt you
it's not going to hurt and it's not going to be a waste of time you will use make at some point
in your career and i use it all the time for simple little things when i don't want to reach
for something bigger i mean you've got a project that's got 10 source files or something and small dependencies,
and it's going to work on one target,
you don't need some of that other infrastructure
that just makes things more complicated.
I mean, that's one of the things
where make falls down a little bit, I think,
is when you've got a lot of targets
or different OSes,
and your code is going on, that you have to make a lot of, you know... Different lot of targets or different OSes, and your code is going on,
that you have to make a lot of, you know...
Different versions of the build.
Different versions of stuff.
So that can be much more difficult with Make,
but it depends on how common that is for you.
Yes.
But even as I see things that are meant to be built
between different processors,
Make still seems to be...
It's kind of like, should be kind of like should you learn
yeah should you learn arithmetic or you should you learn algebra and really arithmetic first
probably should learn arithmetic first because that plus sign is going to be real confusing if
you've never seen it before x plus y what does the plus do um so yeah i i think that's the answer I would give.
We got a question from Patreon from Bailey.
What does one do with the other 11 of the dozen projects started?
Let them molder?
Let them sit on the benchtop in the garage?
Look away in embarrassment every time you see them?
Put them in a box so you don't have to see them? yeah i mean yeah i don't know well the question is why are you doing these i don't know i mean i'm going to list the 11 projects sure go ahead and list your 11 i have
a partially assembled ukulele on the bench top that's been waiting for me to buy some plywood, I believe, for 18 months.
Well, shorter, 12 months maybe. I have a completely unassembled acoustic guitar in a box
that has not been opened yet in the garage that I bought because it was on sale.
I remember being against that decision.
I got a, it was a good deal.
It's a great deal.
Also, I had a gift certificate.
Think of how much money you saved. I had a it was a good deal it was a great deal also I had a gift certificate think of how much money you saved I had a gift certificate
I have that MIDI thing
that was based on the nucleo board I had
that's in pieces over there
I have
oh well the curb
if you want to go back years
I have the unfinished curveball controller
that's in the cabinet over here.
What else have I got?
Probably a half dozen or more 30-second snippets of song ideas.
No, probably two dozen snippets of song ideas
that are just sitting on a drive somewhere
that I haven't sat down and expanded on.
That's not a dozen.
See, I'm doing good.
Not 11.
I have a PhD I never finished.
You got a master's degree.
I quit that.
That one's gone.
I don't know.
So I have projects too.
I never finished taking a part twice
because I wasn't happy with how it was going to be published.
And I didn't want to go on my own.
I have origami things that are half-started all over the house.
Those usually get trashed because it's just paper.
I have plans for more origami things that require math
that I'm just too tired at the end of the day to do.
Oh, I have so many. So much gardening. I have so many gardening plans. So little will to do it.
Okay, so the thing is, there is some embarrassment, self-guilt for not finishing things.
But like with Blender, you start these things to learn
and to learn about them.
And if you get to them and they're not that interesting...
That's never my problem.
Or other things are more interesting.
I have a lack of focus.
Like, I feel like I would feel really good if I finished some
of these things. You just finished an album and a Kickstarter. Yeah, but that has other people
involved. If I had to finish my own album, we'd be waiting a long time.
I say what you do is you take them apart and set them free. That's what you do for the other dozen,
other 11 projects. It's okay to set them free. That's what you do for the other dozen, other 11 projects.
It's okay to set them free.
It's okay to throw them away.
No, it's definitely okay to throw them away
or give away the parts.
Yeah. You don't have
to promise you're going to get back to it.
Yeah, sure. And you don't have to...
It's a cost thing. Like, you know, I spent a bunch of money on this
and I haven't finished it.
So,
I have to
finish it you don't how much would you have paid for the amusement of going to disneyland versus
how much the amusement of that project was disneyland on last year not a lot well yes but
if you think about it as a form of entertainment it it's okay if it costs, and that cost is going away.
Okay, so from Rick.
Have you worked on any unusual microcontrollers?
Starts with a P, ends with a T, sounds like rocket.
There was no microcontroller involved there.
There was a chip. That's was no microcontroller involved there there was a chip that's not a microcontroller it was one of the largest chips to be produced in that time
are you kidding me the thing cost about two thousand dollars a pop
that was not a microcontroller okay well it's not qualified yes
uh i don't think i've worked on any unusual microcontrollers
i've used on i've used things that on any unusual microcontrollers.
I've used things that should have been microcontrollers.
Like what?
Like full x86 PCs with National Instruments boards being used to bitbang I2C for $5,000.
Yeah, I've used things that should have been PICs,
but people have specced out multi-thousand dollar computers. So that was unusual. But no, I've used mostly ARM or PICs or 8051s. Yeah, everything. I mean, there's a reason those things are common. It's because people use them commonly. I think some people we know use weirder things.
Like, I think Andre uses some very strange power PC things for automotive
that have counters and stuff that you don't normally get with standard microcontrollers.
What have you used?
You've used some strange things, though.
Well, I was actually going to say 8051,
because we made
our own chip at leapfrog in the 8051 core and there was some other stuff that went with it
yeah um i worked on making an arm chip for the cortex m0 plus before the m0 plus was a public
product so that required a lot of paperwork i will say the microcontroller we used um at fitbit which i'm sure i'm past the
nda at this point uh was a custom thing from another company and it had a lot of really
custom features in it yeah i mean i'm not revealing anything it had uh it could access a lot of
different kinds of memories and it had a whole bus arbitration thing for dealing with that.
It had some graphics capabilities,
which were completely unusual for the industry for a Cortex-level part.
So that was pretty unusual, I guess.
It was more like a real microprocessor system on a chip
being jammed into something that was a low-power Cortex-y thing.
So that was hard to work with, very hard to work with.
I guess it's kind of rude to say that I consider the TI-CC2600 to be an unusual microcontroller
because it was a 16-bit microcontroller that... Oh, right.
Had the... Everything was 16 bits.
There was no 8-bit.
There was no 8-bits.
And it was strange.
And they hid that from you later,
which when I revisited that chip line,
it was super confusing
because I knew very well
you could not do this
from the first time I had worked on it.
And then... And that was just weird because they called it a bite and it was 16 bits and it just broke my mind
i mean the chip itself was great it did what we needed it we needed mathy stuff so that was great
but every time i would get a character and it was 16 bits i'd be like
what the heck right now um and then the other one was another ti one which is probably
a super useful and popular chip but it was in the piccolo line which had a lot of motor outputs
and a lot of signal processing inputs and it was really fun to use, but the documentation was something
else. I mean, just reams of documentation and you could never be sure that it was for your chip.
Like, okay, so SPI3 acts like this, SPI2 acts like that. So, I want SPI3.
Oh, my chip only has one SPI.
So, is it a SPI3 type or is it a SPI2 type?
It was so confusing.
It's not really unusual, but it was something else.
What about unusual non-processor things like peripheral chips and stuff?
Oh, my God.
I had to explain IMUs again last week.
That's not unusual.
That seems pretty far for the course.
I mean, since I started with IMUs
when they were first solid state,
I feel like I've just been going against that wall
over and over again.
And they're still so powerful and so cool.
And they're so much better than they used to be.
And people still don't really understand at an intuitive level.
Like, people understand temperature.
And explaining pressure is not hard.
People just don't get gravity or acceleration.
But explaining the difference between linear acceleration and pure acceleration shouldn't have been hard.
Especially when the person I was talking to didn't know which he had.
And I was like, so if you take the magnitude, it adds to one, then it's regular acceleration. If it adds to zero,
then it's linear acceleration. And so then there was the, well, it adds to 0.3. And I was like,
okay, so this is linear acceleration and it's moving. And he said, oh yeah, it is. This is the part where it moves. And I was like, it's okay. Okay, this is good. This is good. We're making progress.
So that was, I guess that's not really weird, is it?
No, that's completely normal.
But that went from analog to SPI and I2C. It's still one of the most common things that are in every stupid piece of electronics you can buy.
Okay, so tell me about an unusual sensor, non-microcontroller part.
Well, there wasn't a sensor,
but there was the whole thing I had to do for authentication
for a consumable part for a medical device.
There was a piece that goes on the end that kind of wore out,
and they wanted to sell a lot of them and so
they had a lifetime limited lifetime and you had to keep track of that and you had to make sure that
the device was authentic so when you people couldn't knock them off and plug them in the
thing but anyway these were this whole one one wire line of, because it was at the end of a very long cable.
So the double E's decided OneWire was the way to go,
reduced the conductor count through the cable or whatever.
And so Dallas Semi, I think it was Dallas Semi,
had these authentication chips, and one chip talks to the the other chips the one chip would be on the
motherboard and the other chip would be in the consumable and they would communicate over one
wire and exchange a cryptographic hash and then decide that yes you're you're the authorized part
and also it can update its lifetime with a kind of a write-only decrement god this they were so
hard to work with.
Weren't those the ones that you ended up with counterfeit chips for?
Yeah, well, yeah.
I think I talked about this.
Yeah, no, they somehow got a whole lot in when we ordered parts.
And I don't know how this happened, if somebody did something weird or whatever.
But they were these test chips or something, but the whole, they were these like, like test chips or something,
but the whole locking mechanisms, like when you, when you set them up, each chip you got in
for each part, you had to program your key, your company's key into it. Um, one at a time that
there was no way to say, Hey, Dallas, here's our key. Give us 5,000 with this key. Uh, maybe if
we'd ordered a billion of them, they would have done that for us. But, um, yeah, here's our key, give us 5,000 with this key. Maybe if we'd ordered a billion of them,
they would have done that for us. But yeah, so they had to be provisioned. And the provisioning
process involved putting the key in and then blowing some fuses on the, you know, chip fuses
to say this key can never be changed for obvious reasons. And we got this setback and all this weird stuff kept happening
and the things basically said at all no matter what you did everything is great no matter what
key you put in it all it always worked you could always update it and it's like this is really
messed what is going on what is first of all it's like what the hell did i do to the code
to make this happen because Because return always good.
Shouldn't be possible.
So we,
you know,
we had the,
we had the scope out and we're looking at the whole transactions and
everything.
And finally said this,
these chips are weird.
There's something wrong with these chips.
And finally talked to Dallas and like,
they were like,
where did you get these?
We swept them up off the ground.
So I don't remember what the resolution was to that but
that was very strange but the whole process of getting them working was very difficult
not just because of the cryptographic stuff which was actually turned out to be
easy relatively it was just the electrical signal integrity stuff the the requirements
of communicating with the one wire device were tight. And when we were originally doing it,
remember the aforementioned national instruments ports?
Those were the things doing one-wire.
So I was writing code in C,
and VXWorks,
for a PC architecture embedded single-board computer,
to use a national instrument digital outboard.
Yeah.
Digital outboard? That makes sense. I sense i think yeah basically a gpio board for two thousand dollars to to bit bang this one wire stuff
which had tight timings and things and oh god we replaced all that in the second version after i
was kind of in charge of some of the architecture with uh you know sensible things that cost dollars uh but uh yeah there was just stuff like oh you
have to hold this up for 20 milliseconds and it wasn't quite like spy or something like that where
it was well defined each part had slightly different timing requirements. We had other one-wire stuff in there too. So, yeah, it was a pain.
It was not, I would have rather
denied squared C device or something like that.
Anything else?
Not really.
I don't think so.
Everything else was pretty boring.
From Svek.
Oh.
Chris Svek, who is not you. You are not Chris Svek. That's what I hear. From Svek. Oh. Chris Svek,
who is not you.
You are not Chris Svek.
That's what I hear.
You are Chris White.
What has surprised you
about starting
and running a podcast?
That we have continued
to run the podcast.
That is the biggest surprise,
yes.
I don't know.
I don't know
what we were expecting.
I don't know. I'm't know what we were expecting. I don't know.
I'm surprised continually that anybody listens to us.
I guess I didn't expect to build a community around it. That's kind of nice.
So the Slack community is pretty good and I've met a lot of people virtually and in real life who I never would have met.
So that was not something, I don't think that was on my radar as an outcome of running a podcast.
I wouldn't have thought making close friends would have been on the list.
And I have made some very close friends.
And some enemies.
You were enemies.
I'm kidding, I'm kidding.
Yeah, that's probably the biggest stuff.
I mean, I don't know that we had expectations starting it of much of anything.
I mean, it was just a let's try it.
Let's learn the technology.
I remember being so excited when, you know, 50 people downloaded an episode or something.
But it seems kind of quaint now.
Well, that touches on the next question.
What was the audience size in your wildest dreams in the early days?
I don't really know.
I don't remember.
I mean, 100 would have been... I mean, we got to 100 pretty rapidly.
Okay, 100 strangers.
100 people that I didn't browbeat.
No, I don't really know.
I mean, I think I had some idea of what popular podcasts were doing in numbers back then.
So I probably, you know, in my wildest dreams, we're thinking of numbers like that, which we still have not reached.
I'm not disappointed necessarily, but, you know, it's really hard to know what the kind of the top audience for a particular podcast is, whether you've kind of reached everybody you can conceivably reach.
I don't think we have.
I don't think so either.
Neither one of us is great at promotion.
Please don't ask me to do more promotion.
I think it could still be useful for college students.
I think there are still some professionals out there who haven't heard it,
haven't heard of it.
I totally understand the people who have heard of it,
but they don't listen to podcasts or this just isn't the right medium for them.
I think some podcasts get more listeners because they're they're more visible
in other ways too um so you know they have a they had a popular blog before they podcast or
um they were associated with someone else on a previous podcast and so you know they've built a
an audience in different ways so we would have to do different things, I think, reach different people by doing something else that we aren't about to necessarily do.
Yeah.
I mean, there are the Webby Awards and some other ones where you have to pay a fee to be in the list.
Yeah.
Well, I don't think that nobody...
We haven't...
I don't think there are listeners who pay any attention to that.
Oh, okay.
I think that's a kind of a podcast pat on the back industry thing.
But someday, I want to be able to say award-winning podcast.
Sure.
Someday.
We just need somebody to invent an award and give it to us.
That's true.
It doesn't really matter.
It's not like we need a monetary award.
We just need a certificate.
We can have the Chris Speck, I'm not on this podcast award.
Yeah, I don't know.
I mean, maybe we can be more controversial.
We could take a position that's really, really unpopular and push it for a few episodes.
Speaking of...
Oh, crap.
Svek also asked what the most ridiculous email
you've received about the show was.
And unfortunately, when he asked that,
I was actually getting one of the ones
I thought was the most ridiculous.
And that was after my Maps talk,
when a very nice FAE from IAR emailed and wanted to tell me more about their map files and some features which they have, which GCC also has, and offered to help to walk me through their build system.
And my first thought was, you'd think IAR would accept our lack of bashing gracefully.
Because we haven't really talked about them much.
But it was an email that sort of hit the ridiculous spot for me because it was just like, really?
I didn't see that question, so I didn't go through my list of emails, which I have all of them.
You have all the emails?
I have all the emails. You have all the emails? I have all the emails.
Never delete anything?
They're all flagged with a little purple flag,
and they go in my flagged thing.
Yeah, but it would take me some time to find one that's ridiculous,
and then I'd probably feel bad about revealing it.
There are some where people kindly email to correct us on things which we have great experience with.
There's a lot of things we don't have great experience with.
So if you want to email and correct us, that's fine.
But sometimes those get more giggles than serious consideration.
There's always the ones where somebody wants to, you know,
have their client appear on the podcast talking about something completely unrelated.
PR ones?
Yeah.
Oh, those are so painful.
Then they email back and say, did you get my email?
Or you missed our meeting, I set it up.
You missed our meeting.
Yeah, meetings are a two-way thing. You can't just unilaterally declare a meeting.
Not unless you're paying me a lot of money for it.
Do you have a dream guest you'd like to have on the show? Anyone at all, living or dead, but not undead, because that's right out.
So, not Dracula? Okay. that's right so not dracula okay i mean no not i mean there's people i wouldn't
mind having on the show who are kind of interesting people who i've followed for a while
um some of the space people like the nasa guy boback boback for dowsey probably getting that
wrong um people like that maybe some folks from you know i enjoyed some of
the podcasts we've done with with people who've been at the you know the beginning of the industry
or of an industry in some way so like liskov yeah yeah and um so maybe somebody along those lines
from you know the days of the Apple II or something like that.
But I don't have like, God, it'd be great to get... It'd be great to get Waz on.
Steve Waznatch.
Sure.
I'd like an astronaut.
Or a tech support person in the space community.
Tech support?
No, it's somebody who works on the aeronautics for going to space.
Oh, okay.
Not tech support, but support staff for the astronauts.
Gotcha.
Hello, this is the astronaut speaking.
I have this brinkling light and it will not...
Have you tried turning your spacecraft on and off again?
I would especially...
So, on that line, I would also like a historical perspective on going to space.
Who else?
You know, I'm wary of big famous people, you know, big titans of industry kind of people.
I don't really...
Interesting people who become famous because they're interesting.
I'm fine with that.
Famous people who we've had on the show before have not always been our favorite shows.
But some of them happen.
So it's a mix.
It is a mix.
But they're so much harder to book that I'm kind of leery about spending the additional time.
What about fictional people?
Fictional people?
Oh, that's so easy.
I would love to have Rey on the show.
From Star Wars?
Yes.
Not from Ghostbusters?
Right.
How did she learn the languages?
How did she learn how to do the scavenging?
And did people help her?
Was it all just the Force, or did she learn things?
Did she ever find the technical spec manual for the ship she was scavenging?
How did she know how to fix BB-8?
I'd rather have BB-8 on the show.
I mean, you could have BB-8 on the show. I mean, you could have BB-8 on the show.
But Ray from Ghostbusters, like, how do you make the sensor to detect a ghost?
What is a goat?
What frequency?
What is a goat?
What electromagnetic stuff is a ghost putting off that you can detect?
How do the little cage things work?
I mean, why are lasers involved?
Is one of those things where, you know,
like the laser traps for photons, for ions?
Is that how that works?
You know, that kind of stuff would be interesting.
Was that the person who talked about?
How did you manage to have the money for all of that stuff
and yet you bought the crappiest car you could imagine
for your service visits was ray the person who talked
about the sponge the mass undersea sponge migration yeah i believe he was so i've been reading a book
by helen scales um called the brilliant abyss and the one of the sections that came up this morning was,
so we all think of sponges as stationary. That's why that joke is funny, the underwater
mass sponge migration. Turns out that in a 30-year-long time-lapse photography,
sponges are not stationary.
They can act like tumbleweeds and move around.
They can sneeze or expel something that they don't want to have in them,
and that takes a couple of weeks. It takes a couple of weeks for a sponge to sneeze.
I just wanted to have that out there because I was so fascinated.
Okay, so...
How did we get there?
Tom Anderson, whose show went really well, I thought,
had something from the Patreon Slack in which you, Stoney Monster,
That's me.
suggested running TCPIP.
Oh, God.
Somebody wanted to know.
Yeah.
Tell us. Tell us about this.
I don't know the details. They had two chips that were communicating, and they wanted something that was...
Where's the thread? Do I have to go find the thread?
You want to.
I have to go find the thread.
Inner microcontroller communication.
I have one big MCU and two small MCUs.
Need inner microcommunication with error checking, ACNAC, etc.
I have selected spy as a transport.
Can you suggest a good protocol?
The only reason I suggested TCPIP is because you get all of that stuff,
ACK and NACK and retries and error checking, but it's probably too heavyweight a thing for most
uses, but there's other things out there. I don't know if, I have not done a lot of inter-micro communication that requires ax and nacks
and error checking. My question, which I did not ask, was why do you need all of that?
What is happening between these chips that's causing you to
lose packets or have corruption? I don't
really, maybe this is a failing of mine, but I don't really spend a lot of time on
checking for spy corruption.
I mean, CRC occasion—no, not spy corruption.
Yeah.
Yeah.
Unless you've got a real bad signal integrity problem.
It's not something I usually worry about.
Maybe if it's a long run.
But, yeah, so I kind of wasn't sure about the whole premise of it.
But there are, I mean, there's a lot of ways to do chip-to-chip communication with a bit more reliability.
And people listed lots of things.
But the TCPIP, it was one of the things you went to because you have such a good networking background.
Because every time I see a thing that looks like a nail, how does that go?
There are hammers and there are nails and they should always be joined together.
Whatever, anyway.
TCP IP is either my hammer or my nail.
How would you go about putting TCP IP on a microcontroller?
I'd go grab lightweight IP and then get that built and then I'd go on with my week.
And then if I wanted to send something to the other chip, would I put something on top of that, like HTTP and post things?
Or would I just...
I mean, it depends on what you're sending, but if you have fixed...
You probably have a fixed set of messages and things that just stick into TCP.
Stick into TCP.
You build a layer on top of TCP IP.
It's probably a socket layer that you have, and then you use that.
You treat the socket kind of like a FireLio stream?
Yeah.
Okay.
Well, that didn't take nearly as long as I thought that question was going to take.
I'll probably get people yelling at me.
I mean, it's not trivial.
No.
But it's not as hard as it used to be.
Doing any of the stuff that you want to do is not trivial.
So, as soon as you want to do that, it depends on which non-trivial you want.
As soon as you want acts and verification.
Never invent your own protocol for anything.
There's almost never a reason to do that.
Now, TCP IP may not be the right thing for a whole bunch of use cases, including interchip communication.
It's very heavyweight.
TCP has a lot of memory requirements.
You can tune it so it doesn't, but there's a lot of stuff that goes on with that that's probably inappropriate for small micros.
But there's a lot of protocols out there
that people have worked on.
The difficult thing is some of the
communication, some of the conversation
that followed that question
conflated
protocols with framing
and stuff
like that. And framing is a completely different
issue from things like error checking and ACK and NACK.
It's just a way to say, I'm starting to give you stuff and this is the end of the stuff.
Like slip framing for serial communications and stuff like that.
And serialization is another thing that gets conflated with protocols.
That's the way you take some data, it's a json uh what's a json thing object a json object or a
c struct and you you need to communicate that to someone else how do you get that onto a wire
that's serialization that's all parts of protocols but that's not a protocol is
the means by which you arrange for communication by saying, I'm going to send this, and somebody saying, okay, send it, and saying, oh, I didn't get it, please send it again, or there was an error in that.
It's the high-level stuff on top of the communication that makes things work in a more reliable manner or makes things work in a consistent manner or makes things work with the speed that you need by
having flow control and things like that. That's protocols. All the other things are pieces that
our communication is built out of, and they're all different. So the answers to that question
were kind of not really all on target, I thought, because people were suggesting things that are good suggestions,
but they were more along the lines of, you know,
somebody, I think, said I had to Google protobuffs,
which is a way of serializing stuff,
but it's not necessarily a way to ensure reliable communication
and that sort of thing.
Is TCPIP the easiest way to ensure reliable communication?
It depends on your definition of reliable.
And it depends on the definition of easy.
But it really depends on the resources you have available.
So if you have an 8051, I wouldn't try to stick TCPIP on that.
If you had a Cortex-M4 or M3, it's probably reasonable,
depending on how much space you've got Cortex-M4 or M3, it's probably reasonable, depending on how much
space you've got. But if you want simple reliability, then there's probably easier
things to do. And there were some other suggestions along those lines in the
conversation. There was, what was it? I think it was high-level HD, well, it was HDLC. It's a very
old one. But even that's more of a data
link kind of thing. It's more of a framing thing. So yeah, it's, it's all very complicated. I don't
have a good suggestion. I've never done that. If somebody has something that they like for
interchip communication for the case where you need reliability and, and, uh, error checking,
which I still don't quite understand.
I need to see the use case for that to see why that's necessary.
You have such a different perspective on that sort of thing than I do because I have totally built protocols.
Sometimes you just need to talk to somebody.
I mean, there's building a protocol and there's building a protocol, if you got talking chip communication and you got like okay i've got three messages and
they're these message types and that that's sure that's building a protocol that's not what i'm
talking about air quotes that are so big you can't even imagine what i'm talking about i mean yes
that is building a protocol but it's it, but it's more like establishing your message types.
Yes.
Which is fine.
That's still technically building a protocol.
But what I'm talking about is building the infrastructure through which general things can happen.
So I can send arbitrary messages and they can be acknowledged and all of that stuff.
That's more of a general purpose communication protocol is what I think of when somebody asks a question like that.
Okay, well, that's it for my questions.
Do you have anything else you'd like to talk about?
There was more.
Wasn't there more?
There were a couple of things, but they were from old shows, so no.
I just wonder, we got recent emails.
One of them was marked private.
I responded to that. Right, right.
I guess I should
ask if there are professors
out there who are using
my book, please contact
me. I have some questions for you.
It won't take very long.
Cool, cool.
Showitembedded.fm And we have been talking. Cool. Um, show it embedded. Dot FM.
And we have been talking about Patreon.
We have a Patreon page.
Uh,
you can support us for like a buck and you get access to the Slack.
Um,
if you want to support us at a higher level,
we appreciate that.
And I will send out stickers this year.
Stickers and pins.
I'm promising stickers.
We really should get the international pins finished.
Yeah, we'll do that.
We have a lot of shipping to do in the next few months anyway.
I'm not promising pins because I have looked at my work schedule
and every time I look at it, I just want to hide under the couch.
It is so not good for the next few months.
I don't, I will not take any responsibility for that.
Nope, that's all me.
Well, no, that's not entirely true.
Well, I still haven't heard back about that, so.
All right, well, if that's it, let's get to the thank yous.
Thank you so much to InspectAR for sponsoring the show.
We really appreciate it. Thank you to our Patreon supporters for their support as well
and their questions. And thank Christopher for producing and co-hosting. If you'd like to
contact us, it's show at embedded.fm or hit the contact link on embedded.fm.
And now some Winnie the Pooh.
My bookmark fell out, so I'm not quite sure that it's going to line up.
Second time this has happened.
So Eeyore stood there, gazing sadly at the ground.
And Winnie the Pooh walked all around him once.
Why, what's happened to your tail? he said in surprise.
What has happened to it? said Eeyore. It isn't there. Are you sure? Well, either a tail is there
or it isn't there. You can't make a mistake about it, and yours isn't there.
Then what is? Nothing.
Let's have a look, said Eeyore, and he turned around slowly to the place where his tail had
been a little while ago, and then finding that he couldn't catch it, he turned around the other way,
until he came back to where he was at first,
and then he put his head down and looked between his front legs,
and at last he said with a long, sad sigh,
I believe you're right.
Of course I'm right, said Pooh.
That accounts for a great deal, said Eeyore gloomily.
It explains everything. No wonder.