WEBVTT

00:00.000 --> 00:12.560
Thank you, it's a hard act to follow, but I will try.

00:12.560 --> 00:13.560
I'm Michael Weinberg.

00:13.560 --> 00:19.360
I am here to talk about a certified open-source hardware, and we're in two different paths

00:19.360 --> 00:20.360
today.

00:20.360 --> 00:25.640
One is, I work at the Engelberg Center on Innovation Law and Policy at NYU Law.

00:25.640 --> 00:29.160
We do what it sounds like we would do with a name like that.

00:29.240 --> 00:33.880
Super relevant to this audience is we do a lot of research on open-source hardware and

00:33.880 --> 00:36.720
kind of how the community works and how it works.

00:36.720 --> 00:41.160
So I mean, if you're in this room, you're probably into open-source hardware, but there's

00:41.160 --> 00:45.840
nice entry points if you're looking for more information, especially from a kind of

00:45.840 --> 00:48.600
operational standpoint.

00:48.600 --> 00:55.040
I'm also a longtime board member of OSHA, the open-source hardware association, which

00:55.040 --> 00:59.840
I hope many people in this room are already familiar with.

00:59.840 --> 01:04.840
If not, OSHA was the community organization for open-source hardware.

01:04.840 --> 01:09.360
We do a whole bunch of different things, one thing that is highly relevant, if you're

01:09.360 --> 01:16.160
loving today, OSHA is the host of the open hardware summit every year.

01:16.160 --> 01:18.800
This year, and here's, it's a nods, like it.

01:18.800 --> 01:24.960
This year, the summit is in Edinburgh, in May, so if you want two days of this, come

01:24.960 --> 01:29.760
on up, I guess, to Edinburgh and hang out this May.

01:29.760 --> 01:34.520
We also do the open hardware certification, but I'm going to talk about today.

01:34.520 --> 01:37.960
We host open hardware month in October.

01:37.960 --> 01:39.680
We do a monthly show in tell.

01:39.680 --> 01:44.720
We also are the stewards of the community definition for open-source hardware, which is also

01:44.720 --> 01:48.000
going to be relevant in this talk.

01:48.000 --> 01:54.800
So before talking about the lessons learned from 10 years of certified open hardware, I might

01:54.800 --> 01:59.240
answer the question, why do we certify open hardware at all?

01:59.240 --> 02:02.240
Why are we bothering to do this?

02:02.240 --> 02:10.360
And about 10 years ago, we had some problems emerging in the community.

02:10.360 --> 02:13.960
One problem, and these are problems in the narrow context.

02:13.960 --> 02:20.760
One problem was that nobody owns the term open-source hardware.

02:20.800 --> 02:27.640
A related problem was that OSHA helped to steward the creation of the open year logo that

02:27.640 --> 02:30.600
many of you are probably very familiar with.

02:30.600 --> 02:36.120
Also, no one kind of owns or controls that logo in a meaningful sense.

02:36.120 --> 02:37.480
So generally, that's cool.

02:37.480 --> 02:41.280
Like, go beyond anyone can use it totally fine.

02:41.280 --> 02:46.880
But we were starting to get a problem where someone who was creating open-source hardware

02:46.880 --> 02:49.280
would say, this is open-source hardware.

02:49.320 --> 02:54.280
And someone who was receiving or using open-source hardware would hear, this is open-source

02:54.280 --> 02:59.920
hardware, and the kind of good faith version of the problem is they would have different

02:59.920 --> 03:02.000
expectations.

03:02.000 --> 03:04.800
And so we were getting a little bit of conflict.

03:04.800 --> 03:09.040
There are bad faith versions of that, where there were people just kind of running around

03:09.040 --> 03:13.200
saying open-source hardware with no intention to hurt at least any of it, but we'll set

03:13.200 --> 03:14.200
that aside.

03:14.200 --> 03:19.680
So we had no shared understanding, and it's a little bit harder to kind of quickly verify

03:19.680 --> 03:24.040
the openness of hardware as compared to verifying the open-source software, just because

03:24.040 --> 03:27.080
there are more components, there are more things, it's just sort of harder to do a quick

03:27.080 --> 03:28.080
check.

03:28.080 --> 03:34.360
So we had a little bit of problem with no share understanding, conflicts in the community.

03:34.360 --> 03:40.000
And we had a kind of related problem where we had people, organizations, companies coming

03:40.000 --> 03:43.320
in and saying, open hardware, this sounds great.

03:43.320 --> 03:52.840
We want to do this, but we're a little bit afraid that if we make a misstep along the way,

