Dear viewer, these subtitles were generated by a machine via the service Trint and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/712 Thanks!
Now, I will give the floor to Bunny,
and I hope that you'll give him a warm
welcome of applause before we start to
talk.
Thank you.
Thank you so much.
Great, I thought they they're a little
optimistic, thinking this would fill sell
one for a talk like this.
But thanks everyone here for coming
in, preparing for this talk.
It was interesting, I
realized as I was interviewing people
that I lack a certain authority
to speak to, for example, gender
issues in computer science.
And I run the risk of alienating the
people I hope to empower if I get the
message wrong.
And I also realize it's a touchy subject
for a lot of people and I risk
raising the ire of a bunch of trolls.
But I think social policy
should not be dictated by fear
of trolls. So let's get started.
So let's start talking about how much of
society is included in technology.
This is a study that was done
two hundred thousand people
very recently.
And the interesting part you want to look
at is the purple and above bars are the
people who kind of know how to use,
you know, spreadsheets and word
processors and stuff.
And the people, you know, the orange and
the red can barely do a search query.
Like they could Google something and say,
you know, what is something?
And that's about all they can get out.
And so it's although this was done over a
fairly wide age range, 60 to sixty,
it's you know, it's easy to forget in
a place like CCC that there's
actually a large portion of the world
that's not included in technology.
And why is this inclusively important?
It becomes important when you talk about
putting up to a vote.
So if you want to explain situations
like surveillance or net neutrality or
even like the selection of emojis
to people and
you want to have a vote on it, you have
to realize that that 50 percent line
includes, you know, not
it's not the majority of people who can
even start to have a conversation
about these sorts of things.
And if you think that's like whatever
like it's just, you know, those
people are stupid. I don't have to worry
about it. Sometimes that works for me.
Attitude isn't good enough, particularly
when it comes to a vote.
There's a couple of very prominent
examples of where
I think we had surprising outcomes
and Brexit and the American elections
because of,
you know, things.
And so more specific example
is like open source.
I am an open source activist and I think
that open source in the literary movement
is about empowering everyone.
But if you give people source code, you
don't tell them how to use it.
Are you really empowering them?
So this is this example that happened
earlier this year.
Screen saver popped up a time bomb
on Know Novena saying, like, this version
is very old, please upgrade.
So I start Googling, like, what the heck
is going on? Like, is this like what's
going on? And then there's this great
thread where the maintainer, GWC,
sort of get some popcorn and read it.
It's interesting.
And he says, like, when they even bother
to tell me what version of NASA, that
bridge is three years old.
And then I say, but this is the latest
version by Dictatorship's.
He says, then your distro sucks.
And they say, but I don't know how to
compile code from source.
I paste and everyone goes
away unhappy.
So in a situation like this, it's like
both the developer and the users
are disempowered actually by the
situation. It doesn't necessarily help to
just say, like, I just put the code out
there and I don't necessarily tell people
how to use and expect them to know how to
use it.
And so openness is powerless without
inclusiveness. Sharing source code
empowers a one percent or even less
than one percent of society.
And if you think that's good enough, we
need the government's help to enforce the
licenses that we rely upon and we need
society's help to sponsor and patronize
our efforts.
And if you think that open source is a
moral or social imperative, we
should try to empower more people to
preserve and sustain the practice.
But it is not practical to teach people
one by one how to code.
It's not his responsibility to have
told people how to compile a source, one
at a time what you want to do.
I mean, as an engineer, you want to
optimize your efforts.
You want to look for obvious issues, high
leverage events that can get you a lot
of gain. And so, for example, if you look
around, on the left hand side is a
picture from Özkan Open Source
Conference.
You'll be challenged to find the two
women in that photo, I think actually
looks quite good and inclusive.
So the generation is quite better here.
But when you are looking
to increase participation, it feels like
this could be in
an area of good gains.
It's like someone coming to me and
saying, hey, my battery life sucks.
And you find they're using a seventy five
regulator to to to,
you know, go off their power supply or
I'm out of memory.
And your memory allocators only
allocating on the odd pages of even pages
like you've just thrown away half your
resources even before you got started.
And oftentimes when you fix bugs like
this, the paybacks can be more than 2x.
Just fixing that one problem often will
help you find other problems and get even
more people included into technology.
How bad is the bias?
Here's some recent numbers.
In twenty fifteen undergraduate degrees
in the United States, only fifteen point
seven percent were worried to woman.
That's two thousand women compared to
twelve thousand men.
In that lower graph, there is a
comparison of computer science
versus other professions like mathematics
and physics. Computer science has half
the number of women in it.
Then there are in mathematics or physics
even. Right. So it's particularly bad in
this in this field.
And it's not just a US problem like this.
Here's here's a graph showing the
breakdown in Europe.
And you can see the numbers in Germany,
for example, is ten point five percent.
Women getting degrees in two thousand
computer science.
And then there's some people who ask,
like, you know, maybe there is actually
genetic advantage
in computing or something like this,
which is a ridiculous statement that
I find the only argument.
Just to respond.
With no right grumpy cat, no, I actually
had a series of slides.
I was trying to reason through these
people is like you just can't reason with
people who make statements that are
inaccurate.
The fact of the matter is, it just women
can excel in computers.
And I work with many women who are very
gifted in this in this field.
Some of them you recognize, like Limor
Feet on the left, who does
eat a fruit. There's I Bedier who does
little bits, not a peek, who's very
influential in the family community.
There's a guy on the right hand side who
I'll talk about later on, who I'm working
with on this project.
Naomi Wu, who's been working on the
Amaker in Shenzhen, who's on the
confluence of design and
technology and fashion.
And there's another lady here, not
only Gong, who's also doing
technology and fashion.
And I almost sure you've seen
products she's done announced on a big
stage, but every single time it's always
some guy taking credit for her work.
And then there's Star Simpson,
who is also talented engineer, and I
really enjoy her recent circuit classics
project.
And so clearly woman can
be involved. Maybe the bias is cultural
in my experience.
China has a much better chance,
much better gender balance in technology
fields. When I work with the factories
there, I see lots
of women in the offices.
And I asked for a picture actually of a
contract manufacturer I work with quite
often, called us and said, Can you send
me a staff photo recently?
And I just went through and counted and
it's sixty two percent female.
And I'm not talking about like assembly
laborers. This is not like the photos you
see of like Foxconn, of people in blue
smocks and stuff who are just doing rote
labor. This is these are people who are
doing staff. They're skilled in component
selection, sourcing, manufacturing,
project management is just logistics and
design and so forth.
So perhaps if
you can see evidence that it's possible
in other cultures are more inclusive,
maybe there is a
cultural issue and there are a couple
experiments and cultural change that
offer to
two of them. I looked up that were well
documented studies and involving cultural
change that indicate that culture
is a significant factor in affecting
exclusivity.
So, for example, Carnegie Mellon
did an experiment where they tried to
change the culture around
their curriculum and they managed to go
from less than 10 percent enrollment to
over 40 percent ROLLAN in five years
of females.
And in Harvey Mudd, they had a similar
result from twelve percent to forty five
percent in five years.
And I kind of read through some of these.
And the key insight I got is
that computer science is unique in
assuming that you already know it before
you study it.
It's kind of like a medical program
expecting that you've already done
surgery before you enroll or a law school
expect you've ever been to trial.
But a lot of computer science programs
already assume you can write reasonably
complex pregnancy language before you
even get to college. And so the intro
classes are literally called weeder
classes. They're there to get rid of
people who weren't exposed to computers
before they got to college.
It's like walking into a Chinese class.
It's introductory and seeing a bunch of
Chinese people there.
And then, you know, you have to get the
best grade in that class for you to get
on. And you just don't you don't even
want to participate in that situation.
And it turns out that this bias starts at
a young age.
Here's a on the right hand side.
There's a ratio of the number of children
who are being given engineering
construction kits by gender
as analyzed by name. This is a recent
study that was done.
And because because
the bias starts a young age.
By the time you get to college, if you're
like, hey, I want to go in computer
science, you just don't have the chance
to really catch up at that point in time.
You're excluded from the experience.
Now, Harvey Mudd and Qumu
were able to address the issues by
redesigning their computer science
courses, by offering courses.
I assume that you know nothing
in the beginning and to help you catch
up. But we can't count on
changing every undergraduate computer
science program. So we have to start
earlier. We need to find a way to change
the culture.
And so I was thinking about this a little
bit more. And I happen to be reading a
biology textbook.
And I came across an interesting thing
about sauerkraut. I love sauerkraut
and it's made
with nothing more than cabbage, salt and
water. And every time you put those three
ingredients together, you always get
sauerkraut. You don't get something else
right. You don't have to start the
culture with anything. It just naturally
turns into sauerkraut every single time.
And I read a little more about it.
It turns out that in the beginning, when
you have cabbage, you have a neutral and
you have all kinds of different bacteria
and yeast on there.
And there's one particular species of
bacteria that eats the cabbage and
releases lactic acid and makes it more
and more sour, creates more and more
acid, eventually killing off everything
around it until there's only one species
left. And every single time you put
this recipe together, you always end up
with sauerkraut.
So if you want something other than
sauerkraut, you can't fix the problem by
just adding more cabbage.
But you have to do something to change
the culture, the conditions,
to get a change in the outcome.
And this sort of cost environment
actually affects both genders.
I have a good friend in my collaborator,
Sean Cross.
He's a developer for Novena.
Fernvale, I need you, Chumby, and looks
like he's the reason that the stuff I
build isn't just shiny doorstops that
do nothing like the software on it
actually is very important.
And he's a brilliant developer.
He's supportive and modest and he really
values a work life balance.
But this is not kind of a personality
type that sort of thrives
in a Kostic environment.
Neither him or I really lean in types.
Some of you will recognize that word.
You know, he got his undergraduate degree
in psychology for various reasons.
And as a result, his opportunities were
limited. Initially, he was forced into
Kuai and support roles.
They wouldn't want to give him a development
role until I saw some demos.
He did that were absolutely amazing.
I like I said, I want that guy
in particular working on my stuff.
And then we were able to start doing our
adventures together.
But that that sort of environment
that he was originally put into, it
didn't allow him to really stretch his
legs and become everything he would be,
who he could become.
So to change the culture,
you have to change ingredients now, like
sauerkraut. I also like beer.
And if you didn't add hops to your you
know, to your to your beer, you would end
up with kind of sour tasting beer half
the time. And that's not necessarily
something that that's desirable.
And so I've been doing an
experiment and change
in electronics.
And the question I guess is
that by changing the ingredients
of electronics, can it change the culture
around it? So instead of
going with wires and bread boards and so
forth, what happens if you start with
like paper and copper
tape and so forth?
And this is an idea that
was thought of by me
and we ended up starting a company
together. We actually have a company
called Chibi Products around this.
And it's interesting to note
that the company itself is actually
primarily female.
I think the last thing you want in
something looking to create change is a
group of men making recommendations about
what we should do for diversity.
And so
if you look at the initial results
of our experiment has been positive
so far. This is from GE's doctoral thesis
where she went and analyzed the sales
numbers of Chibi products from
the beginning to today.
In the beginning, we were 70 percent
male. The green section is male and the
red section is female.
And the blue is we couldn't tell from the
gender, from the name.
And then over time, we organically grew
into a more stronger female
audience. Right now we're doing about 70
percent female, which is pretty
interesting for an engineering
construction kit.
And something that I have been trying
to figure out is how do we go
beyond just simple circuits and into
something where people can learn or even
love to code.
And so we've come up with a learning
system that's aimed at increasing
diversity, particularly in computer
science at young ages.
And so analyzing
our experience in sort
of Chibi Tronic so far and try to think
about what were the things that
were important factors in
having it become more inclusive,
I find that balance was very
important. So we want to treat
engineering as equal to design.
Familiarity is very important in having
materials are universe that people feel
familiar getting into.
And also simplicity is also very
important. So we can go through each of
these three
principles in a little more detail.
So balance engineering is equal to
design. So there are many
good examples of, well, familiar with of
how design can revolutionize technology.
You know, the MP three player was sort of
a boxy, uninteresting thing until the
iPod came out and then the iPhone
clearly revolutionized smartphones.
And there's a thing where
blueprint's alone are kind of
inscrutable. If you just look
at the thing on the left, a thing on
the right, you don't really know what
it's for. It doesn't have a meaning to it
in and of itself.
But these are this is the code in the in
the prototype circuit for something that
was much more immediately relatable.
This is a the dandelion painting
that she did where she took
electronic circuits and put them on a
backdrop and then overlaid on top
of it a picture of dandelions.
And you can actually walk up to a blow on
it. And the white dandelions would like
let go of their fluff and drift across
across the page. So it's a magical
experience overall.
And so she's able to go ahead and
take, you know, what is inscrutable
and turn into something that's really
playable by combining engineering
and and design.
And so the curriculum that we've created
treats engineering design as equal
partners.
You start with an exercise, for example,
here to create a pressure sensor
and then you flip over the page and your
challenge of to tell a story.
Why why did you build this pressure
sensor? You can see the hint of it here.
There's a little heart. And as you press
it, there's the red light starts to glow
and then and then your challenged to go
ahead and draw a story over the blank
sheet.
And, you know, diverse
thinking is more inclusive.
I think. So when you.
Measure achievement only on one axis.
There's only one direction where you can
sort of get to any.
It's a sort of a thinning out of the
ranks as you get towards the end of the
axis. But if you go ahead and you say,
let's look at both engineering and
artistic ability and try to combine them
together, you have a much larger space
where you can create interesting things.
And it's important not to just
write it off as like I say, OK, well,
we're going to put boys on Axis and girls
on the other axis, like both
axes. You can have people who achieve
very well in either one.
But when you go ahead, you look at in
a multidimensional space, we have
orthogonal parameters.
You create a bigger space for
achievement.
And I think that can help get more people
involved in technology.
Familiarity is
the second principle and using
materials that are universal,
so familiar things are naturally
comfortable. So a lot of us started
electronics looking at breadboard on the
left hand side and there's
a little magic that happens them.
You have to sort of take them apart and
show the people the underside that shows
the wires connect underneath for you to
get them. It's not something that a lot
of people are familiar with initially,
whereas paper craft and
in the style that we use, it uses
materials like tape and paper.
You lay down the copper tape and that's
where the electrons go. It's very clear.
It's a very familiar paper is
universally familiar.
It's in everyday materials, books we
print on it. We you know, we use it for
bags. We make origami out of it.
Paper is also an incredibly expressive
material. So you can do
a lot of very interesting, interesting
things from the artistic side with paper.
This is a sample of of
artwork that was created as part of a
exhibition that my Kleberg
did.
You can go to paper curiosities that
media at MIT to edit to check out more of
them. But there's a lot of really
fantastic things that people were able to
do with paper and just light.
And we want to extend that to even more
with with programing.
But not only is paper and expressive
mature, it's also an engineering
material. This is a picture of actually a
quick prototype that Zorba's came up
with of a biased
network for a split core transformer
just means need to come up with like a
circuit board instead of taping a whole
circuit board. Let's go ahead and just
use paper copper tape and make it all
happen. And it's really interesting that
you can see it's self documenting, right?
You don't have to guess what the value
is, where where things went.
You can write on the paper and it just
all comes together. It's working with
actual and through whole components.
And so paper versus bread
is an interesting sort of comparison.
And I have the two side by side here.
Paper is compatible with both surface
and through whole types with breadboard
can only do through whole paper
natively supports comments,
whereas breadboard. So you can't really
write on them paper.
You can. You can. It's thin and flat.
You can fold into three D shapes.
So when you're done, if you want to go
and fold it over, you can just go ahead
and do that. You can't do that with it.
With a breadboard, the substrate
cost is practically free, but boards
are relatively expensive.
But on the downside, the substrates are
not reusable.
You may require some soldering and the
components are typically not reusable,
which has been a barrier for us to try
and get into more expensive stuff like
microcontrollers.
And so G came up with this
idea of
putting a microcontroller on essentially
a paperclip.
But a notebook clip.
This is a picture from our thesis top and
we've been refining it into the thing
that you see below, which is a rigid flex
circuit board circuit board,
which has a rigid portion of the PCB and
a flexible portion of the PCB.
And we can use it to wrap around the edge
of a clipboard so you can go ahead and
wrap it around the edge of a clip.
You can craft circuits on pieces
of paper, you can let
it down, and then the circuits themselves
are in contact with the microcontroller.
And so this is a very familiar format.
You don't have to explain to people a lot
about how to get started with this, what
to do about it. You just show someone how
to use it. It's very natural.
It's very easy to use.
So we're working now on a sort of a
general notebook clip type prototype
where you just go ahead and you put your
your microcontroller on a clip.
You go ahead and clip on the edge of a
piece of paper notebook and in your off
encoding.
But the final thing that's very important
is simplicity. How do you actually get
code onto the device in the first place?
Great. You have a piece of code, but then
what? Like, you know, just like step two,
step three profit write like what's the
step two?
It's hard to get code into a
microcontroller.
Right? It's like you have to have a cross
compiler and then you have to have some
drivers and bla bla bla bla sort of
stuff. And the thing is configuration
isn't science or logic, right.
It's convention. Like you may be awesome
at like command line stuff in
one distro of a one, two or or
whatever, Linux.
And then you go put some puts you in
another machine like a Windows machine
like where the hell do I like configure
USB drive. Is that whatever it is, it's
not it doesn't require someone to
necessarily be intelligent, to
understand, to configure is just you have
to know the conventions.
And the problem is, is that when people
ask stupid questions, they're like,
just read the fucking manual.
Right? There's like this like this is
very sort of Kostic environment starts
coming back at them. Why are you.
Asking me stupid questions, you should
know these things already, and so we
really want to avoid pushing people
into that sort of cultivar to fit into
being otherwise you just start creating
more of that sauerkraut culture again at
the end of the day.
And so the challenge we were faced was
finding an interface is truly universal
to program a microcontroller.
There's things like USB and lightning,
but all the required drivers and so
forth. But then there are things like
eyes and ears. We all these are how we
interface with our computers, the analog
holes, so to speak. Right.
Years are pretty universalize, are pretty
universal. So I looked at those
interfaces as options and sound
is simple.
It's ubiquitous as good browser support
headphones are on everything, almost
everything. I don't, you know, want
to have to use your proprietary
fucking ugly microwave
transmitters in my ear to listen to
sound.
But more importantly,
sound is also data capable.
So.
If you use
sound, we finally have an ability
to use
the cloud and sound to upload compiled
code, and so I'll
talk a little bit more about how we make
that happen. This is where the talk
starts to get a bit more geekier.
It turns out that making things simple is
really, really hard.
We've been trying actually for over three
years to kind of make a version of this
product.
The first two generations were completely
stymied by configuration problems.
We tried doing generation one generation
to where you can see on the bottom here
are at tiny based microcontrollers,
which were really difficult for people to
use.
Gen three was sort of like the prototype
that we came up with.
And Gen four is where we're kind of
finally getting to something that we
might be able to to share.
And we design it from the bottom up for
simplicity. So it goes through the
infrastructure, like how do we get,
you know, code turn into sound
and get into the microcontroller.
So we'll start with what I call the
failure kind of loosely a failure.
We use APHIS, K modulation, audio
frequency shifting.
We use two tones to represent
a binary zero one.
It's exactly like those old modems from
the 70s, the eighties.
I don't know if any of you old enough to
remember it,
but we use
eight point six kilohertz and twelve
point five kilohertz roughly, and
we pick the tones to be MP three
survivable. We want these songs
to be able to be encoded to be 3s and
played back so you could share songs
and not just source code if you want
to. Later on.
There was a bit of a challenge
implementing this because we want to
pick an MCU that had a price
of under one dollars because that rigid
flex circuit board you saw where we had
part of it rigid, part of flexible is not
cheap. That actually runs
up the cost quite a bit.
So we had to find other ways to to keep
the cost reasonable
when we also, in addition to be under one
dollar, had to be able to do about
20 Mega Macs per second performance,
had to integrate ADC open source
friendly. It was very important to us.
And we also wanted to be backward,
compatible with a lot of the community
stuff in Ardino.
Here's a kind of a big
chart of some microcontrollers
that were considered from the ambiga at
that tiny general plus and Bubalo and
so forth.
There are definitely some cheap market
controllers you can get out of China, but
they're not very open source friendly.
So we kind of threw those out.
There's some very popular ones like the
at Mega, but they don't have the
performance and they're also very two way
too expensive. And then you get down to
some of the other ones, like the Piecyk
for the XM seven thousand LPC series.
And basically we found is anything under
one dollars that range didn't have the
performance that we needed, which
left us with basically one of two
options, either ASTM three to the
ELIGIO series or the kiddo's Caillaux
two.
We settled on a Cornetist that's
currently one of my favorite series,
probably mostly just personal bias.
I guess it's a forty eight
megahertz cortex M0 plus,
which means it does a thirty two bit
single cycle multiply.
Very important for the DSP has
32 K of flash twelve bits Zadak
in volume it's about 90 cents to ninety
seven cents which is good.
There's no NDA required for the
documentation and unlike the system.
Thirty two it has fast
band capability.
One of the weird things we found about
the same thirty two is that we want a bit
bang. There's this I guess a feature
where they try to do a synchronization of
rights through some sort of gateway into
the GPL. But it would like means that
your maximum bit rate, bit being rate was
limited. It would cause trouble for
things like driving
twenty twelve LEDs or doing use B low
speed.
This is the data sheet for it.
You can go online and read it and look it
up all you want.
When it comes to connecting audio, there
are three issues you need to solve.
You can't just put it directly into the
microcontroller. You have to fix the DC
offset. We have to think about the
connector costs and height in the cabling
issue. DC offset is important because
audio itself isn't necessarily,
you know, it's basically an AC coupled
system, which means half of the the
the waveform is going to be below ground.
If you feed that into the microcontroller
directly, you only get half your
waveform. So we have to recentre the the
the audio.
Second is the connector cost and high
audio connectors aren't free.
They're also thick.
So they're five millimeters tall.
The tallest component, our board
otherwise is one point seven millimeters.
If you want to be Papakura friendly, we
really want to make it thin so you can
fold fold
paper over it without having a big lump
in the way.
And also cabling quality cables are
expensive and
cables are also easy to use, especially
in the classroom. If I have to have the
teacher with multiple cables to plug in
their computers, they're going to lose
some. It's going to be frustrating
experience for the teachers.
So we came up with this kind of
hybrid solution where
we designed a cable that uses the fifth
pin on USB.
If you look at USB, it's commonly
known as a four pin standard.
But the connector.
Has his fifth pin, which is which
identifies whether your host or device,
we just sort of say we don't need that,
we're always going to be a device, we
don't have to have a capability, and we
just wire the left audio
feed into that pin into our device.
And then we created a Hydra Y shaped
cable that gets
us roughly two cables for the cost of one
and a half.
So it helps us save costs.
It solves the thickness issue.
And the solution ends up looking a little
bit something like this, where you have
one thing plugging in to the USB micro
connector and then you have ahead
of both an audio connector and a USB
connector for power
electronics solution, we
couple with
an answer to our network, to
our network to center up the audio.
The one Volpi topic of audio centers up
nicely into three point three.
What range of the ADC?
SK waveforms are pure sinusoid
so we don't have to worry about DC
balancing. That's cheap couple since
it turns out that there's
a bootstrapping problem. If you ever
touch like a Mac book or something
and you feel that sort of like buzzing
sensation off of it, that's because
the case is like floating up to like 50
volts or something like that.
Right. And so when you go ahead and you
plug a headphone jack in, there's
this awful pop that comes out and that
pop is actually enough to go ahead and
put the microcontroller that we have
into latch up.
And so we have to put these like diodes
to absorb all of that voltage difference.
And when you first plug it in and that's
actually the most expensive part of the
design, it's seven cents.
And then and then we wired
up the B, D plus D minus lines
PHMSA. Why not?
And it turns out, well, if you went to
Seans excellent.
Yesterday he implemented low speed USB
stack that allows us to essentially turn
LDC into something like it, make you make
if you want at the end of the day, or you
can just use the non-complying bug port,
you get your ARC's and out of the thing.
So in the software side, we just do not
coherent kadia modulation.
It means we involved incoming samples
by the sign cosine of each frequency.
So we have to do four convolutions, each
convolutions a series and multiply
accumulates. That's 250 multiply Kumuls
per sample at a sampling rate.
That's 20 million multiply combinations
per second, hence the performance
requirement of the MCU.
We sort of started from the modem
and sort of refined
it until we have what we have now.
You can see the two repro links for
it at the three JTC setting.
It uses about sixty five percent of the
CPU, so
there's not a lot of CPU left over for
doing anything else. If we miss a packet,
there's not enough RAM for me to buffer
anything. This all has to happen online.
So if we have to do CRC or hash checking
or for error correction, all has
to happen in parallel with with the
modulation of the audio.
And so this gets me into what I call the
Mac layer. It's not really a Mac layer,
but this is sort of like how we deal with
sort of errors and so forth.
The audio starts with the Herald,
a control packet.
If you actually listen to the
stream, you'll hear a little versus
static and then about a one second pause
and then the other stuff coming through.
The reason why the Herald packet comes
first is that you want enough time for
the microcontroller to erase its flash
block. If it if if it's going to be
reprogramed.
Otherwise you're sending data.
Well, it's flash and that takes a long
time.
Every single packet is protected
with a minimum of three hash.
We pick that because it's thirty two bit
hash and it's fast and small
and we have to compute this in line with
SK.
We couldn't do anything like five or
anything more computationally expensive
because we just couldn't fit it into the
inner loop.
We also had to do some bad striping.
So in order, in order to recover
the board rate, you have to have enough
transitions. So we do a simple thing and
we xor every seventh byte with five, five
and every fifty five.
With AA, we get enough transitions
with typical computer code.
I mean of course you can create something
pathological that doesn't work for this,
but usually compiled
code doesn't have a pattern that matches
up exactly to that.
And, and then the data
packets himself a sync header version,
some sequence number and the whole thing
is again protecting the hash.
And then our factor for error correction
is we transmit the data three times.
So pure
redundancy, it's not really like XY
or anything like that.
And the reason why we had to do it, this
is there's no back channel like
microphone pendants aren't standard.
If you ever try to take an Android
headset, plug it into an iPhone or vice
versa, you you know the frustration.
And we want to avoid people having
unexpected bad surprises.
So we had to build a protocol that was
feed forward. Only errors do
happen in transmission. So, for example,
if you're programing for a smartphone and
someone sends you a notification in the
middle of a ping, and that will cause an
error, which will make your packet go
away. And so we have to do a
transmission and we find that three
times is is enough to basically get
through almost every condition.
And also because 60 percent of the CPU
and almost all the RAM is used for
demodulator and there's no CPU arama for
any error correction code like Heming
or that we just rely on redundancy and
pre.
A little more about the next flare up
once you get the code in, what happens
next? We have an audio update or
bootloader. If the code's good, we jump
into Chiba's, which is a full
multithreaded Michoacana
OS and has
a bunch of application threads beneath
it. Out of the three to Kayin Flash,
we use twenty two K for the bootloader
six calls in the OS a bit for
some signature and interruptible
management and it leaves nine and a half
K for user application code.
Now Chbosky, even though it has named
chivvy has nothing to do with Chibi
Tronic. So I want to be very clear in
that it's made by this guy Giovanni
de Sirio.
He's it's very actively developed
and maintained.
I'm particularly fond of the OS
and the TV is just borrowed
from Japanese, which means cute or tiny
or small. So it's appropriate.
In both cases.
The Chiba's itself has a high abstraction
period of multi threading semaphores,
kyuss, synchronous
thread, safe memory pools and Elkader.
So it's a very it's a feature full
feature rich OS.
It fits in a few kilobytes
jobs added to it, a Cisco extension,
which allows us to essentially do dynamic
linking users to arms.
We see call mechanism to create two and a
two hundred and fifty six thunks
that allow us to share our space
code with the application code to
implement the Arduino emulation layer,
Epuron, hybrid emulation, all that sort
of stuff. And the reason why we did that
is we had to fit within the patients of a
child constraint.
So eight thousand bits
per second means about one second per
kilobyte of code uploaded in a child
will lose interest in about five seconds.
OK, now the children aren't listening
anymore.
Basically, the baseline Ardino
zero binary was about eight kilobytes
when we first started looking at it and
then we've been about eight seconds to
just get the baseline.
And so we wanted the average binary size
to be less than a kilobyte.
So we did this, the Cisco extension,
to try and preload most of the bloated,
commonly used libraries and our doing
like floating point operators and string
operations and also try
to streamline the general loading process
as a whole. So typically,
the average getting kind of a world
getting started binary is just a few
hundred bytes and even
the bigger programs are only a few
kilobytes. And so when you want to
compare the available code Space Odyssey
in Arduino versus LTC, consider
that we've already preload about 12
kilobytes of of libraries.
And significantly, I wanted
to make sure I wanted to make a product
that was not just for kids,
so the LTC itself
extends from novice to startup.
We want to create an onramp that
can eventually lead to professional level
development. I didn't want to create
something where if you got into it and
you just sort of ran off a cliff and you
couldn't go any further.
So, for example, the threading APIs
are exposed and assist calls
the we want to make direct OS
a bootloader development possible via
open OKd. If you saw Zabar talk
yesterday, you would know how to do that.
We made sure that the hardware components
were China ready, but also
compatible with small scale prototyping.
So if you were to get into this and say,
hey, I've built something and I want to
make a few more of them, you have the
option of both going a digital key.
And if you want to build even a few more
of those, you have the option of going to
China.
And both of them are very low friction
in that case.
And of course, everything's all open
source can go to GitHub and
either to mine his rebote.
You can find all of the the stuff
there.
That little section down there is
just a display of the multi threading
interface inside Chbosky.
And so finally, talking a little bit
about the the experience later, the user
experience,
it's important that we had a very sort
of simple user experience at the end day
that just always worked.
So it's a Web based
interface where where you can go ahead
and code and you can pull up some
examples and
then just hit upload and it starts
playing out your compiled code as
well as sound.
There's a little bit of stuff behind it
that had to be implement to make that
happen. So we have Web
videos and examples that uses Code
Mirah as its base and
you can store your sketches locally using
Web storage. But if you want to go ahead
and, you know,
share your code, we would like to point
people towards GitHub because that's
that's where we should point people.
I think
the final C files that
you want to upload are then sent to a
server.
It's a it's a docker image that's Cuban.
It already turns
into a binary which is sent back to the
browser. And then there's a web, an audio
modulator that attempts to
modulate it using web audio or wave
via JavaScript.
And if an error happens, we actually have
maybe three fallback mechanism where
we would then modulate on the server side
and MP three, send it over and then have
to do an MP three player embed
the compilation server requirements that
we want to have like very minimal
bandwidth requirements.
So we want to be able to run the server
like forever and not have to be
burdened by its its cost.
And so the average sketch is about a
kilobyte in the average binder's about a
kilobyte when you want
to buy this thing. Visiting our store
pushes over megabyte of content.
So we figure that was fine
if we were willing to to serve you the
images to to to
buy this thing, we can certainly serve
you the bandwidth to compile for it for
quite a long time.
The overall design itself is stateless,
so it's legally difficult to obtain
consent from people who are under 13
years old to store their data.
And so it's a very important feature to
us that we have no user accounts.
We don't want your stinking data.
And if you want to go ahead and share
with people, you go to get Hub and you
and you and you share it via their
planned future. But we should have that
in this greatly simplified
scalability maintenance.
So as we need to go ahead and scale up,
we just spent more instances.
If one of them falls over, we don't care.
We know there's no databases to restore.
There's no concerns about
losing user data and whatnot.
And so you can go ahead.
We have some darker images.
If you want to spend them up and run them
yourself and reduce our load, you can do
that as well.
So our audio modulation,
we needed a just works method
that doesn't involve uploading kilobyte
audio files.
Web audio would have been ideal,
except that as of
like late 2013,
it wasn't supported in OSX.
And if you look at sort of the school
environment or kids, a lot of times kids
are getting hand-me-down phones from
parents.
And so 2013
is kind of the range you start bumping
into. When we did, early tests and field
trials are finding kids are like, oh, my
browsers too old, I can't modulate
the modulate.
So you go into wave,
which can be generally browser side by
JavaScript and now you have eighty nine
percent of the browser supporting this
and you have to go all the way back to
two thousand nine to really old versus
Safari before you
lose support for that.
That seems all good, except there's like
this red column on the left, which
is Internet Explorer and you're
like, oh, why do we care about Internet
Explorer? It turns out that twenty seven
percent of desktop installs are Internet
Explorer. That's as of August.
Twenty sixteen Wikipedia, if you can
believe it. But what we're finding in
particular is that it's
significantly highly used in schools
and institutions with inflexible IT
policies to get windows install it.
They don't want you install anything on
these things. And so you're stuck with an
explorer and a lot of school
environments.
And so in order to handle that situation,
we offer we would fall back to the server
side codecs and an empty three file,
which as of I9,
you can go ahead and play that.
So hopefully this gets us
pretty good coverage. It's about ninety
three percent of the browsers out there.
So the net result at the end of day
whoops of all of
this is that we have
broad compatibility and
simplicity and ease of use.
We have a device that can be programed
with everything from a smartphone
to a laptop to even if you
had a high enough fidelity record player
or cassette tape, you could go ahead and
record your songs onto those.
Part of the idea that this is that we
wanted to try and draw in people
who would even be afraid to code in the
first place, but had some desire to
customize their technology.
So if you're a crafter and you want
to create a certain pattern of lights and
you don't think coding is for you,
we want those people to be like help.
You know, I want to have something that
does this sort of thing and.
Someone could share you their song and
they could then program it and be like,
oh, hey, look, I can control
I can modify my technology, this is
something I can do.
But then hopefully they would be like, I
want to do a little more. I want to learn
more. And then they then it's like, well,
maybe I should just look at the code and
they find it just a bunch of numbers.
They change. All of a sudden they're
sort of tricked into getting into the
whole coding exercise
by by sort of being
pulled into the idea that technology is
something they control and not something
that they're sort of beholden to at the
end of the day.
So LTC fosters diversity through
a combination of of balance,
familiarity and simplicity.
You know, we look at
making sure that the curriculum itself
balances
design and engineering,
and we try to use familiar
interfaces materials
such as paper and copper tape
and so forth, to try and
bring more people in.
And we shoot for a very,
very simple experience
getting started through the Web
based interface with the audio upload.
So at the end of day, opensource is
built on inclusiveness, it's
not just about sort of committing and
forgetting, it's all about
pulling, emerging and talking.
You'll have to always take the pull
requests. But it's really important to
accept new ideas and
to improve the code base.
And so if we care about
open source, we need to empower more of
society to understand its value, or
society can determine its value for us
in a vote. And if they don't understand
what they're voting on, it could it
could be that it doesn't necessarily go
in the most enlightened fashion.
And so that's why talk
about the love to code platform.
We'll have a beta in twenty seventeen.
You can follow Chibi Tronox or visit
sheepishness that come from our updates.
If you go to the Faile overflow assembly,
this is a picture of the sign there.
The little lights on the bottom of the
of the failover for light are being
driven by an LGC microcontroller right
now. So you can walk
over there with your whatever device you
want and go to LGC Zao,
which is the current staging server for
the latest stuff.
Plug in the headphones, write some code
press and hold with the microcontroller
and hit upload and see what happens.
I think it'd be I mean, we are looking
for more evidence to see if our
stuff works truly across platforms.
So if you come by and it doesn't work for
you for some reason, we'd like to know
what actually has
gone wrong.
And that's it. Thank you.
Thank you very much, Tony.
And now for questions.
Do we have any questions from the
Internet?
And while we're getting questions from
the Internet and the like, working for
the signal angel, you can stand
up towards the microphones if you have
any questions in here.
And while we wait, we can have another
round of applause for Bunny.
Could we have a question from microphone
number one, please?
Hi, buddy.
First of all, thanks for the talk.
I've noticed that for the
development environment, you are using
Arduino flavored C++.
Are you sure?
Are you sure that's a good thing for
beginners?
Yeah, that's that is actually an
interesting debate.
So there are blood
based programing languages like Scratch
that are very good for beginners and
we have active efforts to also
develop that as well.
It's kind of my feeling that
I want, though, to create
an onramp to get people like I'm
targeting, sort of like people who want
to go to undergraduate level college
courses.
And so if you enter one of those
situations and you've only been doing
like block based programing and you
haven't seen the syntax and dealt with
semicolons and stuff, then then
it can be a little overwhelming.
And so I also don't necessarily think
that C++ or their libraries
are necessarily the best introduction,
but it's very well community supported
at this point in time.
I think there's like sort of like a
daydream that maybe we would do, like
we're talking today, like a rust based
system that could let you compile
and upload code to it or something that
that is kind of neat, neat and cool.
But the problem is, is so few people use
these languages. If people had questions
like we wouldn't have anyone to answer
them.
So I see.
Thanks. I have a question from
the Internet.
Hello. Um, there's a question from Iasi,
and it's a bit long.
How can we tackle stereotypes when the
image of the sweaty male teen in a
darkened bedroom hacking the planet is
the mainstream? I see this as a lack of
understanding of a whole number of
factors, notably lack of understanding of
the capabilities of computers and how to
use them.
The why, the lack of diversity in the
sciences, as well as cultural ideas of
what an office run by mail management is
like. How do you think that we can tackle
this type in culture?
All right, I
hope that was that was a lot of words,
which I which I think I'm trying to
trying to even pass in my head, I think
had a buffer overflow about halfway
through that,
I think.
So I caught part of it sound
like there's an issue with the stereotype
that exists in society.
But then then the question was, how do we
tackle that stereotype?
I guess I
mean, I guess the guy's not here, so he
can't answer.
Yeah, OK.
Um, I mean, I think I think by
just in general, like
like what we're proposing here is like it
starts from the beginning just becoming
more inclusive at a base level and
changing the culture and getting
more people involved.
That stereotype will naturally sort of
melt away as it becomes more inclusive
and more people become involved.
I think, um, I don't think
it's something that.
Yeah, it's not something that we that
you. How do you say you
can't?
And, um, I'm
having to struggle to find the words for
what I'm trying to say here, but I think
that basically at the end of day, the
theory that I have is that if if we
aim to be more open minded as a community
and if we aim to be more inclusive,
particularly at the beginning, the
culture should naturally grow into
something that has, I
think, less of that stereotype around
that people become more aware as more
people can become aware of how
we are and how we operate.
They will. They will they will say, hey,
that's not the stereotype anymore.
These people are all like that at the end
of the day.
I think so.
I have a question from microphone number
four.
Hi. Hi.
Yeah.
So my question is a little bit related
to the last one.
When I was younger, I was very
curious. I actually wanted to learn
program and more technical stuff, but
I just couldn't I didn't know how
to get the information.
Our school didn't really have a program.
So with your product,
you're offering a great
a great opportunity to learn.
But the problem is to get
it to the people who want to get
involved. So do you happen
to have a program?
Are you involved with school,
with schools or people?
Yeah. So that's a good point.
Availability and getting
these things into the hands of people who
want to do is very important.
And so absolutely.
Yes. I mean, one of the the core focuses
of of cheap products
is schools.
We we do a lot of outreach
and we try to engage with them
directly.
It's kind of
my marketing manager go kill me.
But it's like a secret that every school
has to get 20 percent off.
Right. Just just for asking and saying
you're a school. Right.
And then and so and so forth.
So, so like.
But the thing is, is like we want to give
discounts and get it into schools because
that's where it makes the most difference
at the end of the day.
Another thing is like when we were trying
to put together a supply chain and, you
know, there's a lot of effort. We went to
actually getting the stuff to fit in this
really low power, low cost
microcontroller at the other day.
And a lot of that boils down to like the
cheaper we can make it, the more
accessible the technology becomes.
And so we wanted to be able to create
something that comes at a price point
that schools could afford and get into
a situation now that they're
unfortunately like schools that are so
poor they literally can't buy dirt like
we were contacted by school in Pasadena
who was interested in it.
And they're like, you know, to give me an
idea of a situation, we had to cancel the
gardening program because we couldn't buy
dirt for the gardening program.
I'm like, OK, like I really
want to help you. But but
there's some other major socioeconomic
issues happening when your school is
underfunded to that point.
And we have to address those problems
maybe separately. But ideally,
we can we can get this into as many hands
as possible by focusing on the schools,
really. And we have at least three more
questions. So please remember questions
and comments.
Microphone number three, please.
Uh, yeah. First of all, great work.
I really like the idea of uploading code,
using audio. So I have a question to
the technical aspect of this.
So why didn't you put a microphone
on the PCB so you don't need to.
Why?
That's a good question.
We had thought about that and I thought
that had been really cute, except that
when you consider that you have a
classroom full of students and they're
all trying to program
and then you have students programing
other people's stuff into A,
it's noisy and B, it becomes just a
lot of crosstalk.
Um, it's
certainly possible to do it microphone
based. But we decided that it would be
more you know,
you get less crosstalk if
you use it headphones directly.
Yeah. Good point. Thanks.
Microphone number five.
Questions gone, microphone number one,
then, yeah, my question is,
did you look for
I mean, the I see
through demurely
official directly, so
you don't need the processing power on
the microcontroller itself.
So did you look for those?
I saw a separate icey that could do the
Şafak modulation directly, so I didn't
have to do it on a
wider range.
Microcontrollers.
Right. Right.
So some sort of hardware assisted
situation for doing this.
I mean, it it turns out that when we're
in this sub, one constraint like
like even adding an op amp on the
outside, for example, I talked about
the DC level adjustment,
like we thought about using OP amp
initially that we've added like 10 cents
out of every 10 percent of the
microcontrollers cost.
And so we're getting down to optimizing
pennies, adding a whole nother another
package integrated circuit outside to
handle the K is like a DSP or
a prepackage solution.
It would have to be like under ten cents
for it to be worth it.
And those like that type of technology
isn't really available today in that low
cost because I mean, partially because no
one does, no one does affect anymore.
Like the modem chipsets are all dead
and buried in like one micron
CMOs anyways.
So, um, so
yeah. I mean it would have been great if
we could find something that could
offload that from the CPU, but we
couldn't we couldn't find anything like
that.
We have one more question from the
Internet and then we might try and
squeeze two more questions in.
OK, question from Twitter.
Do you know about the Calliope Mini and
the McRobert Edu and are these comparable
to your attempt to Kallio
Mini? And the micro bits are what
my Cubitt audio you said, um,
that was not included in the XML.
Let's try and see that answer.
I do.
I do know about the micro bit
and that one's a very interesting one.
I was I was trying to hear said that
Microfit audio was like, oh, do they are
they doing audio programing too or not.
But I think the MacRobert is more
conventionally programed
microcontroller. I haven't heard about
the other one, but as
far as I know, I think we're the only one
that does a SK based
programing, audio based programing,
which allows you to sort of open up to a
much broader range of devices of the
reason it turns out that
it was so important for us to get into
audio programing is that a weird
thing is happening in the world, that
kids don't have notebooks today.
They don't get laptops.
The first computer kid gets is
a tablet or a smartphone.
And so when they particularly a younger
age, if they're introduced to coding and
they give me a homework exercise and they
come home and say, Mom, Dad, I have to
use your like your work computer
to do my homework, they say like,
sorry, use your use your smartphone.
Right. And so and so
we really wanted to create something that
would enable
kids who are then the dominant thing to
get you to, say, a smartphones and
tablets to be able to try
to learn coding. It's admittedly very
difficult to code on a touch
screen because touchscreen keyboards are
crap for that. But I'm really hoping that
I think that's a problem that's solvable.
If someone actually cared to write a
better keyboard interface for coding,
it's like right now they're all just
optimized for texting.
Microphone number two.
I'm kind of surprised the
the taping down copper
and soldering on paper works as
well as you like.
Did you have problems that you had to
solve to get that to work?
And is soldering is
there not a better option than suffering
for for that?
So so maybe I didn't make this very
clear, but so so copper tape
and paper works great, first of all.
I mean, copper tape itself has a nice
property. It's very easy to cut into
finer pieces. So if you need to go a
finer pitch, you just slice off a piece
and you can do like sixteen's and
associates and stuff.
The soldering is only necessary if you
don't have a Saulteaux method.
So the typical way we do
teach with, for example, the LEDs that
you have sticker's, we actually use a
conductive adhesive on the back
of flexible circuit circuit board so that
when you craft your first circuit, you
just lay down copper tape, you put
a sticker down, you fold over the corner,
put the battery in, it lights up.
So there's no soldering involved.
That's that's actually one of the
constraints of our technologies to
get the dangerous soldering iron.
Apparently, soldering is forbidden in the
center. We were told that earlier, like
it's a dangerous activity.
And so we had to get that out of the
classroom.
And so and so.
So, yes, actually, once once you get into
the once you have the conductive
adhesives, it's pretty easy to
use. And surprisingly,
like paper itself is doesn't burn
at all when you saw to it,
that's that's something that originally
when when G showed me the technique, I
was like, can you really do that?
It's going to catch fire.
And they know it's actually it works
pretty well. The copper tape itself is a
really good heat sink, so pulls out
almost all the heat away from that from
the paper. I mean, if you just stick that
Sadr tip on the paper, you'll burn a hole
through it. But if you're soldering the
copper tape itself, so much heat gets
whisked away that it doesn't end up
affecting the paper.
Good, excellent. I think we don't have
any more questions, could you please give
a warm round of applause?
Thank you.