Embedded - 115: Datasheeps
Episode Date: August 26, 2015Daniel Hienzsch (@rheingoldheavy) spoke with us about reverse engineering a board, bypass capacitors, and serial protocols. Rheingold Heavy is Dan's company for educational boards. The one he started... with was the I2C and SPI education board (its fulfilled kickstarter page). He brought us the theGraphic Equalizer Kit and Bubble Display Experimentation Pack. Dan's Arduino from Scratch blog series looks at the Arduino hardware in great detail. Contextual Electronics course for learning to build boards Chris wrote about his Photon based garage door opener on the Linker blog TinEye for searching schematic snippets
Transcript
Discussion (0)
Welcome to Embedded FM, the show for people who love building gadgets.
I'm Elysia White, here with Christopher White.
We're going to talk to Dan Hinch about electronics, specifically Arduino electronics.
Hi, Dan. Thanks for being on the show.
Hi, how are you?
Good.
Could you tell us a bit about yourself? I am Dan Hinch, and I run a company called Rheingold Heavy, which I founded in May of
last year after getting laid off from what I hope will be my last job in IT ever.
Because you were laid off or because you hate IT?
Probably a little bit of both at this point.
Fair enough.
But now, what are you up to? but that it was matched with actual hardware. So circuit boards or individual components or kits
that would go together to form an actual education system
rather than just a bunch of tutorials
or just some hardware with a little get started guide
that went with it.
So there was an actual educational system
that included the thought process behind how you would go from sort of base knowledge of something and then layer upon it step by step until you got the full gamut of understanding of this particular topic.
Is your background hardware or software?
My background is in IT. So I guess it's probably
a little bit of both. But honestly, in the end of doing IT, it was mostly management. So I don't
think it really actually included either of those at that point. Is it mostly password management?
You can tell us. I understand. It was probably mostly user management at that point and
cell phone contracts and licensing agreements.
And you've been doing a blog series recently where you look at the Arduino Uno in detail,
look at it from an electronics perspective. We talk a lot about Arduino and software and that sort of thing.
But the electronics of it, I don't know, I guess I've never really thought about that. Right. And that was something that I realized myself is that I'm relying on this thing to be the basis of understanding, the common denominator for anybody that comes to the content that I provide or to the boards that I design. And I realized that I didn't truly understand
the absolute nuts and bolts of that actual board.
And when I went to go try to find
some sort of central repository
that explained all of this stuff to me,
it didn't really exist.
And on Twitter, I said that my comprehension of a topic is inversely proportional to the amount of browser tabs that I wind up having open to try to explain it to me.
That you would try to find this understanding for the comparator that will turn off the USB 5-volt signal in uh, that you plug a power supply into it, but there's no resource that tells you how that interacts with this or that interacts with that.
It's people saying, well, I know there's this comparator on there. Can somebody explain this
very small defined aspect of it for me? And somebody explains it usually in very angry
tones on a forum and, and then it moves on, but there there's no there's no comprehensive let's start here and
work our way in all the way through it so that was the the start of it and then the more i i thought
about it i thought it would be a great resource for explaining to people not just how the how the
schematic can be understood but how you actually take a schematic, understand it, then pick the parts, then design
the board, then get the board manufactured, then populate the board, and then do things like,
this is the, and this is the part that I'm particularly interested in. I have no idea
how I'm going to program the 16U2 that's on there. I have no idea. I know I'm going to get a chip.
It's going to be in cut tape from DigiKey,
and I'm going to solder it down, and then what do I do with it?
The 16U2 is the bootloader chip that usually acts as the USB interface?
Exactly.
And so that's sort of a programmer chip as much as anything.
Exactly. Yeah, in the end, I think all it really does once the board is up and running is it sits there as the USB to serial interface, and that's pretty much all it does.
At least that's what I think it does, and I will be happy to be corrected as I go through the process of understanding how the board actually works.
It's pretty funny there wasn't a tutorial about this.
Every single piece of Arduino software has some tutorial that describes it in excruciating detail and yet the electronics are very you just buy the board you don't worry about it they're
open source but i don't know yeah you know it when you when you look for the actual hardware
resources on the arduino website what you wind up seeing are the pin out. And you see the sort of pseudo
data sheet that says, here are the Arduino digital pins, and here are the Arduino voltage limits.
And what they're actually talking about are the digital pins are the actual pins on the,
at mega 328P, when they're talking about the current or the
voltage limits of the 5-volt pin or the 3.3-volt pin, they're not talking about the ATmega anymore.
Now they're talking about the two little voltage regulators that are on there, but they don't
actually explain that anywhere. It's just, these are the VN pins. These are the 5-volt pins. These
are the 3V3 pins. They exist on the pin header right there,
sort of in abstract in a black box, and they just provide 3.3 volts out of nowhere.
That's one of the things about open source hardware. It sounds good,
but open source doesn't mean well-documented.
Absolutely.
It's always been true.
And that was something that really surprised me is when I said, okay, I'm going to do this thing.
I'm going to go grab the schematic and then I'll take what I will imagine to be this beautifully documented schematic that's going to be so easy to read because it's from Arduino, right?
I mean, they've had so many people look at this.
At some point, somebody would have gone, boy, we should really make that look good.
And I got it and I could almost not read it it was it what
strikes me is that it was probably something that somebody took and went man we really got to figure
out how we're going to fit this onto an a4 size piece of paper and so it's all kind of crunched
down from the edges and things are laying down on top of each other. And then they printed it in black and white
and then it was done.
And there you go.
Do you think it's partially not their goal
to foster an understanding of their hardware?
I certainly don't think it is their intention
to make it abstract.
I think it was like,
well, we got to document the schematic,
so we'll put the schematic out there
as the schematic is. But boy, if, we got to document the schematic, so we'll put the schematic out there as the schematic is.
But boy, if you go to the Arduino language reference, I mean, it's a beautiful thing, right?
It's so easy to understand for anybody of any programming level.
And it's clear that they put real heart and real passion into that. And on the hardware side, I think it was,
and I don't want to say that it was the least they could possibly do, but it was on the Gantt chart of stuff that they had to check off. And so they checked it off and they put it out there.
And then when it went from Rev 0 to Rev 1 to Rev 2 to Rev 3, they updated the schematic.
But I don't think it got the level of care and love that the software side got
have you really focused on the official arduino schematic or have you also looked at the other
offshoots the evil mad scientist diavolino and the arduino pro and the arduino trinket Pro? Well, I have the, I think it's the SparkFun Redboard at home.
I have intentionally not gone to look at any of the clones.
The idea was that I am going to take the documentation that is freely published by the people that
designed it as an open source device, and I'm going to use this to make my own.
Now, that doesn't mean that I'm not going to actually use the hardware that I bought.
And I sit there and I check connectivity between different bits and pieces on there to verify already gone through the process that I'm trying to go through right now and probably already figured it out.
And it would kind of defeat the purpose for me to go out and discover that SparkFun's got this beautiful schematic that is really easy to understand.
And I just look at it and go, oh, of course.
Yeah, because the process is the part that you're interested in exactly that's how you learn right if somebody delivered you the answer
you probably wouldn't even look at it exactly exactly yeah no no get that away from me i cannot
see it yeah so one of the things i liked was not only that you had started explaining like the
voltage regulator which was just the right perfect time for me to look at that because i was looking
at how to do battery stuff
and get to the lower current draw using an Arduino.
And so your explanations were perfect for what I needed
to explain to my client about why they needed that.
Here, just look at this.
And yet you say you're going to go on to actually building these,
even manufacturing and talking about each step along the way.
Right.
What can a junior electrical engineer or an embedded software engineer or an IT guy learn
by looking at the Arduino hardware?
Why is this important?
Well, especially when I worked in IT, it was always important to understand the entire
process of any product that you were going to be installing, any piece of
software that you were going to be giving to your end users to use. You had to understand what the
thought process was of the person that designed the software and the thought process of the person
was that was going to be using that software in the end. And if there was some conflict between
those two, as there always is, you should try to be aware of it and at least try
to make some kind of plan for when this conflict is going to erupt so that you can head it off at
the pass. Maybe it's even just the form of an email saying, hey, look, you're going to try and
print this, but it doesn't work with HP printers. And I know we've only got HP printers in the
office, so we know this is
going to be a problem, right? You, you at least know that this is going to be a problem beforehand.
Um, and for my own personal sense, I, I think if you're, if you're dealing with an Arduino in the
first place, you've got probably a little bit of a tinkerer attitude. And wouldn't you want to know how it works?
Wouldn't you want to know,
you know,
what that,
what that little capacitor is doing sitting there on the board,
right next to the microcontroller.
I mean,
it must serve a purpose.
It must serve an important purpose.
There's not that many parts on this board and yet it's sitting right there
next to the brains of the box.
So what's it doing there?
I don't know.
It's the curiosity of it for me.
And I think it's certainly borne out by the fact that it's probably by far the most popular thing I've ever written on Rheingold Heavy by this point.
I mean, the difference between the sight stats that I had before and after was like I I told you earlier, is about triple at this point.
But you have only gotten through a tiny part of it.
You posted part five recently, I think.
I think I'm up to part seven now.
I fell behind.
Did you not see Admiral Purple Hat?
I did not see Admiral Purple Hat.
It's been a busy week.
Admiral Purple Hat and the explanation of low impedance op-amp inputs?
No.
I got stuck on, was it op-amps?
And then that slowed me down.
Yeah.
Which really kind of describes my whole career with electronics.
I got stuck on op-amps.
Okay. electronics i got stuck on op-ams okay uh but you are still i mean that sounds even admiral
purple hat probably wasn't you sent it off to osh park and got purple boards that was
no that was that was my attempt to try to explain the whole point of uh
of why they had to use an op amp to power the led on pin 13 because pin 13 also works as just a
general gpio it's also the s clock pin for the spy bus on the uh on the the at mega 320 ap and
then they went and stuck an led on it right and i and it's interesting because i sat there and went
okay so there's an led on there but then i thought thought, well, why is there an LED on there? And why did they take that LED? And why
did they put it on that pin? And there's no documentation for any of that. So I think
somewhere in there, I say, I'm going to engage the, you know, the, the rank uninformed speculation
engine to try to figure this out. Cause I, you know, I'm just guessing at this point as to why
they put it there or why they included it on the board. But you know, it's my, my, my rank uninformed speculation
is that you got to have an led to blink. If you're going to have this board and you're going to have
people that are starting off with the basics, it's got to be hello world. You got to have the
blinking led and you got to make it nice and easy to use. The problem is that if you're not expecting people to plug in a resistor
in an LED of their own, in which case they're using that GPIO specifically for that activity,
this chip and this LED, that resistor and that LED are going to live on this board in perpetuity.
So they've got to be on that board in a way that doesn't affect the pin,
you know, 18 months later when they're actually using something that involves SPI. That makes sense, actually. It's actually rather clever. Exactly.
It probably saves them a lot of headache by doubling up. But yeah, I can see coming into
that going, what the? Yeah, because I expected there to be, you know, pin 13, there's going to
be a resistor, there's going to be an LED, and you're done. And suddenly an op amp appeared out of nowhere. Why would that possibly be there? Well,
that was, that was my guess for it. Um, and I, and I want to backtrack just a second here and
say that even though I, I, I have a little bit of a problem with the, the way they published
the schematic, the board layout itself, itself which i will which i will wind
up getting into and i actually wind up doing my own board layout has some really really beautiful
elegance in it the they've used some components like resistor networks which i like well i'm
going to need you know five 10k resistors i'm going to go buy five 10k resistors and i'm going to have five individual
10k resistors on there and i think their quantity of individual resistors on that board is maybe one
or two but they've got resistor networks which are single package devices that have four resistors
built into them scattered all around the board and they use them very very very efficiently so if they needed two 1k resistors
in order to accomplish one task they would use two of the resistors in there for that and then
well hey we've got this led over here we need a current limiting resistor for so they just took
the other two resistors in that package hooked them up in parallel and now you've got a 500k
resistor led is done right right? It's very
efficient in the way that they actually laid out the board, which was an actual joy to actually
sit there. And when I started looking at it and understanding that that's not just a resistor,
but an actual resistor network, I thought, well, that's really cool.
But from an education standpoint, that's the sort of thing they hid in the software.
I mean, they wouldn't have used a resistor network because it would be harder to explain. In the software, they made
everything as simple as possible. Oh, absolutely. Yeah. And it's interesting to me that that wasn't
the path they didn't, in the software, it's simple and it's well explained in multiple different ways. And in the hardware, it's efficient and perhaps not as well documented as desired.
Well, making simple software isn't a cost per board.
That's true.
That is absolutely true.
Yeah.
And, you know, there's some things on there where again rank speculation but i can i can see past the schematic and i can
see past the documentation and i can see into the manufacturing process that went into the actual
board itself and i can see the design decisions in there sometimes where they're like you know why would we go with you know discrete resistors when
we can spend you know two euro to buy you know 500 of these resistor networks over here and just
get it done just as easily and all we got to do is run a couple extra traces over here um so do
you think you're going to end up with that that right now you're putting single resistors in your
schematic but once you do the price
breakdown and the manufacturing, you'll realize that it's just far more efficient to do resistor
networks yourself? I would never, honestly, I would never have thought to do that until I
looked at this board. I have resistor networks that are in my parts bin that have been in there
since the late nineties that I have never used, not once.
There's an electronics shop here in Silicon Valley.
It starts with an H.
I don't remember the-
Yeah, Halted.
Halted, exactly.
H-A-C.
It depends on which one you say, but they're the same place.
Right.
And I remember going to Halted when I was first getting into electronics
and building my own resistor kit and building my own electrolytic capacitor kit.
And I remember going, oh, look, you get all these resistors
and they're in a single inline package.
I'm going to get me a handful of these.
I'm going to get me a handful of these.
And I've never touched them, never once used them.
But now you might.
But now I might.
Yeah, exactly.
So yeah.
Probably decayed after all this time.
Probably not going to use those actual resistor networks.
I honestly,
I have schlepped that,
that parts bin of parts across all of California,
Nevada.
And,
and,
and at this point I,
I should probably throw the capacitors out.
You know,
you'd open it up and you can see that so that the the
ends are starting to bulge out a little bit so uh yeah i won't be using any of those parts in
production i can assure my customers right now that all the boards you get will not include
any parts that come out of that they're all new old stock they're fine exactly exactly they're rustic speaking of capacitors why are bypass capacitors you know
no i mean that's actually pretty much the grammatically way
wow that was pretty much what the way i wanted to say it i mean bypass capacitors they're like
salt to me i know i need it to cook with but sometimes i don't really know
how much or what kind and i do know enough that if i'm looking at a schematic that from an
electrical engineer i will make sure there are some bypass capacitors but that's really all
i'm not like so why are bypass capacitors well there Well, they act sort of like, you know, when you're driving around in the country and you drive by a ranch and you see that grill that's in the pavement.
So, like the fence comes from here, the fence comes from here, and in the pavement there's this weird grill that's in the ground.
And that's designed to keep the cattle from going through.
They don't like it when their paws fall,
or their hooves fall.
When the cow's paws hit the grate,
they don't, they don't,
they're incapable of getting across the grate.
So you have this fantastic way
of keeping all the things you want in one location,
but allowing these much larger objects
to actually pass through unimpeded because you don't necessarily want them in one location, but allowing these much larger objects to actually pass through unimpeded
because you don't necessarily want them in one location or another. These little bypass
capacitors that you see across every circuit board next to every integrated circuit, they act to take
any noise that might be on the power rail, or we sometimes refer to it as the power plane on the
on the pcb itself and they act as a little cattle guard right there to allow high frequency noise
to just disappear right into the ground plane but allow just pure clean five volts or 3.3 volts to
go to the power pin of the integrated circuit that you're working with.
And the chips that you work with are generating noise just left and right all over the place.
Some are much, much better at it. Some are much, much worse at it. But there is a lot of noise on that power rail. And when you get to the point where you want to actually turn on your chip by
energizing that power rail,
you want to make sure you've got that little filter sitting there to take any of that high
frequency noise and just send it straight down to the ground plane. And that's based on how
capacitors actually work because they sit there and they charge and they discharge and they charge
and they discharge. If you get this super clean, very clean DC signal coming there, capacitor charges
up and then it stops because it's charged and there's nothing else it can do at that point.
But when you send the AC signal to it, it charges and then the fluctuation starts to drop and then
it starts to discharge and then it charges and then it discharges, right? And then the faster
and faster and faster it goes, it matches up with the particular frequency of these 0.1 microfarad capacitors, which is the typical one that you'll see, 0.1 or 0.01 microfarad capacitors.
And that allows these high frequency fluctuations that you get from logic chips to just go straight through that capacitor because they allow AC signals to pass through and go directly to ground and they don't actually get to the power pin of your chip.
And you should use salt because it makes everything taste good almost like butter of course but how much and what kind well a pinch somewhere between a pinch and a skosh
arduino as a language uh you mentioned the Arduino language tutorial or
thing.
You brought me wine and this is what you get
for bringing me wine.
Do you see Arduino as its own language
or is it just simplified C++
and maybe we should
tell people they're learning
something? I got in trouble on Twitter.
I know. i got you into
twitter battle and i felt sort of bad afterwards you know i i i don't really think of it it's i'm
not i'm not writing in arduino i mean that just sounds strange to say for for some reason i'm not
writing in arduino i'm writing in whatever derivation of C or C++ that it actually is.
But it doesn't seem like it's its own language.
And I think the reason for that is because I didn't have to relearn a whole bunch of syntax in order to figure out how to create a for loop or to create a while loop or something like that.
I looked at it and went, oh, yeah, that's familiar.
Okay, I can do that.
I can like that. Like I looked at it and went, oh yeah, that's familiar. Okay. I can do that. I can do that. But it wasn't like, you know, four ampersand open quote, you know, some
strange open print. Exactly. Like I'm going to sit here and I'm going to have to relearn again,
how to write a four loop because they've decided that their way either had to be different or we
think this is unique or something like that. Like I didn't have to go through that.
So through that, for me, it feels like a derivation of some other variation of a language that I probably learned at some point.
So I don't think it's a language in and of itself.
Some people like to say it's a language in and of itself because then they are teaching classes and camps and young people and people not in technology, they're teaching them Arduino, which everybody knows is easy.
You can look on the internet.
It says it's easy.
And so they're sneaking in C++ without anybody knowing.
And so I can see that because there tell them that you're giving them a
simplified C plus plus or C because that's a very marketable skill and it's
one they should know they have.
It's like that lady came up and told me all about her robotics project.
She was working on with her,
her kids and how detailed it was.
And she was working in with Arduino and,
and I,
then she said,
well,
what do you do?
And I said,
embedded systems.
And she said, what's that? you do? And I said, embedded systems. And she
said, what's that? Well, let's see. Let's have a little talk. So yeah, sorry, I shouldn't have
really put you on the spot with the language thing, but I'm sort of taking a poll in the world.
No, I think what the Arduino stands for isn't the hardware. It doesn't stand for the language. It stands for the ecosystem of the combination of hardware and software. And it also, for some people, it will be better.
And for some people, it will be worse.
They will sit there and go, oh, Arduino, that means it's going to be easy.
And that is, you know, like some people really, really hate it when there is some easy entry point into a system that they have worked in all their life.
And some people are very welcoming to something that's easy that allows people to grasp something that they've been working on all their life. And some people are very welcoming to something that's easy, that allows people to, to grasp something that they've been working on all their life.
And I think that is the more salient point about Arduino as to whether or not it's hardware or
software or software language or something like that is that it's the, it's almost a mindset at
this point that if you were dealing with something Arduino, people immediately perceive that this is
something that they can learn themselves.
Even if they're not particularly interested in electronics, it's that 18-year-old boy syndrome of,
if I really just applied myself, I could be a ninja, right?
And anybody can look at an Arduino and go, you know, I know if I really, really wanted to, I could learn Arduino.
Now I'm going to go work on my car instead.
If you phrased that as, I could learn 8-bit processors and C++, that actually does sound a little harder.
It does, and it doesn't roll quite as trippingly off the tongue either.
So, yeah, running an Arduino camp as opposed to running, you know, 8-bit AVR camp.
Embedded systems with C++ camp.
Woo-hoo!
That sounds thrilling.
For you and all three people that showed up.
Although I would like to point out to listeners
that this does mean if you've been thinking
there's an Arduino language and you have to learn it
in order to help people with Arduino,
that's not true.
You may already know the language.
Well, I honestly got tripped up playing around with some Arduino stuff
because I was like, do I have to go look some stuff up?
Because this is Arduino language, right?
And so I would stop and look stuff up,
and I wouldn't even realize, oh, that's just normal syntax for C.
I was like, oh, I wonder when I'm going to run into the different syntax.
Well, I think it's not that it's different syntax.
It's that they put those sort of ease of use layers on top of it
that you might sit there and go,
well, how do I actually raise the level of the GPIO?
That's valid, yeah.
Yeah.
Well, you don't.
You just digital write, you know?
And that winds up doing all the stuff
that you would normally find yourself familiar with, right,
on the back end.
Well, actually, it seems like most of Arduinoduino programming is typing into google how do i arduino exactly well i you know even even
when i'm doing my stuff the the arduino language reference page is open almost all the time
because i mean at this point i there's just no way i can remember all of that stuff just
you know that easily So let's see.
We talked a lot about the Arduino schematics
and a little bit about Arduino.
Let's see, I have a question in here.
Are voltage regulars really important?
So maybe that's not the best of questions.
Let's go on to Rheingold Heavy.
Where did the name come from?
Well, back in the hazy days of my youth, I thought it would be a brilliant idea to, and I can't believe I'm going to be admitting this over the air, to have a tinsmithing booth at a renaissance fair.
Everybody thinks that's a great idea at one point.
Exactly. It was either that or become a ninja.
Or you could be the jouster at renaissance fair.
Wait a minute, weren't you something at?
I actually did work at Renaissance Faire for a couple of years.
Yes.
Oh, God.
I was in high school.
It was great.
When was this?
1995, 94.
Was it at the Renaissance Faire up here in Marin County?
No, no.
There was one in Southern California.
Oh, okay.
So you were at Southern Faire.
I was at Northern Fair. And that is the extent of Renaissance Fair jargon that I prepare to repeat in my life.
Anyway, so I thought it would be this great idea to have a Renaissance Fair booth where I would make chess sets and necklaces and stuff like that out of tin because I'd gotten this tin casting kit from my grandfather a couple of years before that.
And my dad's like, well, you're going to have to have a name and I was like well I'm gonna call it
Rheingolzsinn it's got this German connotation to it and I got it from my German grandfather and
you know my whole family's German so uh and then my my grandfather here in the United States
actually hand carved me this big beautiful sign out of walnut and then 24 karat gold leaf
Rheingolzts in across the face of
it. I mean, it's awesome sign. I've still got it to this day. Um, and consequently every business
venture I've ever had after that has always had Reingold somewhere in the name. So I was going to
have this, uh, this adventure travel and training business, uh, five or six years ago before my body
decided that adventure travel and training is probably not a wise idea. And that was going to be, you know, Ryan Gold training and travel or something like
that. So I wanted to have that in the name somewhere and then heavy just, I wanted it to
sound like Mitsubishi Heavy Industries. So, and that's, that's where the name came from.
Um, and then clearly after having seen my last name and then seeing the
website domain that I chose, I apparently don't want anyone to ever find me because I can't find
any way of communicating what I do in a way that people can spell. So I at least didn't use my last
name and my email address. That was a step in the right direction. Have you scooped up the similar websites with incorrect spellings?
I have not.
I'm a little budget constrained for stuff like that.
Just go shopping for every possible permutation of somebody misspelling a German word.
Oh, yeah.
I do find it amusing when I get emails at Logical Elegance with my name misspelled, which I did make the aliases because why not? Those were free.
Yeah.
So, it is your company.
Yes, my company.
I believe on the About page, there are four different jobs described, and under each one, it's your picture.
Yeah.
That was pretty amusing actually that was the
intent i think it was either going to be terribly amusing or terribly unprofessional it was going to
be one or the other yeah sometimes and then i realized you know what it's my company do what
you want exactly so electronics hardware for high quality education products. Do you end up competing with SparkFun and Adafruit, Makershed, Parallax, Evil Mad Scientists?
Or, I mean, is there just space out there?
There is space out there.
I don't know how much in the way of education that Adafruit is necessarily focused on or
Evil Mad Scientist Labs. I know SparkFun's got a huge education outreach. that that adafruit is necessarily focused on or uh or evil mad scientist labs uh i know spark
funds got a huge education outreach they're both pretty focused yeah um but you know i i guess
that's you know i i certainly don't have the the revenue or the volume of sales to to to compete
in in that regard i might be in the same subject matter.
But when I first started working on the very first project,
I certainly went out and I tried to find things
where I was not in conflict
with people that were doing similar things.
What was the very first product?
The very first product was the I2C and SPI Education Shield.
And that was funded with Kickstarter back last December.
And so that one, when I saw it, I was like, why do you need this?
Arduino has I2C and SPI.
Why?
But then when I looked at it, you were visualizing how things get clocked out and what the lines were.
So it was a very electrical approach to what I see as often a software problem.
Was that your intention? somebody that wants to use I squared C or SPI in their project, how the signals get generated,
how you can test that the signals are being generated correctly, that they're being transmitted
correctly, and then cover sort of a few of the bells and whistles. Cause I know that,
that people aren't necessarily all that familiar with bitwise operations or bit shifting.
And if you aren't familiar with doing, you know, AND or OR binary operations, you can wind up sort
of jumping through a lot of hoops to try to get your data into a register looking exactly like
you want it to look if you don't know that you could just shift that one over four spaces,
you know, left or right. But, but the, the origin of it
really was that there, there are these things I2C and SPI, uh, and as you read through the
documentation, such as it is, you wind up hearing a lot about registers. And then I started wondering,
well, you know, what, what, what is exactly a register? Well, you start reading about registers
and then you start reading about flip-flops
and then you start reading about digital logic.
And I thought, I can't be the only person
that wants to know these sorts of things.
And it was, again, that sort of scenario of,
as I tried to comprehend the breadth of everything
that made up the I2C or the SPI bus
from the registers inside the 328P all the way out to what you get inside
the actual chip that you're working on, that I wound up with 45 browser tabs open again.
There are very few resources that cover a topic completely in depth in a way that
is approachable to people that might not necessarily be familiar with it up front.
If you want to go get the guide to I2C from Philips,
you can try to comprehend what it is that they wrote.
Yeah, exactly, right?
Or you can read any I2C device.
They always feel this need to restate the entire concept
of the I2C bus inside the data sheet.
Well, that's because they always change it slightly without you noticing from a little
timing. We don't, you know, we don't, we don't want the rise time to be this. We want it to be
this because that's the way our chip works. And, you know, you spend a week trying to figure out
why this simple thing doesn't work. Um, so I, I, I wanted to be able to provide a resource where
you could go, you could start off with, with knowing that I squared C or SPI were a possibility of something that you could do
and go all the way through understanding, not just how to execute a spy command or how to execute an
I squared C command, but understand what was happening. Because if you, if you don't do that,
then all you're doing is you're following recipes
you're not you're not actually making food yourself you're just opening up the packaging
and you're adding you know a little bit of a and a little bit of b as the instructions tell you
but you don't really understand what's going on and then when your quiche comes out tasting bitter
you can't fix it you you it's not that you just can't fix it but considering the
attitude most people will most likely have they'll just never make it again right because they don't
have the tools to go in and go okay well i just need to go in and you know i need to to add a
little bit of marjoram to this or whatever it is to make the food actually taste good right that
you you need to be able to provide them the background.
And in some cases, I'm sure people don't necessarily need to sit there
and actually use the clock data and button
or clock data and latch buttons that I put on there
to manually operate a shift register.
You don't necessarily need to understand
exactly how the clock signal needs to be,
you know, up when the data button is pressed.
You don't necessarily need to know that, but at some point you might want to backtrack your way
into it because you're starting to struggle with some concept later on. And in order to do that,
all you're going to have to do is go to one page. You're not going to have to go and open up 50
different sites in order to get to the information that you're looking for. At least that would be my hope. Cool. And I've
heard good things about it. I haven't played with one yet. Honestly, one of the best pieces of
feedback I got was a guy that bought the board and he said that he hadn't been that excited to
get something in the mail since he bought a Forrest Mims book. And I thought that...
That's quite a compliment.
Yeah. I'm like, I don't know that I really live up to that, son, but I really appreciate
it.
No, that would have come in handy back when I was first learning to use these things,
because almost every time, and I have some understanding of those buses now because I
use them all the time, 50% of the time I got to pull out a logic analyzer because something
ain't right.
Well, if you're using I squared C, you really should use an O score.
I seem to recall us having that conversation already.
Some sort of debugging device which makes wiggly lines on a screen.
Because devices are different.
Your electronics might have a problem.
You might have a pull-up in the wrong place or not have a pull-up where you need one.
Or stuff conflicts. there's addressing problems and if you don't understand how it works you you're kind of
adrift and you can't learn how it works unless you do what you know do the debugging stuff that
right right you're already in trouble so starting out with something where okay i'm going to flip
these up and down see what happens and getting an intuitive feel. That's awesome, I think. I spent a lot of time in the Arduino subreddit on Reddit,
and I try to help out anytime I see anybody asking a question
about I2C or SPI.
And this one guy was wondering why his SPI chip didn't work,
and he's talking about his code, talking about his code,
talking about his code.
But what he didn't actually say until you sort of got him into the actual design of what it was that he was working on is that he had tied the chip select pin to ground.
He's like, I'm not going to have another SPI chip on the board.
It's going to be the only active SPI chip I have.
So I just, it's always going to be active.
I just, I just always want it to be active.
And then didn't know why his data never latched in so that actually works for some chips and for some chips
it will work but if you don't read the data sheet how would you know yeah which was another of your
posts that i found quite amusing you have one about reading data sheets i have uh uh data
sheeps data sheeps really great i have a chapter in my book about reading data sheets because i
agree that it is something of a skill it is. You shouldn't read the data sheet from start to
finish if this is the first time you've ever read the data sheet. And that first page,
that's for people who only need the summaries. Kind of skip the first page.
Walk away until you're ready. But you had a post that was pretty cool. What advice did you offer?
I think probably the most brilliant piece of advice I put on there isn't even my piece of
advice. It's from Douglas Adams. I just put the big Hitchhiker's Guide to the Galaxy Don't Panic
sticker right on the front in big friendly letters, right? Because you look at these things
and you get the first page is all manufacturers' logos and highlight specs that might be right, might not be right.
And they're all so dense.
They expect you to know what all this means.
Absolutely.
Absolutely.
And it's like MV slash S slash the phi symbol slash sigma.
You're like, do I need to know that?
Is that the spec that I'm looking for?
And then you turn the page and it's logarithmic charts, like six logarithmic charts on there. And it's the temperature coefficient versus the frequency
versus the equivalent series of resistance. And at that point you close the data sheet,
you throw it in the trash and you walk away. Right. Which is why I'm like that the number
one thing you can do when you're looking at a data sheet is just be calm. Just understand that
you're not necessarily supposed to comprehend
it the first time in. It's not a document that's written for ease of understanding.
And each part isn't for everybody.
Absolutely.
It's an exercise in, what can I ignore?
Yeah, exactly. And then the best part is when you do spend half a day trying to read that thing,
only to discover that this is not the part for you.
Oh, that's the killer one. When you're trying to get through six data sheets because you need to
know which of these parts works for you except in the end none of these parts worked for you yeah
and what what has really surprised me is uh i never talked to manufacturers until i had my
own company why would i right um but I have wound up probably correcting,
I think three or four data sheets now for manufacturers, which just surprised me.
I always thought, you know, well, this is technical documentation, not just
little documentation, but this is the technical documentation for your product.
Would you not make sure that your timing diagrams weren't completely garbled before you published them?
I spent three weeks at a job once.
There was an error in a data sheet and couldn't figure it out.
It was a timing issue on a one-wire device.
So those are really, really, really very sensitive to timing.
But it was right in one data sheet for one package of the part, but wrong in a different
package. The device was completely identical except for the package. And it's a one-wire
device, so it's got two contacts, right? So it's not like the package really matters. Yeah. And
they screwed it up in one package and not in the other. And it took me three weeks to figure out
what was going on and finally went back, oh, sorry. brilliant so with some of your posts you put in
quizzes how do you do that it's like i'm reading through and and you you have a question and then
i have to mouse over right and it changes colors um well that's just rollover css that i probably
purloined off of somebody else's site because I thought it was a good idea.
The idea being that you need to have some way of testing yourself when you're starting to learn some theoretical stuff. And that was sort of the best way I could think of to sort of give a quick
hit for you to make sure that you truly understand the information that I'm presenting.
Because if you don't, if you read the answer and then you're like, I really don't get it,
my hope would be that you'd send me an email going, dude, your documentation doesn't make
any sense.
Like you gave me this answer.
I cannot understand what you're writing in order to get this answer.
And that is not a problem of the person that's reading the documentation.
It's the problem of the person that wrote it.
Very few people are going to do that.
Absolutely.
It's actually kind of a privilege when they do.
Absolutely.
And I have, I guess,
everybody that winds up going down this path
of manufacturing product,
you wind up with these,
probably a handful at best, even when you're making thousands of boards, you wind up with a handful of people that are your truly best customer.
And I have this one guy in Germany that is the wonder customer.
I mean, he sat there and he sent me typo corrections.
And he's like, I just want to let you know, I've been through half the material that you've written so far and I've been
doing it step by step by step by step.
And here are the,
here are the mistakes that I found.
And here's a couple of typos that I found.
He,
uh,
he actually sent me an email when he saw the,
the Arduino schematic that I'm using as the,
the cover image for the Arduino posts.
Somewhere on there,
I have written,
uh,
need to find out load cap size question mark.
And he sent me back an email.
He's like 15 Pico farads above and beyond.
So,
you know,
it's,
it's,
it's people like that,
that I know are,
are certainly getting use out of the material, but also sitting there and going, well, you know, that they have this opportunity to make sure that they actually can verify the information that they've got.
Because if you're just reading the page and then I do provide all the code.
So if you just copy the code and you paste it into the Arduino IDE and you upload it to your board and you get a temperature reading back or you get an ADC reading back or you write something into flash memory and pull it back out again.
If you, how do you know that you truly understand what's going on? And the only way to do that is
to be posed a question that you aren't immediately presented the answer to. All right. So that's why
I put that funky CSS in there. But designing questions is hard, especially when you have to be able to answer it pretty
simply.
Yeah.
And I've been talking with a couple other people about putting more formalized quiz
or maybe an exam together that is completely open, I guess, open web, open book, open page, open content.
I don't know how you describe these things nowadays.
That is the 50-question test to allow you to see whether or not you truly understand the I2C and SPI information that I've presented.
Because I think it's fairly comprehensive.
And it is certainly geared towards Arduino. But I mean, timing diagrams are universal regardless of
the micro that you're using to control it, right? I mean, the timing is going to be the timing is
going to be the timing. I2C is always going to be two wires. SPI is typically going to be three or four wires. It's presented in the
Arduino format, but it's the idea of what is the clock signal? What is chip select for? What does
it accomplish? To be able to provide somebody the idea that if you can go through all this material
and then you can answer these 50 questions at the end. There's a good chance that you actually understood the material and it's, you don't have to memorize
it, right?
Because you already know that this is a resource that exists.
And I know in two weeks, I'm not going to remember that stuff anymore, right?
But at least, you know, you knew the information at the time, and then it'll be able to give
you a clue that you can come back later on two weeks a month
a year down the line to go and return to that information and get it again when you need it
so relearning is easier than learning absolutely absolutely is your blog critical to your
sales uh why do you do the blog well Well, I do the blog because it was,
in my mind, it's part of an education system. And it started off as just being about the
I2C and SPI education shield. The idea was that I was going to provide the board,
and then the board was going to be matched with a full series of tutorials so that you had both of them at the
same time to learn the topic that I was covering, rather than having a series of tutorials and now
you've got to go out and source the parts yourself and you've got to breadboard a whole bunch of
stuff, or alternatively just sending you the board and then you've got to go out and you've
got to read data sheets to figure out how to make an AT30TS750 work.
That it was going to be a marriage of the actual hardware with documentation as a full system. is either personally interesting or that I think the sort of people that are looking for things like the nuts and bolts of I2C or SPI or the Arduino as the case is right now, that it's a
great way for me to be able to present that information. It has been suggested to me on
many occasions that I should be doing videos, um, or I should be doing videos exclusively rather than written content.
Um,
I like the written comment content.
I like the written content.
I like written content too.
Um,
and I think there are a lot of people out there that like written content
because it's a lot easier for them to read written content and search when
they're at work.
That too.
And they're,
and,
and they're trying to do something that isn't necessarily related to
what they're actually employed to do well and you get a little bit of a memory of where to find
things it's right he's like oh i read that it's three quarters of the way back in this particular
blog post or or section uh videos i i feel kind of adrift like was it was it in minute three was
it when he was talking about the pink unicorn? Episode 27,
about something.
It's very...
We are so going to get a request
for transcribing all of the
Embedded FM podcasts
from this discussion.
And you are once again
going to have to write an email
that says,
no, that is far too hard
and we really don't want people
to be able to search
for all the stupid things I've said.
It's also been suggested
that I should
do a paid online course.
You took Chris Gamble's Contextual Electronics, right?
I did.
Speaking of paid online courses?
Speaking of paid online courses, yes.
And I paid and I took the course.
And it is most likely due to the Contextual Electronics class alone
that Rheingold Heavy exists today.
Because the ability to design a circuit board and be able to produce Gerber files that are
usable for manufacturing was a skill that I didn't have in any scope at all. I didn't know how to use an EDA tool. I didn't know how to
design a circuit board, how to do layout, how to create footprints or create components or anything
like that. That was all way outside the scope of anything that I was able to do. And in the six
months that it took me to get through the session 1A and session 1B part of contextual electronics, like, well, this is, it's not easy. It certainly took six months to learn how to do itCad, it was a matter of learning about part selection for manufacturing,
about making design decisions for layout at the beginning when you're putting the schematic
together that you're going to pick a component and go, this is absolutely the unicorn of components.
I have found the god of components. It solves all my needs for this design. And then you could conceivably design it into your thing.
And if you're not thinking ahead of time that this is actually a BGA part, then you go to actually get your board put together.
And you're like, what am I supposed to do with this thing?
You know, I mean, it's basically a black chiclet that no one can use unless you have an x-ray machine.
And, you know, and magic fairies actually sit there and solder the little globules down.
I have always suspected BGA and magic fairies went together.
It would not surprise me at all.
I'm afraid to take that course because I think it would just make me
know enough to be in that layer of...
Dangerous.
Wow, I know things now.
And I can argue with electrical engineers with 20 years of experience.
Why did you make this choice?
I'm second-guessing this choice because I took a class.
Yeah, exactly, exactly.
One of the things that I try to do, not regularly.
I've gotten away from trying to do it regularly, but I do try to make sure that people understand that I don't think i'm an expert about any of this stuff um i if i have a superpower it's not engineering at all it would be trying to communicate things
of a technical nature to a non-technical person i think i have skill in that area maybe i see
connections between different things in a way that that people understand more easily uh but i i i am not an
electrical engineer uh never went to school for this stuff so uh you know and and my the sum of
all my training for designing circuit boards is really out of out of the the good grace and help
that i've gotten from chris over the year. What did you bring me?
I waited
as long as I possibly could.
I totally wanted that to be the first question,
but it was good.
Let's see here. I can do this without
slamming my face right into the microphone.
There we go again
with scintillating visual radio.
Don't these look awesome uh so i brought uh bubble display experimentation packs which is a seven segment uh four digit display in the size of a dip chip so it is uh these are
cute little things they uh if you think these are actually manufactured by Agilent, they are the number displays that appear on HP calculators.
So if you take this and you put a little piece of smoked plastic in front of it,
it is an actual HP calculator display.
Okay.
That would look really good if you get back to doing that
Kerbal Space Program heads-up display.
Oh, yeah.
Those are very small. I mean, you said that they're small, but it's pretty cool. Yeah. Kerbal Space Program heads up display. Oh, yeah. So I got...
Those are very small.
I mean, you say that they're small, but it's pretty cool.
Yeah.
I have these SparkFun 8-segment LED things that I've been playing with.
Right, right, right, right.
And boy, those are a lot smaller.
Yeah, they're teeny tiny.
I bet they're more power efficient, too.
Yeah, they're...
Well, the SparkFun one's designed to be all things to all people.
I think it's got like three different serial interfaces. does it's amazing oh has it got a backpack on it
yeah and a chip and a controller and you can got a full fully fledged microcontroller on the back
yeah this is uh this is a very very high horsepower uh seven segment display that is for certain
wow yeah exactly scintillating visual radio.
But these little ones are cute.
I like them.
And then I also brought a MSG EQ seven breakout board kit.
This is a seven channel graphic equalizer chip.
So it,
uh,
you plug an audio cable into it from a music source and,
you strobe the strobe pin with a regular up and down, and it will output on the output pin.
These are very, very technical pin descriptions here.
It outputs the level of that particular frequency, the volume in that particular frequency band as a voltage level between zero and five volts.
And this is how you build those sort of blinking light displays that,
that dance around to music.
So it's all muxed onto one pin and you clock it through.
Yep,
exactly.
So this is where we just made fun of the spark phone one for having a big
backpack.
This is also basically a backpack sort of thing where you,
you have some smarts in
here that separate these separate music into multiple yeah frequencies um the uh that is a
much much larger board than i normally would have gone for um there's there's actually uh an
interesting story behind that board in particular when i was going through it's much much larger
but it's still the size of like a trinket.
It's not-
Oh, yeah, yeah, yeah.
It's not like an Arduino shield.
It's still-
Yeah, yeah, yeah.
Well, it is all-
It's through whole parts.
It's all through whole parts.
And the reason it is all through whole parts
is because when I was doing my Kickstarter,
I was putting together all my Kickstarter content
and logging into Kickstarter day in, day out,
day in, day out.
And one day it dawned on me, well, I backed this project months and months and months ago,
whatever happened to that? And I went in there and I discovered that this guy had,
for whatever reason, just completely abandoned it, totally dropped it. And I looked in the comments
and it's, you know, where's my board? Where's my board? Where's my board? Where's my board?
And I looked at that and I went, man, I am so angry. I, I, I, I spent money on this and this guy totally abandoned this.
Somebody should do something about that. I should do something about that. So, uh, so I, I went to
the, the mixed signal integration website and I downloaded the data sheet and it turns out the
guy was putting together this, this MSG EQ seven breakout board kit. And he was just using the, the reference schematic that's in the, that's in the data sheet. And I
thought, well, if he did it, I can do it. It's what I'm doing right now. So, uh, so I went on
Reddit and I went into the comments there and I said, look, uh, you know, I'm not, I'm not slamming
this guy. Everybody, you know, has stuff happen. You know, I'm sure his reasons for not fulfilling his obligations to the people that gave them her is, you know,
their hard earned money was, was perfectly valid. Uh, but that said people don't have their product.
So what I did was that I, I walked them through the entire manufacturing process,
the design process, and then I sold them boards at cost. So if you were a valid backer of that Kickstarter,
you got this board at cost.
Then I'm not out any money.
They're only out a little bit more money
than they had originally been charged
and everybody walked away happy.
Cool.
Yeah.
And then, oh yeah, I have stickers.
We can trade stickers.
There you go.
Excellent.
Ooh, fancy R's.
Multi-color and two of each.
Nice.
So that it wasn't just one of you with stickers, and then I brought two of those, too.
You know what this means, listeners?
If you email me, Embedded, whatever the email is, I give it the end, because it's not like I remember the end.
It's show at Embedded.fm. Or hit the email is. I give it the end because it's not like I remember the show at embedded.
Dot.
FM or hit the contact link.
I will send you some of these stickers and maybe one of mine if I run out of
those.
So feel free to ask for stickers.
I still have some.
When we met,
you were at the parts IO booth at solid con.
Yeah,
that's right.
What did you think of Solid?
It was my first time going to a trade show that was not information technologies.
So there were surprisingly fewer people involved with sales than I'm used to at a trade show.
But I thought it would be far more hardware focused.
Given that it's hardware, software,
and the internet of things or something.
Yeah, and apparently road racing cars from South Africa.
Don't forget the biology in gum.
And the biology in gum, yeah.
It was eclectic.
Eclectic, that is a great word.
It was.
Well, that comes from all the time of living in Southern California and hearing, morning becomes eclectic on KNPR or KCRW.
That's it.
I thought there would be more of a hardware focus, but I suppose that the wave of iot has got a very very large software uh the cloud the the entire cloud and the the cloud services and the apis and and all the things
that exist around that are now really beginning to get productized and not just productized but also heavily marketed to those in
the know uh so there was a there was obviously a very strong focus on that um which kind of
surprised me i thought it would be i thought that there would be a larger presence of of i don't
know you know texas instruments and and and uh and microchip microchip yeah no but
intel was there but for the most part there weren't a whole lot of other yeah it didn't seem
it didn't seem that you know i wasn't expecting like you know like uh you know chemit to be there
with with their own personal like capacitor booth right right like you know come upemet to be there with their own personal, like, capacitor booth. Right. Right? Like, you know, come up and see all our line of 0805 capacitors,
which would have been fascinating to see, let me tell you.
Yep, it's a capacitor.
Exactly.
Oh, and that one looks exactly like it, but smaller.
But I don't know.
It just seemed smaller than I was expecting.
And, you know, like I said, not as hardware-y focused as I would have hoped.
There was a lot of entrepreneurship.
And Solid does do.
I mean, that seems to be something O'Reilly's sort of into.
Yeah.
The Parts.io booth was right over by Startup Alley or Startup Row or whatever they were calling that.
And there were some very interesting things going on over there.
And there were some sort of head-scratching things going on over there.
There was one guy that came over to Chris and I over at the Parts.io booth and was really excited to talk about what he was doing.
And I'm like, oh, that's interesting. I don't entirely understand. Um, but that's cool. You know,
I'll come over later and see, you know, when you, when you've got your thing out to talk about
whatever it is that you're doing. And he just stood over at his table with his iMac out for two days.
What,
what,
what, what were you doing there?
What,
what were you doing?
What are you presenting?
Why are you there?
What is your purpose?
It was,
it performance art.
That is,
that is,
that's probably the best observation I've heard yet.
Well,
there were,
there were two parts.
One was sort of students who were showing off things. And then if you ask them for more detail, like, can I see the motor you're talking about? They would say, no, we've never built one. That was a little hard to take. I don't know, seal of approval. And those were amusing to talk to because they were all over the map from,
we are so glossy we don't even understand our product anymore,
to the Bluetooth power or plant monitoring system.
Bluetooth planet monitoring system?
Plant.
Oh, plant monitoring.
Watering.
Huh.
Which I had seen a lot of because I've just been hearing a lot of these on Kickstarter
and other various places.
And so I asked, how is your Bluetooth plant monitoring system different?
And he looked at me for a minute and he said, we focus only on cannabis.
It was not the answer I expected,
but probably one that I appreciated more than he could possibly know.
That's honesty and marketing right there.
Probably one of the last truly profitable growing industries in agriculture.
So what does your project do?
Weed?
You laugh.
Five years.
But you were there for the Parts IO booth booth and you were there with chris gamel and uh what what give us the elevator pitch for parts io because i keep getting confused well
parts.io uh provides a far more robust and far more intelligent way of searching for parts than
currently exists if you're going to digikey or maPart, they, uh, they really go in and grab a whole
bunch of analytical data on the components that you're working with to provide you with
a better idea of how that part is probably going to work out for you in a manufacturing
process.
So there are all the technical specifications, the voltage rating, the maximum electrical characteristics that go with any particular part that you could possibly buy from the simplest resistor up to the most complicated microprocessor.
But they have beyond the data sheet.
What do you mean by beyond the data sheet?
Well, I mean, the electrical specifications are on the data sheet.
Yeah, absolutely.
So those are easy to find from data, from all the others.
So all that stuff is in the data sheet.
And then all of those things have to obviously be searchable.
You have to be able to winnow down whether or not you want a 3.3 volt part or a 5 volt part.
But beyond that, they have done a lot of data gathering and a lot of filtering
to tell you what the average price level was of that part
over the last 12 months. What was the inventory of that level or the inventory level of that part
across all the distributors worldwide for that part so that you can get a better sense of how
reliable it will be for you to include that part into your design for either the design phase,
the prototype phase, uh, the production phase or long-term support of that part into your design for either the design phase, the prototype phase, uh, the
production phase or long-term support of that part going forward. And then, uh, they also swizzle all
that stuff together. They give you a risk ranking so that you can see at a, you know, at a very
quick glance, whether your part is a low risk part or a medium risk part or a high risk part or a
danger run the other direction part. Um, and then. And then they provide you with the ability to link out straight to the distributor of your choice
to go and buy that part when you've assembled the selection that you want to work with.
And this is part of the supply frame family.
Supply frame family, along with CodeFX and FineChips, Hackaday, Hackaday.io.
And now it's Indie. And now Tindy.
And now Tindy.
That's true, yes.
I can't believe we haven't had a party for that yet.
I hope they're listening.
I've heard rumors, by the way.
We'll tell you when those rumors solidify.
We'll tell you.
The secret Tindy after party?
The secret supply frame after party?
Yes, exactly.
Let's see.
You got a photon at Solid, like all of the attendees.
Yes.
At least all of the attendees who got there before I started scooping them up.
Going by and grabbing handfuls of photons.
What did you do with yours?
Oh, wait a minute.
We should...
Christopher, describe Photon.
Yes, please.
What?
Oh, it's a microcontroller with Wi-Fi
and a big cloud backend thing
so that you can access it over the internet quite easily.
So sort of like Electric Imp, but totally different.
Very different API.
The API is more open,
kind of webby.
I'm not describing this very well.
You program it in Arduino.
The language. The language.
And they provide all the hooks in there
to access things remotely on the internet
or to declare things
within your program or on your device
that should be accessible from the internet.
So it's really quick to uh to hook up and say this is an endpoint that i want to be able to interrogate from the internet or something i want to be able to control um yeah that's and if you
see chris in person which i know seldom happens you can ask him to show you on his i watch you
never you never go to the conferences with me. That's because they're conferences.
I know. But if you see him,
you can ask to see his iWatch
and then he can show you whether or not
our garage door is up or down.
Right. Because I turn it into a garage door opener.
It's sort of cool.
As one does with every IoT device.
It was either that or the toaster.
Yeah.
So did you find it easy to get up and running and started
with it i did uh the the getting it hooked up to you know to make it control the garage and uh
you know give me feedback of whether it was open or not was was pretty simple
um getting it hooked into an app was difficult but mostly because that's something i didn't know
how to do on the Apple side.
So it was not Photon-related at all, really.
It was, oh God, how do I write an iOS app?
But they have APIs for Android and for iOS
and generic JavaScript kind of accessors,
so you can kind of integrate it into anything you want,
which was cool to me.
You got an app running so much faster than I expected.
Since sometimes for clients, they want little apps,
and I say, you know, I'm not the best person to do an Android or an iOS app.
But having seen you do that, it's a little tempting to say,
well, if you want something bare bones,
we can get it so you can test out your embedded system, but go find somebody else to write the real app.
You made me think that that might not be as hard as I thought.
Yeah, and they provided
a lot of example code for iOS
so that they had very
simple things which go through the API
and say, okay, this is how you access
your endpoints from
Objective-C or Swift.
But then they also had a very complicated
example which they ship with
well, they don't ship with it,
but it comes with the dev kit
so that you can, out of the box, control it
just by plugging it in from an iPhone.
And look at all the pins, set them high-low,
look at the ADC values and things like that
just right out of the box without actually programming it.
It's just got that firmware embedded.
They have the source code for that available so you can see a complicated example of of a complete you know
very well produced ios app that happens to talk to the photon device so that was that was really
handy too i thought the uh the way you onboard the uh the wi-fi information onto that chip was
really elegant the soft ap yeah connect yeah so easy to do so easy to do and then
after that uh i think i saw that alicia had tweeted that oh chris was able to do like these three
great things before you know before breakfast this morning and then i saw your post on element 14
and then i couldn't even get an led to blink i'm sorry and it was so frustrating i'm sorry it was like this is supposed to be easy and and yet it isn't and the more i dug into it as soon as i had to go
outside of of arduino or or whatever we're calling that language uh and into things like java or javascript uh i was completely lost absolutely lost yeah it i don't know now to be
fair i eventually did get it to report temperature uh it took a week but i was able to get it to
actually talk over i squared c to uh to a temperature sensor so i got that eventually
working um but man it, it was way more complicated
than I thought it would be.
So you're saying I oversold it?
No, no.
What I'm thinking is that it's the different experience
and focus that you bring to it than I bring to it.
I could probably pull up that little interface shield
that they've got over the Wi-Fi chip and just dig right into that
and just be happy as a clam. But getting into the software side of it, especially when they're like,
oh, we have this Node.js API. I'm like, why does everybody keep talking about Node.js?
Everybody is talking about Node.js and no one is explaining it to me.
It's a way to run JavaScript as an executed language, not in a browser.
That's it.
And it has a huge framework of libraries and things you can incorporate to write more complicated programs.
And it does involve the command line.
Yes.
Yeah, that's where I start to fall down.
Somehow I went five, ten years of my professional career doing exclusively command
line scripting and batch files and all that stuff. And then I turned my back on it at some day in the
hazy past, and I never went back to it. And all my skill at the command line has disappeared from
my body. And now I find it the completely most daunting thing in the world to sit there and open
up a command prompt and do anything other than, you change directory yeah well on the mac it was quite easy to do node because the mac either comes
with node or it's one command and you do it really yeah oh wow so from the windows side or the linux
well linux should be quite similar to mac but it was it was a few steps to get to that point um
so there are different starting points that might be
easier or less easy depending on where you're coming from.
But yeah, Node stuff
people are very into
things like that now. I think there's a lot of people coming from
the web development side of things like
oh, now I can write programs that run
not in a browser. That's why
it's exciting to those folks.
Well, I got
I saw some post on Reddit for a guy
that had managed to get
his Arduino to talk over the
serial port to
and I'm
way talking
out of various orifices now.
It was talking
to a web page
that had Node.js in it. Does that make
sense? The server could run node.js.
Then there was no server involved,
so it was probably just a page,
so maybe it was just JavaScript there.
And I thought, well, I never would have thought
to try to get...
Yeah, there must have been Node
because Node was doing the interpretation
from the serial into a function
that could be called from JavaScript script in a web page.
Maybe.
I'm really grasping at straws here to try to...
Both of them, their hands are waiting for you.
I've become Italian, yes.
Some interconnection of various web technologies,
which we aren't going to get into the details of,
because it's far too complicated.
There's an exercise left to listen to.
Yes, yes.
So I would love to do an entire series
like i did for i squared c and spi on iot technologies uh but man do i need a lot more
experience and electric amp is another similar thing right but it's completely different yeah
and i think they have some parts of that system which are far easier and some parts that are a
little bit more daunting because you do have to learn a new
language.
Squirrel.
A newish language.
I think it's quite similar to
JavaScript.
I can't remember.
It was reasonably similar to C.
It wasn't that bad.
Now they're going to yell at me.
No, it wasn't that bad. Now they're going to yell at me. No, it wasn't that bad.
It was about the same as Python
as learning difficulty went.
A lot of things looked very similar,
and that was nice,
until you realized that they looked similar,
but they didn't do the same thing.
With Electric Amp, you can run server-side things.
They provide that part of the cloud API.
So they have agents that run on the server
that do more complicated code
than perhaps your embedded device can do.
So that's a difference that's pretty cool
if you have an application
that you can take advantage of that.
Right.
So that's like the cloud service
that they have at Spark?
Yeah.
Right.
I don't know.
There's a lot to talk about there.
Yeah.
It was interesting to see right i don't know i thought there's a lot to talk about there yeah yeah you know it uh
it was interesting to see the the amount of services that they had but i really stumbled at the documentation like this was documentation that was clearly written for people that
understood how to read this sort of documentation they've completely revamped it as of like a week
or two ago really so you might want to look again. Definitely. Because it was not,
and it was hard to,
like I wound up having to
like go into the IDE
and then back out of the IDE
and go into the example code
and then back out of the example code
into the API.
Like who came up with this user flow?
This is painful to do.
So it'd be nice to see it now,
that's for sure.
Cool.
Christopher, do you have uh any last questions
i'm thinking we probably should wrap this up soon no no we're probably yeah there's yeah yeah i can
hear the dog alarm going off do you have any final thoughts dan uh i do uh i just like to encourage
uh the listeners to not be intimidated when they see a schematic.
The deal that I made with myself back when I really started getting into this is that if I
chose to examine a schematic and try to understand it, that I would not let a single component on
there go unexplained to me. And that, that becomes tricky because you wind up running into
things that you just don't understand on the Arduino schematic that I'm working on right now.
In the USB section, there is a whole bunch of ESD protection that I have never run across before,
but I will dig into it and I will somehow figure it out and I will understand it.
And I will move on from it and I will explain it to the rest of the world. I will condense the 45 browser tabs it will take
to explain it to me into one conveniently located page, hopefully with more graphics
written in MS Paint. But don't be intimidated by these things. Make sure that you take the
time to sit there and try to understand what's going on. And as a tip,
if there is a part of a schematic you don't understand,
take a screen capture of that and put it into Google Image Search
or use TinEye to try to find a matching example
of that schematic in other places.
Oh, wow.
This has turned out to be an amazing resource.
Yeah.
Because schematics, when you look at schematics they are uh they are very uh there are patterns to them like a voltage divider tends to look like
a voltage divider regardless of of who's making the voltage divider um so you wind up you know
seeing these different things you'll see a resistor right next to an op amp and maybe you don't quite
understand what that resistor is for. And you can't figure out
what words to put into Google to get it to tell you what these things are doing. So just take a
quick screen capture, cut that section out of it, save it as a PNG and upload it into 10. I and see
if there are other examples of that there might just be a reference diagram of that very part of
the circuit that you're looking at that you can use to try to
help explain that to you. Cool. What is this website you're saying?
TinEye, T-I-N-E-Y-E. It's a reverse graphics search engine. So you can upload a graphic to it,
and it will go find graphics that match the graphic that you have uploaded.
That's pretty neat. It's very cool.
My guest has been Daniel Hinch of Rheingold Heavy.
You can check out his website at reingoldheavy.com.
That is with a Rheingold, R-H as in rhino, E-I-N as in Einstein, and gold as in giant sax of.
Rheingold Heavy.
It will also be in the show notes.
And if you Google it incorrectly, you might still find it.
Or you can email us about that or something else, stickers maybe, show at embedded.fm or hit the contact link on embedded.fm.
If you are still listening, wondering about the house search, well, we in fact sold our house and bought one closer to the beach. We are excited and terrified and need to move sometime in October, so mostly nauseous. For you,
I suspect that means only that we will have a few more Skype guests. There are no particular
changes planned for the show. So please keep listening. We do appreciate it. Please keep
letting others know through reviews or just a, hey, I heard this podcast, people you know.
And finally, thank you to Christopher White for co-hosting, producing, and freaking out about different things as we were buying houses. My final thought
comes from Bill Watterson, the authoritative Calvin and Hobbes.
I go to school, but I never learn what I want to know.