WEBVTT

00:00.000 --> 00:12.000
All right, welcome back to the open hardware and CAD-CAM Devroom at FallsDem26.

00:12.000 --> 00:18.000
Next up, we have Julian, who is many, many things, but I think he is most known for his work

00:18.000 --> 00:20.000
on the open flexure microscope.

00:20.000 --> 00:22.000
Right, hi everyone.

00:22.000 --> 00:26.000
So I'm glad to have bid Mike back again this year.

00:27.000 --> 00:31.000
We gave a talk last year in this room about the open flexure microscope.

00:31.000 --> 00:36.000
I thought we'd delve a bit deeper into how we do the documentation,

00:36.000 --> 00:37.000
the validation.

00:37.000 --> 00:41.000
I'm so glad that people actually turned up for a talk with documentation

00:41.000 --> 00:43.000
and validation in the title.

00:43.000 --> 00:46.000
You'll also see at the bottom the humanitarian technology trust.

00:46.000 --> 00:49.000
So in the last year we've set up a UK non-profit,

00:49.000 --> 00:54.000
so we can push forward a lot of our humanitarian goals for building microscopes.

00:54.000 --> 00:58.000
So just for an idea of how much people know how many people were here

00:58.000 --> 01:00.000
at my talk last year.

01:00.000 --> 01:03.000
Well, a few people in for more.

01:03.000 --> 01:06.000
How many people have heard of the open flexure microscope?

01:06.000 --> 01:07.000
Nice.

01:07.000 --> 01:10.000
How many people have an open flexure microscope?

01:10.000 --> 01:11.000
Yeah, pretty good.

01:11.000 --> 01:14.000
How many people were too scared to put their hand up?

01:14.000 --> 01:15.000
None.

01:15.000 --> 01:16.000
Ah, one.

01:16.000 --> 01:17.000
Okay, good.

01:17.000 --> 01:22.000
So, normally we start with microscopy for everyone.

01:22.000 --> 01:25.000
And you start thinking, well, those people go, what?

01:25.000 --> 01:27.000
Does everyone really need a microscope?

01:27.000 --> 01:29.000
I don't think everyone needs a microscope.

01:29.000 --> 01:31.000
Why would everyone need a microscope?

01:31.000 --> 01:36.000
And it's not the microscopes for everyone, but microscopy.

01:36.000 --> 01:39.000
So, while you might not want a microscope,

01:39.000 --> 01:44.000
you would be really sad if your local hospital did not have any microscopes.

01:44.000 --> 01:48.000
If the people let check your water quality, do not have microscopes,

01:48.000 --> 01:54.000
it's important that everybody has microscopy available for what is happening in their life.

01:54.000 --> 02:00.000
So, particular microscopy is the gold standard for many diagnosis.

02:00.000 --> 02:05.000
Cancer diagnosis, malaria diagnosis, number of other diseases.

02:05.000 --> 02:08.000
And the survival rates are so much higher if you catch it early.

02:08.000 --> 02:13.000
So, malaria is almost 100% curate if you catch it early enough

02:13.000 --> 02:15.000
and treat it appropriately.

02:15.000 --> 02:19.000
It's still half a million people die every year from malaria.

02:19.000 --> 02:23.000
And that's predominantly children on the age of five and subsaharan Africa.

02:23.000 --> 02:25.000
So, here we've got a picture of Dr. Elisa.

02:25.000 --> 02:27.000
He's got a manual microscope there.

02:27.000 --> 02:31.000
He's looking at biopsies, looking for a cancer diagnosis.

02:31.000 --> 02:33.000
They've got one manual microscope.

02:33.000 --> 02:37.000
Now, if he is the only hystropophologist in his area of Rwanda,

02:37.000 --> 02:41.000
if he wants to have a discussion about a difficult case,

02:41.000 --> 02:43.000
he does not have that option.

02:43.000 --> 02:46.000
So, I think in the UK for most cancer diagnosis,

02:46.000 --> 02:50.000
you need two hystropophologists to both agree because it's so hard to diagnose.

02:50.000 --> 02:56.000
So, how does he build up that ability to see these difficult cases

02:56.000 --> 02:59.000
without the conversations with his peers?

02:59.000 --> 03:02.000
Now, we're in a place where inequalities are widening.

03:02.000 --> 03:05.000
So, sure, you can get big digital equipment

03:05.000 --> 03:07.000
that can scan the entire slide.

03:07.000 --> 03:10.000
But, you go to a conference now.

03:10.000 --> 03:11.000
Have a conference.

03:11.000 --> 03:13.000
Guess what everyone's talking about.

03:13.000 --> 03:14.000
AI.

03:14.000 --> 03:15.000
Yes.

03:15.000 --> 03:17.000
So, everything is AI.

03:17.000 --> 03:20.000
But, if you're now in Dr. Elisa's lab,

03:20.000 --> 03:25.000
you don't have one of these microscope that can scan the entire sample.

03:25.000 --> 03:28.000
So, you're now left behind from that.

03:28.000 --> 03:30.000
And we can't exactly just buy one of these and just stick it anywhere,

03:30.000 --> 03:33.000
because it will assume it has perfect stable power.

03:33.000 --> 03:35.000
It's not going to run off a USB power bank.

03:35.000 --> 03:37.000
It probably assumes it's in air condition.

03:37.000 --> 03:39.000
It doesn't like humidity.

03:39.000 --> 03:41.000
Certain things need proprietary consumables.

03:41.000 --> 03:43.000
I'm not sure about this one.

03:43.000 --> 03:47.000
So, we actually end up in a situation where we can't just throw money at the problem.

03:47.000 --> 03:51.000
Donating medical equipment is something that people think of a lot.

03:51.000 --> 03:55.000
But, between ten and thirty percent of medical equipment

03:55.000 --> 03:59.000
that is donated to sub-Saharan Africa is used once.

03:59.000 --> 04:00.000
Just once.

04:00.000 --> 04:03.000
That's because people, you might send it without the instructions.

04:03.000 --> 04:04.000
You might send it.

04:04.000 --> 04:05.000
It's not in the local language.

04:05.000 --> 04:06.000
It needs training.

04:06.000 --> 04:08.000
There's proprietary consumables.

04:08.000 --> 04:11.000
You get something working.

04:11.000 --> 04:12.000
And then what happens.

04:12.000 --> 04:14.000
So, this is also in Dr. Elisa's lab.

04:14.000 --> 04:15.000
This is a tissue processor.

04:15.000 --> 04:17.000
It's not working.

04:17.000 --> 04:20.000
It's currently not working because there's probably one little thing

04:20.000 --> 04:21.000
wrong with it.

04:21.000 --> 04:23.000
But, no one's going to send you a troubleshooting guide

04:23.000 --> 04:25.000
and some spare parts.

04:25.000 --> 04:27.000
They want the company engineer to fly over.

04:27.000 --> 04:29.000
If you don't have a company engineer,

04:29.000 --> 04:32.000
close by and you're paying for a long haul flight.

04:32.000 --> 04:35.000
A lot of companies with long haul flights want them to be business class.

04:35.000 --> 04:38.000
You have to pay for a long haul business class flight.

04:38.000 --> 04:41.000
It might cost more to get something mended than to get a new one.

04:41.000 --> 04:44.000
So, if somebody is giving you money to get new equipment

04:44.000 --> 04:46.000
and they're not giving you a service contract,

04:46.000 --> 04:49.000
then how are you going to keep it running?

04:49.000 --> 04:53.000
The answer is, most of our tissue processing is a machine

04:53.000 --> 04:55.000
that dips things in containers.

04:55.000 --> 04:57.000
So, you have containers and a guide with a stopwatch

04:57.000 --> 05:00.000
and that is now the process that is being used in the lab.

05:00.000 --> 05:02.000
So, back to microscopes.

05:02.000 --> 05:04.000
Why don't we just build them locally?

05:04.000 --> 05:06.000
If we build them locally, they can be supported locally.

05:06.000 --> 05:08.000
That's the best thing to do.

05:08.000 --> 05:12.000
How hard can it really be to build a microscope?

05:12.000 --> 05:16.000
I mean, you just sort of need to move something around the optics fairly easy.

05:16.000 --> 05:19.000
Now, traditional dovetails have to be machine really smooth,

05:19.000 --> 05:22.000
otherwise they sort of stick and slip and slip and slip

05:22.000 --> 05:24.000
and you can't do the fine motion you need.

05:24.000 --> 05:27.000
But actually, if you 3D print some plastic

05:27.000 --> 05:30.000
and make some thin bits, it bends at the thin bits.

