Embedded - 117: In as Much as Which
Episode Date: September 9, 2015Chris and Elecia discuss listener emails and other assorted topics. Preprocessor fun BLE 4.2 writeup from EETimes and the FAQ from Bluetooth.org Drones should follow existing aviation keep out standar...ds (Nick links us to some wiki pages) Automatic dependent surveillance NOTAM Federal Aviation Regulations: Temporary flight restrictions NYT Amazon culture article Cake under a microscope
Transcript
Discussion (0)
Welcome to Embedded FM, the show for people who love gadgets.
I'm Elysia White, and it is just Christopher White and myself today.
We're going to discuss random things.
Okay, sounds good.
Do you have any place you want to start?
Probably not with the gadget discussion.
Right, because I did switch up that front because I wanted to talk about a particular super nifty small robot-y gadget.
But let's not start there.
Okay.
From Chetil in Norway.
I'm sorry if I mispronounced that.
He emailed about data sheeps.
Data sheeps.
Sheeps.
Apparently, there are actual standards for tracking livestock, and he shared those with me, along with a wonderful picture of data sheeps.
Like ISO standards?
ISO 11784, 11785, and 14223.
So there's an ISO standard for everything.
Yes, yes, yes.
There's an ISO standard for everything,
but most especially data sheeps are real.
That's surprising and terrifying.
Yes.
I guess that's a good segue to Bluetooth 4.2.
Okay.
Nothing further on data chips.
I mean, it was just kind of cool.
To BLE 4.2, Prithvi emailed and said 4.2 is better for security.
And I actually then looked it up because 4.2 isn't on any of
my chips yet right that's that's a really new i don't remember how recent that is right
uh it was actually announced last december okay so presumably somebody should have
started making things that support it before then.
I don't know. They tend to announce them and then the...
Oh, it's not like Wi-Fi where they start making devices a year before the standard is finished?
No, they had proof of concepts then.
The EE Times article I've been looking at, it had some information,
but no, they don't make chips until after the Bluetooth spec is published.
Okay, so it's probably at least six months out from here.
From here?
Well, if they got it published in December,
they'd have to actually make the chips and design them.
That's usually a year to 18 months from there to parts.
I'm hoping it's not too much hardware.
I'm hoping it's stack change, actually.
Really?
Which means they should be coming out right now.
For security stuff, they might require hardware.
Well, the changes.
That might help.
Lower power consumption.
Yay!
That sounds like hardware.
Crowd goes wild.
Much faster data transfer.
That sounds like hardware.
Which means that audio will be able to go over BLE
which we haven't gotten before
and that will be wonderful for nifty
headsets
that sounds like an RF change
no I think that's a protocol change
higher bandwidth?
I don't know
you want me to actually have read the spec?
just seems
I mean no that seems too much.
There's a new mechanism for privacy and a set of government-approved security measures.
That's terrifying.
That's terrifying.
You mean government-approved backdoors and key escrow?
Data transfer is 2.5 times faster than previous versions.
Oh, using bigger packets, which is just a software change.
The 20-byte packets are going to go.
Okay, so presumably some overhead is being removed?
Yeah.
Okay, well, that's strange that they could have done this all along. I'm always skeptical of hardware,
hardware,
software,
uh,
revisions that suddenly reveal a lot of performance that was just sitting
there on the table,
but maybe it's not a hard change.
I don't know.
We'll see.
We'll find out soon.
And that Micah had a tweet, Micah Elizabeth Scott,
had a tweet about telecoms designing protocols related to Bluetooth.
And I thought that that was sort of related to what you were saying about,
yeah, they might have left stuff on the table just because time to market
being what it is and a lot of varying pressures.
ATM was like that.
I remember back when the internet was first taking off,
there were a lot of high-speed networking protocols and hardware
that there was the router side of the world and the telecom side of the world.
And they were both trying to make high-speed switches and routers
and telecom people came up with atm which was this very switched system where things were locked
into paths and the router side of the world was doing ip switching you know switching packets
based on headers and the telecom stuff was always terrible and not scalable.
And it was clear they were coming from the idea of the 50s switchboard still.
And they couldn't get away from that.
So, yes, I agree.
Telecoms are terrible.
Other emails?
Let's see.
What is a masked ROM?
Allison asked this from the Tamagotchi show. We threw around the words masked ROM as though everybody just knew what that was.
And for sure, I didn't know what it was before LeapFrog.
It's a ROM with a little mask over its eyes, so you can't tell who it is.
Yep.
That's what a masked ROM is.
So what's the next question on the list?
What's a masked ROM?
It is used when you are building
an ASIC. Okay. So let's
say I was building
a leapfrog toy
and I would have a
processor and it was the 8051
core and then I would have
code that would run on the
processor. And this wouldn't be in
a spy flash. It wouldn't be
in a flash on the chip like most of
the modern processors are it would be actual part of the ASIC and it was a ROM and it was called a
masked ROM because that was part of the lithography process of making a chip and they would make the processor parts and then they would bank them and then they would
put the code on using this mask, which was actual ones and zeros connections and no connects
at transistor levels. And then that would be the code that ran. And if you think about this, they actually had to make a mask, which is expensive.
They had to do silicon-y things, you know, semiconductor things, chip things,
and that's going to be super expensive.
And so you can't change a masked ROM very easily.
You can't update the code.
You cannot do field update firmware.
And so a masked ROM is a very slow process. It's something you use
when you're going to make millions of something, which fits with the Tamagotchi.
But it doesn't fit with a lot of other things we work with, especially
the high-end embedded systems.
It's for when you want to get the price per chip down in the pennies
to tens of cents, right?
And you can't do that unless your scales are huge with things we're used to using, like Flash.
Right.
Its main advantage is cost, and it is also smaller.
Right.
Because you really are just using, those bits are ones and zeros.
They're never allowed to be anything else after the mask.
All right.
So, yeah.
So, not useful to anybody except people making billions of things.
And yet, for the people who are like, well, how do I get my product cheaper?
Let's use an ASIC.
Okay, now what do we do?
A mask ROM does allow you to decrease the price more,
but it means that your design is fixed.
Right.
And maybe that's okay for a bootloader.
Some of the chips that we buy now have bootloaders on board
that are unchangeable.
And those are part of the ASIC itself, and that's a ROM.
Okay.
I think it's a weird piece of terminology.
That's probably...
When I think of ROM, I think of...
That's what I think of.
If you don't add a P or a double E, P in front of it,
it's a fixed thing.
But sometimes when I hear people talk of ROM,
they mean the onboard flash, which is so not ROM
because you can update that.
That's not read-only memory.
That's read-write memory with a little bit of effort.
That's their mistake.
Well, and yet when you put together a block diagram
and you talk about RAM.
I think even the Android firmware updates are called ROMs
for some dumb
reason it's read-only memory which if you're dealing with code that should be read-only
memory on the other hand we should remember read only to whom yeah and uh and it's nice to say ram
and rom as though they're equivalent things one that's variable one that's variable, one that's not. Yeah, they really mean code and data.
Yeah.
Now we should talk about Von Neumann machines, but we're not going to.
Let's see, more emails.
Thank you to Arthur and Mark for offers to tour your facilities.
We probably will take you up on that someday, probably after the move. Yes, we are still moving.
But Christopher doesn't want me to talk about it because we have yet to sign all of the papers.
It's also boring. It's also boring.
Yes. And you guys all should be jealous.
Also, thank you to Patrick at Planet Labs for letting me look around there.
Speaking of tours, I actually did go on.
It was super cool.
Can you talk about that at all?
Yeah, I think so.
I think I can remember what he told me not to say and what I was allowed to say.
So Planet Labs is a satellite company.
Yeah, the idea is they make relatively cheap satellites,
relatively being a very key word there.
And they send up whole swarms of them.
And they're called doves because the idea is that they're used for peaceful applications.
Looking at earthquake changes, looking at...
Earthquake changes?
Oh, like when Nepal had that huge earthquake?
Right.
Planet Labs coughed up all the data they had
so that you could see what changed
over a really short amount of time.
Okay, so it's just normal visual imagery?
No, I don't think they're quite a standard visual spectrum.
I think they went a little off visual.
Okay.
I don't remember.
Something.
It was less to look at people and cars and stuff happening
and more to look at environmental things.
Okay.
Rainforest, deforestation problems.
And it wasn't super fast.
I mean, it wasn't like you see on silly TV shows
where they can task a satellite and you can follow somebody around.
It wasn't like that at all.
Right.
They were somewhat motionless satellites, but then they could use their solar to kind of turn themselves just by angling things a little bit.
And then since they're in low Earth orbit, they have just enough atmosphere to be able to turn themselves.
That part was really cool. I wanted to see more videos of that.
That sounds really cool.
But Planet also opens all their data,
and so you can get beautiful pictures of all over the world.
Deserts and neat impact craters.
So you should go look at that.
Cool.
If they're in low Earth orbit where they have atmosphere that can aid them in orientation,
presumably they don't stay up for very long.
That's true.
I mean, that's true for all of the small satellites that are going up, the CubeSats.
The goal is that they auto-deorbit, which is to say they die a fiery death, much to
the sadness of their creators.
Okay.
So they must be pretty small too, though.
Well, that was, yes, yes, indeed, they are very small.
Three units, which is 30 centimeters by 10 centimeters by 10 centimeters.
And they, you know, they had a lot of neat stuff,
radios and cameras and processors,
and I don't know what I could say about those.
But it was neat to think of satellites
not being million-dollar things anymore.
These still weren't cheap,
but you can see the approach towards cheaper.
Yeah, and filling up low-Earth orbit
with lots of tiny things to run into.
It'll all be fine, I'm sure it'll all be fine.
So, oh, and yeah, I think they're still looking for people to hire.
So, they were fun, and they had a neat emphasis on art that I can't quite explain, except that it was very, very neat.
On art?
Yeah. quite explain except that it was very very neat on art yeah not kind of elucidate that further well they they had a lot of art around the building they um hire they have an artist in
residence they actually do what well you know a lot of those pictures they get from the Earth are really quite pretty.
And the artists in residence can highlight those and find them.
They also do paintings and other things.
What did Patrick say?
Oh, they're space hippies.
That's what the Planet Labs community is, is that they're space hippies.
And they really hide good art on the walls.
And they even put art on the satellites when they can.
Like, they'll decorate the satellites before they go.
Are they going to do a space art installation?
I bet they will someday.
Yeah, I recommend that tour as well.
And I suspect working there would be one of those,
I can't quite believe this, it's so cool adventures.
If you were in San Francisco already.
Let's see.
And I have another email asking about the volatile keyword in C.
I thought we did this.
Yeah, we did a whole show about C keywords.
But it was episode 10
with Jen and it was called
hands off baby
so maybe people haven't gotten quite that far
into our backlog
so the volatile keyword
yeah
it's cool
I don't know
what do you say about it
it keeps the compiler from
messing with stuff.
Right. And so if you have, say, a while loop, a register,
where you want to find out if this GPIO has changed,
you're going to poll this, which is wrong for all sorts of reasons,
but let's go with it.
You're polling to see if GPIO pin 2 changed. And so you ask the register, you know,
what is the current status? Is it the same as the previous? What is the current status? And you go
over and over again. Well, the compiler is going to look at this and say, your variable, it isn't
changing. So I'm just going to compile this out and make it into a while one loop and poof, we're
off. Because it doesn't know that memory location corresponds to a hardware register. Right. From the compiler's
perspective. It's just another hint. It's just another hint. Right.
And so the volatile keyword says, despite
what it looks like right here, this variable may change
outside this code. And so you use it on registers,
but you also use it on global variables
you're modifying in interrupts.
Right.
Where else do you use volatiles?
I've used it on occasion
to force the compiler
to stop optimizing things,
even things that aren't
registers or hardware,
because I want to look at it
and I want it not to be optimized out
when I'm debugging.
And so that's a temporary change.
Yeah.
Yeah.
I use static for that as well
because static makes it essentially
a global variable
hidden inside my function
or inside my file.
Yeah.
That's probably better.
No, I use volatile for that sometimes too
because sometimes it'll optimize statics
or my namespace will be bad for it.
I usually just pound define int to int volatile
or volatile int.
Yeah, everywhere.
Yeah.
Just the start of a project.
So last week we talked to Glenn.
I was going to say.
No, actually that was a transition.
You're going to be surprised here.
Not particularly thrilled I bet.
We talked to Glenn Scott from Park about making good software.
Okay.
And afterwards, you mentioned that it made you feel a bit like an imposter.
Yeah.
That's because you pound a fine int to volatile int.
No, no, no.
That doesn't make me an imposter.
That makes me an archvillain.
I see.
I have a whole file of evil pound defines that somebody sent last week that we need to put in the show notes if I can dig it back up.
Oh, yes.
Pound define true to zero.
Oh, much worse.
Much, much, much worse.
All right.
Well, that'll be an interesting exercise
in how well do you know C macros.
Pound to find open parentheses
to close parentheses.
Now, you want to make it so it still compiles.
Yeah, that's true.
And so your code just does nefarious things,
but it looks fine.
Pound to find float to cast to int star.
Ooh.
So I wanted to talk a little bit about that because Glenn's method of development is different than most people's. And I asked about schedule because that is what most
people ask me when I say you should do it properly. You should be more effortful. You
should have more intentionality with your designs and development. And I recognize that it's not
it's not easy. It goes back to Jack Ansell saying it's not easy.
It goes back to Jack Ansell saying, it's not easy.
That's why they pay you.
Be a grown up.
And yet I want to also say that I understand both sides here.
Because I definitely did some debugging last week where I knew something was wrong and I didn't know what it was. So I just kept moving
the line that worked down until it stopped working so that I could figure out where in the world this
bug actually lived. And I'm sort of embarrassed. I felt very, I'm just pounding on my keyboard like there is a way to try to get better yeah um taking this outside coding i'm going to talk
about my posture which has never been particularly good and i started trying to get better by
thinking about my posture when i brush my teeth okay it's two minutes a day. I can do this and I'm not doing anything else.
And then every time I got a glass of water. So now it was sort of like when I was in the bathroom
or when I was in the kitchen and I get a lot of glasses of water. I just tend to, it tend to,
once they get warm or once they get cold, I toss them and get new water. And so I do this a lot.
And, you know, I think about, okay, now my posture is going to be good for the next five seconds
and then I'm not going to worry about it.
And I keep adding little things.
You know, now whenever I'm in the kitchen, I try to remember to make my posture better.
Whenever I'm near the bathroom, I try to make my posture better.
And it actually has been working.
But this has been like a two-year thing and it's still
still you come up to me and i'm working and you see me slumped over like a troll but it takes time
and effort and acceptance that you're not going to have linear benefit from this it is a long-term
thing and that's the same approach I've been using for my coding.
You code when you brush your teeth.
Right.
Sorry.
No.
But to try to be better, to try to use more unit tests,
to try to be more intentional about what I'm doing,
to recognize when I'm debugging in a way that is unsatisfying
because I'm just going to kill the bug.
I'm not going to solve the problem.
All of what you're talking about is mindfulness.
Yes.
And this is going to sound spacey, new agey,
but what you're talking about with doing stuff while you brush your teeth
or while you...
That's kind of very close to what the informal mindfulness practice is
where you pay attention to mundane things.
You brush your teeth for two minutes and you pay attention to brushing your teeth.
You pay attention to what you're doing when you're doing some little tasks.
And that kind of can help train your mind to focus better.
And you're taking a step further and using it to focus on a particular thing
while you do those other things.
But focus and intentionality are really difficult things
for all of us. And exhausting. And like you're saying, it is something you do have to practice.
You can't just decide one day, I'm going to be more careful. I'm just going to say I'm going
to be more careful and I'm going to do these things you have to practice them and that goes for test driven development that goes for uh just having clear code thinking about your names thinking
about your variables thinking about structure it's not something that just happens and it's
one of those things that feels a bit painful the first time you do it because and pointless
sometimes it's easier to do a bad job yeah or to do not as careful a job
so doing them and trying to remember okay for this function i'm gonna do i'm gonna try this out
today and then maybe i won't pay as much attention the rest of the day but for this function i'm
gonna spend the time and then building up from there there. I think that's kind of an interesting way to look at it.
And I like Keen,
where I have one task and it reminds me
to be mindful about a different thing.
Particularly Keen off of rewards.
So, you know, for me, if I try to improve my code every time I check Twitter,
that would go badly because I check Twitter far too often.
Well, and Twitter is inherently a mindless operation.
But it's sort of a reward.
So that would sort of work.
And it's also a distraction, which means that I'm in my, you're right, it's mindless. It's my least mindful time.
And instead, I sometimes think about, okay,
Tuesday at 10, I'm going to spend half an
hour thinking about what I could do better. That's sort of the
Agile retrospective, but they never use it that way.
The Agile retrospective. I'm not going to give them credit for anything like that.
Well, okay, that's fine.
Anyway, if you can key it off of something,
whether it's five minutes after I get a cup of coffee,
I'm going to spend just a little bit longer
trying to figure out if the names of my variables are what I want.
And just spend a couple of minutes.
Yeah, don't try to spend hours and hours refactoring your code.
Yeah, and that's how it's practiced.
You do things for a period of time that seems comfortable
because that encourages you to keep doing it.
If you do something too long or you get frustrated with it
because, ah, I'm really trying to do this and
i'm failing that's when you give up yeah and sometimes people talk about the code uh
kata's the uh practice code where you is it kata or kata i know either. I'll have to look it up. I wish I knew more martial arts. I would know then.
Kata sounds better, but probably only because it sounds like a better word.
Let's say small somethings.
So it comes from martial arts, and it's the practices you do that are not against an opponent.
They're the practice.
It's like etudes in piano.
Right.
And you don't want to do that for 12 hours a day.
You would hurt yourself.
So just little practices.
And I like the idea of doing those after work, but I haven't.
That's a terrible time to do anything.
I am tired.
That is exercising dangerously when I'm exhausted.
I think it's best to do it first.
First, yes.
Come in and say, well, let me look at this function.
Let me pick a function today,
and I'm going to see what I could improve.
And I wouldn't do it after meetings that were frustrating.
Yeah.
Well, it's an interesting way to take a little bit of
the mindfulness approach and apply it to to coding um you were talking about being a grown-up
to start this all off and i think i think people can be a little glib with this and i think we have
occasionally been a little glib with this because it's all well and good to say be a grown-up, but when you're surrounded by people who outrank you, who are not, or who can fire you or affect your performance review, there's not much you can often do.
I'm reminded of the Amazon thing that was a big deal a couple weeks ago where they were talking about Amazon's culture in the New York Times.
And it sounds like a company that has kept sort of the startup culture
even though they've become huge,
which is not necessarily to anybody's benefit.
But the thing that seems to persist in cultures like that is
the idea that you just need to work hard constantly and continually overwork yourself work many many
hours until everybody's ground up and they just replace them um and it was unclear to me in the
article you know what whether they were talking about sales people or engineers or everybody
or the blue collar people doing uh shipping and that kind of stuff.
Probably a little bit of everything.
On the last Accidental Tech podcast, John Siracusa was actually talking about this.
And he said that was interesting.
You do end up in a situation where you have junior people
who are just told to do things and they have to do it.
And there's no real recourse for you to be a grown-up if you're not in charge.
If somebody says, you need to do this by this trade show in two weeks, or you need to do this and get it done in a month or you're gone.
What's your alternative?
I guess you leave.
Well, that isn't even an alternative for everyone.
We have been, you and I have been extremely privileged
in being able to walk away from jobs we hated.
Having dual income, both engineer, makes it much easier for one of us to be
out of work. And that isn't true for everybody. Not everybody lives in Silicon Valley where coming
by a new job is easy. And if you're at the start of your career, you don't have the network that
helps you get the additional jobs.
And so just saying, this company is stupid. I'm out of here. Wow. That's dangerous for a lot of people. And I don't like to offer that as the best solution. Sometimes there are better solutions
if you can figure them out. And one of them is, okay, you're a junior programmer.
Don't try to do it all just take a little bit make
your code as good as it can be and maybe tomorrow as you're practicing think okay he asked me for
this i bet what he's going to want next is what that's the sort of looking ahead thing that will
make you from junior to senior engineer yeah and and and they mentioned that on the Axe Film Tech podcast where because of time constraints, you often skip over the part where you think ahead and you try to lay a foundation so that next time it will be easier and so that you won't have to kill yourself and so that you can make a deadline without pulling all-nighters and writing lots of bad code. And sometimes if the
timelines get compressed enough, you just can't do that. And so there is a bit of a give and take,
but if you do spend some time planning ahead yourself, you can make it easier on yourself,
even if somebody else is pushing a deadline up. And it lets you ask the questions, which
I can always tell when my interns and co- coworkers are not working on the thing they said they were going to work with me on.
And that's when they don't ask the questions.
So thinking ahead lets you say, okay, so you want this accelerometer driver written with a spy interface. I wonder if you're going to want
a tilt sensor out of that, or I wonder if you're going to want a gyro next, and I should be
planning on making the spy driver reusable or designing an overarching sensor thing.
It's the, okay, I can do this.
And while I'm doing it, what are you going to want next so that I can do the most efficient job here and reuse what I want?
And it's not necessarily making your code reusable for everybody,
although I think that you can go on that path.
I think that's a good path to be on.
It's making your code reusable for you
first. And that makes you more efficient, makes you faster. It means you get to sleep.
Yeah. I don't think there are any good answers. I mean, there's some, lots of answers,
but I don't think they all apply in all situations.
Oh, absolutely not.
And I think, you know, I would advise people to
at a minimum stand up for yourself
and you know push back
I've done this in the past and
even as a junior engineer sometimes saying no is valuable
you know this is too much we're not going to finish
or it's going to be bad
we need to look at this.
I mean, it won't always work, necessarily in all situations,
but if you don't ever stand up for yourself,
then you can expect to just continue to be exploited.
And you can say, no, I'm sorry, I can't commit to this.
I will do the best job, I will try,
but I'm afraid you've asked me to do too much,
and so I don't want you to rely on this deadline.
That's not a big wimp out.
That's a, my skills don't match what you think they are.
Maybe you should use my skills differently.
Or maybe I have different skills.
And there's certainly some places where that's not going to work.
And they're just going to grind you out and replace you with some other college grad.
And that's unfortunate.
But I would say try not to get into those places to start with.
I'm looking at you, games industry.
Is that my new name?
Because you're looking at me.
It's sort of weird.
Switching on to other depressing topics.
Andre and we talked about hitchhiking.
Right.
And I'm not going to cover Hitchbot again.
But we may have alluded to the fear, uncertainty, and doubt about hitchhiking. And you know,
it is truly dangerous. It was why I was so annoyed by that Mike McIntyre book about hitchhiking
across the US. Hitchhiking is a bad idea for humans. Apparently it's a bad idea for robots as
well. I am fully aware and happy that people are usually kinder than we give them credit for.
But risking your life to prove that point or even to get from here to there, not everyone is as kind.
So, little PSA, thank you for the reminder I got an email that it's not all about fear.
Okay.
I got another email from Nick about keep out zones for drones, and they already exist.
There are a whole bunch of standards that already are in place, and we should use them.
I will link these standards.
Okay, cool.
Standards from whom?
Federal aviation regulations. There's NOTAM, which was a different thing. That's a normal flight
thing. Right, and so
those same things should be being used for drones. Okay.
And he's a ham, and so he had a lot of discussion
about why you shouldn't generate this for drones.
You should use the stuff that is in place.
Yes, but who's you should use it?
The drone developers? The drone operators?
It's all well and good to say there are rules,
but if they aren't implemented in a way that people know about
and can be enforced, then that doesn't do much for anybody.
And for drones that are smart, that are commercial,
those should be listening to these things and being able to interpret them.
For people who are just having a good time, I don't know.
Now the drones are getting so cheap.
It is very hard to say you could have this platform for $100
and then you need to put $1,000 worth of gear on it in order to make it legal.
I don't like that direction.
Well, and again, drones aren't appreciably different from RC planes.
True.
The difference is people haven't historically been flying RC planes near where other aircraft
fly.
So I think it must be just the ease of takeoff and landing in the stupid drones.
Because RC planes, you need a runway of some kind, a field or something.
So you aren't taking them off next to an airport.
They're too easy.
And that's cool.
And it's going to be great for us in the long term.
Maybe.
Yeah.
I think they should just get rid of all aviation.
So it's just drones.
That way it wouldn't be a problem.
That is, as usual, one creative solution.
Let's see, bypass capacitors.
Yes, please, okay, I get it.
Please, stop with the bypass capacitors, okay?
Just stop.
I really appreciate it.
I'm not a fan of the plumbing model of bypass
capacitor explanations. I really prefer the traffic model. But nonetheless, my emails,
thank you to everyone who explained it in more thorough detail. Please stop. But still, thank you.
Do you want to talk about my current projects, my current and recent projects,
or do you want to talk about my very current little rolliest droid?
I think you should mention your recent projects first.
You're doing...
Have we talked about the mice thing already?
I don't think so.
I posted it on Element 14 this week in my linker post,
where I asked people for suggestions on Wi-Fi platforms with all of the requirements that I have for said platform.
So you're doing a project for the NIH to feed mice or to monitor feeding of mice or to feed mice two things.
No, it's to a precision feeder for mice.
And I'm working with a team who's looking at obesity research,
and they wanted cheaper precision mice feeders.
And so they had an Arduino plan, but they found that it didn't last battery-wise.
And so they brought it to me, and I got to play with it.
And they did not give me any mice, so that's good.
Or if they gave me mice, they didn't.
They escaped before they got.
Well, anyway, there were probably no mice.
Probably.
Maybe.
You didn't look in the box thoroughly.
No, I did look in the box.
They definitely weren't there.
Anyway, so precision mice feeders and sort of cool.
And they're going to make it wireless.
And I'm having a good time with it.
It's all public.
It's all, they want it easily rebuilt.
They want it to last a while.
Price is not as important.
So it's a weird criteria for projects.
I'm so used to price is king and time
to market is queen
or maybe the other way around
and all
the rest is not as important, but
it's time documentation.
And they aren't the first
people to bring Arduino projects
and ask me to fix them.
That seems to be happening a lot.
It is happening more and more.
For better or for worse.
I worked on a bike light project
where it would give directions while you're on your bike
so you don't have to have your phone out.
And it also acted as an actual light to light your way.
Okay.
Headlight.
Right. And they had some trinkets, the Arduino sort of platform.
And they had some WS2812s.
And it was neat.
It was fun to look at their system and optimize it for lower power.
And for them, they had no idea how to manufacture it.
They'd been to China and worked with manufacturers and they had this five minute long programming
method and I couldn't get through the programming method. So I said, well, why don't I just tuck
that processor's code into this
processor's flash and have it load it? And that was magic. And I loved it. It was awesome.
But I don't worry too much about Arduino people shipping products. Arduino makes it easy,
but it doesn't make it always possible for consumer stuff.
I don't see why that would be a worry.
Why did you say that?
Oh, somebody said to me about how the simplification of embedded systems means that we'll all be out of a job soon.
Huh?
Yeah.
That's fine.
As long as you only want the battery to last an hour, we'll be out of a job.
No, everything always gets simplified, but there's always more complex
stuff shoved on the other end.
I don't find that to be a problem, and I
think giving access to people to
build more things is the way to
improve the world.
That's a very
protectionist... It's kind of like
keeping people from importing products.
We don't know if that would work on this, because
that's unfair to us.
Put me out of a job.
Fine.
I'll find something else to do.
And these are
so fun because they have
their ideas and they have their
prototypes and they
it's really neat.
So, yeah.
Hammerhead is the bike light people.
I'll put a link on because I'm pretty happy with how it came out.
So that was that one.
And then the mice one came to Arduino base as well.
Yes.
And so that needs to be...
You're not de-Arduinoing that one.
The first instance I kept Arduino,
although if you have an Arduino project and you want to eliminate a whole bunch of current right away, go to Arduino Pro.
It's made by SparkFun, and what they did was take off the USB chip, and then you use an FTDI cable to program it.
So that's all pretty simple and straightforward, but you don't have to power that stupid USB chip all the
time. So it just sits there, drawing
power? Yeah. And it's a lot.
I mean, it's tens of
milliamps. It was really silly.
Ouch. Yeah.
And then you're going to make it wireless.
And then I'm going to make it wireless. Wi-Fi.
They hadn't chosen BLE or
ZigBee or
Wi-Fi, and I'm headed towards getting to play with the ESP8266,
which I've been wanting to play with for a long time,
but it seems cool.
So you're changing to Wi-Fi, you took the USB chip off,
you're doing anything else for power?
Oh, I did a whole bunch of little things for power.
Looked at their motor circuit and looked at their display
and generally turned things off that needed turning off.
They had used a way to put the processor to sleep
and actually done a good job with that.
That was all they wanted from me was to look at that.
And I said, no, no, no, you have to give me the whole schematic.
And I didn't find any additional power from that processor. I found all my power savings from other things. Okay. So are there ways to make standard Arduino more power efficient? Obviously, you know,
writing good code that isn't sitting in a loop or something, but are there things, are there hooks from the Arduino language to, to do sleep modes and stuff?
I haven't looked at this. So, but if you had a standard Arduino project, are there things,
like a few things you can do to, to make it more power efficient?
Yes. And there are websites that describe them in great detail. But mostly you send the processor to sleep when you don't need it,
either time-based to go to sleep or interrupt wake up.
Okay.
And yet you are still powering that other USB processor all the time.
Right.
So it's a big waste.
And if you use the Arduino Pro, you can go down to sub-milliamp current draw,
depending on what else you've got.
I've also got a whole bunch of other stuff I'm driving at that,
so I'm more on the 30 milliamps right now.
But it is not hard.
That shift was really, really easy.
Okay.
Yeah, I tend to think of it as a prototyping platform.
So I wouldn't even assume that you could do anything hardware-wise to put it to sleep.
So nice to know that you can.
I don't know anything.
You know lots of things.
So what next?
That looks like everything on the list.
I guess we have to talk about the thing.
The thing.
So if you're our accountant,
you should know that we purchased two BB-8 robots
in order to disassemble one
and to do competitive analysis on the BLE of the other.
Okay.
For those of you who are not our accountant,
oh my God, we got BB-8s.
They're so fun.
They're so cool.
Is there supposed to be more?
I mean, I could just go on like this for a good long time.
No, that's probably enough for that.
I mean, I don't want to gloat, but we got BB-8.
You done?
No, I'm never going to be done with that.
Well, actually, I forgot a subject, so let's go back.
I am speaking at the Hardware Developers Didactic Galactic in San Francisco on Thursday night,
which is the day after this goes up.
Thursday the what? The 10th?
Yeah.
Of September.
Of September.
And so I don't think most of you can come, but if you want to,
there's already a wait list, but I have some,
I've heard that the wait list might get cleared.
We'll see, depending on how long it gets. There's already a wait list, but I have some, I've heard that the wait list might get cleared.
We'll see, depending on how long it gets.
Anyway, I'm supposed to be talking about my solid talk when math meets inertial sensors.
And it was pretty much going to be my solid talk stripped of a couple of intro things at the beginning and a little bit more Kalman filter at the end.
Yeah.
That sounds thrilling. That sounds thrilling.
That sounds thrilling.
Yeah, I think I'm going to switch it from math and inertial systems to applications of inertial systems.
And then I'm going to just give up on the whole inertial part
and I'm disassembling the BB-8.
All right.
And I'm showing it off.
So you've already done some disassembly, I hear.
You hear?
You hear because you took pictures as I did it.
Right.
Yeah.
It's pretty neat.
It's really funny how the expectation mechanical drawings that I saw online are nothing like
what's inside.
Yeah.
What's inside is so much more cost-produced.
Right.
Than the four or six motor version I saw speculated.
And the processors are neat.
Even though it's cost-produced, though, the board is not jam-packed.
Things are well-labeled.
Mostly.
I was surprised at actually how much info was available on the PCB.
And how much it wasn't potted and how many test points there still are.
Labeled test points.
I know.
Spy label, I squared C.
I'm attaching wires to those this afternoon
and then I'm going to salient them and logic analyze them.
Oh God, it'll be so cool.
We got BB-8s.
Did I tell you that?
I, you know, after we talked to Dan at Rheingold Heavy,
I got to thinking about how I don't do a lot of disassembly.
Right.
I tend to take things and build them.
I tend to build up and not tear down.
But there is a lot of information and learning to be done by tearing things apart and looking at how they're done.
So I decided, okay, I'm going to try a project.
And then BB-8 came up and I'm like, I'm going to try it on that.
And it is pretty fascinating.
I still don't understand how certain things work.
You mean with the motors?
Yeah.
Me neither.
We're still at the beginning of this process.
I know that there is a gyro in there,
and I know that there is an accelerro in there and i know that there
is an accelerometer in there and i have three chips that i haven't identified and it can only be
well it could be one of them is both right there's one that is totally unmarked that's killing me
and there are two one that doesn't have enough pins to be that chip and one that is marked and I don't know what it is.
I think it's time to stick the salier on the pins of the unmarked chip and move it around.
You can't, I don't want to lift the pins.
So I'm going to stop worrying about the markings
on the board and then just look at the I squared C
and spy and try to figure out from there.
But that won't point you back to a chip.
That won't point me back to a chip, but then I can,
like if I find out there's a, I don't know,
InvenSense accelerometer gyro pack on the board,
then I can count the pins and make some estimates
and say that maybe this unmarked one is probably that chip
because somewhere that chip has to exist on the system.
All right.
So that's my next plan.
I also plan to play some with the BLE
because I did pick up all of its characteristics
and look at the read-write and all that.
I wonder how open that is because the app it comes with,
you can put it in patrol mode and it runs around like one of those toys
from the 70s that bounces off the door, turns around.
But it communicates a lot during that time.
It shows you all the accelerometer and gyro.
Right, right, right.
What I'm saying is the app has a bunch of readouts
and it shows you the accelerometer, absolute value.
It actually decodes the gyro and gives you a 3D image of the orientation of the whole thing, which is correct.
It's kind of amazing.
And then it tries to track its trajectory as it's rolling around, which does a kind of...
Well, it doesn't do a terrible job, but it clearly is just integrating.
It's not doing really fancy filtering.
It has speeds and it has a shock sensor for when it runs into stuff.
So it'll tell you how hard its collisions were.
And it claims to detect life forms as those IR.
And I think that's just a prologue thing.
I do think it has a wheel speed sensor.
Yeah, I think so too.
Which we haven't quite figured out.
No, that's in the little ball on the bottom
of the head. It's buried in the plastic.
And there are test points for that too that are a lot
easier to get to. I just haven't.
It'd be interesting to see if that was a quadrature
detector or something
cheap and even simpler.
Well, if I go tear apart some headers, I can probably...
Well, I'll show you later.
Anyway, there's a good chance that hardware meetup,
I am not going to be talking about inertial sensors at all.
Really good chance.
Did I tell you we've got a BB-8?
They're so cool.
Yeah, if you come across one,
I would, for $150, which is their list price,
I would go ahead and buy it because at Christmas time,
those puppies are going to be worth a lot more.
That is a good investment.
They are definitely the Tickle Me Elmo of the year.
We'll see. They are definitely the Tickle Me Elmo of the year. We'll see.
They are quite
compelling and adorable.
Still disappointed they didn't put an audio
chip in the device.
Makes all of its sounds from the phone instead of
the actual device. It's a cop-out.
And they really don't run
without the phone. No, they don't
do anything without a phone. Did you tell me
there are cheaper versions that are
remote control instead of
I saw that
I think so, but I'm not sure if it was made by Sphero.
I think there was an $80
something, RC
BB-8, but it wouldn't
be hard.
I mean, the mechanicals in the motor drive
would work with remote control.
I think, actually, I don't know. I don't know how much it depends on that being doing all of its inertial stuff
to actually work.
I think there's a lot, actually.
Maybe not.
I don't think there's that much.
I think the counterweight is enough to keep its head upward.
Yeah.
Yeah.
So, yeah, that's what we're doing these days.
Playing with the BB-8s.
If you wonder why we're not getting any work done or why we need to cut this podcast short, that's why.
We covered everything?
We did.
It wasn't a long list and it's been a busy week.
All right.
Did you want to add anything?
No, I guess not.
I'm sure that there are emails that I probably haven't quite looked at.
Hackaday Prize is coming up soon, right?
It is.
Actually, that is a good thing to mention because if you are a Hackaday semifinalist, please do not email me.
Please do not talk to me.
Please do not talk to me. Please do not talk to me.
We can talk in November.
We can be besties in November.
Once it's announced, we can talk again.
I'm sorry.
I have to tell you I'm a semifinalist.
No, you're not.
You didn't even enter.
I did.
I entered my Snoopy snow cone machine.
Advanced Arduino controlled Snoopy snow cone machine. Advanced Arduino controlled Snoopy snow cone machine.
Yeah. Anyway, I am excited for those of you
who did enter, but since I'm a judge, I'm trying to
ward off any impropriety.
But I am excited and the semi-finalists have
been announced and soon I will be deep into judging,
but before that we will actually be talking to Ben Krasnow
about his judging plan and my judging experience.
He's terrifying. He has an electron microscope.
And the flea pictures?
I don't have an electron microscope.
What would you do with an electron microscope what wouldn't i do with an electron microscope is the better question
there are so many things you can't do with an electronic microscope you can't drive a car you
can't bake a cake but you could you could look at the individual molecules of a cake. All right, not that far, but you could look at the aggregate little structures in cake.
I bet that's fascinating.
I bet nobody's ever looked at a cake with an electron microscope.
Excuse me while I Google cake and electron microscope.
You need to tell jokes now while I do this.
I only know the one pirate joke that you told last week.
Really?
That's the only joke you know?
I don't remember jokes.
I have no memory for jokes.
It's like chess.
I can't see more than one move ahead, and I can't remember any jokes.
An electron microscope reveals the hidden horrors of processed food.
No, no, no, no.
I don't want hidden horrors.
Wow.
I don't want hidden horrors. That. I don't want hidden horrors.
That's not what I asked for.
Sprinkles are beautiful when they're...
Okay.
That's what I'm looking for.
Ooh, Pop-Tarts.
That's not...
They're crawling with little bacteria, aren't they?
Maybe.
We'll put that in the show notes for your nighttime.
Yeah.
We'll put that next to the giant spider pictures.
All right.
I want to go play with the little robot.
All right.
I'll talk to you later.
You'll probably talk to me in five minutes about what we're going to have for lunch.
But I guess that means this is the time when I get to say thank you for listening, and
thank you to Christopher for co-hosting, guesting, guesting is guesting a verb, and producing.
I often guest.
I often guest at all sorts of things.
And let's see, we already said thank you for listening.
I should have written these out
if you would like to contact us
unless you are a Hackaday semifinalist
you can email show at embedded.fm
or hit the contact link on embedded.fm
I will talk to you next week
my final thought for this week
is totally irrelevant to everything we talked about.
And yet, when Christopher and I are alone, I often do Winnie the Pooh quotes.
So here you go.
What?
The old, great, I didn't mean when we were alone, like alone.
I meant when it was just us on the show.
Right.
Only the best for you, podcast listeners. The old grey donkey, Eeyore,
stood by himself in a thistly corner of the forest, his front feet well apart, his head on
one side and thought about things. Sometimes he thought sadly to himself, why? And sometimes he
thought, wherefore? And sometimes he thought, inasmuch as which? And sometimes he thought wherefore, and sometimes he thought inasmuch as which,
and sometimes he didn't quite know what he was thinking about.