Snakes and Rabbits - How CCC shaped an open hardware success

Video thumbnail (Frame 0) Video thumbnail (Frame 2424) Video thumbnail (Frame 3761) Video thumbnail (Frame 5145) Video thumbnail (Frame 6688) Video thumbnail (Frame 8433) Video thumbnail (Frame 9897) Video thumbnail (Frame 11178) Video thumbnail (Frame 12559) Video thumbnail (Frame 13738) Video thumbnail (Frame 14868) Video thumbnail (Frame 16737) Video thumbnail (Frame 18594) Video thumbnail (Frame 19882) Video thumbnail (Frame 21268) Video thumbnail (Frame 22586) Video thumbnail (Frame 23762) Video thumbnail (Frame 25039) Video thumbnail (Frame 26257) Video thumbnail (Frame 27672) Video thumbnail (Frame 29246) Video thumbnail (Frame 30502) Video thumbnail (Frame 31682) Video thumbnail (Frame 33148) Video thumbnail (Frame 34416) Video thumbnail (Frame 35605) Video thumbnail (Frame 36757) Video thumbnail (Frame 38325) Video thumbnail (Frame 39594) Video thumbnail (Frame 42041) Video thumbnail (Frame 43965) Video thumbnail (Frame 45092) Video thumbnail (Frame 46653) Video thumbnail (Frame 48161) Video thumbnail (Frame 50236) Video thumbnail (Frame 51775) Video thumbnail (Frame 55011) Video thumbnail (Frame 56186) Video thumbnail (Frame 57662) Video thumbnail (Frame 59483) Video thumbnail (Frame 63612) Video thumbnail (Frame 65754) Video thumbnail (Frame 66932) Video thumbnail (Frame 69009) Video thumbnail (Frame 70196) Video thumbnail (Frame 74033) Video thumbnail (Frame 77201) Video thumbnail (Frame 79370) Video thumbnail (Frame 83298) Video thumbnail (Frame 87488)
Video in TIB AV-Portal: Snakes and Rabbits - How CCC shaped an open hardware success

Formal Metadata

Title
Snakes and Rabbits - How CCC shaped an open hardware success
Title of Series
Author
License
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
2018
Language
English

Content Metadata

Subject Area
Abstract
This talk will present a historical narrative of the background behind how the NeTV + Milkymist inspire the HDMI2USB then helped the NeTV2 projects and how they all became interlinked through events like Congress! From the study of this history, we will attempt to distill a few core lessons learned that can hopefully be applied to other open hardware projects.
Keywords Hardware, Making

Related Material