05:30.000 --> 05:32.000
That doesn't have any of those problems.

05:32.000 --> 05:35.000
You then go, well, 3D printers give you this ability

05:35.000 --> 05:37.000
to print weird shapes.

05:37.000 --> 05:40.000
Each of these red dots is basically a hinge.

05:40.000 --> 05:42.000
This is an early prototype of the microscope.

05:42.000 --> 05:45.000
And now suddenly you've got, this is the next wide translation stage.

05:45.000 --> 05:47.000
You can add in a z.

05:47.000 --> 05:52.000
And you then need a camera, a couple of bits of optics.

05:52.000 --> 05:54.000
Boom, you've got a microscope.

05:54.000 --> 05:57.000
So, it's an open flexion microscope.

05:57.000 --> 06:00.000
Now, can everyone build a microscope?

06:00.000 --> 06:02.000
Yeah.

06:02.000 --> 06:05.000
So, why can't they build a microscope?

06:05.000 --> 06:09.000
Well, open hardware itself is a really hard thing to do.

06:09.000 --> 06:11.000
So, think about open source.

06:11.000 --> 06:14.000
Open source, we always normally think about open source software.

06:14.000 --> 06:16.000
What is your source is really easy.

06:16.000 --> 06:18.000
Here are my code files.

06:18.000 --> 06:20.000
I put them in its open source.

06:20.000 --> 06:25.000
But with a CAD, it might be giving me problems this time.

06:25.000 --> 06:27.000
I'm going to have normal mic.

06:27.000 --> 06:33.000
So, yeah, we can have a repository of CAD files.

06:33.000 --> 06:34.000
Sorry.

06:34.000 --> 06:35.000
Can you still hear me?

06:35.000 --> 06:36.000
Yeah, right.

06:36.000 --> 06:38.000
We can have a repository full of CAD files.

06:38.000 --> 06:42.000
But that is pretty painful because if people don't have the CAD package,

06:42.000 --> 06:45.000
know how to use it, people have different CAD packages.

06:45.000 --> 06:48.000
Trying to actually build each of those files really painful.

06:49.000 --> 06:52.000
We could just wing all the step files or SDL files into a repository.

06:52.000 --> 06:54.000
That's not actually open.

06:54.000 --> 06:56.000
People can't continue to work on it.

06:56.000 --> 06:59.000
Final solution is put both of them in there.

06:59.000 --> 07:02.000
And then your repository gets enormous.

07:02.000 --> 07:05.000
And it's really hard to work with.

07:05.000 --> 07:07.000
Also, documentation.

07:07.000 --> 07:09.000
You need pictures of each step.

07:09.000 --> 07:11.000
So, people can understand what's happening.

07:11.000 --> 07:14.000
You need words, especially for different, difficult things.

07:14.000 --> 07:17.000
This is how you do things thinking about troubleshooting.

07:17.000 --> 07:19.000
As you go through it, you need to build a materials.

07:19.000 --> 07:20.000
And they need to be up to date.

07:20.000 --> 07:24.000
If you're doing open source properly, you're continuously iterating on the design.

07:24.000 --> 07:27.000
And the number of times that you change something.

07:27.000 --> 07:30.000
And then need to think about how do I change the documentation.

07:30.000 --> 07:33.000
Ah, well, this is back from a different time.

07:33.000 --> 07:37.000
So, here is some early open flagship documentation.

07:37.000 --> 07:39.000
Please get all of these parts.

07:39.000 --> 07:40.000
Put them together.

07:40.000 --> 07:43.000
And then, and you get a message saying,

07:43.000 --> 07:44.000
Mind didn't turn green.

07:44.000 --> 07:46.000
Was mine meant to turn green?

07:46.000 --> 07:48.000
Well, no, it doesn't need to turn green.

07:48.000 --> 07:50.000
That's just a photo from a different time.

07:50.000 --> 07:51.000
Normally, we didn't quite get it.

07:51.000 --> 07:52.000
It doesn't turn green.

07:52.000 --> 07:54.000
But, oh, I think it's a different part.

07:54.000 --> 07:56.000
These motor logs have gone.

07:56.000 --> 07:58.000
I actually go through the documentation.

07:58.000 --> 08:02.000
It was going from red with motor logs to green to red again to green.

08:02.000 --> 08:08.000
And everything that we're actually doing there is perfectly explained.

08:08.000 --> 08:11.000
Because nothing has actually changed that you're doing.

08:11.000 --> 08:13.000
But anything in the background that's changed,

08:13.000 --> 08:15.000
if you're not sure what you're building, it's confusing.

08:15.000 --> 08:19.000
But, if you write really good documentation with 3,400 photos,

08:19.000 --> 08:22.000
and somebody says, can I change this bit?

08:22.000 --> 08:25.000
Oh, I'm not taking 400 new photos.

08:25.000 --> 08:29.000
You can change that bit if you take 400 new photos.

08:29.000 --> 08:32.000
So, why else is open hardware?

08:32.000 --> 08:34.000
Because of atoms.

08:35.000 --> 08:37.000
Atoms are very problematic.

08:37.000 --> 08:41.000
You need the correct ones, and you need them in the correct places.

08:41.000 --> 08:45.000
And so, you have to work out, what are you even calling different things?

08:45.000 --> 08:47.000
So, great thing about software.

08:47.000 --> 08:49.000
You build it somewhere in a Docker container.

08:49.000 --> 08:50.000
Somebody clicks a button.

08:50.000 --> 08:51.000
They've got the software.

08:51.000 --> 08:53.000
That means if somebody wants to contribute,

08:53.000 --> 08:55.000
it's quite easy to get up to scratch.

08:55.000 --> 08:57.000
You want to contribute to a hardware project.

08:57.000 --> 08:59.000
You need to get all the bits of hardware.

08:59.000 --> 09:02.000
So, first of all, you've got to buy all the parts.

09:02.000 --> 09:04.000
You've got to put the bill of materials and source everything.

09:04.000 --> 09:06.000
And you get to weird problem of naming.

09:06.000 --> 09:08.000
Anyone know what this is called.

09:08.000 --> 09:10.000
Robscrew.

09:10.000 --> 09:11.000
Great.

09:11.000 --> 09:12.000
It is a grub screw.

09:12.000 --> 09:15.000
So, here we have a grub screw.

09:15.000 --> 09:17.000
Anyone American?

09:17.000 --> 09:18.000
What's it called?

09:18.000 --> 09:20.000
It's a set screw.

09:20.000 --> 09:21.000
Thank you.

09:21.000 --> 09:22.000
So, this is a set screw.

09:22.000 --> 09:24.000
So, kind of confusing.

09:24.000 --> 09:26.000
So, maybe I should just write set screw,

09:26.000 --> 09:27.000
because we can look that up.

09:27.000 --> 09:31.000
However, in the UK, this is a set screw.

09:31.000 --> 09:34.000
Because you can use it to set a thing in a place.

09:34.000 --> 09:37.000
So, now, how do you actually do it?

09:37.000 --> 09:40.000
I can say that what I want you to buy is a DIN 933.

09:40.000 --> 09:42.000
Because then it's really, really, really specific.

09:42.000 --> 09:45.000
And no one knows what you're talking about.

09:45.000 --> 09:50.000
So, the other reason why it's so hard is collaboration.

09:50.000 --> 09:51.000
You've got different collaboration.

09:51.000 --> 09:53.000
How do you do the collaboration tools?

09:53.000 --> 09:56.000
We've got collaboration tools that work so well for software,

09:56.000 --> 09:59.000
but for hardware, most of the collaboration tools

09:59.000 --> 10:01.000
have business in mind.

10:01.000 --> 10:06.000
You're talking like tens of thousands of euros per seat per year.

10:06.000 --> 10:10.000
And if that is the barrier to entry to your open hardware project,

10:10.000 --> 10:11.000
it's not that open.

10:11.000 --> 10:13.000
So, talk a little bit about that later,

10:13.000 --> 10:15.000
but how are we doing things now with open flexure?

10:15.000 --> 10:19.000
So, in our repository, we entirely use open scad.

10:19.000 --> 10:23.000
Only open scad files are in the repository.

10:23.000 --> 10:26.000
All of the STLs are generated in CI.

10:26.000 --> 10:28.000
Does everyone know what I mean by CI?

10:28.000 --> 10:32.000
Basically, you, every time we push something to the Git repository,

10:32.000 --> 10:34.000
something starts up in the server,

10:34.000 --> 10:36.000
and it builds every single STL.

10:36.000 --> 10:38.000
So, as zip of STLs appears,