03:52.840 --> 03:55.040
the community is going to get really mad at us.

03:55.040 --> 03:59.480
And even if we come in with good faith, we're just like a little bit worried that if we

03:59.480 --> 04:01.560
don't do it right, we're going to get in trouble.

04:01.560 --> 04:04.520
So we're going to kind of not do it at all.

04:04.520 --> 04:09.160
And so we're looking for a way to kind of be more consistent in gatekeeping and giving

04:09.160 --> 04:15.680
new entrants, new people in the community a better way in.

04:15.680 --> 04:20.520
So the goodness is we had this definition of open-source hardware, so we had a good starting

04:20.520 --> 04:22.200
point for everyone.

04:22.200 --> 04:23.920
This is very helpful.

04:23.920 --> 04:27.280
And so we thought, well, maybe we can build a certification.

04:27.280 --> 04:34.560
And the certification would be nice, right, because we have a new logo, it'd be an easy way

04:34.560 --> 04:36.600
to kind of quickly check shared terms.

04:36.600 --> 04:41.480
If somebody says, I'm doing open-source hardware, they gave me the any number of things.

04:41.480 --> 04:46.240
If they say, I have certified open-source hardware, then you're like, okay, that means

04:46.240 --> 04:51.160
that they are using the definition that I understand of open hardware, right?

04:51.160 --> 04:55.760
The logo is controlled by a party that can control use, that's OSHWA.

04:55.760 --> 05:00.120
So if someone is saying they're open-source hardware and running around with this logo,

05:00.120 --> 05:05.640
but not compliant with the definition, OSHWA can actually tell them you have to stop.

05:05.640 --> 05:09.040
So you can trust when you see the logo.

05:09.040 --> 05:13.840
Also it allowed OSHWA to be a kind of ally to new entrants, right, if somebody came in and went

05:13.840 --> 05:18.520
through the certification process, and then something went wrong later.

05:18.520 --> 05:21.520
They could say, well, I was doing this in good faith in OSHWA for a reasons I'll talk

05:21.520 --> 05:25.440
about in a second, it was kind of well positioned to help them.

05:25.440 --> 05:28.400
And finally, there's sort of limited downside risk, right?

05:28.400 --> 05:31.080
There's nothing magic about a certification.

05:31.120 --> 05:35.600
If you see a certification, and you don't know what it is, and you don't care about it,

05:35.600 --> 05:38.200
but nothing happens.

05:38.200 --> 05:42.480
But if the community aside for the certification means something, then it can really grow

05:42.480 --> 05:43.640
and be really useful.

05:43.640 --> 05:49.440
So there's a lot of upside benefit and a lot, and basically no downside risk.

05:49.440 --> 05:54.440
So we went through a year-long, basically community consultation process to develop it.

05:54.440 --> 05:57.280
I'm going to have to talk about that process later on.

05:57.280 --> 06:00.880
But the upshot is we made a couple of key design decisions.

06:00.880 --> 06:02.760
So the application is free, right?

06:02.760 --> 06:04.880
You can just sort of do it.

06:04.880 --> 06:07.920
There's no tiers of openness.

06:07.920 --> 06:11.040
There's no open bronze or open gold.

06:11.040 --> 06:14.720
You're either certified open or you're not.

06:14.720 --> 06:20.520
We don't do subject area expert reviews, I'm going to talk about this more in a minute.

06:20.520 --> 06:25.360
But if you come in with a microcontroller, we have someone who's an expert in open hardware

06:25.360 --> 06:30.680
look at it, but we don't have an expert in designing microcontrollers look at it or an expert

06:30.680 --> 06:35.800
in camping equipment look at it or an expert in musical instruments looking at it.

06:35.800 --> 06:36.800
We're looking at it.

06:36.800 --> 06:39.000
We're looking at it from just an open hardware standpoint.

06:39.000 --> 06:42.240
And all that means that it's actually pretty lightweight to run.

06:42.240 --> 06:43.240
Right?

06:43.240 --> 06:44.240
Ash was a great organization.

06:44.240 --> 06:45.240
We do amazing things.

06:45.240 --> 06:48.160
We punch above our weights, but we aren't a huge organization.

06:48.160 --> 06:55.640
We can't have a kind of stable of people constantly engaging in every area of expertise.

06:55.640 --> 06:58.920
And so this basically is working, where it's to how does it work for those of you who

06:58.920 --> 07:04.040
haven't gone through the process yet, you go to certification.ossword.org, you fill out

07:04.040 --> 07:06.440
an application form, it's pretty straightforward.

07:06.440 --> 07:09.440
You can do it in sort of five minutes or less.

