Embedded - 122: Glue a Board to Your Resume
Episode Date: October 21, 2015Chris and Elecia try out their new recording location, give advice for getting a job in embedded software, and respond to listener emails. SparkFun's Pit of Despair is a blog post about how to create ...products from prototypes. Visual Studio has plug-ins that support microprocessors, see Visual Micro. The Guardian reports that 2016 VW models have a different defeat.
Transcript
Discussion (0)
Welcome to Embedded FM.
I'm Elysia White.
I'm going to be chatting with Christopher White today about drones, listeners, and whatever moves us.
Trucks.
Not so much trucks.
Well, yes, actually, there were moving trucks.
Big trucks.
All right.
So this apparently is going to be me talking to myself while Christopher
recovers from our move,
but we have moved.
And if we sound any different,
give us a month and then you can start complaining about how different we
sound,
but we got to,
we got to unpack all these boxes,
maybe two months,
maybe two months.
All right.
I thought we'd just take the handy quarter,
the travel mic to the beach and record there,
but Christopher wouldn't have it.
He actually unpacked boxes for you people.
Nobody wants sand in their podcast.
I bet people, I would like sand in my podcast.
It gets in your ears.
Yeah, and then it's so hard to get out.
So what do you want to talk about today?
Well, you have this list of stuff, which I have misplaced.
It looks like we have listener feedback and current events and some other questions.
Random questions, yes.
Okay, well, let's start with listener feedback, and then we'll wander back and forth through there.
Sounds good. First, we heard from Zip, who is a retired programmer who used to work at Cisco.
And he said he enjoyed our podcast, especially the Tamagotchi show and the shows with Micah.
I didn't have a question in there, so I guess we're just saying hello, Zip.
Okay.
Actually, he wrote to give me some information about one of our listeners, which was nice.
We do tend to just sort of figure that people are hardware, software engineers,
like the people we are and the people we know.
But, you know, everybody's different.
Well, it sounds like they came from a different background than most programmers.
Ceramics and photography.
He started programming at Fortran.
That's cool.
All right.
Well, let's skip down to, let's see, Bill O'Reilly.
Not Bill O'Reilly. No, not Bill O'Reilly no not Bill O'Reilly
this was one that you said
you'd answer
and then I failed utterly
because I'm a terrible terrible person
it's okay I was looking at the podcast
emails in my inbox
and I realized that I have some from like
January I have never that are starred
so that I would reply to them January I have never that are starred so that I
reply to them but I never actually replied to them so Bill says that he has been an engineer or
doing all kinds of stuff and back in the late 90s he was in the embedded industry but then
then somehow job security got him into civil service government work doing system administration for at least 10 years.
Okay.
That's probably not uncommon.
After all the things that have happened with life and whatnot, he's been out of Embedded for 25 years but has wanted to return. And he's been getting into electronics
and bought a small tech bench and an analog oscilloscope
and a couple of benchtop power supplies and voltmeters.
And it sounds like he's really equipping his lab,
which, you know, if you want more stuff,
we've got a whole garage full at this point. His question, in the end, is in all of his 25 IT years,
he's heard very little about opportunities in the embedded market.
Maybe it was because he didn't have a need
and therefore didn't have the ear for them,
but he wondered about his new professional era
and what the job market is like in embedded.
That's a very broad question.
Yes.
Like saying, in computers, except half of computers.
I don't know.
I think it's very good, but I think it's very good in subsections of embedded.
I think medical is definitely very good.
I think there's a lot of stuff
in the maker side of things
where I don't know if there's jobs per se,
but there's certainly a lot of areas to contribute.
I don't know, what do you think?
You've been getting a lot of little contracts popping up.
What seems to be the popular industry.
I've been open to little contracts.
I do occasionally get messages for larger ones.
I just sort of ignore those off the bat.
I don't know any embedded engineers who are out of work
and looking for a job who aren't inundated.
So at least the Silicon Valley area,
I would say job market is good.
That's the big question.
Where are the job markets good?
Because, I don't know, I mean, the other tech hubs, are they tech hubs of embedded or are they, you know, Seattle?
You think of Amazon and Microsoft and stuff like that.
I don't know how many.
Even Boeing.
Yeah, it's embedded.
That's embedded.
I know Boston's hiring a lot because I get a lot of messages from there too.
I don't know about North Carolina or Austin or Seattle.
Los Angeles has a few of openings that I've seen recently and even San Diego.
I think right now the Internet of Things has been touted
forever as coming and it really does seem to be coming pretty quickly.
People are building a lot of Internet or smartphone connected
widgets and if you can get into that, I think you probably
can find a job that pays. Yeah, but I think his question is how do can get into that i think you probably can find a job that pays yeah but i think
his question is how do i get into that well he was already building the lab and with tiny duino and
uh 10 degree of sensor freedom and model rockets and i think all he needs to do is
slap on a little ble chip and he'll be good.
Slap it onto his resume?
Well, slap it onto his model rocket.
Just glue a board to your resume.
That would impress people.
I don't know.
I do think that the job market right now is pretty good in this area. Well, what would you suggest for somebody who's changing from standard computer development to embedded?
How would you dress your resume?
Projects. I used to think that having to have projects was lame.
But if you're changing industries, projects help a lot to help you show that you can do this, that you can make something.
Embedded is hard because one of the skills that you develop over time is dealing with manufacturing,
and that's not something you get from pure software.
So how do you show, yes, I understand a little bit
about manufacturing, except to do a little bit
of manufacturing yourself?
So build a port, do the electronics for something,
and ship it off to Osh park and have a completed
thing i mean that's that's sort of manufacturing but that's not i mean you're doing it yourself
you aren't really integrating with a double e necessarily that's that's a tricky bit i mean
the important part of embedded is you're often between disciplines right you're between the
software engineers and the double E's
and the mechanical engineers and the product designers.
That's hard experience to get on your own,
even if you're working on embedded hobby projects.
But if you come from software
and want to be able to talk to mechies or talk to double E's,
then one way to start getting the ability
to even have the right words is to try it out.
Knowing the term for schematic capture is EDA. Okay, at least then in the meeting when they say
that, you aren't like, what's that? You may still have to say, oh, I've only used Eagle instead of Altium, but at least you're on the same page.
And yet, I don't know, that's a lot of work.
Maybe just buy something from SparkFun or Adafruit and build it.
Plenty of embedded software people who haven't done board design, though.
I haven't.
I haven't done it from scratch.
I've always used somebody else
to at least get me started yeah or the most you know reviewing schematics or something that
somebody else have done just to make sure that my software has everything it needs and i have
everything i need to test with so yeah i i don't know i well how did you get into embedded um
it depends on your definition of embedded because because you were still using
windows systems when you started no no no i wasn't at cisco oh i guess no at cisco i was thinking
lasers and medical no that was years later okay and that was vx works um so
yeah my first job was at c, and you could call that embedded.
They weren't computers.
They were running on MIPS and PowerPC, though, which were full-fledged CPUs. But they were purpose-built devices for a specific purpose.
See how many times I can use the word purpose in one sentence?
And that's definitely embedded, and we had our own OS that we'd rolled around,
but I didn't do a lot of stuff with hardware.
So, yeah, at that job, I wrote a lot of software,
but it was really more of a software job
for embedded devices.
And then, you know, the startup after that,
I was more involved in the hardware,
but also from a high-level design kind of thing.
So, I don't know.
And then I went and did lasers at another company, and that was definitely what you'd think of as embedded,
because we were controlling things and bit-banging buses and running an RTOS.
For me, I worked at a company where we did lots of different operating systems
and then each time I got the opportunity to work more low level do a driver and then the driver
went down and actually did stuff in the hardware and so I kind of fell into it that way until I
got to play with motors and that was a shift. It was definitely not the same career path.
There's lots of jobs that are just
they don't sound like embedded either. I mean nobody says
well a lot of software jobs don't say embedded software engineer.
That's true and the words are different. It's embedded software, embedded systems
firmware, low-level programmer, RTOS.
And it's hard to tell where the line is.
I mean, mobile developer who develops stuff for phones, I don't usually call those embedded.
But there's plenty of embedded in phones.
Yes.
So, anyway, I don't know if we've answered you, Bill, but it does seem like the market's
pretty good.
Apply for stuff.
Look for stuff that's interesting and apply for it.
And you're already on the right path.
If you can talk about seven-segment displays, you're fine.
What about contributing to open source or writing an Arduino library or something like
that?
Sure.
I mean, yes.
Arduino is tough.
So many people just hate it.
I mean, really just cannot stand it because the IDE is sort of dumb.
I'm just thinking of areas to contribute that aren't a job that will get you some cachet.
Yeah, I've definitely looked at the embed libraries from other people,
especially if it's with a sensor I like.
So you could look there.
You could look on Adafruit for their code.
I mean, reading the Adafruit code is very useful,
and then contribute back to that.
It might get you a little notice here and there.
Yeah.
I don't know.
I'm not a good open source contributor, so.
Ah, bypass capacitors.
Should we talk about this?
What?
Why?
What?
Sure.
Okay.
Another listener emailed us, Oz, and talked about bypass capacitors. He had, or she, had a pretty good analogy with software folks in mind. They said to treat bypass capacitors as a buffer, because you know software people are
pretty good with their buffers. And in this analogy, the data rate you associate with the buffer is the current flow in milliamps, if you were a bypass capacitor, or in bits per second if you're a buffer.
And the buffer fullness is equivalent to voltage.
If the buffer is emptied in big bursts, but filled continuously at a much lower rate,
well, now you kind of get the idea of how a capacitor works.
It can be emptied fast and filled slow,
and so if you have an interrupt where you have to pick up all your bytes out,
then that's the bypass capacitor going off. And you pick the buffer size, which is to say the capacity of the bypass capacitor, by how empty you're willing to let it go.
So if you want to keep it high, then you choose the right bypass capacitor.
With hardware folks, they mostly want it to be a few tenths of percent.
And so they want really big buffers relative to the demand.
They don't want the buffer to really fill up too much.
They want it to keep it steady.
Tenths of percent of what?
Tenths of percent of current, or in our case, data flow.
Okay. So the goal with the bypass capacitor is to keep the current flowing all the time,
even if the current amount of, sorry, that word, even if the right now amount of current isn't
the same, it's a little low.
This,
the bypass capacitor,
it keeps it going,
keeps it flowing smoothly.
How is that a bypass?
I don't know.
What I,
this is,
was my question to Dan,
not what is a bypass capacitor?
Well,
I just was expecting something involving bypassing. No, I mean, that's what a bypass capacitor. I just was expecting something involving bypassing.
I mean, that's what a capacitor does.
That is what a capacitor does.
The purpose of a bypass
is to provide some isolation.
So as Oz goes on,
we're bypassing
from the power supply bus.
So if you have a bypass capacitor on an ADC,
then what you're doing is if the ADC yanks too much current at a time
and you run out, the bypass capacitor fills you back up.
And so it's not as dependent on the power source doing something funny
or not having the current ready available for you.
Okay.
Are we going to buy this?
At least for now?
Yes, because any further and...
We'll lose it. with the plumbing analogy, with the buckets and the sponges or whatever the size of the pipes for resistors
and the size of the bucket for capacitors.
I, however, tried to build a circuit out of plumbing,
and it went very poorly.
When did you do this?
In school.
There was a lab.
It was the bucket lab.
And most of the bucket lab had to do with how bad physics worked, but part of it was the bucket lab and most of the bucket lab
had to do with how bad physics worked
but part of it was plumbing
I thought that was just the spin the bucket thing
so it climbed the walls
actually there were two water labs
one was the proper bucket lab
that involved spinning the bucket
and it was not possible to get the data
such that it actually conformed to the laws of physics
because your data collection
method was so awful the other one you had these pipes and they went here and there oh i never
heard about that one yeah it was what i did by myself my lab partner ditched me and i was just
like oh this is awful you tried to make a water circuit yeah what was it supposed to do who cares
well i mean we were doing a lot of rlc and a lot of, I mean, this was systems engineering.
So the RLC form comes up in a lot of stuff.
The dashpot dampener spring thing.
And it comes up in plumbing.
But I'm a lousy plumber, like really bad.
Which does bode poorly for this move, but we'll see.
Fascinated by this.
Oh great, now I've created a monster. Pretty soon our shower is going to have a whole circuit in it.
Let's see, Scott
had a note that we talked in a recent episode about logging and embedded systems
he said he'd make a good show or series of shows to talk about actually making a logging system
well scott boy do i have a treat for you i love that look you're giving me christopher
we're gonna talk about logging for three shows? Because I'll just... You'll be over there in your corner.
Yeah.
In your new giant man cave.
It's not, no.
It's not a man cave.
Please stop calling it that.
I know you hate that.
It's hilarious.
It's dumb.
It is dumb.
Sorry, no.
On the other hand, I did write a book, in case anybody didn't know about that.
And there was a chapter that talked about making a logging system.
You might want to look into that.
If you want more detail, then let me know.
I could do that as an Element 14 article or six.
Let's see.
A logging system's not a good analogy for lumberjacks.
No.
Well, actually, no, that's actually, that's pretty punny.
You intended that to be punny?
I didn't get the punny initial.
That was the whole point.
So we did the bucket and water thing for the capacitors.
Logging.
Dean says he's a mechanical engineer without a great coding background,
but he's managed to work with people who have put together some cool projects over the years.
HackTogether, do you have suggestions on books that can help people learn
how to begin to commercialize small embedded projects?
Oh, wow. Books would be tough because that whole environment is changing
pretty quickly. I totally agree. I mean, if you asked me how to do it a year ago, my answer would
be totally different than if you asked me how to do it today. And yeah, five years ago would be
even worse. Oh, wow. Yeah. And how do you go, what do you mean by commercialize in small? You mean make kits? Do you mean make 100,000 of these? You mean make 5 million? Commercializes in...
Well, he goes on to say, it sounds like very small, like self-assembly, given what he says next.
He says he's concerned with how to estimate the scope of work,
cost, man hours, etc. How did you learn about the real
ways to roll things? He can design circuit boards, he has access to pick and place
and reflow, but how do you
build something that is both robust and has the ability to be upgraded?
How long you have?
When you find that out, Dean, please let us know.
No, I mean, that's why we're supposed to be professionals, right?
You know, the move so wiped me out. I'm like, I'm just not a professional right now.
Sorry.
Next week, maybe.
I can answer them.
Do you want?
You go ahead.
Christopher Nellis, you remain unhelpful.
I think the best help I have for that actually is SparkFun.
They wrote a nice series of, or maybe it was just one article, a tutorial of, well, if you're thinking about doing a Kickstarter, what do you need to know? How do you plan this to make sure you make enough money? And is Kickstarter even the right way to go? It was pretty neat in that they did answer some of these questions of,
well, how do you plan it if you've only built like one or two?
I would say, and this is going to sound weird,
tear apart a few things.
No response?
I have a response, but I don't know what to say about it.
Okay.
Well, my point was, if you're a hobbyist, you see a certain class of designs and construction techniques and things.
But what he seems to be asking is, what does a robust implementation look like?
What chips should I choose? What parts should I choose? And it might be helpful to look at some small embedded projects that are comparable to what you're doing, but are on the market and tear
them apart and say, oh, okay, they chose this. Well, why did they choose this MCU versus a
different one? Or why is this laid out this way?
What does this board look like?
How many layers does it have?
Things like that might be instructive
from a kind of a reverse engineering standpoint
without giving anything away about something else.
I don't know, because even tearing apart BB-8
and looking at other stuff
I find it hard to
yeah but it's not made of a stack of SparkFun modules
that's true
and it doesn't have a lot of big connectors for
useless expandability
you know it was
while it had probably more than it needed, it still was compact and well-organized
and had only the headers that were really necessary. You can see where test points go
and which test points are useful. He was talking about upgradability. I don't know. It seems like
if you don't know
what something is supposed to look like
checking the back of the book isn't a bad idea
yeah I know
that's fair
I can see that
but I don't think that's going to help him figure out the schedule
I think the way you figure out
schedules come on
the way you figure out schedules is you build six things
and then you figure out how long
in the sixth thing you finally admit to yourself that everything takes a year or two.
Yeah, I think practice is the way to go.
But also to look some at the Kickstarter projects that are similar to yours.
And start to see if you can...
You're saying reverse engineering their boards i'm saying reverse engineering their kickstarter goals sure
um try to try to see if you can figure out why they wanted that instead of this
and there are organizations that will help with this right oh all sorts of of design houses will do it for you.
And many of the design houses,
if you're willing to be upfront with,
I would like to use you, but I doubt I have enough money.
Will you help me figure out if it can be done?
To them, that's two hours of work.
To you, it's six weeks.
A lot of the design houses are willing to put in the time to make friends with you knowing
that you're going to do stuff in the future or even just individual consultants project management
consultants or with a electronics background or even a double e who's done small projects and
things um a lot of those people are pretty good at estimating things like this, and they can walk you through it for a price, which may be less than making the mistakes of inexperience.
Yeah.
Yeah, find some experienced people who've done it before and ask them what they think.
And maybe ask three of them and then average the results are just take the longest. Yeah, I've even been at startups where they didn't believe
what engineering was telling them,
and they brought in outside consultants,
and of course the outside consultants gave the same answer that we did,
but there's nothing wrong with asking for a second opinion,
and there's absolutely nothing wrong with asking for help
and not plunging ahead without you know full knowledge
well and asking for help is
will you help me not
will you do it for me
and it's also
I would like to use you as a design firm
but I don't know that I can cough up the cash
will you still give me some pointers
so that maybe we can work together in the future
and it's saying, person who I respect, this is my project idea.
Do you know anybody who can sit down with me
and have basically professorial office hours about how to get this done?
You'd be surprised how many people are willing to give that advice away for free.
I don't know.
Yeah, I think that's true.
As for the specific question, selection of chips,
I mean, my specific advice there would be to start with something
more than you need in the prototypes,
and then once you figure out what you need,
go through the data sheets of the comparable devices and chop features off.
And this is why a lot of the breakout boards and dev kits start with the high-end processor in that line.
So you can always go down.
Right.
And so you try to go down, and that's how you cost reduce.
Right.
Well, if your code is taking 32K out of a 512K ROM, then you don't need that anymore once you're ready to finish. And robustness, well, geez, that could be a million things.
Yeah. Robustness is about having it work every time, not just that first time.
Construction quality, software quality, yeah. robustness is about having it work every time not just that first time construction quality
software quality yeah getting a good manufacturer who doesn't cut too many integrity powers by
yeah that's that's a whole engineering discipline well and that goes back to you don't necessarily learn that from a book. You learn that from lots of books and lots of projects.
Okay, here's another one where we could have a whole show on it.
Jay asks about our favorite software tools.
IDEs, compiler toolchains, operating sources of choice for your development stations, etc.
Oh God, are we going to get into this? poolchains, operating sources of choice for your development stations, etc. Oh, God.
We're going to get into this?
I don't care.
I use all the compilers.
They're all terrible.
They're all terrible.
The ones you pay for are worth less than you pay for them.
The ones you don't pay for are worth less than you pay for them.
No, they're...
Come on.
What's wrong with GCC? Open OCD come on. What's wrong with GCC?
Open OCD.
That's what's wrong with GCC.
I haven't had to use that.
What are you using?
I'm using, what's it called?
Oh, shoot.
Well, let's go back to that then.
No, no, no.
It's, damn it.
I'll have to look it up it's not open ocd
uh i think it's something from seger okay well uh but it's their jtag stuff it comes with the
you know jtag widget yeah the widget um so hmm favorite toolsEs. I don't like any IDEs, pretty much.
So I end up...
Are you using VI?
No, I'm not using VI.
Well, I mean, historically, I used Emacs for probably 15 years.
Yeah.
And that was okay.
But you have to, I mean, that's like...
You have to like fixing things to run an ID,
to run your editor like Emacs.
I mean, same reasons people like Linux,
is they like tinkering and customizing.
And so for about 15 years of my career, I really liked that stuff
until I woke up one day and said,
I am so sick of fiddling with crap.
I just want somebody to give me something that works
that I don't have to mess with.
So I went looking around.
Is that when you bought IAR? I't i never bought iar i had iar forced upon me um i tend to have my own editor
and then not use the ide features of iar kyle or whatever um that i'm using for my particular embedded target.
Strangely, I use Qt Creator a lot because I did a bunch of Qt development years ago
and got used to it.
And it's pretty lightweight and nice
and does completion and stuff.
And you can import your whole project.
And if you want to, you can hook it up
to do scripted builds for you within there.
I don't usually do that.
I just go over to the other window.
That works okay, but I would suggest
you spend most of your time in the editor.
The rest of the features of the IDE
are the button F5 to build and download.
You didn't do a lot of stepping through
and looking at the registers and whatnot?
Sure, sure, sure.
I mean, if you're debugging,
you're probably in your IDE's debugger.
There's no way to avoid that
unless you're using GDB.
And then there's a bunch of front ends for that too.
But yeah, most code writing
I try to do in something
that I'm really comfortable with.
So Qt Creator I've liked a lot.
Sublime Text I've liked a lot.
TextMate I like some.
All of those except TextMate are cross-platform. Yeah, Visual Studio I kind of like, but it feels
like, sometimes it feels like this giant Star Destroyer that has just lights flashing everywhere
and buttons everywhere, and it's overwhelming sometimes.
And sometimes it's completion is just so over the top.
I don't need it to actually fill out the contents of the function after I've
typed the name.
Okay.
Roll your eyes at me.
And you use,
uh,
OSX.
I use Mac OS.
Yes.
Um, I would prefer that everything run in Mac OS, but it doesn't.
So I end up with a lot of stuff in a Windows virtual machine.
And your virtual machines, I mean...
They work, yes.
They aren't super slow.
No.
Right.
I gave them most of the CPUs and tons of RAM.
What's your computer these days?
MacBook Pro 15-inch Retina. With tons of RAM. What's your computer these days? MacBook Pro 15-inch Retina with tons of RAM and an SSD.
SSD is the key to everything.
Oh, when Chris switched out my hard drive for an SSD,
it was like my computer suddenly got like a boost button.
It was so awesome.
My computer was on nitrous.
I really don't like Windows.
I don't think that comes as a surprise to anybody
even today after
having used Windows professionally for
a long time
it still baffles me
it's like walking through a room with lots of sharp edges
yeah but they're my sharp edges
now I use Windows
I don't love it
I keep wanting to switch back to Linux sharp edges. Now, I use Windows. I don't love it.
I keep wanting to switch back to
Linux, like even a dumb
Linux, an easy-to-use
Linux like Ubuntu.
But...
Windows makes so many things very difficult in the embedded
world, because if there's anything that has
Unix-like command line
stuff, you're screwed.
Because you either have to use MinGW,
which is terrible,
or Cygwin, which is also terrible
in a completely different way.
Or you have to have both installed
and then they interact with each other
in terrible ways.
Let's not talk about my Python 2.7, 2.6, 3.0
path monstrosity
based on different Cygwins and MinGW windows.
And anytime I have to go back and do something like that on the Mac,
it's, oh, I opened a command line, and oh, I don't have that.
I'll do, you know, Python
install whatever, or
Ruby install whatever, and, you know,
it just works. You don't have to build this
sandcastle in the middle of a
Windows command line. I'm sorry.
I'm ranting. No, it's okay.
I find Windows easier
to use because I, i it for many things it
just works for me because when i have these little clients where i'm only spending a couple of weeks
on their projects i'm not choosing my own editor i'm going to go in and i'm going to use whatever
they want they want to use iar that great. They want to use Kyle, fine.
They want to use Kyle, the free version.
You know, fine, that slows you down
because you have to learn the quirks of a different...
That drives me crazy every time I have to learn some new editor.
I've tried to be flexible with it.
I haven't always succeeded,
but I don't have any editor I love so much
I'm unwilling to give it up.
And it's so much better for the clients who don't have any time
if I can come in and use their tools without ever...
I mean, they never see me flip to a window that doesn't make sense to them.
And so it's different.
I used to have editors I loved,
and I used to be completely unwilling to give them up.
But now, nah, code's code.
It pisses me off when they don't have a function complete thing.
Code's code, but I mean, I don't know.
There's operations that can take me two minutes on IDE,
I-A-R-R-K-I-L-E, that take a second in a different editor.
Like what?
Find me all the colors of this function.
Or find me...
Switch to the header file of this file.
That I don't have a hard time with.
My hands know how to do it,
although I can't tell you what it is.
In the editors I like, that's one function key.
Yeah.
Just flip back and forth. Or, yeah, just stuff like that, where editors I like, that's one function key. Yeah. Just flip back and forth.
Or, yeah, just stuff like that, where it's like,
I want to have the cursor over this, and I want to have options for,
okay, I need to find how this is interconnected with the rest of the code.
And some of that's okay, and some of those other,
and Kyle and I are, and some of it's just, it works 90% of the time,
and that 10% of the time you do it, nothing happens.
You have a Sigwin window open, and then you do grep R.
That's the last resort, yeah.
No, no, that's like the second resort.
There's about 12 more.
Anyway, there are better things out there.
Speaking of better things, which Christopher's going to disagree with,
Mark Stevens emailed us.
What?
I wasn't switching topics. Isn't this cool?
Saying that I mentioned
using Visual Studio to visualize code
and someone asked
who uses Visual Studio for
embedded development. Well,
turns out people do.
Visual GDB
for STM32 processors,
Visual Micro for Arduino and Teensy. Visual GDB is not just for STM32 processors, Visual Micro for Arduino and Teensy.
Visual GDB is not just for STM32.
It's for all kinds of stuff.
I suspect if it's STM32, that means it's all Cortex.
Oh, yeah, good point.
He has two add-ins for Visual Studio
that are cheap enough for a home user to afford.
And Visual Studio itself is mostly free.
I was going to buy the pro version, but the pro version and the free version had like one feature difference that wasn't.
Well, if you're not using the compiler, you don't care about the optimization stuff. And, oh,
Visual GDB also has
Raspberry Pi, MSP430,
the ESP
8266 Wi-Fi chip.
No, no, I didn't
diss Visual Studio. It's okay.
I just never really
had a deep connection with it.
Well, yeah.
If anybody's interested, there'll be a link.
It's called Visual Micro.
I know some folks who really like Visual
GDB, or at least said it works,
which is high praise sometimes.
In this world, that does seem
like high praise.
So, I haven't tried that yet.
I meant to, but it's been a busy
time in case we haven't said that enough.
My personal feeling is find some tools you really like, try a bunch of stuff, because
a lot of stuff is tryable, especially editors.
Yes.
You know, even if they cost money, you can get a trial.
And find something you like and stick with it.
That's what I like to do, because I don't like context switching between a bunch of
stuff,
especially keyboard shortcuts.
I'm somebody who never really got in love with the mouse.
I hate the mouse.
But you got a magic one.
I saw it came in the mail.
I gave it to you, right?
Yeah, it poofed.
It was magic.
Totally magic. But it's really hard to shift different key shortcuts between different
ids so that's why i like to stick with one even if it's something strange see my position is is
not the opposite but is definitely different i say use whatever your team uses because
your team is horrible don't listen to them.
Because then when you do pair programming, it's not awful,
and pair programming can be useful.
Everyone should just use VI.
Oh, my goodness.
We'll talk to next week's guest about that.
Ah, okay.
Oh, and we do apologize for missing one of the shows. We'd actually recorded Fran earlier, but I didn't get to edit it with...
I didn't get to edit it. No blame on you.
I'll take some blame. The show notes didn't go up until like the last day. But yeah, wow, moving. Wow.
Don't do it.
Let's see.
Do you want to talk about drones, VW, or contracting?
Let's talk about contracting first, I guess.
What's the contracting?
Oh, we got a question about setting your rate and turning down contracts gracefully.
Okay.
Go.
How do you set your rate?
The quick and dirty answer is take the salary you want
and divide it by a thousand per hour.
That sounds like something I'd say.
It probably was something you said.
And then start adjusting for things like how many hours they're willing to give you.
Yeah, more hours means it goes down because it's more security.
How much travel you have to do, how much...
You don't usually get paid for commuting, so...
Get to buy your own tools.
Yeah, and sometimes your tool is your laptop,
and sometimes your tool is also your ide compiler which can be quite expensive
how annoying are they yeah people do get dinged on that one for me
also how fast do they want it and how quickly they pay yes i am not a bank if you want net 90
you can just here here's an interest rate well that's kind of the idea, right?
You're taking a greater risk.
I think we've talked about this,
but you should adjust for risk too.
And at some level, the higher the risk,
the higher you should be paid.
Yes.
Because if you end up not getting paid,
you know, having something up front,
well, that's the other issue, is how do you structure a contract?
Because there's hourly and then there's fixed bit.
And I don't do any fixed bits, haven't yet anyway.
That tends to be tricky.
Yeah.
Especially for software people.
Because as I don't know how many software people are listening who are really really good at estimating how long they their project will take but you've
you've done some of those i've done fixed bits it's um you have to really set the limits you know
if you change this part of the project, it will cost you more.
And yet when they change that part of the project,
they still argue with you.
I prefer fixed bids to be very, here, go off and do this.
Well, and you have to be very specific about what the deliverable is.
Yeah.
I've had contracts which said things like,
at the end of the contract, if anything doesn't work, you've warranted everything and you will fix it for free in perpetuity and then you crossed that out and said no which was
you know basically indentured servitude from the end of the contracts into the end of time um
so you have to define define working right there's no definition it was so
um what you find with small companies a lot is you get people who write the contracts maybe it's
the ceo or the founder and something bad happened to them in the past and so from then on they write
a clause into the contract to try to stop that bad thing from happening. So maybe they hired some software guy 10 years ago who screwed them,
either didn't deliver something or delivered it unworking,
and then took their hourly money and left.
And so they put something in there like that,
and they think it's going to fix the problem.
But you have to really watch out for that stuff and read your contracts
because you can really get into trouble with stuff like that.
And sort of in that same area, you shouldn't really do business with people you don't want to do business with.
Right.
I mean, unless you are just financially up against the wall, if you wouldn't go out to lunch with this person, do you really trust them to...
It depends on why you wouldn't go out to lunch with them.
Maybe they only like food you don't like.
Well, yeah, but you know what I meant.
It's still a very personal business relationship,
and I want the person I sign the contract with to be willing to fight with their HR and accounting
if my checks don't come through.
Definitely.
And so even as we sign the contract,
I want to believe that the person's cool.
The person is trustworthy.
You don't have to like them personally, necessarily.
It helps.
Actually, as far as setting rate,
you do get a discount if I like you.
Yeah.
Turning down contracts gracefully. Do you have any words
of wisdom on that, Christopher? I'm really bad at this. It's hard to say no. I don't.
Unless I'm totally busy. Even if I'm totally busy, it's hard to say no. Well, that's hard to say no
because I might need it tomorrow. The problem often is you get a network of people
who recommend you and then you end up getting either repeat contracts or requests for work
from people that you kind of know. And it gets hard to say no to people you've already worked with
and who maybe you like. Especially when they're going to work on something cool.
And yet it's far and risky. Hey, in three months, I might need your help. You're going to work on something cool, and yet it's far and risky.
Hey, in three months I might need your help, are you going to be available?
That's probably a question I can't answer.
Yeah.
Because I can't say, oh, I'm going to drop what I'm doing in three months.
And if you're being asked to commit when you can't, it just makes it even more difficult if you want to work with the person.
Yeah, no, it's difficult. And I don't think we really asked your question. Okay. So yes,
we've talked about how difficult it is, but how do we, um,
It's great if you have somebody else you can pass them to, but lately everybody's been so
busy that I haven't, I haven't been able to say go talk to right that was nice now I'm down to
go talk to design firms which is not my favorite thing to say yeah I think I try to be polite and
try not to burn any bridges and be honest and say I am too busy to take anything else on right now
unless it's something that's not always the truth yes's the, I don't want to work with you
because last time we worked together, it went really badly.
Or even though you're a nice person,
you seem to be a terrible manager of projects.
And that sort of happened.
And I said, I moved out of the area,
which was such a cop-out jerk move.
I'm going to go stand over here right now.
I was like, I can't send this email, but he keeps calling and he's nice,
but I can't really say, look, no.
No, and I've done similar things where people didn't get hints.
Yeah.
You know, I'd say I'm very, very busy.
I can do a little bit for you
you know
you should work with this person and they'd get some other people
but then they'd keep coming and say
oh can you just do this can you just do this
and eventually things would trail off
in that very uncomfortable way
but yeah it's
it's hard to be professional
sometimes
alright let's
go on from there.
Speaking of professional,
do you have anything you want to say about the VW stuff?
I wrote an Element 14 article,
but I don't know if you had anything you wanted to say about it.
Nothing specific.
I think we've all read about it and kept up with it.
It's terrible.
I just saw today that there was an article saying that...
So the software cheat apparently affected model years 2009 to 2015, something like that.
So everybody was thinking, oh, the 2016 cars, those will be fine.
Why would they think that?
But okay.
Well, because VW said that none of those cars had the software.
But apparently, Volkswagen confirmed to the Associated Press on Tuesday
that an auxiliary admissions control device at issue
operates differently from the existing Defeat software
in the company's 2009 to 2015 models.
So there might be a problem with the 2016 models
where they have some other device.
The EPA is looking into it.
I don't know what to say about this
other than it's completely stupid.
I don't know what they were thinking.
I don't understand.
You know, some people have speculated
it was a low-level engineer
or some compartmentalized part of the development team that did it.
And I don't really buy that for a second.
I mean, this falls into their whole marketing plan about how we have clean diesel,
and here's the miles per gallon, and here's this good performance you still get.
So I don't find it plausible that at least large portions of the company were unaware.
It just doesn't seem...
It's too convenient for them.
Oh, it was just these guys that were in this development lab
in probably Palo Alto.
We'll get everything right next time.
So I think it means the end of diesel, frankly,
because they're finding all sorts of things about other manufacturers' cars that even if they didn't necessarily cheat, the testing was such that on-the-road conditions tend to be much, much, much worse than published numbers.
So, it's bad.
Overall, a huge disappointment.
Yeah.
And realistically, someone had to make that choice.
Or someone's.
Someone's.
Someone's was probably told they'd be fired if they didn't do that.
Yeah, maybe.
I don't know.
Like your article, it's hard to put myself in that position and say,
yeah, I'll go ahead and do that.
Yeah.
Unless they were told in such a way that it didn't quite sound like a crime.
Remember, the phrase is, I look very bad in orange.
That's right.
I wonder if they have an orange in Europe.
That's an interesting...
What color jumpsuits do prisoners wear in Europe?
Somebody mail us.
Yeah.
Australia, too, just in case.
Okay.
So, moving on.
We had an email from Robert Gast in San Bernardino, which is very close to where I grew up. And he has drones and likes them
and didn't really think about the drones and the fires
until fires threatened nearby homes.
And then it came very clear to him that drones are fun
and should not be used to threaten other people's homes with fire.
Wait, threaten other homes with fire?
Well, basically, if you go fly your drone,
when the fire people are there and they can't
react because you're flying your drone.
I was imagining drones with flamethrowers, which is pretty cool.
Oh, right.
Drones with flame.
But that brings me to drone legislation.
Go on.
I know you want to talk about it.
You just want to cackle.
There's not much to say about it. A Department of Transportation in the administration of the United States or, the FAA was supposed to come out with its drone rules. I think there was legislation or an order that they had to do it by October, I want to say 15th, but I think it was actually September 30th, something like that. A time that is now in the past, and they have failed.
And then just yesterday, there were some rumors that the administration is now going to require registration of drones.
And the details of that still were unclear.
They said more about it today, and I guess they plan to get the rules out soon. But it sounds like it boils down to some classes of drones
if you buy them and it's not totally obvious
how far down they're going, down line.
I mean, certainly probably not the $20 one-inch by one-inch drones
are going to have to be registered.
But yeah, you're going to have to register them with the government.
And that's the only requirement, as far as I can tell.
You just give them, I bought this drone and here's my name.
Which, I...
We don't even have a national registry for guns.
Well, there's a state registry.
All the states have them.
Why are you laughing
because it's just
it's ridiculous
guns do have to be registered
well yeah they do
but everybody outside the US
doesn't understand that we do have some gun control
laws just not as many as you
and you know with
I don't know I mean it seems like
an unenforceable unhelpful thing to do
because it's not going to stop anybody or maybe it'll deter some people but i i don't know i i
find it silly do you think it's so they can send everybody mail that says you are responsible for
your drone and if your drone impedes a criminal or health and safety sort of thing,
you are hereby notified that the laws have changed and you are responsible. How are they going to find you?
Unless your drone crashes in a wildfire.
Well, after I get done shooting it down.
You're not going to shoot down drones.
Ah.
I don't know.
No.
It smacks of, we have to do something.
This is something.
Let's do it.
Yeah.
So, I would rather see more education, more technological solutions.
You know, there's only certain kinds of drones that can really cause problems.
And those are the ones that can go higher than 400 feet, fly out of line of sight, that kind of stuff.
And if it's restricted to that, that's fine. but I don't really think it's going to do anything.
It's kind of like signing up for Sudafed.
All right, let's go on.
I didn't have anything to add to that.
I just heard part of that rant earlier.
I just wanted to hear it again.
I don't know if it was a well-formed rant.
Ah, let's see.
Chris Fulmer asks that we talk about FIRST Robotics Competition.
Yes, yes, I'm working on that one.
Brad asks for one of the solder smoke guys to come on.
And I would be interested in that, but I don't know them.
I can do a blind intro, but if any of you already know them, well, hook me up, please.
And then we had some PR people contact the show.
Did you see those?
I ignore them.
Yeah.
Violently.
I am totally fine if you want to suggest other people for the show, if you want to suggest yourself.
I am slightly allergic to jargon. I know I use it
sometimes, but it leaves me with rash. I don't want to work with you on scheduling and logistics
for someone else. I would much rather you offer an introduction. So if you want to suggest that your Grand Hypoobah CEO be on the show, then introduce me to him.
Don't say, I will protect him from your lowly podcaster grasp.
What?
I don't know.
It just felt like you can't talk to him directly.
And most of our shows that started out.
CEOs are very important people.
Very, very important people.
That covers the outline.
Do you have anything else you want to talk about?
Oh, my goodness.
I don't know.
What's going on?
What's happening?
Well, we fixed the hum, which we fixed before we started, really.
And then we fixed the hum click.
Yep.
So already we're doing good stuff for the podcast.
That's right.
Yeah. I made right. Yeah.
I made bingo cards.
Did you see those?
I did see the bingo cards.
I thought they were missing a few things.
Why did I make bingo cards?
I don't know.
Me neither.
What was they missing?
So.
I had so dot, dot, dot cool.
Yeah.
But then I realized I could just put cool.
You haven't said it today.
It's like some sort of dare.
Now you can't speak.
Yeah.
Anything else cool happening?
Something must have happened.
Well, I mean, I did.
I don't know. I did at one point say I'd be an idiot
to write another book.
Oh. Are you going to talk about this a little bit?
I wouldn't reveal what you're going to write about yet.
I may in fact be an idiot. That was all I was going to say.
So there's another book coming?
There may be another book coming.
In time frame? I have no idea. It's not going to happen in the next month. there's another book coming. There may be another book coming.
In time frame?
I have no idea.
It's not going to happen in the next month.
It's not going to happen in the next month?
Well, no. November is National Novel Writing Month. I could write a book next month.
You don't know.
Probably not a technical book.
Also, probably not a good book.
But you are writing another technical book.
I'm thinking about writing another technical book. I'm thinking about
writing another technical book
despite all the times I said
I'd have to be an idiot to write another book.
Despite all those
times. Well, I think everybody should
write in and say if they'd enjoy
having another book from you.
Thanks.
I'm sure
if more than four people write in
I will be overwhelmed with email
and then I can't write another book
so I'm good with this plan
I don't understand
more than four people is overwhelming email
some days I am easily overwhelmed
well I think we've flown this plane into the ground
alright I'm good with that
you're going to need
can you do all the thank you stuff now
I don't have it
well I didn't write it because it's just us
I was wondering if you could you know ad lib that
yeah
that's it for our show
thanks to me for producing
thanks to
Elysia for hosting as usual.
And thanks to all of you for listening.
If you have comments, thoughts, or suggestions,
if they're negative, send them somewhere else.
If they're positive, send them to show at embedded.fm
or hit the contact link on embedded.fm.
My final thought for today is...
From A.A. Milne's Winnie the Pooh.
When you see someone putting on his big boots,
you can be pretty sure that an adventure is going to happen.