10:38.000 --> 10:40.000
they're the files that go on the printer,

10:40.000 --> 10:42.000
but we don't have any of them in the repository.

10:42.000 --> 10:44.000
That way, I know that if somebody changes something,

10:44.000 --> 10:46.000
they're all always up to that.

10:46.000 --> 10:50.000
So, I put this picture in that we had last year.

10:50.000 --> 10:52.000
One thing we can do if they're being built in CI

10:52.000 --> 10:54.000
is we can even put the Git hash on the side,

10:54.000 --> 10:56.000
so as you're working towards medical device quality,

10:56.000 --> 10:58.000
you've actually got traceability of you know exactly

10:58.000 --> 11:00.000
what version the source code was

11:00.000 --> 11:02.000
when you made that particular file.

11:02.000 --> 11:06.000
The other thing we have is no photos.

11:06.000 --> 11:08.000
This way, we don't have to retake any photos.

11:08.000 --> 11:14.000
So, open scad didn't actually have an assembly thing,

11:14.000 --> 11:18.000
so we had to build a bunch of assembly tools in open scad,

11:18.000 --> 11:20.000
set up some rendering.

11:20.000 --> 11:24.000
We have a rendering script, so now I have this particular picture

11:24.000 --> 11:28.000
we're putting in a sample clip,

11:28.000 --> 11:32.000
but I have multiple variations of the microscope.

11:32.000 --> 11:38.000
I have the one where the slightly different lens here,

11:38.000 --> 11:40.000
or there's an upright one,

11:40.000 --> 11:44.000
or the low cost one where the low cost camera.

11:44.000 --> 11:48.000
Everything or one of these is completely consistent,

11:48.000 --> 11:51.000
so then we only have to write the CAD once,

11:51.000 --> 11:53.000
we've got code switches in it,

11:53.000 --> 11:55.000
of which one are you building,

11:55.000 --> 11:57.000
you create the optics assembly,

11:57.000 --> 11:59.000
put the optics assembly in place,

11:59.000 --> 12:01.000
and you run through each iteration,

12:01.000 --> 12:03.000
which means that with four variations of the design,

12:03.000 --> 12:07.000
we can have all of the assembly instructions,

12:07.000 --> 12:09.000
always up to date, and entirely consistent.

12:09.000 --> 12:11.000
Because before that,

12:11.000 --> 12:13.000
I don't know if anyone had those books,

12:13.000 --> 12:15.000
so it was make your own adventure books that used to have us kids.

12:15.000 --> 12:17.000
That was what our early documentation was like,

12:17.000 --> 12:19.000
it was brilliant, you get to it,

12:19.000 --> 12:21.000
why are you building the low cost one,

12:21.000 --> 12:23.000
or the one without the feet,

12:23.000 --> 12:25.000
unless it is the third Thursday of the month,

12:25.000 --> 12:27.000
in which case this, if you do pick up this,

12:27.000 --> 12:29.000
unless it's impossible to go through it,

12:29.000 --> 12:31.000
so having one perfectly standard,

12:31.000 --> 12:33.000
this is the microscope that I'm building,

12:33.000 --> 12:37.000
and all of the pictures consistent is enabled by this,

12:37.000 --> 12:39.000
but it's only enabled by this,

12:39.000 --> 12:43.000
if we have a platform that can actually mean that we don't have to write

12:43.000 --> 12:47.000
those bits of text multiple times,

12:47.000 --> 12:49.000
so we've written a program called GetBuilding,

12:49.000 --> 12:51.000
so it's our own documentation program,

12:51.000 --> 12:53.000
where we can write snippets of Markdown,

12:53.000 --> 12:55.000
or we can hold bits of Markdown.

12:55.000 --> 12:59.000
Inside it, we have tagged parts,

12:59.000 --> 13:01.000
so when you use one, you say,

13:01.000 --> 13:03.000
I'm using four screws,

13:03.000 --> 13:05.000
and then when you use more screws later,

13:05.000 --> 13:07.000
it adds them up, but if you're putting in

13:07.000 --> 13:09.000
different sections for different variations,

13:09.000 --> 13:11.000
the microscope, each of them then has a consistent

13:11.000 --> 13:13.000
bill of the materials, each of them has a consistent set of photos,

13:13.000 --> 13:16.000
and we're not maintaining multiple copies of the same text.

13:16.000 --> 13:20.000
If you want to learn more about GetBuilding,

13:20.000 --> 13:24.000
there is a QR code here to my talk at Fastdown in 2022,

13:24.000 --> 13:26.000
some things have changed since then,

13:26.000 --> 13:30.000
but you get a better idea of what it's there.

13:30.000 --> 13:34.000
So, I then write a sentence,

13:34.000 --> 13:36.000
automation enables process,

13:36.000 --> 13:38.000
and I felt I'd become very corporate,

13:38.000 --> 13:42.000
but I feel automation has enabled us to do something

13:42.000 --> 13:44.000
that we would have not been able to do without it.

13:44.000 --> 13:47.000
So, I did my whole presentation in a way of framework,

13:47.000 --> 13:48.000
so I could have better everything,

13:48.000 --> 13:51.000
and then GitLab gave me security warnings about iFrame,

13:51.000 --> 13:52.000
so I can't.

13:52.000 --> 13:56.000
So, this is where we test if the internet is working during my talk,

13:56.000 --> 13:58.000
if it's not, I'm going to do the rest with interpreter dance.

13:58.000 --> 14:00.000
Oh, you're lucky.

14:00.000 --> 14:01.000
Right.

14:01.000 --> 14:02.000
So,

14:02.000 --> 14:03.000
so,

14:03.000 --> 14:07.000
we've now got a process for knowing what happens

14:07.000 --> 14:11.000
whenever we change the design, which is so important for doing hardware well.

14:11.000 --> 14:13.000
So here, William,

14:13.000 --> 14:16.000
once to make sure that the range of motion is working fine,

14:16.000 --> 14:18.000
we've found a couple of places where if you move to one side,

14:18.000 --> 14:21.000
we manage to crash part of the stage into something else.

14:21.000 --> 14:23.000
So, what embarrassing that we didn't find this earlier?

14:23.000 --> 14:25.000
But rather than William just saying,

14:25.000 --> 14:27.000
okay, I want to make the change.

14:27.000 --> 14:29.000
This is what I've done.

14:29.000 --> 14:31.000
We've got, of course,

14:31.000 --> 14:33.000
all of the particular changes to the code,

14:33.000 --> 14:36.000
and this is one thing that's so nice about a code-based cat,

14:36.000 --> 14:38.000
as we can actually see the diffs through,

14:38.000 --> 14:40.000
of exactly what's changing,

14:40.000 --> 14:42.000
and we didn't have to redraw anything.

14:43.000 --> 14:46.000
But William showing me that the legs were crashing.

14:46.000 --> 14:47.000
He first cut something out.

14:47.000 --> 14:48.000
We had a discussion,

14:48.000 --> 14:50.000
decided that we'd maybe cut too much out.

14:50.000 --> 14:53.000
There's some pictures of different parts of it.

14:53.000 --> 14:54.000
But as we go down,

14:54.000 --> 14:58.000
we can see we've got our checklist of what we're going to do before we merge it.

14:58.000 --> 15:01.000
We have a CI that I'll come back to in a little bit.

15:01.000 --> 15:02.000
But all the way through,

15:02.000 --> 15:04.000
we've got our whole conversation about

15:04.000 --> 15:05.000
what is happening,

15:05.000 --> 15:07.000
why we're making these decisions.

15:07.000 --> 15:09.000
We can put cutaways from it,

15:10.000 --> 15:13.000
decide what we're doing as we go through.

15:13.000 --> 15:15.000
But my favorite thing about this,

15:15.000 --> 15:18.000
so we can see in the CI that we first,

15:18.000 --> 15:20.000
we do a silly version check thing.

15:20.000 --> 15:23.000
We then do some linting that we vote for open-scad.

15:23.000 --> 15:26.000
We have a spell checker because if anyone has worked with me,

15:26.000 --> 15:29.000
you'll know that if we have documentation with that spell checker,

15:29.000 --> 15:30.000
it's terrible.

15:30.000 --> 15:32.000
We build all of the SDLs.

15:32.000 --> 15:34.000
We render all of the files.

15:34.000 --> 15:35.000
We build 3DGLTFs,

15:35.000 --> 15:38.000
so we can spin them around and see different things.

15:39.000 --> 15:43.000
We do a check for the SDLs and check some hashes,

15:43.000 --> 15:46.000
and then finally we build the documentation.

15:46.000 --> 15:48.000
But that means in the merge request,

