Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/1020 Thanks!
[Music]
so I've been attending the CCC since 30
years uh and what I always appreciated
coming to this conference or this
Congress as they call it is that it
brings people together to collaborate on
projects that probably have not seen
themselves seen each other so in real
life and it's nice to put a a face on a
name it's it's nice to actually work
across the table from each other and
people come from all over the place over
the years um we have people hailing Tim
for instance all the way from Australia
bunny from
Singapore and
um and it's it's great to see this sort
of thing um happening what Tim and uh
you know Tim methro anzel and bunny from
Singapore are going to talk about is how
the CCC has been able to bring bring
together A diversity of people um to
enable product products Pro projects
projects that um really couldn't have
happened without this sort of
collaboration and with with that I would
really like you guys to help me uh
welcome buddy and
Tim
thanks uh thanks everybody for coming to
attend our talk um I know it's a very
exciting night tonight uh for the
Congress there's a lot going on um we're
going to the title of the talk is snakes
and rabbits I'll let you map that onto
what you want to map it on to um how uh
CCC shaped an open Hardware
success depending on how you define
success if it's a shipping a device okay
but if it's you can ship the device 5
years from now that's yet to be seen um
but uh in order to sort of uh lead into
the talk first I would like to we're
both going to introduce ourselves a
little bit to uh to sort of position um
the relevant Parts uh so who am I I'm
bunny I do Hardware um I deal with atoms
and atoms are hard they have some
difficulties I'm going to uh tell you a
little bit about why Adams are hard not
just because I like to complain but
actually uh the challenges surrounding
ads help motivate a lot of the decisions
uh that we're going to talk about
throughout the course of this uh through
this talk so first thing is that Adams
are generally owned or people think that
they have some right to some atoms it's
very rare you encounter a piece of atom
that someone doesn't have some feel they
have some right to tell you what to do
with either a government or another
person um so you have to deal with you
know vat and tariffs and all this sort
of stuff but the consequence is that as
an engineer it's often times uh much
easier to spend your time engineering um
to avoid convincing people to pay more
for something or to or to have to move
things around um and that ends up
becoming a a core constraint on on a
hardware project another problem is that
atoms generally tend towards entropy
they don't exist naturally in perfect
crystalling silicon they don't exist in
nice orderly rows of capacitors on your
motherboard and so a lot of effort is
put in the Engineering Process to um
simplify things to deal with testing and
validation um atams are generally not in
the place that you want the to be so for
example tantalum ore um is found in the
countries highlighted in green here
those countries are not necessarily
renowned for their ability to turn out
tlum capacitors or to put them on
circuit boards so you have to go through
this whole process of acquiring the
atoms and then getting the right place
and refining them um and so moving
moving atams is actually quite expensive
um anytime that you get a deal that says
you get free shipping uh generally
shipping is not actually free you're
either giving it something in privacy or
you're heard in the environment somehow
so there's always some sort of
consequence to it and from the
standpoint of sort of like you know from
the open hardware and just the hardware
playing standpoint you you you spend a
lot of time thinking about the like the
reverse Logistics if someone has a
problem um you can't just patch Hardware
cuz you're in the wrong place the harder
is in the wrong place that's a very
difficult problem to solve and and more
so just even getting your your human
self to the right place going to
conferences and so forth can be very
difficult so Adams are generally not
where you really want them to be and
Adams just have inconvenient truths
about them so you know RM is a nice
abstraction you can remove things it's
it's forever it goes away we have
garbage shoots those are also
abstractions they don't work like RM the
garbage goes somewhere someplace else in
the world um but you know we deal with
the inconvenient truths just like you
know everyone here uh you may like to
think that you have free and open
software that's secure on your laptop
but and it all starts from the reset
Vector but in fact we all kind of accept
the fact that there are firmer blobs
that run inside of our machines that we
can't do anything about because we have
to move on with our lives and do some
development on something
somewhere so despite all of these
problems I still love atoms actually uh
turns out um I I I can't explain it but
I was actually uh going browsing through
a decompiled genome of mine and I found
a certain comment annotated to one of my
mutations saying does not learn well
from mistakes so um back in the day when
I first burned my hand on the soldering
iron probably help that I had that
because I kept on soldering despite the
you know the inconvenience uh posed by
Hardware um over to mythro he can tell
you a little more about uh his
background and what he
does so hi I'm mith and I self-identify
as a software engineer um in contrast to
atoms I deal with bits um and bits are
interesting in that they're a lot easier
than atoms in some ways but they're also
hard as well
um if you're a hardware engineer or
maybe a venture capitalist you kind of
think of software like this this kind of
blob of ones and zeros but in reality
software is written by humans and humans
are not robots and suck at doing
repetitive things and developing
software is actually very repetitive
there's lots of creative Parts but a lot
of it is repetitive and so software
actually really looks like this it is
full of bugs and I have written lots of
bugs I get paid very well to be a
software engineer but um even best
practices can't prevent bugs so all
software should be thought of as being
full of bugs and sometimes bugs are
really big um I have written big bugs
before um the thing about software that
is very different from Hardware though
is you can fix these bugs after the fact
and make it so they never existed in the
first place um and this is awesome
because I write lots of bugs and I
prefer you didn't notice I write lots of
bugs so I can fix it afterwards um and
this is really awesome and that's why
atoms scare me quite a lot um because it
is much much harder to patch atoms and
always some type of Trace that you've
done this patch um it is really hard to
patch Hardware um I guess that's why
it's got harder than the name um and so
I didn't do much Hardware at all until I
discovered these things called
fpgas um and fpgas are really awesome
for a software engineer like me because
they turn what is normally a hardware
problem into a software problem and
being a sof software engineer I love
software problems um it lets me fix
problems in my Hardware after I have
shipped it to a person um which is great
because as I said I'm a software
engineer I create bugs um and
so I live in a very different world to
bunny um so it's interesting that we're
both up here sharing a stage with very
different backgrounds how did this end
up happening um and so bunny is going to
introduce where this story actually
started all right so a little bit about
the the origin of how this whole journey
that we're going to take you on begins
once upon a time in a hardware startup
long long ago in a place far far away
and Adam Wrangler had a problem so uh
this is a road map from a company called
chumby it's defunct now from 2011 and um
it kind of goes up and right but one of
the things you notice is the price keeps
on getting higher as you go up and the
right the screens get larger and what it
turns out is that glass is very
expensive it's very inconvenient to have
to buy large pieces of glass and ship in
the product and if you want to get um
you know a device in everyone's hands
one thing you want to do is get rid of
the glass right so we're thinking okay
well how do we make it so we don't have
to ship LCDs pieces of glass inside of
our project they're very our products
they're very expensive well we would
like to we we observed that um everyone
already has a perfectly good piece of
glass in our house it's a TV it's very
large it has people looking at all the
time wouldn't it be great if we could
somehow Co-op the bits they're going
onto that piece of glass and put our
bits on top of it the problem is is that
um most digital video links to LCDs
these pieces of glasses are encrypted
they have a lock on them you can
actually modify those pixels as they go
between the devices to the screen so I
noodled on it for a little while there
was a lucky break with a certain key
being leaked and so and so forth and
came up with a solution of a man- in
the-mill attack on the link uh and an
encrypto overlay I'm not going to go
into the details of it um but the net
effect is that uh you basically have a
chroma key uh background which has like
you know the pink is the chroma the key
you're going to get rid of maybe a
little Banner with news on the bottom
you have your um your video over here on
the right hand side and they get merged
together and you end up with uh an
overlay uh even on top of an encrypted
link uh out of this a product called n
was born uh unfortunately the company
didn't make it but open hardware for the
win what happens when a company goes
down it's open Hardware the hardware
still exists out there and I'm I'm able
to give a talk about it at 28 C3 in 2011
and able to sell some versions of it uh
so people could develop on it um and so
if you're actually interested in finding
out the details of how this is executed
you can actually follow the link um or
look at look up the talk um on uh on uh
on the on the device so um the good news
is actually uh this talk was recorded
and it ended up the recording of it
ended up playing an important role in in
Tim's decision and a project that he was
developing at the time and so handing
off to Tim for the
fork so for people who are good at
picking accents um might have noticed
that I'm Australian or maybe you're
paying attention in introduction when
that was introduced um and this this is
Australia um you might notice something
interesting about where Australia is on
the world map it's kind of near nothing
and no New Zealand doesn't really count
um the other thing is that Australia is
actually huge in itself it's like the
size of United States um and that means
us being physical atoms as bunny likes
to go on about it's really hard to get
places it takes like 24 hours in the air
to get over here to Congress um and I
don't particularly like flying um I end
up doing a lot of it but I don't really
like it and so I got interested in how
could I get the content at conferences
like this without being there and so I
became very interested in doing
recording of user groups and conferences
and in
2011 I started doing this as a hobby and
I started a project to do this and make
it easy for everybody else to do this um
and this is kind of roughly the setup
that you would use to capture a
conference and one of the really
important parts of at least technical
conferences is the slides and so
you want a really nice clean capture of
the slides so that people can read the
text because people are terrible at
putting teeny teeny text on the slides
as apparently I'm guilty of in this
slide as well um and so when we were
started we had these things called twin
packs which were very good at capturing
VGA signals they kind of did a VGA pass
through and it worked really great um
things were really good we were
capturing lots of
conferences um but then something
terrible started happening we started
seeing more and more venues had switched
to HDMI and we were unable to use the
analog VGA capture Hardware with these
systems and so we went on the lookout
for HDMI capture Hardware I mean there's
a VGA solution why isn't there a digital
solution and I searched everywhere and
bought a whole bunch of different
Hardware but was not able to find
hardware that was able to tell me what
is going on wrong here um no matter how
much money I'd be willing to spend I was
not able to get Hardware to give me
useful debugging information that
allowed me to understand at a low level
what was going wrong with these digital
signals and so this was giving me quite
a lot of headaches because we had this
really awesome recording system and we
were increasingly being unable to use
it and then when I was pondering this I
came across a talk recorded at 28
C3 about this HDMI um situation and I
was looking at this and
going
well bunny has done a HDMI man in the
middle um but he's deliberately designed
the hardware to make it so that you
can't capture because he's dealing with
encrypted video and allowing a person to
capture encrypted video um would be bad
according to the law um and so I was
pondering this and I realized in my use
case all the video signals are
unencrypted because if the presenter is
sending encrypted video what are they
doing presenting it to everyone um and
so I also discovered from Bunny's talk
that when you look inside uh NV you find
an fpga which which as I previously
mentioned converts Hardware problems
into software problems and as a software
engineer I know all about making
software do things it isn't supposed to
do and so I sat there thinking and went
let's make it do exactly what bunny
didn't want it to do um and so I was
like we should make this a capture
device and created the HDMI to
USB um project it's basically an fbga
based HTMI capture project um and we
started trying to develop this and
replicate some of the stuff bunny had
done but we discovered something um I
actually lied to you that software and
verog which is the language you use to
program fpgas are very different and
verog makes me do this most of the time
um when trying to take Bunny's code that
he had customized for the
NV um we tried to use that and we were
just making very little progress we had
you know hundreds of thousands of lines
of code and still very few features and
nothing kind of worked properly and so
this was really sad and I thought bunny
um was a totally different type of
person to me able to make magic happen
and then I
discovered this thing called
menen Meen is a really interesting
project that has actually been presented
at Congress um I didn't find it through
the Congress but I later watched a bunch
of videos from Congress on this
technology and what it takes is if you
imagine this logic design you've got a
bunch of combinational logic and a bunch
of synchronous
logic it lets you right a bunch of
python statements that describe the
combinational and synchronous
logic and then it generates the ver log
for you from that and it also runs it
through the fpga tool chain which is a
bit painful uh but if you've seen my
other talk I'm fixing that problem as
well um but we were actually making
progress and even more importantly
Meen and litex and the Miso environment
came with a whole bunch of really good
cores that did mostly what we wanted
already and so we snapped these Calles
together because Python's very good at
making things composable and so we were
able to compose these cores into a full
HDMI capture system in pretty much 4
weeks compared to the roughly 3 to four
years we'd been working on the verilog
solution
and so that is how um we became
successful in developing this piece of
Hardware to capture
conferences and we now use it to capture
many different open source conferences
around the world and because this was
reasonably successful I thought people
at Congress might be interested to
understand how we did this and so I
submitted a talk to Congress R and for
some reason they accepted it um and so
at 33 C3 I gave my first talk ever at
Congress and I talked about the project
um it was recorded you can go and watch
the recording um and it describes how we
did this recording setup using Python
and how HDMI works and all the type of
problems we ran
into um and I was here at 33 C3 and it
happens that bunny was also here but he
hadn't been Idol for the last um seven
years so yeah meanwhile while um Tim was
uh doing all of his amazing work um on
the HM to USB 7 years has passed on the
NV design and one of the things that
happens in Hardware after 7 years is you
have this inconvenient issue called EOL
end of life you get a when a
manufacturer says they can't make a
product anymore you get this notice that
says it's EOL so these devices here with
the red arrow on them are things that I
can no longer buy to produce more any
TVs for example I can't even buy the
original LEDs that I use on it I can't
buy the memory chips can't buy the Wi-Fi
it's modular okay but I can't buy the
CPU anymore for examp that that CPU chip
is no longer made um at all um so
there's it's sort of begging for a
version two to come out however um
overlay is just so 2011 I mean we have
um phones now with Incredible video
processing capability um but
unfortunately it's illegal for you to
even replicate some of the things you
can do with your phone U as shown here
if you just take a real-time translation
app Point uh at a piece of Chinese you
can turn it into English um in order to
do that with a TV signal you would have
to break the crypto on the link and that
would be a crime and so uh overlay uh is
kind of where it still sits so it's not
really that interesting to do um the
overlay um and it turns out that how do
I get the video to start click here oh
no I broke it
sorry should have just started
apparently the internet link is not
working ah okay well that's fine so
anyways we can skip we can skip the cute
video um anyways the the problem with
creating a V2 overlay is uh with overlay
is that actually it's um it's not lawful
to go ahead and do these types of things
because there's a statute called the
dmca
um and actually the internet is broken
so we can't even get to the next
slide cloud-based presentation
software ah there we
go
excellent I blame Hardware okay sure and
then in uh July 21st 2016 something
happened um this is actually the team
from the eff uh and they made an
announcement about um a lawsuit that was
filed on behalf of uh Matthew green and
Me Against the US United States
government and one part of the lawsuit
alleges at section 121 of the dmca
prevent people like you and me from
expressing ourselves and asked for the
right of people to access encrypted
content through devices like perhaps a
V2 of NV thus Paving the way for me to
get started on develop on nv2 2 and so
uh here I was able to start development
on a V2 of the device this is actually
what the um first cut of the V2 looks
like it was a mini PCI Express card it
was very small meant to make a very
compact device that would be nice to sit
behind your beside your TV or whatever
it is um and so uh at 33 C3 where um I
didn't even know that Tim was going to
give his presentation I had brought some
samples along and I decided oh we we
should probably do a little bit of user
validation and see if the you know
people would actually want to use a
device like this this is even like meet
the need of the community and the
requirements um it's great uh because uh
both of us were were here at that time
um and then we had a little discussion
about um things and this is where things
starts to merge together from instead of
forking um and it turns out that hackers
and very tiny board is not really a good
combination hackers really want you to
break out all the gpios at the end of
the day um and so trying to Target a
very small form factor very sort of
consumer friendly product from the from
the get-go was not going to get the
community very involved I had to go back
to the drawing board and come back to
the start but this is this is a good
thing like this is why you come to
conferences and you talk to people to
make sure you're not doing the wrong
thing because it's very easy to convince
yourself that you're building absolutely
the right thing because you spent so
much time building the circuit boards
and fabbing things out and buying
thousands of dollars of Parts um but you
you want to find out before you get into
mass production because then you're
constantly making mistakes at a rate of
you know some you know exciting
threshold per day um so I went back to
the drawing board uh tried to listen to
what people wanted and came out with uh
what I called nv2 MVP minimum viable
product um and uh and so it ended up
being a full-size PC Express card which
is a bit more friendly you can put into
a PC um and uh has more HDMI ports it
has like a buil-in ethernet port for
debugging has an SD card for you to go
ahead and load like for example if you
want to put Linux on it and a file
system
uh USB port bunch of stuff that is
actually not even Mission critical to
the core application of the device but
is really important for the community of
people who wanted to develop with it and
make other things for example like a
like a video switch or something like
that out of it um I also developed a
case uh that could go around it so
people who didn't want to necessarily
you know bolt on the seats of their car
before they drove it could go ahead and
get in and turn the key and start
driving the car um and so this hides the
fact that actually a PC Express card and
you think you just get like a nice piece
of Hardware you plug it in and it does
what would be the overlay of course the
hardware is all open and hackable um the
hardware the case itself was designed
with a little bit of extra space in it
with a regular uh Peay mounting on it
which was actually um derived from the
Novena project of before so if you um if
the one or two people in the world
develop the noven peripheral can go
ahead and plug it into here um uh the
the front bezel was actually left
intentionally completely blank and
designed so that if you had a laser
cutter or a 3D printer you could
manufacture your own and put your own
cutouts in it so you can add ports as
necessary to it um and even we went so
far as to making the whole test
infrastructure very open so it's very
very rare that you can get actually the
manufacturing test for the product um
actually Zs had developed a wonderful
open source um infrastructure called
xclave um for doing the tests and you
can actually find out the details of how
we test the product even um but very
importantly we now have it with python
um and so I love this sort of XKCD comic
about like you know qball is flying
around and he says how you flying wow
python right um I go ahead and I uh you
know tried um he convinced me at 33 C3
to go ahead and try um you know try out
LX I put it in and I'm just shocked I
like I like build it and I'm in a repple
shell I've got a bios booting
everything's coming together like like
wow thanks Tim that's great and then
python right uh just St trace and then
I'm like I have no idea what I'm doing
like I don't I'm I'm a hardware guy
right so uh what what the heck is going
on so curse you Tim um so but the reason
why I end up sticking with this is is
this is this is this the slide here
these are sort of um utilization of the
of the fpg itself so this is a the
picture of the die on the left hand side
is the proprietary tool provided by xyl
Links uh the results of a compilation on
the right hand side is the real of
compilation with Meen on the left hand
side all that's on that chip is the core
to drive the memory and a little bit of
debug Logic on the right hand side is
the full application it's the memory
it's a CPU a risk 5 CPU three video FES
the hcp engine uh ethernet engine and
all the debug stuff all built onto that
and you can see that on the left hand
side is just jam-packed just trying to
hold just the core for the memory and
some debug logic and the right hand side
there's room to spare to go ahead and
add other stuff on the inside right so
as a hardware person um you will go at
Great Lengths to try to not have to
solve you know the atoms are owned by
people problem it's probably uh easier
to figure out how to debug python than
is to convince people to pay more for a
product so I was like all right fine I'm
going to go ahead and deal with python
for the next few years um another sort
of minor Advantage is that L xen builds
faster than vivat about 10 minutes for
that design versus 30 to 45 minutes
although um um as a as a sort of a
little asteris the uh the proprietary
tools have gotten better much better
over time in build time so the current
status um there's a crowdfunding
campaign you can go to this site here to
go ahead and if you're interested in
getting one and playing with it um it
supports the classic uh overlay mode
that exactly like the old NV did and
there's also sort of a l mode um which
if you happen to have um conference
recording applications or you have right
the video that's not encrypted you can
go ahead and implement this uh sort of
video processing pipeline um and
currently the status is simple matter of
programming um I I came to the congress
with several of these uh boards actually
I gave them to Tim if you're interested
in sort of developing on this you can
talk to Tim and maybe he might give you
one of these boards to play with if you
want to sort of learn more about Python
and developing sort of stuff um and so
now we're at the situation where uh
through these interactions we had mijan
is now uh helping NV to open for the win
yes right
yay
but
so
so nothing's really free in life
um good abstractions are powerful but
they do have costs and python is really
great for building things out of
components and was the reason that um I
was very successful in doing the hdmr
USB was that I could connect together
the components to for example compose a
car in a bunch of different
configurations very quickly and it
allowed specialization the people who
really knew how to make the tires could
go off and do the tires and then I could
just plug the tires onto my car um and
the people who really knew how to do
seats I could reuse their work um and
this is really useful for someone like
me who doesn't have a lot of time and
doesn't want to have to worry about
those details and it's what allows us to
get that efficiency is because we can
compose components in a much more
flexible way we can also choose to not
include them um and that means that our
CES are much more more efficient because
they don't have all these optional
extras that you don't need if you don't
need them
[Music]
um but there is this cost of its Python
and python is great for building things
out of components but there's a bit of
an impedance mismatch between hardware
and python uh it wasn't really designed
to make Hardware um and describe
Hardware you can kind of make it do it
but there are things that somebody like
bunny who's a hardware person um might
expect to exist that don't uh example
that Bunny always complains to me about
is that in M we only have a logical zero
and logical one that kind of makes sense
you have binary right but it turns out
in Hardware you have things like a
logical unknown or a high impedance
value so there in Hardware they
frequently model more than two states on
their binary um you know they're quite
crazy like that but the reason they do
that is because this is what a signal
looks like in theory but in practice it
kind of looks like this when you get to
highp speeed and when the signal looks
like that some of the things you tend to
think of don't really hold
a not equal to B A not the same as B are
two potentially different things and
that's actually an
important piece of knowledge to capture
and something that somebody like bunny
really cares
about
what python is allowing us to do is that
it's allowing bunny to specialize on
this and there are some things he can't
do who because of our abstraction um he
can't code x's and Z's at the moment um
which makes his life a lot harder um but
he's able to make a really awesome tire
that the rest of the community can use
and he gets all this other stuff for
free so even though his life is a little
bit harder in doing the stuff he really
cares about um he's overall more
paent there's also some other learnings
that um bunny has discovered maybe about
how well people test things yeah when
you get code for free you can pretty
much expect it hasn't been necessarily
well tested um so you know number one
principle when I was teaching um
Hardware you know in college is that
it's never the chip it's always you so
if you have a circuit and it's supposed
to Blink and it's not blinking and the
student would come to me and says I
think my 555 timer is busted I'd be like
no I'm sorry your circuit's wrong um
it's it's it's not the case you have a
bad part and like it's literally cases
like
99.999% of the time we have like a wall
in our office in Singapore of the Wall
of Shame of all the parts we ever
encountered that were actually bad and
we had this one production run where
we've probably gone through about a
million parts and there's exactly one
part in that wall that we can found that
was legitimately a bad part out of a
million U from a manufacturer so it
really is the case that it's in Hardware
it's typically the case that you screwed
up in
software not quite so I think I'm being
generous here but I would say 90% of the
time it's a problem with my code but 10%
of the time about four or five orders of
magnitude more commonly it's a library
bug or a problem inside the core
libraries itself so the reality check is
that if you're going to go ahead and
ship a product using a hardware product
in particular where it's difficult to
patch things you're going to need to
plan to spend a several months extra in
your valid validation cycle so for nv2 I
actually built in four to 5 months extra
of an 18-month design cycle to go ahead
and make sure we're testing it and
people would say well why don't you
script that away why you have to do it
it's literally the case I have like a
dozen HDMI sources at home I had to find
the worst three or four offenders I had
to find cables that were the crappiest
cables I could find I was like plugging
them in and out I have calluses on my
fingers from taking these things in and
out every single time would do a release
or a build to make sure that we haven't
broken some Corner case in the cable
andone says oh why don't you just put
that into a switch and automate that
well you've put the switch in it changes
the analog behavior of the wires you're
not testing the actual system you're
trying to test so it's literally
physically plugging cables into boxes to
do testing for this another one is I
built the first 100 boards and I did not
expect all of them to boot I did not
expect 40% of them not to boot right but
I had in my experience knowing working
with this sort of stuff I expected
problems uh turned out there was a small
issue with the dam core um it's well
validated on a small set of Hardware but
when you go ahead and scale up to a
larger Aggregate and and thanks to our
test infrastructure we're able to catch
a corner case where a large number of
the dim Boot and in that sort of few
weeks I had uh built into the schedule
um to handle these issues uh we're able
to work around that and issue a patch
and get those boards working again so if
don't just sort of take this sort of
stuff and run with and say hey we're
going to go to production it's all going
to be great you're going to have to
expect expect to send some serious time
validating your IP um the good good news
is hopefully that's several months saved
for future mij liex users the bad news
is that I hear there's n Meen coming um
and that might throw away a lot of the
effort that's been put into it um and so
at the end of the day f is great but dot
dot dot um you know when we talk about
the closed Source companies they do have
thousands of employees billions of
dollars of Revenue and just maybe just
maybe some of that resources being spent
to get to that
99.999% correctness rate on the IP right
so when I get an IP block from these
guys I can actually put it in and just
go to the races and and pretty much
confirm that I'm going I'm going I'm
going to be good um in contrast alphamax
the company that's making um the NV 2
has one
employee only $78,000 in Revenue so far
you can check on the crowd Supply page
if there more um there's still a lot to
do um we're hopefully shipping next
month yay that I'm here at the Congress
giving a talk instead of working on that
um um so uh please don't hurt me um I
would hope that the company can last
longer than the trial itself to try and
make it legal to build the product um
which is going to be several years um
but you know the thing is that you know
it's pretty scary to go ahead and try to
um incorporate some of these things uh
and get them to the market um but you
need to make sure youve build in enough
time uh and check all of the open source
code that you're getting to to the level
that people expect uh Hardware to
work um
um lesson number three we're not quite
done yet yeah um we still got this
lesson and one more lesson yeah two more
lessons left um so as bunny said
convincing people to pay money for you
giving them their atoms is actually
quite hard especially if you're honest
about what you're
producing um when bunny did any TV he
did it mostly through having to work at
a company um but these days crowdfunding
is actually a great way to develop this
the NV um to was crowdfunded um the HD
to USB we did our own development board
the nantu opsis that was also
crowdfunded um some other projects I
work on um zs's other software guy um
does the fu and it brings together the
likeminded people and allows them to put
their money
behind um their beliefs but it's very
important to look at who you're
targeting um if you compare the opsis
versus the NV 2 communities the opsis
community we were very much targeting
developers and people who are already
involved in the HDMI USB Community they
were okay with the first thing they did
when they got a new board was you know
flash new firmware on it or before every
conference do some testing and get going
because that was part of setting up for
a conference um whereas bunny is really
trying to ship something that you plug
in and it works first time every time
which is a very different set of
expectations he's got like a nice case I
have no idea how you make a nice case um
one day I hope he'll give a talk on that
as well um if people want to hear it
yeah yeah um and cases like that scare
me anyway so um it's very important you
look at your community and Target the
right way because if we were to try and
deliver the opsis board as a consumer
product people would be very unhappy um
whereas if any TV2 can probably fit into
the developer category somewhat um but
your aim is to hit more consumer market
right and so the the last learning I
want to share and I think we're almost
out of time um is that open anything
really takes time and patience so um
open source software Open Source
Hardware they all takes time so um if
you think about like the mobile phones
that you have you almost expect one to
arrive year after year like clockwork
right you have to have something for
Christmas and you and people think that
wow like you know those guys just crank
out phones once a year the truth is
actually it takes several years to build
like a mobile phone and so what the the
big companies do is they have multiple
teams of people people running in a
pipeline so it's like two or three teams
one team will finish and then the other
team will release the next product and
then the next one release a product and
while the other one starting on the next
one right so that's how it works in in
these well-funded um Clos Source
companies an open source you're lucky if
you can get one team revved up to work
on anything right and so uh if you're
going to go ahead and say we're going to
build like a Open Source phone or
something like that the problem is is
that by the time you finish it a lot of
times it's not that interesting a
project anymore because it took you
several years to get to the conclusion
wi all these other people are out
investing you with the current
technology so open source projects are
more I feel they're more like instead of
like this you know Glitz and Glam of
like trade shows and whatnot it's more
like a forest a walk in the forest like
you're trying to plant trees you're
trying to build community and deep roots
and a whole ecosystem it takes time you
can't force that out there and so
picking a project that you can drive a
wedge into over years is very difficult
and it actually turns out that it's a
it's perfect that I mean this sort of um
community of people who have a need for
doing either video overlay or for doing
um recording of conferences um is a
community that we don't have to sort of
deal with sort of the consumer cycle we
can actually it's you know it's been
literally 7even years this project has
been in place and it's not like
someone's gone and scooped us or tried
to do something you out invest us or
something like that so open source takes
time and so picking the right uh sort of
project as the medium to express what
you're doing is very important the other
half is that takes patience to do open
source so you know in the software world
the sort of the attitude if it works for
me it's good enough U if you don't like
it fix it yourself right PS give me your
fix that's in the license and by the way
you also can't sue me to fix it if it
doesn't work for you so this is this is
like the BSD two Clause license Clause
one and Clause two are up top and
there's other thing that we don't talk
about in the license which is bigger
than the two Clauses which is the you
can't Sumi Clause right that's a very
important part about open source
software you can't do this for Hardware
I I can't just be like hey did you not
read the shrink wrap it it does work you
can't return it whatever like you know
fix it yourself get a soldering iron
there there's actually consumer
protection laws that prevent me from
doing that and it it's the situation is
even worse than that if I were to say
I'm going to sell you a toaster with a
single slot right and that's the single
slot toaster on the left and you open up
the box on the inside you find it's
actually a two- slot to toaster where
one of the slots has just been epoxy
closed because it didn't work and like
the disconnected element you'd be angry
you would say this is not a really good
toaster I'm going to I'm going to send
this back to you however how many times
you've gotten a piece of code where like
huge sections are ified out features
don't work and you compile them out
whatever it is and you you still run it
you accept that sort of stuff right so
there's a very different standard of
release between what you have in
software and hardware and it takes a lot
of patience to do this sort of
development because there are features
that are not going to work on day one
that you're just going to have to sort
of figure out and get them working later
on so it is really super scary trying to
ship Hardware built with open source
software I lose a lot of sleep about
like what if a bug inside letics or Meen
causes a functional problem in the
product which causes a lot of returns or
whatever is that's the end of the
product I literally wake up in the
middle of the night and I like get up my
osilloscope program like oh thank God
that wasn't like that wasn't a hardware
problem that's actually like a software
problem you can go and patch that later
on or whatever it is um despite all of
that I still really love doing Hardware
possibly because I just don't learn very
well uh from my mistakes um the end
we'll see how this all goes yes um and I
think we have uh a final lesson that Tim
would like to share um so you've kind of
got two different perspectives here from
a person who really cares about hardware
and a person who is a software engineer
and is much more willing to Adit his
human um and so I think one of the
really interesting things about CCC
is that it brings us both um together
and we''re both given talks at this
conference um we've given in some ways
very similar talks um before and now
through CCC we're actually collaborating
together um so I think uh we should give
a big hand uh for the CCC organizers who
enable us to do these things because our
the things we're working on would not
not be as good um as they are without
this conference so I'd say a big thank
you to thank you the Congress
organizers thanks for bringing us all
together yeah and everyone who comes to
attend right like the year you were
coming and that we kind of met was you
were just attending yeah yeah that's
right yeah yeah okay hopefully we have
time for questions now y yes and um even
though they ask you to Applause yourself
I think we still have to uh thank them
for giving us a reason to be all here at
the same
place so we have about 15 minutes time
for uh for questions we have four
microphones and let me explain what a
question is
first yes you may not actually know it
um a question is like one or two
sentences with a question mark behind
and no it does not include your life
history um we have five microphones in
the room could you please step up to the
microphones there's one here one there
another two there and one all the way in
the back for the cheap seats and the
bleachers um so let's see do we have
somebody on number one I believe that is
one could you include if it's a specific
question for one of us who you're asking
otherwise we'll both assume that it's us
or maybe the other
person so I have a question for bunnie
so good good sorry another Interruption
uh get very close to the microphone is
this good yes um so do you like uh uh
Hardware more than software do I like
Hardware or I like software you like
which one do you like more which one do
I like more it's like asking which the
kids I like Hardware come on yeah I'm a
hardware guy um I I think that
so um my how do you say it there's a
there literally is some weird chemical
reaction I have in my brain from
Hardware like when when you give me a a
really good piece of Hardware my pulse
raises and I start breathing heavy I'm
very excited to see really good Hardware
really well-engineered Hardware right um
the problem is that uh the reality of
being a hardware nerd is that if you
ship uh really cool Hardware that
doesn't have software in it today
they're effectively door stops right
there's a lot of products in the world
that are just door stops because the
software sucks on them right and so what
you end up realizing is that software is
sort of a necessary evil to make
Hardware do something very useful in
fact what you find is that the good news
is that for Hardware one of the things I
love about Hardware is they're atoms and
so they're localized and I can see them
and we can point to the problem the
problem is is that you know this signal
is not good you have to have a good
oscilloscope over it thank you um but uh
but you know you can actually do that
sort of thing software is like this
incredibly complex thing and you can
spend hours sort of plumbing through it
and still never find the end of the bug
or whatever it is but um I have a lot of
respect for what the software people do
um I try to surround myself with really
good software people that help me get
through the dark nights when I can't get
my code to work um and uh I think that
ultimately the people who are going to
buy the hardware have a better
experience for having um sort of
thoughtfully designed soft software on
it so we also are taking questions from
the internet uh I don't see any
questions at the moment but maybe
there'll be some but I do see another
question on microphone number one and
and do speak closely to the
microphone my question is uh for both uh
speakers so my question is about when
design if we were to design a new uh
project or product that uh is Hardware
based would you
recommend if we want it to last and
maybe get picked up and ported to a
different architecture a different
layout or you know kind of live on would
you recommend using an fpga instead of
trying to pick an S so that you find
really cheap and does that for example
does in your case now does the fpga kind
of protect you protect the longevity of
the
project I could take that one if you
want but well my I give a talk called my
um like my theory on fpga development
and like lesson number one on that is
use an fpga as a last resort um if you
can do it in software on a CPU do it on
software on a CPU because the
development environment is just so much
easier so much faster and you can be a
lot more productive um but there are
problems that you just can't do with a
CPU and you are limited in your
flexibility um I'm hoping that projects
like Sim flow um
enable uh fpj development to become as
easy as the rest of the software and
then maybe that will change um but at
the moment I would say an fpj should be
a use it only when you have an
application where it makes sense you
shouldn't just use it as a sock um but I
don't know with like the little risk 5
cores on the ice 40 some of that is
starting to um become maybe I should use
a fpga rather than you don't need a you
know 100 MHz CPU for all your designs
and maybe the flexibility around IO is
better um but the only thing I would I
think that Tim spot on the only thing I
would add to that from your longevity
question is that yes in fact the CPU we
picked for the original NV you can't buy
anymore right um and so nv2 was it uses
a Raspberry Pi instead of a custom sock
because that someone else is solving the
sock problem and evolving that and
keeping it up with with the times and in
fact today you can still buy a Spartan 6
fpj and run the original nv2 codebase if
you wanted to so there is more long
there is a bit of like those harder
descriptions can live on um even if for
whatever reason you can't buy um the
other parts bits to it yeah fpj's do get
end of life as well though um but much
longer time curve than than like like a
lot of these socks some some of them are
just a flash in the
pan so get another question on
microphone one hello uh yeah thanks for
your talk I really enjoyed that um I saw
hints of uh uh like uh lack of
sustainability or uh
uh uh maybe not yeah not the most
sustainable development practices coming
together with venture capital and
product designs and maybe that open
Hardware could be an alternative way uh
of doing things I was wondering if there
were any further thoughts that you had
that kind of came out of where open
Hardware could go to Make a Better World
in that
regard um I want to be clear is open
Hardware Ware is a hobby for me I don't
make my living from open Hardware I have
a well-paying um software engineering
job um so I have a very different
perspective on open Hardware to somebody
like bunny who's actually you know um
has to fund his lifestyle from it um so
I'd be very interested to see what bunny
says yeah well I mean like uh you could
say that I don't sort of make a living
selling open Harvard I just don't spend
as much
money I reduce my my my cost F to the
point where I can sustain myself on a
little bit I can grind out on top of the
margins of open Hardware um I think uh
I'm still struggling to answer your
question it's sort of you're contrasting
sort of the VC funded model versus sort
of like this open Hardware model it does
tend to be the case that VC is go big or
go home right so you have these ideas
that you you're getting investment for
the point of trying to give returns to
investor thousand to one and so you're
making promises are just ridiculously
huge and so the the the the landscape is
ltered with dead bodies of people who
have tried to deliver thousand to one
10,000 to one um expectations on
investment right that that system is
rigged for failure at the end they're
looking for unicorns right um that being
said open Hardware because they're sort
of more hobby style projects they don't
die but they often time become zombies
right and so the question is can you get
enough momentum in user Community to
make it relevant and interesting and to
move forward and that actually takes a
ton of effort Community Building
Community getting people involved
answering their questions sitting down
with people acknowledging their problems
making them feel valuable and then you
know bringing them on boarding them and
and and making those links are it's
actually very time intensive process but
they I find them very rewarding right
and very and and and they don't tend to
blow up in the way that like VC things
do so there it's kind of apples and
oranges a bit um one of the things for
example you'll notice today we don't
have a good open source mobile phone a
lot of people want one that's free and
open and Libra you can inspect all the
blobs and say we don't have one
partially just because it's such a huge
investment to build one of those like
you know there's we can't get enough
money through an open Hardware model to
build something that meets people's
expectation of what a real mobile phone
looks like right so there are things
that open Hardware just can't do because
there there just isn't enough resources
to to deliver on the consumer
a so microphone
to okay so um I was kind of surprised
that um the Viv a tooling was way was
doing way worse than the open source
tooling so what I've seen in the past is
that like the proprietary methods work
uh better and more reliable so my
question would be um did you investigate
why this was the case and yeah theories
this yeah there's a lot of different
theories
um my opinion is
that when you're somebody like xyx you
need to cater to people who are going to
buy your fpgas and so they optimize for
those people um that is not really
somebody like me or bunny who is a small
volume type group they more care about
the people who are going to make a 100
million of something with an fpj in it
and so they optimize for those users and
those users are less um sometimes less
concerned with how big the core is and
more concerned with things like
reliability features and having all
those extra things that fit in the check
boox list of a DDR core must have you
know these features whereas with things
like the light dram we can
only build and use the features that we
care about um the other thing about the
python stuff is that
if you turn it off it never appears in
the verog um which means that the fpga
toolchain doesn't have to figure out
that that thing is not used and remove
it um and so that definitely helps as
well um I definitely would say that
light dram is not necessarily more
reliable than Mig as bunny has kind of
been investigating um but like it's
definitely a lot smaller um
and it definitely has at least a certain
set of features enough to deliver some
products um with um and it's also kind
of interesting that a company that makes
more money from you buying bigger fpgas
has non-resource efficient designs um
yeah nothing comes for free right so you
got that software for
free and you're paying for it with the
hardware right so what's their incentive
to go ahead and sell you less Hardware
so y so I'm really really sorry to
microphone one that we don't have any
more time we do have to wrap it up at
this point but um I'm sure that they'll
be available for chatting during the
rest of the conference could you please
all help me um give these guys a round
of applause for this fantastically
interesting
[Applause]
[Music]
talk
[Music]
now