The following resource is accompanying material for the video
Collaborationism Real number Projective plane Video game Quicksort Instance (computer science) Musical ensemble Table (information) Product (business)
Bit Open set Mereology Open set Atomic number Computer hardware Computer hardware Order (biology) Active contour model Cartesian closed category Quicksort Active contour model Position operator
Constraint (mathematics) Validity (statistics) Decision theory Multiplication sign Projective plane Process (computing) Atomic number Motherboard Entropie <Informationstheorie> Computer hardware Core dump Order (biology) Right angle Software testing Quicksort Row (database)
Digital electronics Multiplication sign Patch (Unix) Software developer Virtual machine Information privacy Process (computing) Integrated development environment Software Vector space Atomic number Computer hardware Figurate number Quicksort Abstraction
Data mining Software engineering Atomic number Contrast (vision) Semiconductor memory
Robot Software engineering Software Atomic number Robotics Software 1 (number) Bit Computer engineering Mereology Software bug
Type theory Software Patch (Unix) Atomic number Patch (Unix) Computer hardware Software bug
Software engineering Software Computer hardware Field programmable gate array Field programmable gate array
Goodness of fit Touchscreen Mapping Computer hardware Multiplication sign Computer hardware Projective plane MIDI Right angle Bit Product (business) Product (business)
Overlay-Netz Source code Reading (process) Pixel Greatest element Link (knot theory) Overlay-Netz Touchscreen Link (knot theory) Key (cryptography) Control flow Sound effect Product (business) Synchronization Videoconferencing Encryption Right angle Encryption Key (cryptography) Videoconferencing Directed graph
Revision control Link (knot theory) Decision theory Multiplication sign Computer hardware Projective plane Open set Implementation Twitter Row (database)
Mapping Content (media) Physicalism Mass Near-ring
Slide rule Group action Projective plane Motion capture Code Cloud computing Cuboid Row (database)
Goodness of fit Twin prime Different (Kate Ryan album) Analogy Computer hardware Motion capture
Link (knot theory) Information Computer hardware Digital signal Energy level Implementation Twitter Row (database) Physical system
Presentation of a group Personal digital assistant Function (mathematics) Computer hardware Videoconferencing Motion capture output
Software engineering Software Function (mathematics) Computer hardware Projective plane Motion capture Field programmable gate array Physical law Motion capture output
Type theory Software Different (Kate Ryan album) Code Multiplication sign Software Median Field programmable gate array Line (geometry) Arithmetic progression Computer programming Formal language
Projective plane Combinational logic Field programmable gate array Median Logic synthesis Logic Synchronization DDR SDRAM Chain Synchronization Videoconferencing Statement (computer science) Statement (computer science) Arithmetic progression
Causality Integrated development environment Open source Different (Kate Ryan album) Computer hardware Core dump Computer hardware Motion capture Field programmable gate array Motion capture Physical system Firmware
Type theory Link (knot theory) Computer hardware Projective plane Computer hardware Code Field programmable gate array Motion capture Implementation Twitter Row (database)
Microprocessor Revision control Overlay-Netz Topological vector space Overlay-Netz Befehlsprozessor Process (computing) Semiconductor memory Videoconferencing Arrow of time Quicksort Product (business)
Slide rule Mobile app Presentation of a group Overlay-Netz Link (knot theory) File format Translation (relic) Graphical user interface Internetworking Videoconferencing Cartesian closed category Process (computing) Overlay-Netz Slide rule View (database) Computer file Cloud computing Cryptography Statute Inclusion map Type theory Software Computer hardware Order (biology) Videoconferencing
Overlay-Netz Sheaf (mathematics) Computer hardware Content (media) Sheaf (mathematics) Cartesian closed category Right angle Process (computing) Videoconferencing Group action Mereology
Presentation of a group Film editing Validity (statistics) Software developer Ring (mathematics) PCI Express Plastikkarte Bit
Building Multiplication sign Combinational logic Mass Mass Mereology Thresholding (image processing) Product (business) Goodness of fit Bit rate Hacker (term) Whiteboard Quicksort Hacker (term)
Overlay-Netz Structural load Plastikkarte Bit Maxima and minima Cartesian coordinate system Product (business) Personal digital assistant Personal digital assistant Core dump Computer hardware Videoconferencing File system Divisor Whiteboard Form (programming)
Process (computing) Open source Personal digital assistant Computer hardware Projective plane Software testing Semiconductor memory Regular graph Open set Spacetime Product (business)
Slide rule Hecke operator Bit Cartesian coordinate system Befehlsprozessor Semiconductor memory Logic Befehlsprozessor Ring (mathematics) Computer hardware Core dump Gastropod shell Videoconferencing Physics Right angle Utility software Quicksort Compilation album Resultant
Building Radio-frequency identification Length Atomic number Multiplication sign Website Quicksort Electric current Product (business)
Overlay-Netz Classical physics Source code Frame problem Asynchronous Transfer Mode Interactive television Cartesian coordinate system Open set Computer programming Process (computing) Befehlsprozessor Function (mathematics) Memory management Videoconferencing Right angle Whiteboard Quicksort Videoconferencing Directed graph Asynchronous Transfer Mode Row (database) Point cloud Data buffer Graphics processing unit
Goodness of fit Different (Kate Ryan album) Connectivity (graph theory) Multiplication sign Video game Configuration space Semiconductor memory Abstraction Abstraction
NP-hard Connectivity (graph theory) Core dump Computer hardware Bit Wellenwiderstand <Strömungsmechanik>
Source code Image resolution State of matter Code Moment (mathematics) Theory Wellenwiderstand <Strömungsmechanik> Bit Wellenwiderstand <Strömungsmechanik> Semiconductor memory Theory Frequency Very-high-bit-rate digital subscriber line Different (Kate Ryan album) Computer hardware Synchronization Logic Video game Right angle Energy level Abstraction Data type
Freeware Digital electronics Multiplication sign Code Student's t-test Mereology Digital electronics Number Product (business) Software Personal digital assistant Computer hardware Computer hardware Software testing Software testing Office suite
Scheduling (computing) Module (mathematics) Scripting language Code Multiplication sign Patch (Unix) Source code Price index Order of magnitude Software bug Product (business) Number Whiteboard Hypermedia Analogy Software Core dump Computer hardware Cuboid Software testing Booting Library (computing) Physical system Scripting language Source code Scaling (geometry) Validity (statistics) Computer file Open source Code Dynamic random-access memory Set (mathematics) Flow separation Product (business) Error message Personal digital assistant System on a chip Computing platform Right angle Quicksort Cycle (graph theory) Whiteboard Library (computing) Booting
Web page Block (periodic table) Closed set Source code Maxima and minima Bit rate Product (business) Bit rate Contrast (vision) Right angle Contrast (vision) Videoconferencing Alpha (investment)
Open source Code Atomic number Computer hardware Energy level Curvature Number
Autonomous System (Internet) Software Software developer Projective plane Whiteboard Mereology Firmware
Perfect group Open source Multiplication sign Source code 1 (number) Product (business) Expected value Derivation (linguistics) Root Different (Kate Ryan album) Computer hardware Videoconferencing Keilförmige Anordnung Overlay-Netz Multiplication Software developer Closed set Forcing (mathematics) Projective plane Shared memory Set (mathematics) Category of being Operations support system Software Personal digital assistant Network topology Right angle Whiteboard Quicksort Cycle (graph theory) Row (database)
Standard deviation Open source Euler angles Code Multiplication sign Software developer Physical law Open source Sheaf (mathematics) Euler angles Mereology Element (mathematics) Goodness of fit Operations support system Software Different (Kate Ryan album) Computer hardware Single-precision floating-point format Software Computer hardware Cuboid Right angle Quicksort Figurate number
Inheritance (object-oriented programming) Patch (Unix) Collaborationism Shared memory Extreme programming Perspective (visual) Product (business) Software bug Product (business) Software Computer hardware Computer hardware Cartesian closed category Functional (mathematics) God
Software engineering Multiplication sign Computer hardware Self-organization Cartesian closed category Semiconductor memory
Software Computer hardware Interrupt <Informatik> Number
Pulse (signal processing) Code 40 (number) Field programmable gate array Theory Product (business) Software bug Number Goodness of fit Internetworking Atomic number Computer hardware Core dump System on a chip Computer architecture Software developer Moment (mathematics) Projective plane Semiconductor memory Cartesian coordinate system Befehlsprozessor Software Integrated development environment Personal digital assistant output Right angle Quicksort
Curve Multiplication sign Software developer Computer hardware Flash memory Video game Bit Mereology Descriptive statistics Product (business)
Point (geometry) Onlinecommunity Building Software engineering Momentum Link (knot theory) Multiplication sign Source code Projective plane Bit Open set Perspective (visual) Expected value Process (computing) Different (Kate Ryan album) Personal digital assistant Computer hardware Right angle Endliche Modelltheorie Quicksort Freeware Marginal distribution Physical system
Point (geometry) Group action Open source Multiplication sign Electronic mailing list Volume (thermodynamics) Field programmable gate array Set (mathematics) Semiconductor memory Theory Product (business) Type theory Personal digital assistant Different (Kate Ryan album) Core dump Computer hardware Right angle
Roundness (object) Cartesian closed category Musical ensemble Semiconductor memory
[Music] so I've been attending the CCC since thirty years and what I always appreciated coming to this conference or as Congress as they call it is that it brings people together to collaborate on projects that probably have not seen themselves I seen each other or so in real life and it's nice to put 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 we have people hailing Jim for instance all the way from Australia bunny from Singapore and and it's it's great to see this sort of thing happening what Tim and Tim misro Ansel and bunny from Singapore are going to talk about is how the CCC has been able to bring bring together a diversity of people to enable product products froderick projects projects that really couldn't have happened without this sort of collaboration and with with that I would really like you guys to help me welcome buddy and Tim Thanks thanks everybody for coming to attend our talk I know it's a very exciting night tonight for the Congress
there's a lot going on we're gonna title the talk as snakes and rabbits I'll let you map that on to what you want to map
it on to how CCC shaped in open hardware success depending on how you define success if it's shipping a device okay but if it's you can ship the device five years from now that's yet to be seen but
in order to sort of leading to the talk
first I liked it we're both going to introduce ourselves a little bit to to sort of position the relevant parts so Who am I I'm bunny I
do hardware I deal with atoms and atoms
are hard they have some difficulties I'm going to tell you a little bit about why atoms are hard not just because I like to complain but actually the challenges surrounding atoms help motivate a lot of
the decisions that we're going to talk about throughout the course of this through this talk so first thing is that
atoms 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 it either a government or another person 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 oftentimes much easier to spend your time engineering to avoid convincing people to pay more for something or two or to have to move things around and that ends up becoming a core constraint on on a hardware project another
problems that atoms generally tend towards entropy they don't exist naturally in perfect crystalline silicon they don't exist in nice orderly rows of capacitors in your motherboard and so a lot of effort is put in the engineering process to simplify things to deal with testing and validation atoms are
generally not in the place that you want them to be so for example tantalum or is found in the countries highlighted in green here those countries are not necessarily renowned for their ability to turn out tantalum capacitors or to put them on circuit so you have to go through this whole process of acquiring the atoms and then getting the right place and we find them and so moving moving atoms is actually quite expensive any time that you get a deal that says you get free shipping generally the shipping is not actually figure either giving it something in privacy or you're hurting 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 a harder playing standpoint you spend a lot of time thinking about the like the reverse logistics if someone has a problem you can't just patch hardware because you're in the wrong place the harder is in the wrong place that's a very difficult problem to solve and in more so just even getting your your human self to the right place going to conferences and so forth can be very difficult so atoms are generally not where you really want them
to be and atoms also just have inconvenient truths about them so you know RM is a nice abstraction you can remove things it sits wherever it goes away we have garbage chutes those are also abstractions they don't work like RM the garbage goes somewhere someplace else in the world but you know we deal with the inconvenient truths just like you know everyone here you may like to think that you haven't free and open software that's secure on your laptop but in and it all starts from the reset vector but in fact we all kind of accept the fact that there are firmware blobs that run inside of our machines that we can't do anything about because we have to move on with their lives and do some development on something somewhere so
despite all of these problems I still love atoms actually turns out I can't explain it but I was actually going browsing through a decompile of genome of mine and I found a certain comment annotated to one of my mutations saying does not learn well from mistakes so back in the day when I first burned my hand on the soldering iron it's probably helped that I had that because I kept on soldering despite the you know the inconvenience posed by Hardware over
to me throw he can tell you little more about his background and what he does so
hi i'm Mithra and i self-identify as a software engineer in contrast to atoms
I deal with bits and bits are interesting in that a lot easier than atoms in some ways but they're also hard
as well 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 zeroes but in reality software's written by humans and humans
and not robots and suck at doing repetitive things and developing software is actually very predator 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 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 I have
written big bugs before 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 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 and this is really awesome and that's why atoms scare me quite a
lot because it is much much harder the
patch atoms and there's always some type of trace that you've done this patch it is really hard to patch hardware I guess that's why it's got harder than name and so I didn't do much hardware at all until I discovered these things called
FPGAs and fpga is a really awesome for a software engineer like me because they turn what is normally a hardware problem into a software problem and being a
software engineer I love software problems it lets me fix problems in my hardware after I have shipped it to a person which is great because as I said I'm a software engineer I create bugs and so I live in a very different world to bunny so it's interesting that
we're both up here sharing a stage with very different backgrounds how did this end up happening 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 gonna take you on begins once
upon a time and a hardware startup long
long ago in a place far far away and atom wrangler had a problem so this is a road map from a company called chumby it's defunct now from 2011 and 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 in 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 a large pieces of glass and ship it in the product and if you want to get 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 their products they're very expensive well we would like to we observed that them everyone already has a perfectly good piece of glass in our house it's a TV it's a very large it has people are looking at all the time would it be great if we could somehow co-opt the bits they're going on to that piece of glass and put our bits on top of it the problem is is that 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 noodle on it for a
little while there was a lucky break with a certain key being leaked and so on so forth and it came up with a solution of a man-in-the-middle attack on the link and an encrypted overlay I'm not going to go into details of it but
the net effect is that you basically have a chroma key background which has like you know the pink is the chroma key they're going to get rid of maybe a little banner with news on the bottom you have your your video over here on the right hand side and they get merged together and you end up with an overlay even on top of an encrypted link out of
this a product called any TV was born
unfortunately the company didn't make it but open hardware for the wind what happens when a company goes down it's open hardware the hardware still exists out there and I'm able to give a talk about it at 28 C 3 and 2011 and able to sell some versions of it so people could develop on it and so if you're actually interested in finding out the details of how this is executed you can actually follow the link or look at that look up the talk on on on the on the device so the good news is actually this talk was recorded and it ended up the recording of it ended up being an important role in in Tim's decision in 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 might have noticed that I'm an
Australian or maybe you were paying attention in the introduction when that was introduced and this is Australia
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 the other thing is that Australia is actually huge
in itself it's like the size of United States and that means us being physical items 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 and I don't particularly like flying 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 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 and so when we
were started we had these things good twin packs which were very good at capturing VGA signals they kind of did a VGA pass-through and it worked really great things were really good we were capturing lots of conferences 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 the systems and so we went on the
lookout for HDMI capture hardware and 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 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 situation and I was looking at this and going well bunny has done a HDMI
man-in-the-middle but he's deliberately designed the hardware to make it so that you can't capture because he is dealing with encrypted video and allowing a person to capture encrypted video would be bad according to the law 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 and so I also discovered from Bunny's talk that
when you look inside any TV you find an FPGA 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 and so I was like we should make this a capture device and created the HDMI to
USB project it's basically an FPGA based HDMI capture project and we started trying to develop this and replicate some of the stuff bunny had done but we discovered something actually lied to you that
software and Verilog which is the language you used a program FPGAs are very different and verilock makes me do
this most of the time when trying to take bunnies code that he had customized for any team 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 was a totally different type of person to me able to make magic happen and then I discovered this thing could median
median is a really interesting project that is actually being presented at Congress I didn't find 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 write 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 but if you've seen my other talk I'm fixing that problem as well but we were actually making progress and even more importantly median and light x
and the me sock environment came with a whole bunch of really good cause that did mostly what we wanted already and so we snapped these cores together because python is 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 three to four years we've been working on the Verilog solution and so that is how 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 and for
some reason they accepted it and so at 33 C 3 I gave my first talk ever at Congress and I talked about the project it was recorded you can go and watch the recording and it describes how we did this recording set up using Python and how HDMI works and all the type of problems we ran into and I was here at 33 C 3 and it happens that Bunny was also here but he hadn't been idle for
the last 7 years so yeah meanwhile Tim
was doing all of his amazing work on the
HDMI to USB seven years is passed on the NDTV design and one of the things that happens in hardware after seven years is
he have this inconvenient issue called AOL end-of-life you get a when a manufacturer says they can't make a product anymore you get this notice it says it's AOL 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 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 exactly that that CPU chip is no longer made at all so there's it's sort of begging for a version 2 to
come out however overlay is just so 2011
I mean we have phones now with
incredible video processing capability
but unfortunately it's legal for you to
even replicate some of the things you can do with your phone as shown here if
you just take a real-time translation
app playing at a piece of Chinese you
can turn it into English 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 overlay is kind
of where it still sits so it's not really uninteresting to do the overlay 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 anyway so the problem with creating a v2 overlay is with overlay is that actually it's it's not lawful to go ahead and do these types of things because there's a statute called the DMCA and actually the internet is broken so we can't even get to the next slide cloud-based presentation software oh
there we go
excellent doodoo - do I blame Hardware
okay sure and then in July 21st 2016 something happened this is actually the team from the e FF and they made an announcement
about a lawsuit that was filed on behalf of Matthew Green and me against the United States government and one part of the lawsuit alleges that section 1201 of the DMCA French people like you and me from expressing ourselves and asked for the right of people to access encrypted content through devices like perhaps the v2 of any TV thus paving the way for me to get started undeveloped on any TV -
and so here I was able to start development on a v2 of the device this is actually what the first cut of the v2 looks like it was a mini PCI Express card as very small meant to make a very compact device that would be nice to sit behind you beside your TV or whatever it is and so at 33 c3 where I didn't even
know the Tim was gonna give his presentation I had brought some samples along and I said oh we should probably do a little bit of user validation and see if that you know people would actually want to use a device like this this is even like meet the need of the comedian requirements it's great because
both of us were here at that time and
then we had a little discussion about things as we're things starts to merge together from instead of forking and it
turns out that hackers and very tiny board is not a really a good combination hackers really want you to break out all the gpio s at the end of the day 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 1,000 or parts 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 so when
back to the drawing board I tried to listen to what people wanted and came out with what I called any TV - MVP Minimum Viable Product and and so it ended up being a full-sized PCI Express card which is a bit more friendly you can put it into a PC and has more hdmi ports it has like a built-in Ethernet port for debugging has an SD card for you to go ahead and load like for example if you want put Linux on it and a filesystem 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 commune of people who want to develop with it and make other things for example like a like a video switch or something like that out of it I also developed a case that could go
around 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 turn the key and start driving the car and so this hides the fact that it's actually a PCI 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 the hardware the case itself was designed with a little bit of
extra space in it with the regular peak array mounting on it which was actually derived from the novena project of
before so if you have the one or two people that will develop in the veena peripheral can go ahead and plug it into here the at 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 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 actually jobs had developed a wonderful open source infrastructure called exclave for doing the tests and you can actually find out the details of how we test the product even but very
importantly we now have it with Python and so I love this sort of xkcd comic about like you know q-ball is flowing around and he says how are you flying Wow Python right I go ahead and I you know try he convinced me at 33 C 3 to go ahead and try you know try out latex I've put it in and I'm just shocked I'll you're like I like build it and I'm in a repla shell I've got a BIOS booting everything's coming together like like wow thanks Tim that's great and then Python right just
stack trace and then I'm like I have no idea what I'm doing like I don't I'm a hardware guy right so what the heck is going on so curse you Tim so but the reason why I
end up sticking with this is this is this is this slide here these are sort of utilization of the of the FPGA itself so this is a the picture of the die on the left hand side is the proprietary tool provided by Xilinx the results of a compilation and the right-hand side is the real tough compilation with me Jen 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 3 video files the HTTP engine Ethernet engine and all the debug stuff all built into 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 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 easier to figure out how to debug Python than it is to convince people to pay more for a product so I was like alright fine I'm gonna go ahead and deal with Python for the next few years another
sort of minor advantage is that light x and median builds faster than vivid about 10 minutes for that design versus 30 to 45 minutes although as a sort of a little asterisk the the proprietary tools have gotten better much better over time in build time so the current
status 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 it supports the
classic overlay mode that exactly like the old NDTV did and there's also sort of a libre mode which if you happen to have conference recording application you have rights to the video that's not encrypted you can go ahead and implement this sort of video processing pipeline and currently in the statuses simple manner of programming I came to the Congress with several these 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 solar stuff and so now we're at the situation where
through these interactions we had me Jaden is now helping any TV to open for
the win right yay but so so nothing's
really free in life 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 I was very successful in doing hegemony SB 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 and the people who really knew how to do seats I could reuse their work 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 and that means that our cores are much more efficient because they don't have all these optional extras that you don't need if you don't need them 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 it wasn't really designed to make hardware and describe hard way it's gonna make it do it but they're things that somebody like bunny who's a hardware person might expect to exist that don't example that bunny always
complains to me about is that in me Jen we only have a logical zero and logical one that kind of make sense you have binary right but it turns out in hardware you have things like a logical unknown or a high impedance value so they're in hardware they frequently model more than two states on their binary you know that's 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 high speed 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 be a to 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 because of our abstraction he can't code X's and Z's at the moment which makes his life a lot harder 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 can about he's overall more efficient
there's also some other learnings that Bunny has discovered maybe about how well people testings yeah when you get code for free you can pretty much expect it hasn't been necessarily well tested so you know number one principle when I
was teaching 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 five five five timers busted I would like no I'm sorry your circuits wrong 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 we're 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 of a million from a manufacturer so it really is the case that it's in hardware it's typically the case that you screw it up and software
not quite so I think I'm being generous here but I would say 90% of time it's a problem 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 particularly where it's difficult to patch things you're gonna need to plan to spend a several months extra nevada validation cycle so for any TV to I actually built in four to five 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 oh I have to do it it's literally 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 I would do a release or a build to make sure that we haven't broken some corner case on the cable and then says oh why don't you just put that into a switch and automate that while you've put the switch and it changes the analog behavior 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 hundred boards 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 this sort of stuff I expected problems I've turned out there was a small issue with the DRAM core it's well validated on a small set of hardware but when you go ahead and scale to larger aggregate and thanks to our test infrastructure we're able to catch a corner case where a large number of the DIMM boot and in that sort of few weeks I had built into the schedule to handle these issues we're able to work around then issue a patch and get those boards working again so if don't just sort of take the 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 gonna have to expect expect to send some serious time validating your IP the good not good news is hopefully that's several months saved for future media night X users the bad news is that I hear there's n me gen coming and that might throw away a lot of the effort that's been put into it
and so at the end of day Faust is great but dot dot you know when we talk about the close source company as 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 confirmed I'm I'm gonna I'm going to be good in contrast alpha max the company that's making the any TV to has one employee only seventy thousand dollars in revenue so far you can check on the crowd supply page of this more there's still a lot to do we're hopefully shipping next month yay then I'm here at the Congress giving a talk instead of working on that so please don't hurt me I would hope that
the company can last longer than the trial itself to try and make it legal to build the product which is going to be several years but you know the thing is that you know it's pretty scary to go
ahead and try to incorporate some of these things and get them to the market but you need to make sure you build in enough time and check all of the open source code through our getting to to the level that people expect hardware to work it lesson
number three we're not quite done yet yeah we still got this lesson and one more lesson turns left so as bunny said convincing people to
pay money for you giving them their atoms it's actually quite hard especially if you're honest about what you're producing when bunny did any TV he did that mostly through having to work at a company but these days
crowdfunding is actually a great way to develop this to any TV to was crowdfunded the HDMI to USB we did our own development boards the Mun topsis that was also crowdfunded some other projects I work on Dobbs's other software guy does the full moon and it brings together the like-minded people and allows them to put their money behind their beliefs but it's very important to look at who you're targeting if you compare the ops as'
verses to any tv2 communities the OPS's community we were very much targeting developers and people who are already involved in the hdmi USB community they were ok 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 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 it's got like a nice case I have no idea how you make a nice case one day I hope he'll give a talk on that as well if people want to hear it yeah and cases like that scare me anyway so it's very important you look at community and target the right way because if we were to try and deliver the OPS's board as a consumer product people would be very unhappy whereas if any atv2 can probably fit into the developer category somewhat but your aim is to hit more consumer market right and so the the last learning one
is share and I think we're almost out of time is that open anything really takes time and patience so open source software open source hardware they all takes time so if you think about like the mobile phones that you have you almost expect one derive year after year like clockwork right you have to have something over 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 the the big companies do is they have multiple teams of 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 the while the other ones starting on the next one right so that's how it works in in these well-funded close source companies an open source you're lucky if you can get one team revved up to work on anything right and so if you're going to go ahead and say we're gonna 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 well as all these other people are out investing you with the current technology so open source projects are more I feel it more like instead of like this you know glitz and glam of like trade shows and whatnot it's more like a force 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 community of people who have a need for doing either video la overlay or for doing recording of conferences is a community that we don't have to sort of deal with sort of the consumer cycle if we can actually it's a you know it's been literally seven years this project has been in place it's not like someone's gone and scooped us or tried to do something our investors or something like that so open-source takes time and so picking the right sort of project as the medium to express what you're doing is very important the other half is it takes
patience to do open source so you know in the software world that's or the attitude if it works for me it's good enough if you don't like to 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 to Claus license clause one and Clause two or 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 sue me clause right that's a very important part about open source software you
can't do this for Hardware I can't just be like hey did you not read the shrink-wrap it didn't work you can't return it whatever like you know fix it yourself get a soldering iron this there's actually consumer protection laws that prevent me from doing that and 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 toaster where one the slots has just been epoxy closed because it didn't work and like the a disconnected element you'd be angry you would say this is not a really good toaster I'm gonna I'm gonna send this back to you however how many times you've gotten a piece of code where like a huge section or if theft out features don't work and you compile them out whatever is 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 and software and hardware and it takes a lot of patience to do the sort of development because there are features they're not gonna 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 let extreme ijen causes a functional problem in the product which causes a lot of returns or whatever it is that's the end of the product I literally wake up in the middle of night and I like get up my oscilloscope for him I'm 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 it later on or whatever it is despite all
of that I still really love doing hardware possibly because I just don't learn very well from my mistakes the end
we will see how this all goes yes and I think we have 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 it's much more willing to admit his human and so I think one of the really interesting things about CCC is that it brings us both together and we're both given talks at this conference we've given in some ways very similar talks before and now through CCC were actually collaborating together so I think we should give a big hand for the CCC organizers who enable us to do these things because out the things we're working on would not be as good as they are without this conference so I'd say a big thank you - thank you the Congress organizers thanks for bringing us all together yeah and everyone who comes in like the year you were coming and that we kind of met yeah was you were just attending yeah that's right yeah yeah okay so I think we have time for questions now yes and even though they asked you to applause yourself I think we still have to thank them for giving us a reason to be all here at the same
place so we have about 15 minutes time for for
questions we have four microphones and let me explain what a question is first yes you may not actually know what a question is like one or two sentences with a question mark behind and no it does not include your life history 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 so let's see do we have somebody on number one night but if that is one so I wish
for funny so good sorry another interruption I get very close to the microphone this good yes so do you like hardware or software which one you like more which one do I like more it's a
guessing which do you like I think that so 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 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 the problem is that the reality of being a hardware nerd is that if you ship really cool hardware that doesn't have software on it today they're effectively doorstops right there's a lot of products in the world they're 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 the one things I love all hardware is their atoms and so they're localized and I can see them and we can point to the problem it the problem is is that you know this signal is not good you have to have a good oscilloscope over it thank you but 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 and still never find the end of the bug or whatever it is but I have a lot of respect for what the software people do I try to surround myself with really good software people to help me get through the dark nights when I can't get my code to work and I think that ultimately the people who are going to buy the hardware have a better experience for having sort of thoughtfully designed software on it so we also are taking questions from the internet 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 for both speakers so my question is about when design if we're to design a new project or product that is hardware
based would you recommend if we want it to last and maybe get picked up and port it to a different architecture or a different layout or you know kind of live on would you recommend using an FPGA instead of trying to pick an SOC that you find really cheap and does that for example it 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 well my I give a talk called my like my theory on FPGA development and like lesson number one on that is use an fpga as a last resort if you can do it in software on a cpu door 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 but there are problems that you just can't do with the cpu and you are limited in your flexibility I'm hoping that projects like Cindy flow an able fpga development to become as easy as the rest of the software and then maybe that will change but at the moment i would say an fpga should be a user only when you have an application where it makes sense you shouldn't just use it as a sock but i don't know with like the little risk five cores on the ice forty some of that is starting to become maybe i should use a fpga rather than you don't need a you know hundred megahertz cpu for all your designs and maybe the flexibility around i/o is better but the only thing i think that Tim is 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 ndtv you can't buy anymore right and so any TV - 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 six FPGA and run the original any tv2 codebase if you wanted to so there is more long there is a bit of like those Hardware descriptions can live on even if for whatever reason you can't buy the other parts and bits to it yeah FB J's do get end of life as well but much longer time curve then then like like a lot of these socks so that some of them are just a flash in the pan so get another question on microphone
one hello yeah thanks to you took I really enjoyed that I saw hints of like lack of sustainability or 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 of doing things I was wondering if there were any further thoughts that you had kind of came out of we're open hardware could go to make a better world in that regard um I want to be clear is open hardware is a hobby for
me I don't make my living from open hardware I have a well-paying software engineering job so I have a very different perspective on open hardware to somebody like bunny who's actually you know has to fund his lifestyle from it so I'd be very interested to see what bunny says yeah well I mean like you could say that I don't so don't make a living selling open hardware I just
don't spend as much money I reduce my like my cost upfront to the point where I can sustain myself a little bit I can grind out on top of the margins of open hardware I think still struggling to answer your question is sort of your contrasting sort of the VC funded model versus sort of like this open harbor 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 get returns to investor thousand the one and so you making promises are just ridiculously huge and so the the the landscape is littered with dead bodies of people who have tried to deliver a thousand to one ten thousand one expectations on investment right now that system is rigged for failure at the end they they're looking for unicorns right that being said open hardware because they're served 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 and 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 thing keeping them feel valuable and then you know bringing them on boarding them and making those links it's actually very time intensive process but there 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 they're it's kind of apples and oranges a bit 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 that it's free and open and Libra 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 this 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 harder just can't do because there there just isn't enough resources to deliver on the consumer expectation so microphone - okay so I was kind of surprised that the Rivaldo
tooling was way I was doing waivers and the open-source tooling so what I've seen in the past is that like the proprietary methods work better and more reliable so my question would be did investigate why this was the case and yeah theories on this yeah there's a lot of different theories my opinion is that when you're somebody like Silex you need to cater to people who are gonna buy your FPGAs and so they optimize for those people 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 hundred million of something with an FPGA in it and so they optimize for those users and those users are less sometimes less concerned with how big the core is and more concerned with things like reliability features and having all those extra things that the indeed checkbox list of addr 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 the other thing about the Python stuff is that if you turn it off it never appears in the vera log which means that the FPGA toolchain doesn't have to figure out that that thing is not used and remove it and so that definitely helps as well I definitely would say that light DRAM is not necessarily more reliable than MIG as Bunny has kind of been investigating but like it's definitely a lot smaller and it definitely has at least a certain set of features enough to deliver some products with and it's also kind of interesting that a company that makes more money from you buying bigger FPGAs has non resource efficient designs 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 yep 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 I'm sure that they'll be available for chatting during the rest of the conference could you please all help me you give
these guys a round of applause for this fantastically interesting talk [Music]
Feedback