15:48.000 --> 15:50.000
I know that each of those things have passed

15:50.000 --> 15:52.000
and all the SDLs have been built.

15:52.000 --> 15:54.000
And if I want to build Williams Modified Microscope,

15:54.000 --> 15:57.000
I click this button that says View App.

15:59.000 --> 16:01.000
This is the documentation,

16:01.000 --> 16:03.000
not now of the open-flicture project,

16:03.000 --> 16:05.000
but if I accept this merge request,

16:05.000 --> 16:08.000
every single place, if I go in,

16:08.000 --> 16:10.000
if I zoom in on a particular part,

16:10.000 --> 16:13.000
I will be able to see those little bits that I cut out.

16:13.000 --> 16:16.000
I can go to Build the Microscope,

16:16.000 --> 16:18.000
I can go to Print the Parts,

16:18.000 --> 16:21.000
and if I find where it says MainBuddy,

16:23.000 --> 16:27.000
this is loading over the Wi-Fi,

16:27.000 --> 16:29.000
the MainBuddy with those little cutouts,

16:29.000 --> 16:31.000
I can download it, I can print it.

16:31.000 --> 16:35.000
And this means that I know exactly what is going to be merged,

16:35.000 --> 16:38.000
and I can check everything from the documentation

16:38.000 --> 16:40.000
through to the final files.

16:40.000 --> 16:43.000
What I found really interesting the other day

16:43.000 --> 16:46.000
is William was talking to me.

16:46.000 --> 16:49.000
He's done most of the documentation for the last two years.

16:49.000 --> 16:50.000
And he went,

16:50.000 --> 16:53.000
I'm really going to need to get the Render Script

16:53.000 --> 16:56.000
to work on my own computer one day.

16:56.000 --> 16:59.000
And what you've been doing this for two years is like,

16:59.000 --> 17:03.000
I've never needed to actually run it.

17:03.000 --> 17:07.000
And you're almost going to the point where

17:07.000 --> 17:10.000
I start using somebody's professional cab tool

17:10.000 --> 17:12.000
to use this and you're like,

17:12.000 --> 17:13.000
okay, yeah, yeah.

17:13.000 --> 17:14.000
And there's like, right,

17:14.000 --> 17:17.000
so then, no, you have to do that on your own computer.

17:17.000 --> 17:19.000
What am I, a peasant?

17:19.000 --> 17:21.000
But you know, we've got a cloud.

17:21.000 --> 17:23.000
It's so anyway.

17:23.000 --> 17:27.000
But having this process allows us not only to document

17:27.000 --> 17:28.000
everything that is happening,

17:28.000 --> 17:31.000
but also to make sure that we do all of the quality checks

17:31.000 --> 17:32.000
for hardware.

17:32.000 --> 17:34.000
Anyone who does a lot of software engineering goes,

17:34.000 --> 17:35.000
yeah, this is normal.

17:35.000 --> 17:38.000
But it's a tool chain that we've had to build ourselves.

17:38.000 --> 17:42.000
And it's been enabled because we're using entirely open source

17:42.000 --> 17:45.000
top to bottom tool chain of tools.

17:45.000 --> 17:48.000
Back to a presentation.

17:48.000 --> 17:50.000
So also enables collaboration.

17:50.000 --> 17:52.000
I've got one more URL for you.

17:52.000 --> 17:54.000
I apologize it's another merger question.

17:54.000 --> 17:58.000
But this is something that I thought was particularly brilliant.

17:58.000 --> 18:01.000
We had somebody joining the project and they started trying to

18:01.000 --> 18:03.000
change something in the build system.

18:03.000 --> 18:06.000
And I kept saying, oh, I don't want to change that right now.

18:06.000 --> 18:08.000
Eventually, they got a little bit upset and, you know,

18:08.000 --> 18:11.000
why am I not letting people from the community change things?

18:11.000 --> 18:14.000
And it's one thing where it's really hard as a project

18:14.000 --> 18:16.000
to explain your process.

18:16.000 --> 18:20.000
You know, it's not that we don't want collaboration,

18:20.000 --> 18:23.000
but just that we've got certain places where we are going towards.

18:23.000 --> 18:28.000
So in this case, I said, these changes are needed for the Delta stage,

18:28.000 --> 18:30.000
which is a different version of the microscope.

18:30.000 --> 18:34.000
And actually, I have a release checklist of what I'd like to do

18:34.000 --> 18:37.000
to finally release version seven.

18:37.000 --> 18:40.000
Florian turned out to be one of the greatest people in the world.

18:40.000 --> 18:42.000
He then started doing the things that I hadn't got

18:42.000 --> 18:44.000
around to on my release checklist.

18:44.000 --> 18:47.000
And one of them, we were talking for a while.

18:47.000 --> 18:50.000
And I was saying that there is one place where we're still tapping

18:50.000 --> 18:52.000
the machine screws into plastic.

18:52.000 --> 18:54.000
And I just needed to get rid of it.

18:54.000 --> 18:56.000
And I didn't know how to do it.

18:56.000 --> 18:59.000
If you try and put it in from the front, it would break.

18:59.000 --> 19:02.000
And I think I mentioned on the forum at some point that

19:02.000 --> 19:05.000
if anyone ever fixed it, I would buy them a bottle of wine.

19:05.000 --> 19:09.000
So I particularly like, we have this merger question, Florian,

19:09.000 --> 19:12.000
where the branch name is, why?

19:12.000 --> 19:17.000
But, Florian has gone through it.

19:17.000 --> 19:20.000
And you can see there is an enormous number of different questions

19:20.000 --> 19:21.000
back and forth.

19:21.000 --> 19:24.000
These are the nut traps he made of how we go through.

19:24.000 --> 19:27.000
How it will affect different versions of a testing,

19:27.000 --> 19:28.000
gearing.

19:28.000 --> 19:30.000
We've got lots of conversations going through.

19:30.000 --> 19:34.000
And we managed to work through something which, for years,

19:34.000 --> 19:38.000
a number of us who are very close to the project had failed to do

19:38.000 --> 19:41.000
because we had an idea of how we were going to do it.

19:41.000 --> 19:43.000
And it didn't quite work.

19:43.000 --> 19:45.000
Somebody came in from the outside.

19:45.000 --> 19:46.000
It looked at it.

19:46.000 --> 19:49.000
Thought of a much better idea for how to do it.

19:49.000 --> 19:52.000
Of course, to actually get it merged, involved us,

19:52.000 --> 19:55.000
making sure that all of this worked across different branches.

19:55.000 --> 19:57.000
And other things, it was quite a long process.

19:57.000 --> 20:00.000
But it's considerable upgrade to the microscope.

20:00.000 --> 20:03.000
And I think the point I'm trying to make here is,

20:03.000 --> 20:06.000
we've had a lot of things in the news recently with,

20:06.000 --> 20:09.000
you know, process saying the open hardware community

20:09.000 --> 20:12.000
doesn't contribute back to hardware.

20:12.000 --> 20:16.000
I think we just need to accept that hardware is hard.

20:16.000 --> 20:22.000
And therefore, if you want somebody to become part of your project,

20:22.000 --> 20:25.000
it is a long term thing.

20:25.000 --> 20:27.000
So I talked about community.

20:27.000 --> 20:31.000
What I always think with building the community around the project,

20:31.000 --> 20:33.000
when you first start a project, and especially one,

20:33.000 --> 20:36.000
if it's a hardware project, it takes a long time for people

20:36.000 --> 20:39.000
to actually get the hardware and start building it.

20:40.000 --> 20:42.000
No one's going to be able to join your community,

20:42.000 --> 20:44.000
unless they can see what you're doing.

20:44.000 --> 20:47.000
But it's also very weird to go to GitLab,

20:47.000 --> 20:51.000
and write your to-do list in the third eye we need to do this,

20:51.000 --> 20:54.000
and write everything out when you do it, respond to yourself.

20:54.000 --> 20:57.000
Are you basically feel like you're shouting into the void?

20:57.000 --> 21:00.000
But then at some point, there's enough information there

21:00.000 --> 21:02.000
that the void starts to shout back to you.

21:02.000 --> 21:05.000
And so now, we started at one point just asking,

21:05.000 --> 21:08.000
hey, if you build a microscope, please tell us where you are,

21:08.000 --> 21:10.000
and we'll color it in on a map.

21:10.000 --> 21:13.000
So obviously, this doesn't give a good idea of the distribution.

21:13.000 --> 21:16.000
There might be one microscope in Antarctica,

21:16.000 --> 21:22.000
has a lot more influence on a map than 30 microscopes in Singapore.