07:09.440 --> 07:13.320
At that point, it gets kicked to the review team.

07:13.320 --> 07:16.480
And if everything is cool, then like it moves on to the next step.

07:16.480 --> 07:17.720
But if something is missing, right?

07:17.720 --> 07:22.680
If your documentation is missing something or your licensing is incorrect, the review team

07:22.680 --> 07:26.640
will reach out and say, hey, it looks like your documentation is missing, your licensing

07:26.640 --> 07:30.880
is wrong, and you can go back and forth with the review team.

07:30.880 --> 07:35.080
And so this makes it a really nice entry point for new people to the community to kind of

07:35.080 --> 07:42.720
learn what it means to have documentation, licensing, other elements that need to definition.

07:42.720 --> 07:47.320
So you go to that process, you do kind of jump back and forth, then you get a license

07:47.320 --> 07:51.120
to use the certification logo on your hardware.

07:51.120 --> 07:58.880
You also get a unique identifier that allows people to find your documentation in the certification

07:58.880 --> 08:00.360
directory.

08:00.360 --> 08:02.320
And the directory really is just a directory.

08:02.320 --> 08:08.000
We're not a repository of documentation, but we're a directory of pointers for where people

08:08.000 --> 08:13.200
put their documentation, because as you can imagine, documentation takes many forms and lives

08:13.200 --> 08:15.840
in many places.

08:15.880 --> 08:18.240
So that's what we do.

08:18.240 --> 08:23.240
We've been doing it for about 10 years, what have we learned?

08:23.240 --> 08:27.440
So first, open source hardware is everywhere.

08:27.440 --> 08:33.240
We've got, we're coming up on 3,000 certifications, piece certified pieces of hardware.

08:33.240 --> 08:39.720
In 65 countries, I always say this on every continent, except Antarctica.

08:39.720 --> 08:44.600
One day I will be in a room with someone who is like, I'm in Antarctica, and I'm in

08:44.600 --> 08:45.600
to open hardware.

08:45.600 --> 08:50.960
I'm going to solve this problem, so Michael doesn't have to say this anymore, but it's

08:50.960 --> 08:51.960
really all over.

08:51.960 --> 08:58.720
It's a global community, which is I think a real sign of a real kind of robust approach to

08:58.720 --> 09:00.800
what's going on.

09:00.800 --> 09:08.040
And as you would expect from a global community, hardware is an incredibly broad category.

09:08.040 --> 09:12.600
Right, if you're coming to open source hardware from open source software, you might

09:12.600 --> 09:16.960
think like microcontrollers, electronics, you'd be right, right?

09:16.960 --> 09:22.480
There's a lot of microcontrollers, electronics, 3D printers in the certification directory,

09:22.480 --> 09:24.400
but there's a whole universe of stuff, right?

09:24.400 --> 09:29.160
There's environmental sensors, there's musical instruments, there's camping equipment,

09:29.160 --> 09:35.400
there's things that are crocheted, like the definition of hardware is incredibly expansive,

09:35.400 --> 09:41.400
which I think is also a really, a sign of a really robust community, and there's so

09:41.400 --> 09:45.120
many different entry points for people into the space.

09:45.120 --> 09:49.040
Right, if you are someone who is like, I just love that presentation about like the

09:49.040 --> 09:52.120
next versions of keycad, great, we're here for you.

09:52.120 --> 09:56.880
If you're someone who's like, I do not care about anything that requires a battery or

09:56.880 --> 09:57.880
be plugged in.

09:57.880 --> 10:03.880
All I care about is like crocheting something interesting, also welcome into the community.

10:03.880 --> 10:09.560
Another thing that we've learned is this sort of non-expert review, community feedback

10:09.560 --> 10:13.240
system that I alluded to earlier, seems to work.

10:13.240 --> 10:18.680
So when an application comes in, we look to make sure that it kind of meets the definition,

10:18.680 --> 10:23.040
but we don't have a specialist review it, I mean, for the reasons that you'd expect, right?

10:23.040 --> 10:26.040
You need a lot of different specialists to be able to do that.

10:26.040 --> 10:30.320
Once something is in the directory, people then find in the directory, and they try and

10:30.320 --> 10:31.760
use that documentation.

10:31.760 --> 10:33.960
They are experts.

10:33.960 --> 10:38.480
And those people will sometimes come back to us and say, hey, Ashwa, I saw this thing.

10:38.480 --> 10:39.480
It's cool.

10:39.480 --> 10:43.760
I'm trying to build on it, but it's missing some piece.

