[Music]
welcome back to the final session of the
open hardware minicon so our presenter
for this session is bob powers who has
been behind the scenes
at many previous open hardware minicomps
and has had a hand in the hardware
design of quite a few of our projects
and has done all of the heavy lifting
this year on the rockling board
so he's going to be talking about the
the rocklin hardware
and i was told to introduce him as ah
some guy who does stuff so
here we have
bob power is some guy who does stuff
thank you
that's one of the things i do
[Music]
that was intentional gentlemen welcome
to the shop no i'm i'm not that guy um
i always wanted to be a youtube star
though john thank you for setting this
all up it's a pretty good setup he's got
here
um
so
yeah what are we doing here uh we're
gonna talk a little bit about the
hardware i know andy's covered
certain sections about uh some of the
signals and things that go on with the
fpga but
uh when i help out with these things i
generally like to talk a little bit
about hardware design the choices that
get made
um usually some of the things we messed
up again john stole some some of my
thunder there but most of those were his
screw-ups i've got my own
don't worry we we kept a few in the bank
and um yeah that's probably about what's
going i'm gonna go a little bit into
some ideas about um if you're getting
into hardware like a hobbyist level
some of the the ideas you might want to
take on board and some interesting
things that help out there so
uh first off you'll probably notice a
theme and i should start off by saying
uh these guys wanted to do a little bit
of a like you know end of day thing at
the end so uh they've they've chopped
just straight up stolen about five to
ten minutes from me at the end but
that's okay because that fits in nicely
with our theme so
i'll thank them for doing that that was
really apropos
um where's my um focus is off
how did we get up there that guy that
guy
focus
i'm not that guy
hello everyone
so
welcome back to the good stuff i'm not
that guy either did anybody get that one
no no chess fans that's again mator he's
the other youtube guy those are the only
two youtube guys i know
um first we'll start off by thanking
everyone so that i don't forget to do
that and uh again back to the theme it
fits in you'll find out how uh the the
ohmc team of course i can't stop not
mentioning them uh
yeah you've heard their names a thousand
times i don't have the speaker notes up
here but it's basically everyone in this
room andrew nielsen
uh steph piper uh who else did we have
contributions andy kitchener yeah
you you've heard their names a bit um
yeah anyway john spencer
lachlan stepped in a little bit like
yeah everyone that said anything there's
too many to count you know them uh then
the specifically the hardware ones i
want to mention uh there will be some
thanks at the end too but uh the guys at
gowdy labs they're the ones that we
basically lifted the theremin front end
from uh fomo and icebreaker they're the
fpga stuff so that we didn't have to
think about that very much
and paul stoffelgren pj rc uh you know
the guys at teensy uh well the guy at
tnc i guess i don't know there's more of
them
um yeah you'll see why i really want to
say thank you to them but of course
there are lots of others too so moving
on uh this is me a little bit i do
professional consulting work in the area
of electronics design i do that so i can
do this i'm not going to plug myself any
further than that but
i am taking work so if anybody has too
much money and wants to get rid of it
that's what i specialize in so
give me a call or an email either one
will work
um just in case these are what we're
talking about here i'm gonna mostly skip
over the party button i don't even think
i have any slides on that that's been
talked about a bit i think that's been
covered
and i really didn't help out so i
shouldn't talk too much about it but
thanks steph you did a great job it
looked great um and it's yeah pretty
good result so cool so the other two
we've got the swag badge which um you
guys have seen this we've kind of waved
it around a bit today it goes that way
um
it's really not complicated uh that's
not a knock at andrew who did most of
the work on this he's very early in his
electronics design career but you can
see all the the wonderful work that he's
done design wise and uh this is kind of
encouraging because as powerful as this
is this is the entire schematic you can
see there it's basically a couple of
connectors a dev board a reset button
and a screen so um
the the idea that you can throw those
things together
uh you know without knowing too much
about anything that's that's really
powerful but we've all seen that before
that's been the theme of uh ohmcs for
you know 10 or 12 years now
pardon me
so that's cool on its own you can see
that we even took you know half of the
schematic just to kind of
pass notes to each other and uh
yeah that's cool
so there are some things though even as
simple as it is that and as cool as the
design is that maybe you can't see
without kind of x-ray vision because it
gets hidden by the the overlay or the
silk screen
the the touch sliders are kind of much
improved uh i i don't know if we've got
any quantifiable date on that but
they're worth looking at um just uh
that's a really good one if you're
getting into keycad in particular
the pad layout and the design of that
figuring out how that gets made and
where the keep outs and things like that
are
there's a lot that goes into that so
just opening that library component and
having a look at it
that's you know that's kind of
instructive so i just wanted to point
that out and you can see a side by side
comparison uh this is really a cool
thing and it's really more artsy than
anything that i would have ever made so
andrew is done just he's a bang-up job
there
so that's mostly what i wanted to talk
about for that
um
so moving on to the other thing which is
mostly the thing i want to talk about
because that's the thing i worked on
is this rocklin board it's fish uh i
have it on good authority that that john
oxer won about nine over nine thousand
internet points for that photo alone
because it is just just brilliant um how
how that even came to be is awesome
i wouldn't have put them in an
ultrasonic cleaner because they have a
little mems microphone on them but
that's just me being you know an old
angry man with a beard
um
you've kind of seen this idea as well
andy's shown this to you
so why am i showing it to you again
uh well this is even more simplified
and really i want to point out for the
budding hardware designer
if you were going to get into this
trying to take a hierarchical systems
view
is really the right way to approach
something that gets a little more
complex than just
you know a single schematic sheet and a
fairly simple layout with with two
layers so once you get into this idea
that you can have multiple functional
units you really kind of want to
separate them it makes sense when you
see it but you know you kind of want to
see it done so
i'm trying to lay that out so that you
can get an idea here
that there's only a few blocks and once
you kind of correspond this simple
diagram to
something in the schematic and then
ultimately how that ends up on the pcb
that's sort of where i'm going for
going to in the next couple of minutes
so
um the parts you see there andy's kind
of talked about them he even showed in
much more detail the signals and the way
that those get passed and what the
protocols are and so forth so i don't
think i'll belabor this too much um
you can look it over i'll return to this
a few times as well
but focusing on the blue blocks in the
middle probably gets you most of the way
so
when you see that translated to a
schematic this is kind of what it looks
like and so this is the top sheet of the
schematic and
going back to what i said about wanting
to take a hierarchical view of things uh
this is probably the the easiest and
most natural way to do it and kicad
supports this well most of your cad
programs out there for for uh electronic
cad or pcb layout they're going to
support this similar sort of idea so
these are hierarchical schematic sheets
we'll dive into each of those four blue
blocks and you can see that most
everything else is just interface it's
either connectors or options
maybe some leds or something like that
but they don't do a whole lot they're
just how you access the what's in the
more functional parts in those blue
blocks where all the complexity lies
um so i'll quickly run you through those
it's probably pretty boring to the
non-electrical engineer those who aren't
so inclined but there are a few little
things to talk about in each one and uh
i might have one or two things to talk
about so for example um
we've got the analog front end so
this is where we're going to do some
translation of a physical movement in
space that's going to come up with the
signal that rfpga can then read and and
mean something from it
so what goes on in there um well first
off
how we got there and our design
philosophy was uh let's not redesign
this let's just steal it so
we did exactly that uh i opened up the
gowdy labs uh
keycad files also in keycad well done
fellas uh thanks for that
and uh we basically just chopped theirs
off right at the point where it went
into the digital processing part of
their circuitry so this front end this
design i didn't do this i don't get to
take credit for it
and this is the beauty of open source
and the theme that i'm gonna keep
returning to
uh about how how wonderful it is to just
in involve yourself in straight up
thievery
um
so uh i don't did anybody show andy k
simulation no oh
um i've got a link to that here
uh can i yeah i don't know if i want to
jump out of the presentation later we'll
try and return to that
yeah it's on falstad again a beautiful
thing that's just out in the world
uh we'll do that but that gives you a
really good idea of how this works
yeah we'll find two minutes at the end
to show you that so what you see there
is it's pretty simple though you have
your antennas on the left highlighted in
kind of pink and you see the the
hierarchical sheet on the left the the
schematic symbol for it it just shows
you how it's all condensed into inputs
and outputs from a block this is a sort
of you know seminal engineering thing
it's like
things come in things go out and you get
to ignore the rest of it or at least you
have to look in further
and so that's the whole idea i'm talking
about and so the outputs to the fpga
come out the other end of this analog
front end and there's some tuning that
goes on with with a dac which is a
digital to analog compare
converter so that just you put in a
number you say like 17 it puts out a
voltage say like 6.63 volts and as you
change the voltage it'll change the
tuning frequency of these antennas
that's really clear from the simulation
so
um
yeah the only other thing i wanted to
point out here is i stuck in a little
experiment that i still haven't got uh
time to do which is whether or not i can
cut out that dac entirely and get the
fpga to do some direct digital synthesis
it's basically a fancy way of saying pwm
which is a fancy way of saying just
flipping a switch on and off really fast
and getting it to do that tuning
function in the same way that the dac
would
but only by using the fpga so that's
kind of one of those cool things about
fpgas is you they might give you the the
ability to get rid of other bits of
hardware which we've talked about you
know once or twice today
so um
moving over to the fpga this is where
the signal processing happens there's
been a lot of talk about this as well um
the tools there are very cool what goes
on in there just everything gets
connected and the most important point
about all this is this is completely
stolen as well so how do you build a
complex system you know maybe on your
first or second try uh make somebody
else do all the hard work and then steal
the results so uh the guys tim ansel and
fomu project thank you zobs uh you know
we basically just took all of your hard
work here and uh it's ours now uh we get
to appreciate it and make little fancy
fishes
um so
oh i'm gonna run out of time
you can skip most of this this is just
connectivity uh there's a system clock
john's gonna talk about that later it's
hilarious um but really this is more
this is better summed up just by looking
at you know uh everything gets done in
spreadsheets uh this means where
everything went on the the whole uh pcb
moving on uh after that you want to get
some output we've got an audio block um
this has got an audio codec um and an
amplifier which might be kind of
optional in the end because the audio
codec does output to a set of headphone
speakers
that's the the pink guy on there i
should be waving more props around here
one of the advantages of being a
hardware guy is you get all the props
um
so
this guy uh is great because uh we just
got to steal this from paul stoffelgren
so yet another block major functional
block uh three out of four basically
stolen there is an amplifier that i took
straight off of like some data sheet and
it it basically works so that's kind of
a way of stealing as well um but another
major functional block that was just you
know easy to do drop that in um paul and
the pjrc have already done all the work
thanks guys
um and that even makes it easy for
testing so this was a pretty cool thing
where uh you know paul's got this uh dev
board and a teensy and they go together
and the signals are right there so in
order to test it you grab a teensy you
grab the audio dev board from pj rc
store and you hook it up and you go oh
that makes noise and then you hook it up
to your signal or your board there for
testing in the same way and ta-da all of
a sudden you don't even have to populate
the rest of the circuitry as you can see
half of that board isn't even populated
and away you go you find out that your
audio
codec works and
ultimately also that the audio amplifier
works on the back end so there's half
the board functionality tested without
even having to do anything that was
pretty cool
um
then there's the power block uh i'll
mention this really quick because
there's only sort of one thing that i
also stole here this is ugly so i must
have designed it
but there is power sequencing for the
fpga this is a little bit different for
most of your microcontroller projects
basically
you're normally with an fpga gonna have
several power rails in this case we have
three uh that's not a large number at
all i've worked on projects with six
eight ten sometimes i think so uh but
they have to come up in a certain way
that's what a lot of this is doing is
just making sure that happens in the
right order and um yeah you can look at
that if you want also there's a
uh
yeah a sign about back feeding the the
sayo uh to the swag badge header don't
do that uh unless you know what's going
on just just don't so that's
yeah
um right so we go back to this guy uh i
don't even know why i did that that's
bringing it back together so how does
this all come together in a pcb
uh well you get andrew to design you up
a fantastic shape which i know we've
just raved about a trillion times and
then you try and smoosh it all in there
you can see how the functional blocks
all end up in the right spaces so
because they all flowed through kind of
in that left to right way you can see
how the arrows kind of all go left to
right a little bit of back and forth in
the middle but mostly left to right
we can kind of see how the functional
blocks end up being laid out on the
circuit in
in particular areas and so we have our
analog front end and the antenna
connectors come in over on this side and
then we have our fpga and support
circuitry kind of lands in the middle
and then we've got our audio sections at
the back with the codec and the
amplifier and it all kind of makes sense
you just put the audio connectors out by
the back in the audio sections you put
the fpga in the middle and you put the
power pretty much everywhere else
because that's got to go everywhere so
these are the design principles that
real professionals follow
but it does make sense and you get a
really good result so one of the cool
things i wanted to mention about having
a guy like andrew design something for
you
is when i imported that dfx he had these
lines that were set out as guides and
you can see them up there
um
this is super handy because i put these
on a layer in keycad and i was able to
use them as guidelines and so it's very
simple to just say oh no all this all
the ics go along the center line the
connectors go at this point here and
this is a 45 degree angle there in fact
you can see how it all just falls
together once you you have those
constraints it's kind of interesting
that kind of constraints always make the
engineering and this is a good idea oh
and another idea wow things went wrong
another cool thing about working with
these open source tools is there's great
stuff out there that i didn't even know
about this uh there's this interactive
bomb tool i just want to give that as an
aside super handy for prototyping
you just hit export and it generates
this html sheet for you and you can like
mouse over
uh groupings of your components and it
just shows you where they are on the
board so when i'm building up one of
these guys by hand because we're trying
to do it quickly and cheaply
yeah where do i put those 24 1
microfarad capacitors well they go there
and that's uh that's a lot quicker than
having opened the design file and having
to you know look around do control f's
and things like that just to figure out
why i've been able to find 19 of the
placements but there's another 5 left
over
yeah so that's a great tool check that
one out independently i'm so out of time
here the antennas they go there you're
going to want antennas when you get this
thing also there's a ground connection
that's the little um
where's this camera it's over here see
how it's nibbling a thing
uh that's the ground connection you need
to run that off to earth ground if you
can if you've got a power supply that
connects you to earth ground
that's the way i do it and it works
i won't tell you why you have to do that
just try it
um so we had to kind of knock together
some antenna examples and these were
some ideas i came up with and you might
want to try following some of them
again
i get to have props
uh this was a cool one where it's just i
grabbed some copper piping
and again these can just be done with
alligator clips uh
running off to leads and you run this
into some one inch
like conduit fitting uh i knocked this
together for zero dollars in about 20
minutes the only trouble i had was that
the one-inch copper pipe doesn't quite
fit in the one-inch conduit fittings
there's meant to be a little bit of give
in there the copper pipe doesn't have it
so
you know i had to do a little bit
drilling that was awesome uh that didn't
work very well but uh maybe if you just
tuned it and in this case it's really
cool because tuning is done with an
angle grinder
yeah give that a try so that could be a
cool idea maybe a better idea though is
this one where we wrapped a bunch of old
coax um around some like 90 mil or 100
mil pvc pipe and this is great because i
just found about 20 meters of old coax
sitting under my house chopped it up and
uh there's one really cool thing about
pvc which you can drill into it super
easy so just like eight mil drill bit
you make some holes you run it in there
you've got um you've even got like tape
cable retention
that's not coming off this is also a
really neat idea because the way the
therman sensing works you could almost
use it like a depth sensor you could
stick your hand in there
and then the third idea maybe
2.5 would be you just get some magnet
wire and do the same thing so if you
happen to have 100 meters of magnet wire
sitting around
cool
um so those are some ideas for antennas
um and yeah again you can just alligator
clip these on the signal integrity
integrity is not going to be great on
this
um it's yeah in our testing it's not
super great uh but it does work so uh i
don't have time to give you numbers or
anything on that but ask questions later
and uh experiment because this is one of
the funner parts of this whole thing
so uh this even worked as an antenna
just by the way it's 25 meter reel
of extension lead uh yeah
it worked better than anything else
okay the the other cool thing this is
sort of the third part that i'll just
cover super quickly is that um i also
discovered there's an ide for these fpga
tools that's how quick the open source
world moves um and this is a graphical
schematic capture type of ide so this is
um you know it's pretty cool from a
hardware perspective because i showed
you earlier how much
you know it all centers on the schematic
getting that information laid out in the
right way and having your hierarchical
ideas about the world and that's how you
build complex systems uh well this makes
it very natural from that same
perspective because you can just hook
together blocks that do certain
functional things and that's more the
way that hardware and fpgas are going to
work so this is a very young project but
it's very cool i want to bring it to
everyone's attention because i hope
people will contribute it's written in
node which i guess has something to do
with graph theory um
and um
the one of the really cool things is
that even i was able to modify this
environment because it's open source i
had to change a couple of files around
and some of our stuff is similar to you
know tim ansel stuff and so i changed a
couple of files and i can put rocklin
into this development environment and
then it just kind of works um it took me
about a day to figure it out how it
works so somebody who knows what they're
doing it'll be like 30 minutes um and it
does work does
autoplay
no
so this was one of the like greatest
moments my entire life
blinky
so uh if anybody's ever done fpga uh
development at all you would realize
that that's just completely magical
that shouldn't work it shouldn't work
that fast and it certainly shouldn't be
that easy
uh that that some guy like me could be
able to get all the software tooling to
work um and just go
so oh
that's there we go um
so why i'm super excited about that
while i'm running out of time is uh
this seems a lot like the arduino
environment i won't be the first person
to make these sorts of comparisons about
the open source tool chains and fpgas in
this time in particular but these things
seem very similar to you know 15 years
ago when you were just going oh well
i've got this atmel design and i can put
it in the arduino environment by
changing the pins.h file and you know it
then it just kind of works and then
there's some libraries and i don't have
to think about so much and it becomes
sort of easy and accessible and all of a
sudden what used to be a two or three
person job becomes a one-person job and
all of a sudden what used to take
engineering skills can start to be done
by like you know artists and other
people who are just sort of persistent
um i thought that was awesome so
i just banged up this bit of code and i
think it's pretty much the same thing
and what's really really cool is this
seems even easier
and to say that in some world blinking
an l
an led with an fpga should be easier
than blinking an led with a
microcontroller that's a bit strange but
um maybe we live in strange times so uh
ice studio i yeah if there's one
takeaway from this
yeah please please developers look at
that one contribute time if you can
because i want to see that go somewhere
it's already cool it's already yeah
awesome it is missing some things
but you know those are the obvious
things to fill in and i think that a lot
of those can be done so
uh you know fpga libraries and ip blocks
clearly those are always needed for
everything involving fpgas some kind of
serial monitor easy two-way
communication that's like straight out
of the arduino environment a lot of
documentation and you know trying to
figure out yeah the tooling and the
things around it library board
management
blah blah
there's lots of work to be done there
but it could be super duper cool um and
i hope that somebody who's better at
coding and that side of things takes a
look at it uh so that's my call to arms
because no great ted talk doesn't end
with a call to arms so hello arms are
you there
sorry i had to do one i had to do one
um but yeah so uh we
i think we got a pretty decent result i
hope you get this hardware soon uh we
used some of these things uh and there's
a bunch of other tools but please help
with those projects if you can because
they are super good i have had a look at
key cat 6 which is just out anybody
that's looking at getting into
electronics designs that you can make
you know something like that
pretty easily
keycad 6 looks really nice they've added
a lot of really cool stuff i'll just say
that
it's it's definitely coming along and
it's definitely come along a long long
ways in the last you know seven or eight
years that i've been using it so
um yeah and
i think i'll probably stop there because
these guys want to close and i you know
shouldn't have spoken so much i missed a
lot of that but uh yeah oh yeah john
yeah so you need to embarrass me a
little bit oh yeah i will embarrass john
um oh yeah i will just say the only
thing on that list that isn't like free
open source offer is a snap eda i used a
couple of their things so but they seem
like a really cool company and i like
them a lot so do check them out if
you're unfamiliar with snap eda and in
any way involved in electronics design
um because i find them useful even if
they are you know a company um
so yeah john wants to talk to you a
little bit about what he said earlier
and
he casts some aspersions my way so i
just like
if there is an ongoing competition for
who has made the most mistakes in this
project i am so far in front that no one
else can catch me and we just discovered
another one today
so
my contribution so far has been talking
about failures and mistakes and fixing
them and the issue with testing and
these the
oscillators
which i kept referring to as crystals
so
in the talk earlier i said that when we
put them together we found that about
half of them were failing
um 50 failure rate that is rather
suspicious and what we then found was
that when we were reworking the ones
that failed probably about half of those
came to life as well you know around 50
failure rate now what is that pointing
out
this is what happens when one person
designs a circuit and then someone else
who doesn't understand that circuit
tries to assume that does the assembly
and if you look at the footprint that
you can see there on the screen
it's polarized that part is not a
crystal it's a crystal oscillator and it
has a ground pad and a 3.3 volt pad on
opposite sides of the package
if it is 180 degrees out
guess what happens so
and it's rectangular so it's yeah it's
it's 50 ways so 50 failure was because i
was dumping them out on the bench and
putting them on essentially in a random
orientation so
uh the 50 failure rate that we were
seeing on these is 100 percent
down to this guy so statistics statistic
it works
and the math doesn't lie
ah is that
yeah i think that's it for me
well i think we're just about to wrap up
time what is it 5 28
technically we finish at 5 30.
so
did we have questions for zero no i
don't think we do have questions um i
can
oh yeah there's a few other little notes
about hardware there are like an
optional set of speakers that go to the
amplifier i talked about a few times uh
that's just an adafruit part number uh
it's in the schematic if you get to that
point if we get to that point where
things are working uh that that actually
does make noise i've made it make noise
just not well
um
yeah there's yeah yeah and uh so ongoing
if you want to follow up in the short
term there is going to be the open
hardware breakout room which will keep
running for the duration of the
conference so over this weekend um
at least some of us will be in that room
at different times so we can answer
questions and things if you have a
follow-up
then you can do it that way that's
probably the most immediate way of
getting in touch with us
and longer term
we will have a couple of different
methods for staying in touch there is a
a forum
running on github associated with the
there's a discussion section on github
associated with the project so we will
put information about that in the in the
breakout room chat and wherever else we
can think of it there is also the wiki
so at that is at openhardwareconf.org
i think did i remember that correctly
yeah so apart from that
i would like to say thank you again to
all of our speakers today and thank you
to though to all of you for coming along
and also of course
the people in the room here and
the dogs
and cats that have supported this
endeavor over the last many many months
and uh the rest of the team so wouldn't
if you like to say anything
ah no just uh be kind to each other it's
been a pretty tough couple years and uh
yep hang in and support community
yeah
okay
anything nicholas no no
thanks everyone we'll see you in the
chat so thank you
and see you soon