21:22.000 --> 21:27.000
But having this, the fact that it's people feeding back means

21:27.000 --> 21:29.000
we've got all these wonderful stories of different things

21:29.000 --> 21:32.000
that different people are doing around the world with the microscope.

21:32.000 --> 21:37.000
And so, if anyone on here from a country that's still gray,

21:38.000 --> 21:39.000
get on it.

21:41.000 --> 21:43.000
So, where are we up to now?

21:43.000 --> 21:47.000
We're really happy we were recommended by the World Health Organization

21:47.000 --> 21:50.000
in a report on innovative healthcare technologies

21:50.000 --> 21:52.000
for low resale settings.

21:52.000 --> 21:53.000
Thank you.

21:56.000 --> 21:59.000
In tiny design for local manufacturer and local repair,

21:59.000 --> 22:02.000
it is a robotic microscope that can move around.

22:02.000 --> 22:04.000
I didn't do the live demo this year.

22:04.000 --> 22:09.000
I had an advantage that I wrote the abstract of what we were going to do

22:09.000 --> 22:11.000
and I decided Joe would do the live demo.

22:11.000 --> 22:13.000
This year, you can go over, we're in a W building,

22:13.000 --> 22:16.000
we've got a number of microscopes scanning.

22:16.000 --> 22:19.000
And so, once we scan a sample and stitch it together,

22:19.000 --> 22:21.000
we get something, so this is a papsmith,

22:21.000 --> 22:24.000
if you were screening for cervical cancer,

22:24.000 --> 22:26.000
we can see into individual cells,

22:26.000 --> 22:32.000
and we can zoom right out to about 600 images.

22:32.000 --> 22:35.000
Almost a giga pixel, done a couple of thousand images.

22:35.000 --> 22:37.000
We get around two giga pixels,

22:37.000 --> 22:40.000
when you have more than two to the 16 pixels across

22:40.000 --> 22:42.000
and JPEG as a format breaks.

22:42.000 --> 22:45.000
We've managed to do a bit bigger than what JPEG can do.

22:45.000 --> 22:48.000
We realize that we can actually stitch JPEGs together

22:48.000 --> 22:51.000
on a two gig Raspberry Pi that a two gig Raspberry Pi

22:51.000 --> 22:54.000
cannot open, but we've got a deep zoom viewer as well,

22:54.000 --> 22:56.000
but people quite like having a JPEG.

22:56.000 --> 22:58.000
So, everything there is open source.

22:58.000 --> 23:01.000
This is mostly a slide that I put in for people

23:01.000 --> 23:03.000
that don't really know what open source is,

23:03.000 --> 23:05.000
so I'm not sure I left it in my first demo talk,

23:05.000 --> 23:07.000
but it is open from all points.

23:07.000 --> 23:09.000
The software is open, the hardware is open,

23:09.000 --> 23:12.000
but also building the knowledge of how you build and understand

23:12.000 --> 23:15.000
a microscope is such an important part of the project

23:15.000 --> 23:18.000
to make sure all of the knowledge is open.

23:18.000 --> 23:21.000
And if we have the knowledge open enough,

23:21.000 --> 23:24.000
we can enable local production and local innovation,

23:24.000 --> 23:28.000
because everywhere, you have slightly different challenges.

23:28.000 --> 23:30.000
Local innovators will always be better

23:30.000 --> 23:32.000
at understanding the problems in their community

23:32.000 --> 23:34.000
and fixing those issues.

23:34.000 --> 23:37.000
And local ownership stops one,

23:37.000 --> 23:39.000
the flow of resources out of the country,

23:39.000 --> 23:41.000
but also means we can never turn off the lights

23:41.000 --> 23:43.000
and say you please stop doing this.

23:43.000 --> 23:46.000
If it's locally certified as a medical product,

23:46.000 --> 23:49.000
then you can have local support and local maintenance.

23:49.000 --> 23:51.000
So what's next for us?

23:51.000 --> 23:54.000
We're working, so we've set up a UK charity,

23:54.000 --> 23:58.000
we're working with medical centres,

23:58.000 --> 24:00.000
collect the clinical evidence of how it works,

24:00.000 --> 24:02.000
working on the productisation,

24:02.000 --> 24:05.000
making sure the quality control of the software,

24:05.000 --> 24:08.000
the hardware, how we document things is better,

24:08.000 --> 24:10.000
working on knowledge transfer, capacity building,

24:10.000 --> 24:12.000
documentation is a funny thing.

24:12.000 --> 24:13.000
If you don't have good assembly manuals,

24:13.000 --> 24:15.000
no one tells you you don't have a good user manual,

24:15.000 --> 24:16.000
because they can't assemble it.

24:16.000 --> 24:18.000
As soon as they assemble it,

24:18.000 --> 24:20.000
they start going away as they use a manual in the car.

24:20.000 --> 24:21.000
So you write the user manual,

24:21.000 --> 24:23.000
and they start using a lot,

24:23.000 --> 24:24.000
I've used it so much,

24:24.000 --> 24:25.000
I need a maintenance manual.

24:25.000 --> 24:27.000
Every time you do anything,

24:27.000 --> 24:28.000
you need more manuals.

24:28.000 --> 24:31.000
So what else?

24:31.000 --> 24:33.000
And so I think what else is over to you?

24:33.000 --> 24:35.000
We're focused on the medical side.

24:35.000 --> 24:37.000
Some of you reached out a few weeks ago saying

24:37.000 --> 24:38.000
that they've just got approval

24:38.000 --> 24:40.000
to send an open flexure into space.

24:40.000 --> 24:41.000
So hopefully,

24:41.000 --> 24:43.000
yeah, it's March 27.

24:43.000 --> 24:44.000
It's a modified open flexure.

24:44.000 --> 24:46.000
It should be going into space.

24:46.000 --> 24:47.000
Think this cross for that.

24:47.000 --> 24:49.000
There's a number of different things

24:49.000 --> 24:50.000
that are popping up in all sorts of different places.

24:50.000 --> 24:52.000
I'm really excited to see what next.

24:52.000 --> 24:54.000
But that's not for me.

24:54.000 --> 24:55.000
And so yes,

24:55.000 --> 24:56.000
with all of your help,

24:56.000 --> 24:59.000
we can make my cross could be available for everyone.

24:59.000 --> 25:00.000
Thank you.

25:00.000 --> 25:01.000
Thank you.

25:01.000 --> 25:04.000
All right.

25:04.000 --> 25:05.000
Thank you, Julian.

25:05.000 --> 25:07.000
Quick note for anybody who is about to exit.

25:07.000 --> 25:09.000
Please leave through that door and take a right.

25:09.000 --> 25:11.000
There has been a medical emergency out there.

25:11.000 --> 25:12.000
It is under control,

25:12.000 --> 25:14.000
but it is causing havoc outside the room.

25:14.000 --> 25:17.000
So again, exit through that door and take a right.

25:17.000 --> 25:22.000
Any questions?

25:22.000 --> 25:35.000
Thanks, Julian.

25:35.000 --> 25:37.000
I love it as always.

25:37.000 --> 25:40.000
How did you feel for this long discussion

25:40.000 --> 25:42.000
on one of those murder requests?

25:42.000 --> 25:46.000
But looking at many branches as you were talking about

25:47.000 --> 25:49.000
how do you get when it's software,

25:49.000 --> 25:51.000
you can abstract the problem and it's

25:51.000 --> 25:54.000
and therefore you don't have to look at the specific implementation

25:54.000 --> 25:56.000
that much because you abstract the problem.

25:56.000 --> 25:58.000
If you figure out there's a conflict,

25:58.000 --> 26:00.000
it means you haven't understood the problem.

26:00.000 --> 26:01.000
With hardware,

26:01.000 --> 26:02.000
like well,

26:02.000 --> 26:04.000
this problem doesn't exist in many places.

26:04.000 --> 26:05.000
One conflict,

26:05.000 --> 26:08.000
one conflict may lead to a solution

26:08.000 --> 26:11.000
that creates a conflict in another case.

26:11.000 --> 26:13.000
I mean,

26:13.000 --> 26:14.000
mind the standing of it.

26:14.000 --> 26:16.000
How do you look at this conflict resolution

26:16.000 --> 26:20.000
for those different versions that are based on the same base?

26:20.000 --> 26:23.000
I think it actually is similar to how you do it for software,

26:23.000 --> 26:25.000
because I think software is something where

26:25.000 --> 26:27.000
if you're writing a little bit of software for yourself,

26:27.000 --> 26:28.000
you sort of go,