10:43.760 --> 10:47.000
And at that point, that's when we bring in an expert and say, okay, we have a user who

10:47.000 --> 10:50.960
says something is missing from the documentation.

10:50.960 --> 10:55.320
If it seems like that's probably right, we go to the creator and say, hey, if someone's

10:55.320 --> 11:00.080
trying to use your documentation, they think that it's missing this piece.

11:00.080 --> 11:01.920
And the creator can respond in a lot of ways.

11:01.920 --> 11:06.840
They can say, you're right, I've already fixed it, moving on.

11:06.840 --> 11:10.480
They can say you're right, but I don't want to fix it.

11:10.480 --> 11:14.520
And so let's just revoke the certification and I'll move on.

11:14.520 --> 11:16.760
Or they can say, you're wrong.

11:16.760 --> 11:18.920
It doesn't need that.

11:18.920 --> 11:22.800
And that's a point where Ashwa then can be in a position where we can kind of mediate

11:22.800 --> 11:28.920
a dispute between two members of the community, but we can do it in a kind of civil and

11:28.920 --> 11:34.760
productive way, right, sometimes we end up siding with the user, sometimes we end up

11:34.760 --> 11:37.960
siding with the creators, sometimes we end up sort of siding somewhere in the middle,

11:37.960 --> 11:42.680
but it's a, it's a, it's a kind of much more socially productive way to mediate a dispute

11:42.680 --> 11:47.160
that could have gone, I mean, we, we're all, everyone's been in communities enough

11:47.160 --> 11:51.480
to know that there are other ways that that conflicts can, can be resolved in communities.

11:51.480 --> 11:58.560
So this works, it definitely has resulted in improved documentation across the board.

11:58.560 --> 12:04.760
It also has resulted in revocation of certification, which is a sign of strength, because

12:04.760 --> 12:10.240
it means that when you see that certification, you see that logo, it means something.

12:10.240 --> 12:14.360
And it's okay that every couple, you know, a couple times a year, we have to revoke something.

12:14.360 --> 12:18.240
It's a, it's a, it's a living certification.

12:18.240 --> 12:20.960
Another thing that we have learned, you know, there are a lot of people who are talking

12:20.960 --> 12:25.960
about building various GitHub's for hardware, because GitHub obviously is, is, it does

12:25.960 --> 12:29.280
not have a lot of features that you might want for hardware.

12:29.280 --> 12:34.200
Those, those platforms are great, but in practice, GitHub is GitHub for hardware.

12:34.200 --> 12:39.040
I wouldn't, I wouldn't take these numbers to the bank, this is kind of a quick pull on everything.

12:39.040 --> 12:45.120
But for the 3000 pieces of certified hardware, the vast majority of it, the documentation

12:45.120 --> 12:46.120
is on GitHub.

12:46.120 --> 12:51.560
So GitHub is good enough for a lot of people to be hosting their documentation.

12:51.640 --> 12:54.280
This is a super long tale.

12:54.280 --> 12:58.880
People host their documentation on their own website, on their own self hosted version

12:58.880 --> 13:04.600
of, you know, whatever, like, everything you could imagine exists somewhere in the directory,

13:04.600 --> 13:14.720
but there's clearly a clustering for GitHub as a kind of primary place for documentation.

13:14.720 --> 13:21.680
There's another feature of the certification that is sort of working, gish.

13:21.680 --> 13:25.480
One of the things that I mentioned earlier is that it can be hard to kind of quickly evaluate

13:25.480 --> 13:29.160
claims of openness in hardware, because there's a lot of pieces to it, right?

13:29.160 --> 13:32.560
There's the, there's the hardware, there's the software, there's the documentation.

13:32.560 --> 13:37.320
It's just that it may, it may not be easy to kind of one quick look to see.

13:37.320 --> 13:42.760
And so one of the roles of the certification is to kind of allow other people to offload

13:42.760 --> 13:46.600
that review to Auschwitz, so they can focus on other things.

13:46.600 --> 13:48.960
And that's working kind of okay.

13:48.960 --> 13:50.200
Hardware X is a great example.

13:50.200 --> 13:55.720
They're a journal that they basically say, we're a journal, academic journal for open hardware.

13:55.720 --> 13:59.800
If you get certified, we're going to assume you're open hardware, I'm not going to worry too

13:59.800 --> 14:02.440
much about it, which is great.

14:02.440 --> 14:05.800
We've been working with the DIN spec folks who are kind of, obviously we have a similar

14:05.800 --> 14:06.800
kind of relationship.

14:06.800 --> 14:09.480
Can we build off of that?

