Embedded - 139: Easy to Add Blood Splatter
Episode Date: February 17, 2016Andrei Chichak and Chris Svec join us to talk about our new blog: Embedded.fm/blog (!!). Andrei was on 114: Wild While Loops, about error handling, as well 99: You Can Say A Boat, about MISRA-C. And...rei has been teaching Embedded Wednesdays, an embedded systems class for the Edmonton New Technology Society. It uses the STM32F401C-Discoveryboard. His course materials are on his site (chichak.ca). Chris was on 78: Happy Cows, about empathy driven development. He's also working on a different embedded systems introduction (Embedded Software Engineering 101). His blog ischrissvec.com. Our new blog will include their coursework, excepts from Elecia's new book on taking apart toys, project notes from Christopher, and various other news.
Transcript
Discussion (0)
Hello and welcome to Embedded Tonight.
I'm Andrei Chichak.
And I'm Chris Speck.
And tonight we're talking to Alicia White and Chris White from Embedded.fm.
Good evening.
What is happening?
Well, actually, let's try that again.
This is Embedded.fm.
I'm Alicia White, here with Christopher White.
Andre Cicak and Chris Speck are our guests, not the other way around.
This is going to be a show with a few announcements, perhaps an odd twist or turn, as demonstrated by our unusual intro.
All right, let's start off with a lightning round.
This is for Alicia and Chris.
So we'll start
with Alicia. New clients
or existing clients?
New clients.
Chris, Emacs or
VI? Emacs.
Alicia, podcast
or blog post?
That's tough.
I think
podcast, but it's close. Let's tough. I think podcast, but it's close.
Let's see. Alicia, processor choice, looking to the future or one that you're familiar with?
Preferably an incremental, well, okay, looking to the future.
All right, this one's for both of of you robot or non-robot vacuum cleaner
robot robot vacuum cleaners of course what other answer could i possibly give you
good answer chris root beer yummy or tastes like medicine uh depends on the root beer
but generally yummy alicia cilantro yummy or tastes like soap?
Soap.
Oh, really?
Oh, absolutely.
Yeah, she doesn't like cilantro.
She doesn't like avocados,
which kind of rules out guacamole of all kinds.
Oh, that sucks.
Avocados, interesting.
Let's see.
Go.
Dogs or cats?
A whole herd of both.
And the fish.
I'm out.
Licorice.
Proper black stuff or red crap?
Red crap.
Either.
Or neither.
Chris.
Ray or Luke?
Don't hurt yourself.
Just threw his back out there.
I heard it, I think.
Vader.
Ooh, correct.
Alicia, Champagne, French or California?
Californian.
Tattinger makes a wonderful... I'll just stop there, but they make a California? Californian. Tattinger makes a wonderful...
I'll just stop there, but they make a California blend.
Correct.
And that's it for the lightning round.
Should we turn this around?
You passed.
We won't go over to the amp hour after all.
Okay.
I guess we're both on the amp hour recently.
I guess Andre wasn't quite...
He was in the background. Yeah, I've never been. He was the amp hour recently. I guess Andre wasn't quite, he was in the background.
Yeah, I've never been.
He was the emcee.
Yeah, warming up the green room. Okay, so that was fun. Maybe we should actually talk about who you are.
Yeah, who are you?
Andre, could you tell us about yourself? Oh, sure.
My name's Andre Cicek.
I live in the city of Edmonton in the province of Alberta, Canada, in the Great White North.
Got my BSc in Computing Science from the U of A, University of Alberta, that is, a long time ago.
And I've been doing hideous technical and embedded programming ever since.
And for fun, I like to keep foreign cars alive and I build kites.
And you've been on two shows.
So if that all sounds familiar to anyone listening, Andre was on show 114. 99.
99.
And 99.
Okay, Chris, what about you?
Thanks.
I'm Chris Speck, and I am an embedded software engineer at iRobot.
And if that sounds familiar, it's because the last couple episodes, Alicia has told you that iRobot is hiring embedded software engineers and actually Android software engineers and other software engineers.
And we're still hiring. So if you're interested in moving to Pasadena, California, or Boston, Massachusetts, or you're in the area, hit me up at csvec at iRobot.com, and I'd be happy to talk with you.
So I'm an embedded software engineer now, doing robot-y embedded software.
And in a previous life, I designed chips and did chip architecture, and then kind of moved my way up the hardware software stack into embedded where I'm at currently. Excellent. So I wanted to have you both on not only because you tend to be pretty
amusing when you're together and I like amusing but because you have some things in common
about teaching embedded software embedded techniques to other people.
So, Andre, could you tell us a little bit about your Embedded Wednesdays thing that's been going on?
Yes.
After podcast number 114, I found out that people actually listen to this.
And I got a phone call from a guy by the name of Wade in Edmonton who is on the board of the Edmonton New Technology Society, which is one of the local hacker spaces up here.
And they have an open public night on Tuesdays. And he invited me just to come down and have a look around and meet the people because he listens to the same podcast that I was on and it was pretty cool.
So I went down there, met a whole bunch of really neat people.
And they asked me if I'd be interested in sort of doing something with them. They had no idea what, but I suggested, you know,
I could give a bit of an introduction to embedded systems tutorial.
And it got thrown around a little bit,
and everybody was actually really hot on the idea.
And we decided to do it on Wednesday nights at seven o'clock and we called it
Embedded Wednesdays. That got going in September of 2015 and it's been going pretty much every
Wednesday since. We took a bit of a lull over Christmas. And when you and i talk over i am about it over skype or with our new slack
channel you you talk about what you're doing each week and it seems to be taking software
engineers mostly or people who are really unfamiliar with programming concepts and helping them build was it a little robot-y thing well it started out just as um
let's get to know this stuff so there was a bunch of people who'd done web pages uh heavy duty it
stuff uh skater and uh they played around with arinos, and they sort of wanted and do electronics and stuff like that.
But the software stuff, you know, it's like we always chat about, where do you get started and what is this C stuff anyway? that took them from this is a processor to eventually we came up with a project of doing a self-balancing robot.
And how far along are you?
I know you've done some intro with the processor you chose, which was a STM32 Cortex M0 something?
It's an M4, actually.
M4. We were going to be going with the uh discovery f4 boards but uh due to a little bit of an oops we ended up getting the 401c board which was actually
kind of cool because it has uh nine axis accelerometer gyro and magnetometers on it.
So that was pretty cool.
But how about if I just go through what we did?
We went through blinking the LEDs.
You always got to start at blinking the LEDs.
That means that you've got your tools going.
You can download code.
You've got a power supply.
Everything is happy.
The next week, we went on to getting the serial ports working which is great for sending messages debugging and crap like that
uh it got really deep very quickly and we talked about interrupts lost a lot of people there and
had to sort of go back a little bit and which led into the next week of debugging uh then we talked
about uh real-time operating systems and that's sort of where it kind of went off the rails that
might have been a little bit too much uh and right around then i figured okay we'll go from Blinkies to real-time operating systems.
And at that point, probably these people will be figuring out, I would like to do a particular project.
And right around then, they said, hey, how about if we do a project?
And it's like, well, how could you ask for anything more? So at that point, it diverged, and we went into how stepper motors worked, and then timers,
and then bringing together the timers and the interrupts and stepper motors and making it all go.
So they played around with their accelerometers and gyros.
They've got stepper motors working. They know what the big loop is. They can do interrupts. They've seen real-time
operating systems. And now it's kind of turned into a lab thing where we're starting to actually
work on the robots. And how much do you get paid for
this not a thing so you're doing this all because it's useful to the community and interesting to
yourself pretty much yeah gets me out on wednesday nights um i mean i've got all this information It's very hard to find books on this stuff, as you know
Except for one particularly good book
And I figured, well, why don't we just sort of pass it along to other people
So I do it out of the goodness of my heart
And perhaps we'll be starting another session real soon now okay so chris what
about you you've been doing some book sessions and you've been talking about putting together
this thing you're calling embedded 101 can you tell us i guess about the books first sure so um
at at irobot we run a um we run a software engineering reading group. And so that is exactly what it sounds. We pick a book that is more or less related to software engineering, and we read through it. chapter two I think is my favorite chapter
of the whole book. It's where you go through system architecture
and how to
come up
with the system architecture
either from scratch or how to document
an existing one and you have a few different
ways of doing it.
I think I wrote a review on
Amazon and basically said that chapter
that's worth the money right there.
The images you had in there and the way of describing the system you had in there kind of stuck around my head.
So that's kind of one element to it.
The second element to it is I've been doing these robots and these embedded software and chip design and stuff for a while. And I have a bunch of friends who do web development and kind of non-embedded, non-CPU.
They don't need to know what a register is.
They don't need to know what any of the low-level stuff is for their careers.
And then they get an Arduino or they get a Raspberry Pi or something,
and they can start blinking a light.
And they ask me, like, so is this kind of what you do?
Is this what it's like to write software for the Roomba?
And what's that like?
And, you know, geeks being geeks, we can get into a pretty long conversation about,
well, you know, on some level, yeah, it's basically like blinking.
Embedded is basically like blinking a light,
but there's obviously a lot of depth to it.
And so I've heard a number of people say oh how would
i get started in you know in embedded software where are some good books there's some good links
there's some good tutorials and your book is certainly a great starting point he has a few
others out there that i would say you know if you read a few of these books like they can give you
kind of pointers in a direction but i i didn't feel like there was kind of the the tutorial that would have made sense to me
if i were not a already an embedded an embedded guy and so i've been kicking around the idea of
this embedded software engineering 101 which is sort of from the ground up from like the processor
up bottoms up what is an embedded system how how does it work, what is a processor,
and then breaking it down to just the basics and building up from there.
It's actually very similar to Andre.
I didn't know Andre except through the show vaguely,
and then as I learn more about this, we have a lot of overlap.
But I think our approach is a little bit different,
and so it's been kind of cool to see what he's done with it.
And so it's kind of motivated me to get a little more started with my idea as well.
My thought is to start with basically a processor is simply registers and some memory and some instructions.
And that's all a processor is, whether it's a big x86 processor in your desktop computer
or whether it's the little tiny 8-bit micro
running your small Fitbit or whatever,
although I think a Fitbit uses a 32-bit Cortex of some sort.
But anyway, it's just some registers,
it's just some memory, and it's just some instructions.
And putting the word just in front of that
doesn't really do it justice,
but I think that's where it starts. And once you understand that, the course or the tutorial or whatever it is that I'm putting together brings you up through, okay, here's how the basic CPU works. which can be used to do things with the outside world,
like communicate using UARTs or communicate using SPI or other protocols,
and then sort of just building up from the low level up higher and getting to the point of understanding what a simple embedded system is like
and how you'd actually program it using C,
using a sort of a commercial type of a compiler environment
as opposed to an Arduino environment.
So Andre, do you think Chris is totally wrong?
Is he going about this the wrong way?
Actually, it sounds like he's writing the book that I would want.
And his might actually work. I spend a lot of time standing in front of my people
saying, um, um, um, and trying to figure out how to explain a topic. Sounds like he's actually
thought about these things. Well, Chris, you weren't actually talking about a book, were you?
When you and I started talking about this, it was videos. Yeah, I was exploring a few different ways i had emailed you
and just said hey i'm thinking about this thing any feedback i emailed a few other you know embedded
gurus in the field i got a lot of really good feedback actually from people about you know all
sorts of things so i i love our i love our embedded communities it's it's open and super helpful
um so thanks for that alicia in particular and Jack Ansel and others as well.
But yeah, I was like, hey, what's a way to kind of get this out there?
What's a way to present this?
I have a blog, but it's not super well-trafficked.
And you, Alicia, hooked me up with O'Reilly, and they are trying to generate interest in a video series that they are putting out now, instructional kind of tutorial-based videos.
I think you had Simon Monk on here recently, and he's done some of those as well.
And I've talked to a few others who've done them who say that it's an incredibly draining and ringing process, and it just rings you out of all thought by the end of the day,
but you also get something pretty cool out of it.
Yeah, I'm not someone who learns from videos.
I would rather read a book any day of the week.
I just feel like it's faster and it's the way that I learn.
But I was intrigued by the idea of trying something that wasn't necessarily my first choice of media, but hey, why not give it a shot?
And so I'm still kind of trying to figure out if I'm going to do that, how that would look, or if it would be a book or a video of both or whatever.
But yeah.
That's interesting, though, because when I started Embedded Wednesdays, a bunch of people couldn't make it on Wednesday
And they asked if I could possibly
Record the thing
So that they can watch it in their spare time
And I just thought
Oh man, man
I got a face for radio
I don't want to be on a video
Well, you know
It takes all kinds
And I am
Chris and I have been doing a video class recently
and i have been a little surprised at how little time it is a talking head you are almost always
hearing him and watching his screen at the same time well and it's a it's a work along with the
instructor sort of format so it's not like a school lecture kind of format
where somebody blathers at you for an hour
and you're supposed to take notes
and then do an exercise.
It's very much, okay, I'm gonna stop here,
pause the video.
I want you to go do this and you go do it.
And you come back and he does it again for you
and you can compare notes on how well you did.
But yeah, and all the videos are very short.
So it's not like
you're 15 minutes short yeah you can take it in bite-sized pieces so i find the video format
actually quite interesting and i could like at least i hadn't really considered it useful before
trying it which you know is like many things well is is there enough depth to the or i suppose
breadth to the thing because you're dealing with a linear format,
and if it's not in the video, you can't exactly,
could you flip to another chapter and figure out what you're missing?
Or if it's missing, do you have to hit the books anyways?
It's been pretty linear, at least for me,
because it's a class about developing games in Unity, just because we were interested.
And for me, I do what he says, and then I occasionally will make tweaks.
Your random number generator, he has it from 0 to 12, and I do 0 to 12,000 and then make my game score differently.
Chris, on the other hand, knows more about how games
should be programmed and has gone off the
reservation. Hardly.
I would never have figured out how to get
the skull to spin around and shoot
out blood particles.
That's actually a skill that all
male boys...
You have to want that first
before you go figure it out.
Just finished
watching X-Files with heads
and arms being pulled off. Spoilers.
Okay.
Not much of a spoiler.
A question for both of you.
I was thinking about this as
you were talking about
how you structure your courses or how you're going to structure courses. And I was thinking about this as you were talking about how you structure your courses
or how you're going to structure courses.
And I was thinking back to my own education,
which I mentioned on this show probably too often,
but it seems like people who are learning today,
whether in college or not,
the exposure to computers is different.
You get a high-end laptop,
that's your computer or a desktop
or what have you, and you're presented with this wonderful interface and all the complexity is
hidden from you. But when computers were new, or, you know, cheap microcomputers were new,
a lot of things were exposed to you from a programming standpoint, from a hardware architecture standpoint.
A lot of them came with manuals that just laid out the whole internal structure.
And so it was really easy to say, oh, I have a computer and here's how it works.
Now that doesn't happen so much.
Do you think that using that as a model is useful,
like going back to those early processors and kind of going through that process
of exploring this device as a whole.
It's different.
Last week, I was listening to your podcast
and you were mentioning BASIC,
and I was jumping up and down
because, as you say,
Microsoft used to give out BASIC with it just came with dos and it was there and it had manuals and you can find out
where to peek and poke and do all sorts of crazy stuff and then microsoft started okay i'm gonna
have a rant microsoft started uh making money off of their c compiler that was hundreds and
hundreds of dollars for this huge box of thing and you can become a professional and stuff like that
and eventually they canned basic and i think that they kind of cut off the flow of people
into the industry until i don't't know, Raspberry Pi, Arduino,
basic stamp came along
and it started to fill the gap
but at a much lower level.
I think they did us a disservice.
I tend to agree with that.
I think it was what I was trying to say
and not exactly the same way,
but yeah, there was a gap.
There was a gap where computers became not things for exploration, but just tools.
Well, it became a way, it went from a tool for exploration to a tool to get you a certification, to get you a certified job where people were asking for certification.
And like, come on, really?
I mean, your curriculum was crap.
And sorry.
Okay, speaking of curriculum being crap, let's get back on topic.
Let me answer part of Chris's question, I think, if I can try.
So I think your question chris was
does sort of starting it you know the fundamentals or the low level of this older sort of you get to
see the guts of the system is that a relevant instructional method is that a fair i think that
was sort of what i was asking because that's how i learned so it must work right right right and i'm
the same way commodore 64 basic I actually got detention in fourth grade
for bringing the manual in during reading time
and writing a program with peaks and pokes
because I should have been doing something else.
So, no, I mean, I listened to your show last week
and I was just nodding my head the whole time.
Yeah.
So the goal of what I have in mind
for my Embedded Software Engineering 101
is to enable someone to basically do my job.
To do what I'll call a professional embedded engineering product, which is going to ship by the millions of units a year.
And it's going to need to be reliable and reasonably well designed. And what I come back to is if you want to write good software, reliable software on
our embedded devices, you have to understand the underlying processor and when you're
doing things with SPI or with I2C or any of these things that an Arduino makes it really
easy to just hook up and import a library and type a couple lines.
Magic happens over the
wire. On real embedded systems, especially if you're working for a company like mine, where we
do all of our own circuit board design, we write all the code, we're not pulling in Arduino libraries,
you have to understand what the underlying protocols and what the underlying processor can do,
what are its limitations and what are its strengths and weaknesses. So my thinking is a
fundamentals approach of fundamentals of the system are the CPU and the stuff that it connects to.
And, you know, starting there and building up will let you eventually, hopefully, you know,
learn how to essentially do what I do. I should also say, like, as a huge caveat, I enjoyed school. I enjoyed
college. I enjoyed undergrad and grad. And, you know, that sort of hierarchical, you take
engineering 101 and then 201 and then 301. That worked for me. I liked it. So, you know, that's
definitely my learning style. And I'm sure it's a huge bias that I have with what people would be
able to get out of anything I teach.
But, hey, I'm offering it for the same price and getting paid the same amount that Andre is.
So maybe people find it useful.
And I don't think it's absolutely necessary to start at the incredibly low level.
I started, like, let's see, the year that I graduated, the IBM PC came out.
A couple of my friends had Apple IIs, but I started my career on an Amd that you had to go talk to if you wanted to get your stuff done.
It wasn't until much later that I ran into some EEs that, you know, it's a symbiotic thing.
EEs don't write code, and I don't make circuit boards and we need each other. So I've learned a lot of low-level electronics and I'm trying to pass on the software side to the EEs
and a lot of technical tech people as well that came out of tech school this was why i wrote my book um which is now four and a half years old
and i think it's aged okay but it's still i wrote it because i wanted to be able to hand it to
a new college grad and say i don't want to have to tell you all this stuff. Here, look it up.
Well, it's very hard to find that stuff without your book.
It just is.
I mean, Embedded.com, their most popular article still dates back to, I think it's 2003.
And I'm thinking, that's 13 years ago. you have to have a more up-to-date
more popular article but things change and yet i mean they don't yes so um yeah do i wrote my book
for a lot of the same reasons you are both saying that you want to develop these things.
So I totally understand.
I totally agree.
And I think the fact that there are different perspectives is awesome.
Because whoever looks at my book and says, you know, I just need more detail.
I need to understand better.
I can't just work in concepts.
Well, they should have a different option. And the person who says, I really want to do videos because I learn better visually instead of with books, they should have an option.
Everybody should have a path that works for them if we can make it so.
And so I'm excited about both of your work. I guess I should also say that I admit that the exact phrase for this was
only an idiot would write a second book. But there have been hints going on that I've been
working on a second book because I have been. And that was one of the reasons Andre and Chris and I started talking more. They somewhat foolishly agreed to be my test readers.
And they started doing edits and telling me where I needed to explore more.
Did you like what you read so far?
What?
You think I should tell them about the book first?
I can't.
Yeah. If you're writing a book. You think I should tell them about the book first? I can't, yeah.
You're writing a book?
If I'm going to comment on it,
I'd want to know how much spoiler you're going to release.
I think there's too many vampires.
I think that ship has sailed,
and I think the retread of the vampire thing
probably should be rethought.
Werewolves.
I'll just copy-replace for werewolves.
All right.
Clowns?
Clowns are scary scary that's too terrifying uh yeah so my book my new book which i am 100 spoilers by the way i'm not really holding
anything back at this point what's it about it is is about... 200 pages. Not quite that yet.
It is about taking apart toys.
When I took apart that BB-8 unit last fall, I had such a great time looking at the processor and the motors and the inertial unit.
And I discovered that as long as I was holding BB-8 while I burbled on about PWMs, people would stand there and listen.
It was like I could trick them into understanding a little bit about engineering and motors if only there was a cute robot.
And that led to, well, what else could I trick them with?
And then that led to the Shearson CX-10 quadcopter, the little tiny,
tiny quadcopters. And so, I started looking at how they were built.
But those are both toys for boys. Did you find anything for girls?
You know, the fact that you've read part of it really does help you line up those questions
well. I started asking people, well, what should I get out of the pink aisle?
Because I really did want a girl toy.
And I even, I conned you, Andre, to go look at toys, because we were talking about what
toys should you get for girls.
That was actually really hard.
There is just nothing out there that is interesting for girls. The toy industry should just be ashamed $50. I want it to have buttons and I want it to be girly. And Violet was cool,
except I didn't want to take apart a leapfrog toy because I used to work there and the chances are,
I don't know, it was a long time ago, but I still wasn't, I didn't want to do leapfrog.
It's probably fine now. They're owned by VTech.
Well, yeah.
Layers of abstraction before the lawyers get to you.
Yeah. Well, we also looked at Hello Barbie, except it was running about $100, and it had just come out.
And I really wanted to do that because tearing off Barbie's head.
But also, as you probably know, it was a very contentious toy this winter.
Yeah, it had bad idea written all over it. Although, one of the things that drew me to engineering and to toys in particular was a Mattel engineer coming to my college my freshman year, bringing us Barbies and X-Acto knives and showing us how the knees worked. transformative experiences because it was so cool and so not what I thought I should be doing.
Yeah. But so I ended up asking around from different people about what should I get for
a girl's toy and ended up with a karaoke, which was kind of boring on the outside. It's just
buttons. It's just a CD player, but the manufacturing, oh, it's just a cd player but the manufacturing oh it's awesome inside
there's there's hot glue instead of actual connectors and there's all kinds of weird
manufacturing choices like single layered boards and when i mean single layer i mean
there's only copper on one side the other side is brown and plastic it's it's turned out to be way more interesting
than i expected and it was covered with all sorts of soldering schmutz and and cleaning goop and
those were terrible boards yeah the pictures are just really amusing which i guess now i have to
talk about the book it's sort of a lot lot of pictures that show the toys on the inside
and trace out the circuits that I find interesting,
the LEDs and how they go through MOSFETs,
and then the motors and how the KEP actually looks,
the feedback, the quadrature encoder feedback,
looks on an oscilloscope.
And why that's interesting, I did that for BB-8,
but comparing that to the quadcopters,
they're weirdly the same and yet different.
I mean, they're different enough that you can see
how engineering works in different cases,
and yet you can also draw it back to its bare bones of how this normally works
and I know there were knobs inside the karaoke and how does the resistive material work when you're
doing pots I mean how does that really work and that's the same as the
joysticks inside of the quadcopter anyway if, if you're listening, you can tell that I'm super excited about this.
I think it's a great idea.
And I have had a ball writing, I don't know, I'm up to like four chapters and two more
roughed out and I have a plan and all that.
And we learned so much just going through all the various little sections and figuring out how the hell they worked.
And sometimes, this is why we started the Slack channel.
Sometimes I would be like, well, I think it works like this.
And Andre and Chris would be like, oh, you try that and then this and then that and then this.
And it was educational to see the paths they would take.
And then there was that whole period where they kept
suggesting to add more wires to the quadcopter even though it's tiny sorry about that yeah i
had no idea how small that thing actually was until you sent me one and it's like what i thought
this was supposed to be a quad oh my god look at that this is the size of my thumb. Sorry for asking you to try and put wires on that.
I ended up with a few.
I did it in a microscope.
So, yeah, there I was writing a book, and it hit a few bumps.
And it turns out my publisher says it's okay to publish the book, whatever I have, in blog form.
Like, he doesn't care if I just go ahead and publish what he's going to put publish the book, whatever I have in blog form.
He doesn't care if I just go ahead and publish what he's going to put in the book.
I want to.
I was thinking, do you guys want to maybe have a blog?
We can put all this stuff in the same blog and I'll
talk about embedded software
and education and i can trick people into wanting to learn and you guys can actually explain the
stuff for me you mean take my like uh embedded wednesday's brain dump and put it on a on your
blog too yeah i mean i might like copy oh iit it. Oh, I've got some ideas. Oh, I've got some ideas.
What do you think, Chris?
Sounds good.
Chris is like, wait a minute, I already agreed to this.
Play along, come on.
I just went off the deep end, Andre, so I didn't know what was going on there.
Yeah, no, this is great. We definitely had a lot of fun going back and forth in Slack with the book
and with tearing apart these things
and trying to imagine why in the world they were manufactured the way they were.
So we all got pretty excited in the Slack channel.
And then sort of along the side, we thought,
hey, Andre and I have these other ideas.
Some stuff's already published, some stuff is not.
So yeah, Lisa, your idea of let's tie this together into a single blog, not necessarily a blog where every topic hangs together, but just like a central embedded community for a bunch of this stuff is, yeah, sounds fun.
So what are you gonna write well one of the things that i've done over the years is uh anytime i get some big hunk of equipment fixed i sort of talked to the repairman and say can i
keep the processor because that's kind of what i do for a living and so i've got so I've got a few little pieces of hardware that I thought that I would
make a little set of entries called
Is it an Embedded System? and explain how
a dishwasher works.
Chris, you up? That's cool. I would like to know that.
So my reason and my topic is basically this embedded software engineering one-on-one thing that I've been kicking around.
And my selfish reason for wanting to do this is that the idea lives currently just in some notebooks that I have in my hand here on paper and pencil. but having some other people who expect me to write something once a week or so
it's a really good forcing function to actually get me to sit down and type and put something
together that actually hangs together so so mostly kind of this tutorial this fundamentals of
embedded software engineering and then other you know random stuff I have a personal blog
so this random little you know embedded tidbits on there and stuff.
So kind of some random embedded-y sorts of things.
But primarily just the Software Engineering 101, Embedded Software Engineering 101 topic forum series.
Well, and you read an awful lot, an awful lot of nonfiction.
So I'm hoping for some book reviews.
Because sometimes you do pop into the Slack channel and say,
have you guys read this?
And I always end up putting it on my Kindle wish list and planning to read it as soon as it goes on sale.
Cool, yeah.
I definitely do a lot more reading than writing.
And hopefully this will help me twist that around a little bit.
You're going to balance it.
Yeah.
What about you, Christopher?
Are you participating?
I believe that I'm required by law to participate.
No, you're only required by law to like me.
I don't think that's right either. You said I do.
Anyway, I don't know yet. I have several things
that were sort of in progress on the old blog,
the Element 14 blog, and I don't know if I'll continue those.
I have one sort of big project in mind for this year,
and I need to start thinking about it a little more seriously.
And that involves the ocean and floating things and...
Seawater and electronics.
Nothing can possibly go wrong.
And iridium modems and solar panels.
So that's something I'm thinking about.
I also have this thing in the back of my mind
that's not been bugging me exactly,
but it's something I've wanted to talk to on the podcast,
and we haven't found a guest yet who's right but hacking your tesla no there's there's certain devices i
own that that i'm perfectly happy that they just work and i don't need to know any further how they
work but uh you know there's our discipline embedded software engineering and then there's
software engineering which is you know building applications and writing web applications and server stuff. And I know a little about those things, enough to know how different it is. And after taking part of this Unity course, it's become clear that things outside of embedded development have moved a lot further along than i kind of was aware
yes and so one of the questions is my in my mind is why don't we have the level of advanced tools
that exist for other things like games why is there this dichotomy do we hold on to these old tools in some sort of weird, I don't know,
almost fetishization of things being difficult.
It's sort of a compare and contrast,
what we do every day with Embedded versus what's happening
in the wider software engineering community.
Interesting.
I don't have anything specific there yet,
but that's sort of a topic line
that I'm thinking about pursuing.
Is there anything from the Unity course
that kind of was like,
is there an example of something that,
man, this is like 20 years ahead of my normal...
It took you like a minute
to add the blood spatter from the skull.
And you know, it's focused on making games,
but Unity is a framework that can make any kind of game,
from a text adventure to a 2D side-scroller
to a complete giant 3D open world thing.
A virtual reality system, too.
A lot of games are programmed in it.
Kerbal Space Program is programmed in it.
Almost everything on iOS that's a game
is programmed in it, 2D or otherwise.
What I didn't realize is how little code is involved.
Yeah.
Most of it is piecing things together from prepackaged elements, doing artwork.
And then the code that's involved are these little glue scripts that are written in C Sharp or JavaScript or whichever scripting language you like.
And you don't really write serious code unless you're venturing far
afield and saying okay unity doesn't have what i need i need to write my own physics routine or i
need to come up with some mechanism that doesn't work uh that that isn't pre-done so it's it's
it's the whole framework thing right it's people have already written all these blocks. You don't need to write them again. Why would you do that? Well, I'm pulling that back into embedded. It's we don't have as many
of those blocks. And is it because we're really all special snowflakes every single project or
are the processors and architectures also different that it doesn't make sense to have
a framework? Or are we so used to being knowledge workers in the form of i know this embedded thing very deeply
and i don't know all of the other huge amounts of frameworks that i can pull in
or is it a fetish thing where everybody feels so good after they've written their 64th serial port handler
when it's all exactly the same and they should just be changing the back end but this time i'm
going to do the error handling better yeah this time not next time though next time we always get
we always get talked into using the smallest possible processor, even though we're going to kill ourselves at the end of the week.
Hey, it saves a penny.
Not if you buy them by the million.
So you did mention Element 14, and I should say that we're very happy with them.
They were very nice to us.
They've had some management changes, and so we're going to strike it on our own and not follow them through their changes.
A little bit more flexibility to include other people and whatnot.
And I was always hoping we could include other people there, too, but that never quite worked out.
So I'm pretty excited to be able to try out having more people to talk about these things so is there
going to be any advertising on this website well that's a good question right now no um oh so i'm
going to get paid the same amount that i get paid for embedded wednesdays and chris gets for embedded
101 oh at least he told me that she was going to double my pay for the website version. Yes.
What?
Yes, I'm doubling both of your pay.
Okay.
I was going to go on strike next month.
Nothing times nothing.
Carry the nothing.
Yeah.
We're open for offers?
We might take advertising.
But given the international nature of this venture, we might take toys more than advertising.
You know, if somebody needs a oscilloscope, you know, I don't know, reviewed or something, maybe we'll do that sort of thing.
But right now, we're just going to do our own thing because we each had reasons for putting this material together. Now we're just going to put it out in public a little faster,
which will hopefully make it easier for us to keep going.
Must be realistic.
It's a blog.
It's a blog.
It's a blog.
And if we all update once a week and we include the show as one of the updates,
then, you know, it's like five days a week of stuff.
Yep.
And we already have four readers.
Yes, we're so ahead.
Your dogs don't read it yet?
No, our dogs don't read.
The fish do, but I don't know what they read.
Porn.
They're going to have to edit that out now.
I don't know.
Okay, so any other questions we should talk about about the blog?
I don't know.
It doesn't exist yet, so.
Well, it will when this show goes public.
Where is it going to be?
It will be embedded.fm slash blog. We did talk about different
names for the blog and then decided that blog
was going to be its name. Because that is the best word
in the world. That's such a terrible word. We could call it web blog.
My internet diary.
Dear diary, today blog. My internet diary. Dear
diary,
today I cut open BB-8.
It was great.
With the blood spatter.
Just took a couple
of lines.
Yeah.
So
it's, yes, it will be
off of the Embedded.fm site. It should be easy to find. If you go off of the embedded.fm
site it should be easy to find
if you go to embedded.fm
it will be in that top
bar there will be something that says
blog and then
that will lead you to our current post
really I'm doing some editing
what
top bar
the top bar it currently says like
about us and contact us.
Oh, okay, that menu.
That menu.
Just takes a couple of lines to add that in.
Yeah.
And ideally, we will all have about pages with little bios,
but right now that so doesn't work,
and I don't know that it's going to work before Wednesday.
Because some of us are not web developers and they have actual jobs.
Yeah, that being part of the problem.
We have other projects we want to
work on and we want to write and all of that.
But we'll make sure that
you can actually find out a little bit more
about us pretty quickly.
And
yeah, it should be
interesting. I know that there are other
embedded
blogs and other sites, but I'm hoping... But this one is ours. yeah, it should be interesting. I know that there are other embedded blogs
and other sites, but I'm
hoping... But this one's ours. Yeah, this one's
ours. And we're
open for suggestions for topics as well.
That's a good thing to say, yeah.
Yeah. Yeah.
Andre's already got a full set of tags.
I believe there was rant.
Yes. News
and STM32.
Gets its own whole tag.
Yes.
Yeah.
It's a good course.
It's a workhorse.
Comes in every flavor you want and they're pretty aggressive on pricing, so it's got a lot going for it.
Yep.
We are going to allow comments on most of the posts.
On the other
hand, that's
currently turned
off by default,
so we'll have to
remember to check
the box that
says allow
comments on all
the posts.
And, yeah, it
should be an
adventure.
I'm totally
terrified.
I'm pretty excited.
At the very least,
I will enjoy
reading the stuff
that you all come up with, even if no one else reads it. yeah i'm excited at the very least um i will enjoy reading the stuff that
that you all come up with um even if even if no one else reads it um uh you know having having
worked with you a little bit and you know seeing some of the stuff that we've sort of preceded
this site with uh i think it'll be a good a good like sort of smorgasbord of uh of exactly of
embedded topics that uh that I'll find interesting
at the very least.
I'm happy.
What else are you looking forward to reading, Chris?
Me, Chris?
Yes, you.
I can point to him.
I can't see that.
The Teardown stuff,
having reviewed a lot of your book,
just more of that will be great fun.
I like reading Andre's stuff and his different take on how to learn embedded software and how all that works.
Now you've got me paranoid.
No, no, no.
Why is it different?
No, because we all come up with different metaphors.
That's different.
He doesn't use binary.
He uses base three.
No, but we all come up with different metaphors or a different way to explain things or a different order to explain things, a different writing style. Chris White just said it, just about kind of looking at the progress that the web development, I guess, embedded versus non-embedded fields have made.
And just hearing kind of some of the sociological, psychological, whatever stuff going on there, that also sounds like a pretty interesting thing to read about and to think about.
So I'm looking forward to that too.
Well, one of the things that I wanted
to do this year
was to
try C++ in
anger, because I've never used
C++.
Well, and you
sort of, it was
a conversation that we were having on Slack
that sort of triggered this where, first of all, I saw this little thing where Dan Sachs sort of got stomped on at a conference for liking C++ and everybody derided him.
And then I heard Bjarne say that C++ was great for embedded systems,
but he didn't explain it. So I ended up reading a couple of books on C++. So I might just
have to write down sort of the path that I'll
go down and discover whether C++
is actually good, since you won't tell me.
I wanted Chris White to actually write this thing
because he knows C++ and Embed, and he said, uh, no.
I think it's better for somebody to, I mean, I have biases,
and so I think it's better for somebody to explore it.
You're working for a company and doing it for a living
and might be conflict of interest to you.
Well, I was, I mean, we're going back to the Slack channel.
Okay, so the four of us hang out in Slack
and sometimes we have another visitor.
But it's, we all work from home or remotely.
I guess, Andre, you don't really work from home,
but it's all remote and not necessarily in an office
with other embedded software engineers.
Canada, anywhere in Canada is pretty remote,
so I think they qualify.
It is.
And so this Slack channel has been a way of sharing ideas
and thoughts and chats.
And sometimes it's noisy and sometimes it's quiet and sometimes it's technical.
And I was pretty fascinated to hear Andre go from, I hate C++.
I hate the idea of it.
I hate everything about it.
I hate the letters.
I hate the pluses most
of all sort of hilarious rant to c minus minus to to considering it and to to being persuaded
by everybody saying no no maybe you should try it before you hate it so much and and then he got a
book and then he asked questions that none of us knew the answer to because we had never gotten that far in the book. We used the first part of the C++ book. And it was great. I
hope you write about that. I hope you write about what kind of idealism changed there. I mean,
did you have to force yourself or was it just forcing yourself to sit down the first time and and how how does it affect your work which i suspect for a while it's not going to affect
your work at all you can't just change oh no i blew something up already there's something
from c++ that just don't work in c and you do a lot of mizra code and I know that C++ has a MISRA spec.
So yeah.
Yeah.
The train of thought involved in that too is kind of cool because we're,
we're all starting from somewhere.
And so seeing,
seeing Andre as like,
he starts by looking at it and hang,
what,
what,
what is inheritance used for?
Or what,
why do I care?
Why do I need a class?
Why can't I just have, you know, a struct and struct and just you know an array of objects or whatever and just watching
watching the evolution and the sort of train of thought as uh as ideas develop and as someone
learns stuff and hopefully getting to read how that train of thought uh evolves is uh it's kind
of cool just gives you a glimpse into uh into. I think it's better than just reading a textbook about it.
Actually getting to hear someone as they progress through the subject.
Well, and I hope that's what we get in the blog.
I mean, we got a little bit in the Slack channel.
I hope we get that in the blog, that progress.
Well, right now I'm going through a C99 book.
And it's a good thing it's it's like i i learned c back in the early 80s
and it's gone through a bunch of iterations and there's a bunch of stuff that they say uh c
doesn't support this anymore and i'm thinking oh my god I used to use that so many years ago. Where did I learn the new style of stuff?
And it all came out of like K&R Volume 2, which is 1985.
And I'm thinking, oh my goodness, it's time to read a C manual
and get brought up to date on C.
And I bring up a bunch of, in the Slack channel, I bring up,
hey, did you know that you could do this?
And nobody's seen that before, even though we've all programmed C.
So I think a blog entry might be a good C manual
and little cool things that i've learned in modern c
so a lot of the blog is going to be deep technical dives into topics but some things are just going
to be a short book review a short recommendation a link that leads you to something else that's
interesting or andre you already have a post-up that's about news that happened recently.
Yes.
We've been talking a lot about the curriculum
and education and all that,
but there's going to be,
there'll be some fluffy stuff.
We may not invite you to our Slack channel,
but you can at least, you know,
hear the echoes of what we're talking about there.
Well, we have various things that we watch on the internet, whether it's LeapFrog or ST or whoever, that, you know, we've got connections.
And they don't send us information about what's happening in the embedded industry.
So, you know, it might be good just to put these into one place where you can actually read about them
so that you can get the latest update to the tools that you're actually using.
And so you can find out if the update is any good
without having to read the press release,
which is all full of like proactive synergies.
We have to try the update release, which is all full of proactive synergy.
I guess we have to try the update.
Andre did, so we are good.
Andre did,
and then told you how to get it working on an AR.
I'm sorry, Speck?
I just said, and Andre not only tried it out, but told you how to get it working
on a Mac, even though it's not
supported unless you play a small little game.
And I've spent the last week
debugging Timeout
in SPI, so
I have to track that one down
and send a couple of
bug reports in.
Oh, that's
the plan. We're going to write a blog.
Anybody has questions, comments, suggestions?
None of
us are planning to retire off of the winnings of our blog.
We've already talked about that.
Why have we talked about that?
Has there ever been a blog that anybody has retired off of?
I don't, there have been blogs that have made a fair amount of money.
About embedded systems?
No, and I think that's why they stopped doing them.
I was thinking more of the cute overload cake wrecks,
living sort of wage.
Embedded wrecks.
We'll slowly morph into that.
Embedded wrecks.
Embedded wrecks.
I think Jack Gansel is actually doing a talk like that
at ESC Boston.
I could show him a light switch
that I'll be tearing down real soon
now that would be an embedded REC.
But instead you're going to put it on
the blog and it will be super cool.
Yes, it is.
I'll try and suck the code out of the processor
as well.
Okay, well I think that kind of
covers it for my slew
of announcements and all of that.
What lightning round questions should we add for future guests?
Are you going to lightning us?
No, I was just asking.
I know you listen to the show and you had some pretty good questions there.
So I wondered, what should we add?
I like dog versus cat.
Yeah, that is a good one.
Favorite processor, alive or dead?
That's already one.
It doesn't always get asked.
Yeah.
Okay.
I liked your question about the favorite language to start with.
I like that one a lot.
I like it when people give a different answer
between their favorite language
and favorite language to start with.
I just, it's like, why?
Okay, I understand, but you realize
there's some oddity there.
Well, your favorite car
and your favorite car to learn to drive on
are going to be pretty different.
You might have a favorite car like a Porsche GT3. I don't think you'd want to learn to drive on are going to be pretty different you might have a favorite car like a porsche gt3 i don't think you'd want to learn to drive on that
no no no bmw 2002 is a good one you cannot stall it
well then i have i do have a new one um which i guess i will ask you
both um who do you find inspiring and i have a list of people here to give you ideas
tesla edison grace hopper steve jobs steve wozniak elon musk from that list it's was
and from my own list it's uh richard feinman it's the bongos um what's that chris it's the bongos it is the bongos
i'd have to say um elon musk i don't like edison because the light bulb was uh invented by somebody
in toronto and edison just bought the uh bought the patent but that's a totally different topic.
Oh, Canada.
Yes.
I think you have to sing the rest of your national anthem now, or after that, leave in.
It's pretty repetitive.
I actually like the Italian national anthem.
It's awesome.
Anyway, we'll put a link to that.
We'll put a link to that in the show notes.
Okay.
Well, then let us go back
to our
evenings, our wild
party nights.
Yeah, none of us.
Chris, do you have any more questions?
I was going to ask them both what
what thing was bothering them most in their jobs right now cool but that's kind of an
unheard question well as you know as no you don't know the uh keystone xl pipeline goes
basically to my front door so this uh this uh trashing of the price of oil has just
devastated everything around here so if people are looking for engineers we've got them just
doing absolutely nothing right now uh our company is actually doing quite well right now we're busy
for the uh foreseeable future but but it's pretty grim up here.
So that's kind of bothering me.
I've seen a lot of job openings recently, so that's actually good to know.
That's Edmonton, Canada, so it's a little out of the way.
And Calgary, if you want to get closer to the border.
But yeah, it's pretty devastating.
But not all jobs need to
happen in person no okay chris feck what about you what thing is bothering me in my professional
life i think it is too hard to get simple things done like the the tool chains and the you know i
mean this this actually goes right
into what chris chris white was talking about with just how easy it is to get something pretty
cool done within the unity framework or these other these other frameworks i feel like doing
simple things like making change to the processor testing you know processor making change to the
code testing them just the whole ecosystem of stuff that I do for 75% of my day job.
There's too many steps involved.
There's too much room for error.
There's too many pieces of hardware in a chain of wires
that can all go wrong with some open source software on them
that works 80% of the time,
and you chain a couple of those together,
and probabilities make them work less.
So there's just too much old stuff strung together with bits of bailing wire. And it seems like, you know, seeing, you know, the Microsoft Visual Studio or whatever framework
you're using for Unity and these environments that make it super easy to do reasonably complicated
things.
I'm kind of jealous of that.
And I'm interested to see what Chris digs up as he answers that.
So Chris, you asked the question and now you get to fix what's bothering me.
So thanks.
Great.
I'll get right on that.
Yeah.
And remember, the blog drops on Wednesday, so we'll need that quickly.
Yeah, you look for that on Wednesday.
When it goes live on Wednesday, there will be at least one new post about my new book.
And then there will be some posts from older things.
Element 14, I ported some of those because I wanted things in case you hadn't read it before.
And Andre and Chris
will both be porting over a few other things
for themselves, right?
Yep.
You don't have to wait for us to get it together
to go look at it. You can go
see what it's going to be about and get
a flavor of it already.
And the stuff
should be dribbling out like
once a day, so come on back like every day and see what's
new new and exciting every morning do we have an rss feed we we yes we do have an rss feed i don't
know that we're going christopher's looking at me like no we don't but i'm pretty sure we do we do
it's for the blog the the podcast we have to create a new one. Oh no, that wasn't hard.
It's web programming, Chris.
It's all easy according to you.
Just add one line of code, it'll be great.
I don't know that we'll have stuff every day.
But yes, we'll try.
There are only four of us and we're only going once a week.
So there are
more than four days.
So I don't know.
Yeah, okay. Now it don't know. Yeah.
Okay.
Now it's time for final thoughts.
Svek, why don't you go first?
I actually have a quote in honor of how you end the episode.
So this is a quote by Richard Feynman.
We didn't plan this at all.
And someone else quoted him from a lecture he did on BBC Horizons video years ago.
And here's the quote.
Richard Feynman is a physicist who won Nobel Prize, among other things.
And he says,
To do real good physics work, you need absolute solid lengths of time.
It needs a lot of concentration.
If you have a job administering anything, you don't have the time.
So I have invented another myth for myself, that I'm irresponsible.
I'm actively irresponsible.
I tell everyone I don't do anything.
If anyone asks me to be on a committee for admissions, no, I tell them I'm irresponsible.
Cultivating irresponsibility.
I like it.
Andre, what about you?
Well, first of all, don't follow anybody who's eloquent. I like it. Andre, what about you?
Well, first of all, don't follow anybody who's eloquent.
I've got nothing.
Thanks, Chris.
You just sideswiped me there.
Throw me under the bus, dude.
I stole a quote from someone else, man.
It's fine.
I was just looking up something about Scotty and LaForge, but couldn't come up with anything quickly.
Pass.
Okay.
All right, then.
All right.
I do think that about covers it. My guests have been Andre Cicak of Embedded Wednesdays, a systems developer at CBF Systems Inc., and the owner of chichak.ca.
The other guest, of course,
has been Christopher Zweck of iRobot.
You can still apply for jobs
using his email address,
csvec at iRobot.com.
And he has a blog over on chriszweck.com.
There will be links in the show notes, of course. and there'll be a link to embedded fm slash blog although i think really you could figure that one
out so come on by and see what we're trying to build as usual you can say hello by hitting the
contact link or emailing us show at embedded.fm. So thank you for listening.
Thank you to Christopher for producing and co-hosting and trying to set up Skype with four people.
It was a battle, but it might have worked.
We'll see.
If one of us didn't actually have any audio in the show,
there were just pauses, it's not really his fault.
It's totally mine.
We will be here next week. And a final thought for you from me is from Meg Cabot. Probably not an author you know,
but maybe you do. She says, write the kind of story you would like to read. People will give
you all sorts of advice about writing. But if you are not writing something you like, no one else will like it either.
Embedded FM is an independently produced radio show that focuses on the many aspects of engineering.
It is a production of Logical Elegance, an embedded software consulting company in California.
If there are advertisements in the show, we did not put them there and do not receive any revenue from them. At this time, our sole sponsor remains Logical Elegance.