26:28.000 --> 26:29.000
ah, look,

26:29.000 --> 26:30.000
I can prove it worked.

26:30.000 --> 26:31.000
As soon as you're writing a library

26:31.000 --> 26:33.000
that a bunch of people are going to use,

26:33.000 --> 26:35.000
you just need to understand the larger ecosystem

26:35.000 --> 26:37.000
of what has happened in different places.

26:37.000 --> 26:40.000
So this is why tools like GitLab give you things like

26:40.000 --> 26:41.000
code owners,

26:41.000 --> 26:42.000
you know that in your team,

26:42.000 --> 26:45.000
this person knows so much more about this.

26:45.000 --> 26:47.000
So if that file is changed as part of it,

26:47.000 --> 26:49.000
you call their men and go,

26:49.000 --> 26:50.000
does this break things?

26:50.000 --> 26:53.000
And so this is why it's not just that we have,

26:53.000 --> 26:54.000
so to sign off,

26:54.000 --> 26:55.000
two people from the,

26:55.000 --> 26:56.000
ah,

26:56.000 --> 26:57.000
we've got,

26:57.000 --> 26:58.000
I think,

26:58.000 --> 26:59.000
four or five people who can do sign off,

26:59.000 --> 27:01.000
at least two people must sign off on it.

27:01.000 --> 27:02.000
So,

27:02.000 --> 27:05.000
the plan is that two people,

27:05.000 --> 27:07.000
and if I come to it and there's something

27:07.000 --> 27:08.000
I don't know,

27:08.000 --> 27:09.000
well,

27:09.000 --> 27:10.000
I'll go to the core team,

27:10.000 --> 27:11.000
can somebody else review this.

27:11.000 --> 27:13.000
We will then get all of us

27:13.000 --> 27:15.000
who've thought through and been through

27:15.000 --> 27:18.000
so much of this design process to talk through it.

27:18.000 --> 27:20.000
But that act of talking through it,

27:20.000 --> 27:23.000
enables other people on the core team

27:23.000 --> 27:25.000
to understand parts of the discussions,

27:25.000 --> 27:27.000
which sort of self documenting process

27:27.000 --> 27:29.000
that helps build that knowledge.

27:29.000 --> 27:30.000
But yeah,

27:30.000 --> 27:31.000
at some point,

27:31.000 --> 27:33.000
what happens with the different variations.

27:33.000 --> 27:34.000
I mean,

27:34.000 --> 27:36.000
lovely to have collision tests.

27:36.000 --> 27:37.000
It would be good,

27:37.000 --> 27:38.000
but partly you go,

27:39.000 --> 27:42.000
this part is different in these different variations.

27:42.000 --> 27:43.000
We might have to print all of them,

27:43.000 --> 27:44.000
but it's still,

27:44.000 --> 27:45.000
like anything,

27:45.000 --> 27:47.000
in a hardware or software,

27:47.000 --> 27:49.000
there's somewhat a manual thinking process

27:49.000 --> 27:51.000
that you still need experts.

27:51.000 --> 27:53.000
You can't just give it all to AI.

28:01.000 --> 28:04.000
I'd like to piggyback on the previous question.

28:04.000 --> 28:05.000
With software,

28:05.000 --> 28:07.000
whenever you see a bug,

28:07.000 --> 28:10.000
you can design a regression test.

28:10.000 --> 28:12.000
That you include in your CI pipeline.

28:12.000 --> 28:15.000
How could you do that with hardware?

28:15.000 --> 28:16.000
Yeah,

28:16.000 --> 28:18.000
I mean, that is a brilliant question.

28:18.000 --> 28:20.000
So I heard we're in the loop CI.

28:20.000 --> 28:22.000
There've been some wonderful talks in this dev room

28:22.000 --> 28:24.000
in previous times.

28:24.000 --> 28:26.000
I mean, it depends if it's the mechanical version of it

28:26.000 --> 28:28.000
or if it's sort of the whole system.

28:28.000 --> 28:30.000
So we've been thinking about with the motor controllers.

28:30.000 --> 28:31.000
Wouldn't it be cool if,

28:31.000 --> 28:34.000
when we push changes to the motor control code?

28:34.000 --> 28:35.000
We've got the motor,

28:35.000 --> 28:38.000
but then an Arduino with a rotary sensor,

28:38.000 --> 28:39.000
and you can check.

28:39.000 --> 28:43.000
So there are thoughts for hardware in the loop CI testing.

28:43.000 --> 28:45.000
There are things that we can at least check

28:45.000 --> 28:47.000
if the models are complete.

28:47.000 --> 28:49.000
If you had a different CAD package,

28:49.000 --> 28:51.000
and you've got your FEM simulation,

28:51.000 --> 28:52.000
you would be able to check things.

28:52.000 --> 28:54.000
It would be a really slow pipeline.

28:54.000 --> 28:56.000
But partly the testing in the loop for us

28:56.000 --> 28:58.000
is the human who go,

28:58.000 --> 28:59.000
right, they've changed this.

28:59.000 --> 29:02.000
Well, the unit test is a 3D print that unit,

29:02.000 --> 29:03.000
and see if it works.

29:03.000 --> 29:05.000
So it's not particularly automated,

29:05.000 --> 29:08.000
but at least you can have a checklist and a workflow,

29:08.000 --> 29:10.000
and at least we're not each individually building it,

29:10.000 --> 29:12.000
because one thing we had in the past was somebody went,

29:12.000 --> 29:14.000
ah, yeah, I've changed this.

29:14.000 --> 29:16.000
Cool, I'll build it and you build the SDL,

29:16.000 --> 29:18.000
but actually you've got an old version of that file

29:18.000 --> 29:19.000
because something didn't change.

29:19.000 --> 29:22.000
And so at least you know that you are all checking

29:22.000 --> 29:23.000
the same component.

29:23.000 --> 29:26.000
We also do a lot of putting the old version,

29:26.000 --> 29:27.000
the new version, the slicer,

29:27.000 --> 29:29.000
and moving up and seeing exactly where the layers

29:29.000 --> 29:30.000
have changed.

29:30.000 --> 29:32.000
So we were checking it's going to print in the same way.

29:32.000 --> 29:34.000
But yeah, it's somewhat more manual.

29:34.000 --> 29:37.000
I would love to just be able to write a unit test for it,

29:37.000 --> 29:39.000
but we're working on it.

29:39.000 --> 29:43.000
All right, question if you have insights

29:43.000 --> 29:45.000
on the 3D print and design,

29:45.000 --> 29:49.000
heat set screw inserts, thread itself tapping,

29:49.000 --> 29:52.000
and differences like POA, PETGE,

29:52.000 --> 29:55.000
yeah, what did you find in approach showing fasteners?

29:55.000 --> 29:58.000
Very, very, very good question.

29:58.000 --> 30:01.000
So I mean, we'd use to do a lot of tapping directly

30:01.000 --> 30:04.000
into plastic, which I think was the availability

30:04.000 --> 30:06.000
and easy to specify machine screws,

30:06.000 --> 30:09.000
but also not wanting to go through all the different parts.

30:09.000 --> 30:11.000
It did slightly better if you made the holes

30:11.000 --> 30:14.000
triangular, so you're basically yourself tapping

30:14.000 --> 30:16.000
and moving the material out to the side.

30:16.000 --> 30:19.000
We now use self tapping screws in triangular holes

30:19.000 --> 30:20.000
in a couple of places.

30:20.000 --> 30:23.000
We've tried to move to machine tools machine screws.

30:23.000 --> 30:25.000
We have a nut trap that we use all of the time

30:25.000 --> 30:27.000
rather than heat inserts.

30:27.000 --> 30:30.000
Heat inserts may be better if you're good at putting in heat insert.

30:31.000 --> 30:33.000
With a whole community and I tried to get one line,

30:33.000 --> 30:35.000
I've got a conical soldering out,

30:35.000 --> 30:36.000
it'll be fine and they've got stuck on it,

30:36.000 --> 30:39.000
and I'm melted the side off, something else is like right.

30:39.000 --> 30:42.000
It's probably good if you had a production process,

30:42.000 --> 30:44.000
but not great for us, so we've got a nut trap

30:44.000 --> 30:45.000
where there's a little slot,

30:45.000 --> 30:47.000
and a little sort of hexagon up,

30:47.000 --> 30:49.000
and getting this to print well has been a bit of a mission.

30:49.000 --> 30:51.000
But then it's sort of tapers.

30:51.000 --> 30:53.000
So before you put the screw in,

30:53.000 --> 30:56.000
you put the nut at the bottom, get a screw,