14:09.480 --> 14:14.960
We also actually, we're in the middle of our own process, where we're using the certification

14:14.960 --> 14:21.280
as the first step, Auschwitz actually just kicked off a review of open source medical devices.

14:21.280 --> 14:27.480
And one way that may end up working is kind of the certification X as step 1, and then

14:27.480 --> 14:33.040
there's a second layer for a medical device, specific certification that kind of assumes

14:33.040 --> 14:37.560
that you've made it through the independence hardware certification.

14:37.560 --> 14:43.760
So this works, okay, but don't have 40 logos up on this slide of people who've built

14:43.760 --> 14:47.600
this into their process yet.

14:47.600 --> 14:55.120
Another thing that works is, we've built citations into the certification directory process.

14:55.120 --> 15:00.440
So you can say, I have this hardware, it's built on other hardware, and people use it,

15:00.440 --> 15:05.080
people use it especially when they're doing new versions of their own work, but they also

15:05.080 --> 15:07.360
use it to cite other people's work.

15:07.360 --> 15:13.280
So people who use it, but I would say the vast majority of stuff in the directory does

15:13.280 --> 15:14.880
not have citations.

15:14.880 --> 15:20.440
So that goes in the kind of works-ish category.

15:20.440 --> 15:26.800
We have this super robust API, it's great, it's a read-write API, so if you want to learn

15:26.800 --> 15:33.440
more about the directory, you can use it, use it to generate that map or get a hardware

15:33.440 --> 15:40.440
slide, people use it a little bit, not a whole lot, it's also a write API, so if you

15:40.440 --> 15:46.000
want it to build sending an application into your like standard workflow and just sort

15:46.000 --> 15:48.360
of automate it, you could do that.

15:48.360 --> 15:54.280
We do have one of two people who are using it right now, but you know, like, API, we thought

15:54.280 --> 16:00.360
it was going to be more popular than we built it, sometimes that happens, and the last

16:00.360 --> 16:04.480
thing is just like static site frameworks are amazing.

16:04.480 --> 16:09.480
We, the version of the site that's up right now is version two.

16:09.480 --> 16:14.720
We launched it in 2018, I haven't even talked about, there's a whole other section that

16:14.720 --> 16:21.320
has a bunch of educational materials about licensing, about documentation, about how all

16:21.320 --> 16:27.560
that works, we're obviously updating the search case directory all the time, and we launched

16:27.560 --> 16:34.280
in 2018 and basically haven't had to touch it since then, it just sort of keeps it running,

16:34.280 --> 16:37.800
which is amazing and we're very grateful for.

16:37.800 --> 16:42.800
So these are the things that we have learned running this, you know, first 10 years have

16:42.800 --> 16:46.880
worked pretty well, we're looking to 10 more years, if you're in this audience and you

16:46.880 --> 16:52.280
have not yet certified, I would suggest checking out certification.osho.org, I'm going to

16:52.360 --> 16:58.880
put you through, give questions, I'll be in the back afterwards, I look a lot like this.

16:58.880 --> 17:03.480
You can send me an email, I'm mostly on Blue Sky these days, although it's a dynamic

17:03.480 --> 17:06.440
social media landscape who knows.

17:06.440 --> 17:12.120
Thank you to all the images that we used, I just part of this deck, and yeah, that's where

17:12.120 --> 17:13.120
things are.

17:13.120 --> 17:15.320
So thank you all for your attention.

17:15.320 --> 17:31.640
So we have time for one question, well, Christopher, sit up.

17:31.640 --> 17:35.760
If you have a design and you only want to certify some of it, let's say you have some

17:35.760 --> 17:41.280
electronics, some enclosures, but you only want to certify some of the enclosures, the front

17:41.280 --> 17:42.280
panel for example.

17:42.280 --> 17:43.280
Is that possible?

17:43.360 --> 17:47.480
Yeah, this is a great question, so if you have a kind of component, the way that we

17:47.480 --> 17:55.280
think about this is you have to certify the version that exists as a kind of complete

17:55.280 --> 18:02.400
in your application, and what that means can vary significantly, but if someone had the

18:02.400 --> 18:07.160
certified piece and couldn't do the minimum thing you expect, then that's not enough,

18:07.160 --> 18:10.320
it needs to be enough so someone can actually do what they're going to do what they

18:10.320 --> 18:11.320
want to do.

18:11.320 --> 18:17.240
There's a pre-release certification process, if you want to put something on a product you're

18:17.240 --> 18:21.240
going to roll out, you can reach out, we can kind of give you provisional numbers for that,

18:21.240 --> 18:22.560
but thank you all again.