30:56.000 --> 30:59.000
and you tighten it, and it forces it up into the nut trap.

30:59.000 --> 31:01.000
But the great thing about it being open-scad

31:01.000 --> 31:03.000
is they're basically a sub-routine for that.

31:03.000 --> 31:05.000
So we write that in one place, and as we iterate on it,

31:05.000 --> 31:08.000
we click change, and 40, 50 places through the design,

31:08.000 --> 31:10.000
all of the nut traps get better.

31:10.000 --> 31:13.000
There's no redrawing and going to individual files.

31:13.000 --> 31:15.000
But yeah, I could bore the rest of this room

31:15.000 --> 31:18.000
to death with that, answering that question.

31:18.000 --> 31:22.000
I could have question if you have your own project

31:22.000 --> 31:24.000
that you want to get into open-source.

31:24.000 --> 31:26.000
Is there a guide of something?

31:26.000 --> 31:28.000
How you set up the whole documentation?

31:28.000 --> 31:31.000
Like the whole generation part, and then.

31:31.000 --> 31:35.000
Yeah, I mean, no, I think is the short answer to that.

31:35.000 --> 31:41.000
I think it's a really not well-established way

31:41.000 --> 31:43.000
to do open-source hardware.

31:43.000 --> 31:46.000
I think how to set up an open-source software project.

31:46.000 --> 31:48.000
There's so many guides, there's so many things.

31:48.000 --> 31:51.000
I wouldn't necessarily say everybody should do what we're doing,

31:51.000 --> 31:55.000
because for almost all use cases, you should be using freecat.

31:55.000 --> 31:58.000
Not open-scath. There's a lot of problems with it.

31:58.000 --> 32:02.000
The specifics, like when you're the whole updating process

32:02.000 --> 32:03.000
and the more documentation.

32:03.000 --> 32:08.000
Yeah, so I mentioned the, what was it?

32:08.000 --> 32:09.000
Get building?

32:09.000 --> 32:12.000
Yeah, so just very quickly to finish the thought

32:12.000 --> 32:14.000
because it moves into that.

32:14.000 --> 32:17.000
A lot of how get building works is based on

32:17.000 --> 32:20.000
it assumes that you can get images of each assembly step,

32:20.000 --> 32:22.000
but that is specific to your CAD.

32:22.000 --> 32:24.000
So, Peter, you might be somewhere.

32:24.000 --> 32:27.000
There's Peter. Peter's doing some really cool stuff

32:27.000 --> 32:30.000
with freecat to get the images out,

32:30.000 --> 32:33.000
and we worked out a way to make it work with get building.

32:33.000 --> 32:34.000
Get building itself.

32:34.000 --> 32:37.000
I wrote some sort of documentation.

32:37.000 --> 32:39.000
When you start writing the documentation

32:39.000 --> 32:42.000
for the documentation tool that you wrote for your hardware

32:42.000 --> 32:44.000
that you started making, because you wanted to do something,

32:44.000 --> 32:46.000
it gets very meta, but yes, there's a little bit.

32:46.000 --> 32:49.000
Somebody's made some videos of it on the gathering

32:50.000 --> 32:52.000
for open science hardware form.

33:01.000 --> 33:04.000
You talked about updating the pictures

33:04.000 --> 33:05.000
in the documentation.

33:05.000 --> 33:09.000
Yeah, I'm also very worried about the text segments

33:09.000 --> 33:11.000
getting silently out of date.

33:11.000 --> 33:14.000
Do you have a system in place to sort of alert you

33:14.000 --> 33:17.000
that maybe this section of text needs revision

33:18.000 --> 33:20.000
or do you do that by knowledge purely?

33:20.000 --> 33:22.000
Yeah, so it's by knowledge.

33:22.000 --> 33:25.000
I mean, I think it's the fact of, if it's a somewhat

33:25.000 --> 33:27.000
let's say modular design.

33:27.000 --> 33:30.000
So, I think it's part of it, it's process again.

33:30.000 --> 33:33.000
So, somebody shouldn't make a bunch of changes

33:33.000 --> 33:35.000
and that's a revision.

33:35.000 --> 33:37.000
If somebody changes nine different things

33:37.000 --> 33:39.000
and opens a merger quest, we say,

33:39.000 --> 33:41.000
please open a merger quest on one thing.

33:41.000 --> 33:43.000
So, then, at least if somebody is changing one thing,

33:43.000 --> 33:46.000
part of our process is going to where that thing happens

33:46.000 --> 33:48.000
and updating the documentation.

33:48.000 --> 33:50.000
That doesn't mean that we don't sometimes find

33:50.000 --> 33:53.000
some things where you go, oh no, this is a bit out of date.

33:53.000 --> 33:55.000
But, a lot of its diligence,

33:55.000 --> 33:58.000
but yeah, if you keep your merger quest small,

33:58.000 --> 34:00.000
so you're only changing one thing,

34:00.000 --> 34:03.000
that should highlight where that happens in the documentation

34:03.000 --> 34:06.000
and the nice thing, so get building the tool,

34:06.000 --> 34:09.000
has marked down files that are in the repository,

34:09.000 --> 34:11.000
so they can build.

34:11.000 --> 34:13.000
So, the actual merger quest will make sure

34:13.000 --> 34:17.000
that when you make a change that it builds correctly

34:17.000 --> 34:19.000
and you also should change the documentation,

34:19.000 --> 34:21.000
that's the part of the same merger quest,

34:21.000 --> 34:23.000
so it should be a small contained thing

34:23.000 --> 34:26.000
with all the documentation as well as all of the,

34:26.000 --> 34:28.000
as well as all of the CAD.

34:31.000 --> 34:33.000
Good time for at least one more,

34:33.000 --> 34:35.000
because we can't find Wayne.

34:38.000 --> 34:40.000
I was just wondering if you have anything

34:40.000 --> 34:43.000
or a translation of the documentation in an automated way.

34:43.000 --> 34:45.000
I guess you had that example of the screw,

34:45.000 --> 34:48.000
and that just feels like a sort of British English

34:48.000 --> 34:49.000
to US English translation.

34:49.000 --> 34:53.000
Yeah, I mean, that will be the hardest translation.

34:53.000 --> 34:58.000
But, so the short answer is no.

34:58.000 --> 35:03.000
As people have made some documentation

35:03.000 --> 35:05.000
in other languages for open flexure,

35:05.000 --> 35:09.000
we've had ones in Spanish in the past.

35:09.000 --> 35:13.000
What we don't have is a good system for keeping them up to date.

35:13.000 --> 35:17.000
So, I have pie in the sky ideas of being able to sort of

35:17.000 --> 35:20.000
check by paragraph and see which ones changed

35:20.000 --> 35:24.000
and then highlight which, which versions of other things.

35:24.000 --> 35:27.000
And I know some of the wickies have really good things for that,

35:27.000 --> 35:29.000
but then because we're in different tooling,

35:29.000 --> 35:31.000
we'd need to write it and so.

35:31.000 --> 35:34.000
I think partly I might need to get over myself

35:34.000 --> 35:37.000
and my grand vision of it all working great,

35:37.000 --> 35:40.000
just except that maybe we should just start

35:40.000 --> 35:42.000
and same with the software we need

35:42.000 --> 35:44.000
to actually work on the internationalisation thing.

35:44.000 --> 35:46.000
We've got such an international community,

35:46.000 --> 35:48.000
but as the community is growing,

35:48.000 --> 35:52.000
we've got more contributors that really has to be a cool focus of us soon.

35:52.000 --> 36:10.000
So, there was just a preview stock in another room

36:10.000 --> 36:13.000
about education and open flexure.

36:13.000 --> 36:14.000
Oh yeah.

36:14.000 --> 36:19.000
And there was talk about Lego-like IKEA-like documentation for building.

36:19.000 --> 36:21.000
Yeah.

36:21.000 --> 36:24.000
What you were showing here with the Alan Key going,

36:24.000 --> 36:26.000
is that what you were talking about?

36:26.000 --> 36:27.000
Is that a whole separate?

36:27.000 --> 36:28.000
Yeah.

36:28.000 --> 36:30.000
So, I mean, our documentation.

36:30.000 --> 36:33.000
I mean, I assume I've gotten till Wayne turns up,

36:33.000 --> 36:35.000
so I can probably.

36:35.000 --> 36:39.000
I mean, if Wayne doesn't turn up for a week,

36:39.000 --> 36:41.000
you guys are going to get really bored.

36:41.000 --> 36:45.000
But yeah.

36:45.000 --> 36:48.000
So, we tried to make it so here are the parts you need.

36:49.000 --> 36:51.000
Here is the screw.

36:51.000 --> 36:52.000
It's going into the gear.

36:52.000 --> 36:54.000
You've got these tools.

36:54.000 --> 36:57.000
So, you turn this round.

36:57.000 --> 36:58.000
It pulls it in together.

36:58.000 --> 36:59.000
Now you got that.

36:59.000 --> 37:02.000
So, we're trying to go through point by point of the sort of,

37:02.000 --> 37:04.000
I think it's more Lego than IKEA style,

37:04.000 --> 37:06.000
because it's in color.

37:06.000 --> 37:10.000
If you use free CAD and Peter stuff,

37:10.000 --> 37:12.000
it ends up IKEA style.

37:12.000 --> 37:15.000
So, yeah, we've got a number of different things

37:15.000 --> 37:16.000
just going through.

37:16.000 --> 37:18.000
So, it's all rendered in that sort of way.

37:18.000 --> 37:21.000
We probably need for education one with fewer words

37:21.000 --> 37:23.000
to make it sort of more kid-friendly,

37:23.000 --> 37:25.000
because it doesn't matter maybe for one for a kid.

37:25.000 --> 37:28.000
Matters that it works, doesn't matter that is absolutely perfect.

37:28.000 --> 37:30.000
So, different variations.

37:30.000 --> 37:32.000
All the documents might be sorted.

37:32.000 --> 37:33.000
All of it.

37:37.000 --> 37:38.000
Yes.

37:38.000 --> 37:40.000
Yeah, I don't know if you mentioned it,

37:40.000 --> 37:45.000
but are you doing anything in terms of translating this documentation?

37:45.000 --> 37:47.000
Yes, or is it all in English?

37:47.000 --> 37:49.000
Yeah, so we were just talking about that.

37:49.000 --> 37:51.000
It is currently all in English.

37:51.000 --> 37:53.000
We've had some past versions,

37:53.000 --> 37:56.000
but yeah, exactly how we do it in a way

37:56.000 --> 37:58.000
that it stays up to date is painful.

37:58.000 --> 38:02.000
So, we want that we need to get on that very soon.

38:02.000 --> 38:04.000
Thanks.

38:08.000 --> 38:11.000
You know, speaking of which would you consider using AI

38:11.000 --> 38:13.000
to automate the translation?

38:13.000 --> 38:17.000
I think having it in the loop for doing bits of it

38:17.000 --> 38:19.000
as long as there was a human to check it over,

38:19.000 --> 38:21.000
I think it's fine.

38:21.000 --> 38:24.000
It's how we make sure that we stay up to date.

38:24.000 --> 38:26.000
We need some tracking even if it's on a file by file level

38:26.000 --> 38:28.000
of this has changed.

38:28.000 --> 38:31.000
And it was last documented a particular time.

38:31.000 --> 38:33.000
Because we have metadata in the files,

38:33.000 --> 38:34.000
I quite like to say, you know,

38:34.000 --> 38:37.000
if the Spanish version has a different number,

38:37.000 --> 38:39.000
we can just say this is a screw,

38:39.000 --> 38:41.000
this is a screw, this is the same screw.

38:41.000 --> 38:43.000
If the Spanish version needs six screws,

38:43.000 --> 38:45.000
and the English version needs five screws,

38:45.000 --> 38:47.000
that is a problem.

38:52.000 --> 38:54.000
Yeah, time for another question,

38:54.000 --> 38:56.000
because we're still, I can see all the cell phones

38:56.000 --> 38:58.000
blurring in the background there, so.

39:07.000 --> 39:10.000
A bit of a follow-up question on what you're showing now.

39:10.000 --> 39:15.000
The mouse-overting doesn't look like it's very printable,

39:15.000 --> 39:18.000
so it's making printable documentation

39:18.000 --> 39:19.000
at all a consideration.

39:19.000 --> 39:23.000
Yeah, so we write it in Markdown.

39:23.000 --> 39:26.000
It makes this, and you can,

39:26.000 --> 39:27.000
because it's all open source,

39:27.000 --> 39:29.000
you can see the big, long discussion

39:29.000 --> 39:31.000
on whether there should be a number of different images

39:31.000 --> 39:33.000
or the scroll over thing.

39:33.000 --> 39:38.000
But the HTML that is rendered here,

39:39.000 --> 39:42.000
can be changed if you say you're in PDF mode.

39:42.000 --> 39:44.000
It will render some different HTML,

39:44.000 --> 39:46.000
and then put it in a PDF.

39:46.000 --> 39:49.000
It's semi-working.

39:49.000 --> 39:51.000
We're still working on that process.

39:51.000 --> 39:53.000
It's something that we don't do too much.

39:53.000 --> 39:55.000
Part of it, there's so many links in it,

39:55.000 --> 39:57.000
and then there's so many extra pages explaining things

39:57.000 --> 40:00.000
that you don't want documentation this thick.

40:00.000 --> 40:02.000
But then sometimes if something is removed,

40:02.000 --> 40:03.000
you want the link to,

40:03.000 --> 40:07.000
so there's a bit of what we do with the text in different places.

40:07.000 --> 40:10.000
At the same time, if you say something is in a particular place

40:10.000 --> 40:12.000
and reference back to it,

40:12.000 --> 40:14.000
we can get the page numbers,

40:14.000 --> 40:15.000
but I think I'm now doing it too often.

40:15.000 --> 40:18.000
It's mostly a list of past page numbers.

40:18.000 --> 40:20.000
So yes, it's on the radar,

40:20.000 --> 40:22.000
and it's not as bad as that,

40:22.000 --> 40:26.000
but getting it to work perfectly with both PDF

40:26.000 --> 40:29.000
and website is ongoing,

40:29.000 --> 40:31.000
but it's definitely on the radar.

40:38.000 --> 40:39.000
Oh, question in the back.

40:39.000 --> 40:40.000
Great.

40:40.000 --> 40:42.000
I was going to have to start telling jokes.

40:42.000 --> 40:45.000
I will help you out.

40:45.000 --> 40:47.000
I was wondering,

40:47.000 --> 40:50.000
could you make a sort of a template

40:50.000 --> 40:52.000
of all of the tools that you made

40:52.000 --> 40:56.000
so that if there's another advanced open hardware project

40:56.000 --> 40:59.000
that they could just replicate all of the tools

40:59.000 --> 41:01.000
because independently,

41:01.000 --> 41:04.000
each of them are open source, I believe.

41:04.000 --> 41:05.000
Yeah.

41:05.000 --> 41:08.000
It would be great to have this infrastructure

41:08.000 --> 41:11.000
for other projects to adopt it.

41:11.000 --> 41:12.000
Yeah.

41:12.000 --> 41:13.000
I mean, I think, especially,

41:13.000 --> 41:15.000
one reason we named the charity,

41:15.000 --> 41:17.000
the humanitarian technology trust,

41:17.000 --> 41:18.000
not the open-flexion foundation,

41:18.000 --> 41:20.000
who really do want to look at what we do well

41:20.000 --> 41:23.000
and explain it and have it work for other projects

41:23.000 --> 41:25.000
and other things with similar goals.

41:25.000 --> 41:27.000
In terms of our tool chain,

41:27.000 --> 41:30.000
I think a lot of it is

41:30.000 --> 41:33.000
works because we know how to make it work.

41:33.000 --> 41:37.000
If we wanted to make it turkey enough that anyone could use it,

41:37.000 --> 41:39.000
I'd pretty much have to start working

41:39.000 --> 41:41.000
on open-flexion and be the tool chain guide.

41:41.000 --> 41:45.000
In fact, a bunch of you met me when we had this idea

41:45.000 --> 41:47.000
for an organization that could be funded

41:47.000 --> 41:49.000
called the Open Tool Chain Foundation

41:49.000 --> 41:51.000
that would be able to work on the tool chain

41:51.000 --> 41:53.000
so people can do hardware.

41:53.000 --> 41:55.000
And it's the thing where I would love to do that

41:55.000 --> 41:57.000
but it's sort of the time.

41:57.000 --> 42:00.000
So there's ideas of talking to different organizations

42:00.000 --> 42:02.000
about how we can really get the tools

42:02.000 --> 42:04.000
needed to do hardware well,

42:04.000 --> 42:06.000
really turn keys so people can do this.

42:06.000 --> 42:08.000
Look who we found!

42:08.000 --> 42:09.000
Hey! Hey!

42:09.000 --> 42:10.000
It's a win!

42:10.000 --> 42:12.000
Alright, thank you, Stewart.

