►
Description
For the past 15 years, Arduino has been the gold standard for introducing people to Embedded Systems and programming. This talk outlines 5 steps that Rust can do to increase “market share” in the hobbyist sector.
Some of these steps are already in progress and will require little extra effort. Others are not obvious and will require resources to be allocated to them. These are not traditionally core to the Rust project and would require alternative processes to be set up.
By doing this work, however, we can increase the visibility of Rust in the Embedded space and have more Rustaceans trying to increase software quality in a fast growing sector.
A
B
Hellos,
yes,
so
today
I'm
going
to
be
talking
about
how
I
think
rust
can
be
the
next
arduino
in
approximately
five
easy
steps.
Although
counting
these
steps
hasn't
been
done
yet
so
keep
your
own.
B
Count
so
I've
been
a
software
engineer
for
eight
years
I
have
a
number
of
hobby
electronics
projects
on
the
go.
I
got
my
first
arduino
as
a
birthday
present
back
in
2009,
it's
an
original
arduino
mega
and
I'm
looking
to
move
into
rust,
full
time
specializing
in
embedded,
iot
prototyping.
B
So
why
do
I
think?
Why
should
rust
become
the
next
arduino?
So
the
first
thing
is
to
expand
the
influence
of
rust
in
programming.
Generally,
a
couple
of
the
questions
already
have
outlined:
how
getting
students
in
it
sort
of
at
the
ground
level
will
increase
throughput
increase
the
usage
of
rust
in
industrial
sort
of
applications
also
increase
the
chances
that
newcomers
to
embedded
systems
do
things
correctly.
B
Everyone
knows
the
pitfalls
of
trying
to
have
a
register.
Do
two
things
at
once,
but
that's
only
something
you
can
sort
of
get
with.
Experience
also
decrease
the
frustration
with
embedded
systems,
so
florian
tweeted
yesterday,
how
all
their
all
their
workshops
just
worked,
and
that
is
that
is
definitely
a
great
feature
of
rust.
I
experienced
it
last
year
when
I
was
doing
the
workshop.
It's
like
wow.
This
is
really
simple,
so
bugs
are
caught
early,
which
is
always
good.
B
B
A
lot
of
things
just
work
so
particularly
when
you're
looking
at
abstractions
and
different
peripherals,
making
sure
that
all
those
work
together
is
very
important,
and
the
perennial
example
that
I
come
across
when
I'm
using
arduino
is
ethernet
like
there's
a
lot
of
ethernet
libraries
and
who
knows
which
one
actually
works
for
your
particular
board
and
better
testing
regimes.
So
we
do
have
cargo
test.
B
There
were
some
limitations
brought
up
earlier
today
about
how
that
might
not
be
ideal,
but
I'm
certain
we
can
sort
those
out
it's
easier
to
sort
of
just
hack
together.
You
don't
really
need
to
know
what
you're
going
to
be
producing
before
you
start
in
in
reddit.
There
was
a
sort
of
a
thread
about
talking
about
compiler,
driven
development
and
that's
very,
very
true.
I
use
I've
started
using
booleans
as
my
type
when
I
don't
know
what
the
type
is
and
the
compiler
will
tell
me.
B
And
finally,
it's
a
lot
easier
or
a
lot,
a
lot
better
to
go
from
proof
of
concept
to
production
using
rust,
again
they're
moving
to
an
a
and
moving
to
a
professional
board
is
perhaps
a
little
bit
harder,
but
from
the
software
point
of
view,
there's
actually
not
that
much
different,
mainly
around
error
handling
and
dealing
with
edge
cases.
B
So
there
are
three
important
projects
in
the
hobby
firmware
sort
of
sector
that
I
want
to
talk
about.
Obviously,
the
first
is
arduino.
It's
very
popular.
It's
used
by
a
lot
of
beginners
there's
a
lot
of
educational
resources
courses
trainings
all
that
jazz
and
they
do
hardware
firmware.
They
have
their
own
firmware.
Libraries
they
have,
they
have
their
own.
Ide.
B
Second,
is
embed
by
arm,
so
it's
developed
by
it
has
more
educa.
It
has
educational
resources
that
are
more
tailored
towards
the
professional
sport
aside.
They
too
also
have
their
own
firmware
library
and
they
have
an
online
id
and
it
is
in
fact
compatible
with
gcc,
so
that
helps
avoid
vendor
locking
and
their
hardware
is
done
by
other
companies,
so
they
those
other
companies,
have
the
embed
logo
on
their
board.
B
Finally,
we
have
raspberry
pi,
it's
primarily
a
single
computer,
running
linux
on
it
and
they're
more
focused
on
the
os
development.
B
They
have
a
lot
of
educational
resources,
that's
devoted
a
lot
to
children
and
younger
people,
but
I
included
them
because
they
actually
have
a
very
interesting
company
structure
which
I'll
get
to
towards
the
end,
so
the
story
of
embedded
so
far
in
in
the
hobby
sort
of
area,
I'm
making
a
very
sweeping
assumption
that
embedded
rust
is
more
of
an
ecosystem
rather
than
just
a
programming
language.
B
B
Current
guides
are
good
enough
for
an
intermediate
user
to
get
going,
but
would
probably
struggle
for
someone
completely
new
to
embedded
systems
board.
Support
is
a
bit
mixed
and
a
good
experience
is
chosen
by
the
a
good
experience
is
defined
by
which
board
is
chosen.
B
So
the
dwm
1001,
which
was
used
last
year,
has
a
pretty
good
board
support
crate,
something
more
like
the
the
atmel's
sam
d's
are
a
little
bit
more
limited
in
their
board
support
and
you
sort
of
need
to
have
a
general
understanding
of
what
a
peripheral
is
in
order
to
really
have
a
good
go
at
at
embedded,
rust.
B
So,
first,
first
cab
off
the
rank
is
ide
support,
so
the
preferred
ide
for
developing
rust
probably
does
need
to
be
free.
I
know
there
are
some
good
stuff
with
the
jetbrains
ides,
but
when
we're
talking
embedded
when
we're
talking
hobby,
it's
all
about
price,
so
no
cost
is
always
going
to
win
out
over
some.
B
The
arduino
ide
is
not
actually
that
very
good
it's
written
in
java
and
that
has
sort
of
led
to
some
anachronisms,
particularly
in
the
error
handling.
The
messages
are
cryptic
at
best,
nothing
like
programming
in
something
c
like
and
getting
a
java
error.
B
However,
it
does
have
a
good
library
manager
for
a
c
or
c
plus
plus
based
system,
and
it
does
in
fact
have
a
good
board
manager,
so
you
just
drop
down
the
menu
and
you
can
select
what
board
is
what
board
you're
programming
so
the
required
improvements
on
the
rust
side.
So
we
need
to
sort
of
have
board
selection,
support
or
automatic
detection
and
from
what
I've
understand,
probe
irs,
developing
some
of
the
developing
data
to
sort
of
fit
this
niche
application
is,
is
probably
a
good
idea,
adding
clear,
build
and
program
buttons.
B
I
haven't
written
an
add-on
for
visual
studio
code,
but
I'm
sure,
with
microsoft
support.
We
can
add
that
in
a
crate
management,
gui
a
nice
to
have
many
many
other
users
of
rust-
probably
want
that
as
well.
B
A
good
thing
I
found
with
the
arduino
ide
serial
monitor,
particularly
when
you're
using
a
serial
port
to
program
it
having
them.
The
serial
monitor
able
to
automatically
switch
between
the
two
is
very
handy,
so
memory
management,
so
many
base
projects
include
a
memory.x
file
having
some
sort
of
standardization
or
automation
or
gui,
for
that
is
pretty
important
and
also
being
able
to
burn
on
particular
boot
loaders.
B
So
there
aren't
that
many
bootloaders
in
the
embedded
rust
space
yet,
but
hopefully
there
will
be
soon
and
being
able
to
build
and
put
that
onto
the
board.
Automatically
is
a
good
thing.
B
So,
on
crate
support,
basically,
we
need
more
board
support
crates
up
to
a
fairly
high
level,
so
a
lot
of
processors
have
pack
and
howl
crates
getting
them.
That
extra
step
to
board
support
is
is
a
good
thing.
B
There
needs
to
be
more
higher
level
traits
like
the
accelerometer
crate,
there's
the
storage
things
like
storage
communications
and
other
sensors,
like
pressure
or
humidity,
or
temperature.
I'm
path,
thinking
of
working
on
storage,
the
storage
crate
during
the
impul
day.
So
hit
me
up.
If
you
want
to
talk
about
that,
a
method
to
transfer
arduino
libraries
into
rust
crates,
I've
done
this
a
couple
times
now
for
my
own
projects
and
well,
it's
not
necessarily
hard.
It's
also
not
that
much
fun.
B
B
At
the
moment,
embedded
hal
is
is
the
one
that
everyone
goes
to,
but
at
some
point
in
time
it
may
get
deprecated
or
it
may
become
unmaintained.
We
need.
There
needs
to
be
a
mechanism
of
some
sort
to
indicate
don't
use
embedded
tail
anymore.
You
use
embedded
health
2.0,
so
I
don't
have
a
solution
for
it.
I'm
just
saying
there
probably
does
need
to
be
one
so
edgy.
There
are
a
lot
of
material
education
and
training
around
for
arduino.
B
There's
online
tutorials,
there's
youtube
channels,
there's
books,
there's
courses
they're
made
by
a
wide
variety
of
people
for
a
wide
variety
of
audiences,
so
from
kids
to
javascript
developers
to
people
not
just
wanting
to
try
new
things
and
they're
made
by
a
wide
variety
of
and
their
the
difference
in
quality
is
actually
a
pretty
good
thing.
That's.
It
means
that
there's
lots
of
variety
for
everyone
to
use
and
if
one
particular
one
one
particular
guide
goes
into
too
much
detail
for
one
particular
person.
B
B
So
we
also
need
to
be
able
to
market
embedded
rust.
So
arduino
has
a
very
catchy
and
versatile
name.
I
suspect
any
italian
speakers
probably
hate
the
arduino
suffix
that
is
used
everywhere.
B
So
a
full
set
of
marketing
collateral
is
going
to
be
needed,
including
logos
style
guides
all
that
stuff,
and
we
also
need
to
do
a
bit
of
research
about
what
target,
what
markets
we
want
to
target
specifically
within
within
the
hobby
area.
B
Are
we
looking
more
at
the
the
established
ones
or
are
we
looking
at
complete
newcomers
and
we
also
when
it
comes
time,
we
also
need
to
launch
basically
launch
the
brands
to
various
blogs
and
other
content
creators,
so
basically
making
getting
it
out
there
that
yep,
embedded
rust
is
now
very
very
much
should
be
used
in
the
in
the
hobby
area.
So
I
have
a
little
bit
of
a
suggestion
for
a
name
oxidize.
B
There
are
a
couple
reasons
for
this:
it's
already
associated
with
embedded
rust,
it's
actually
a
pretty
good
name
in
and
of
itself,
and
it's
workable
as
a
as
a
product
family
name.
A
lot
of
the
collateral
that
would
need
to
be
created
actually
already
exists,
but
if,
for
some
re,
if
we
don't
want
to
choose
that
something
else,
I've
certainly
not
wedded
to
this
idea.
It's
and
you
know
we
do
obviously
need
to
talk
to
fairer
systems
about
that,
since
they
have
all
that
detail.
B
So
next
up
is
hardware,
because
obviously
arduino
is
as
much
a
hardware
company
as
a
software
one.
So
if
we
do
decide
to
develop
hardware,
then
it
needs
to
become
tier.
One
supported
we
can't
se,
you
can't
really
sell
something
without
having
the
full
support
of
the
compiler.
B
It
will
need
a
comprehensive
board,
support
crate
with
examples
and
training
resources,
and
it
price
is
probably
around
25
to
45
us
dollars
depending
on
what
peripherals
are
included
things
like
wireless
communications,
it's
a
nice
to
have,
but
it's
not
critical
yet
and
if
we
do
decide
to
include
communications,
then
a
fairly
complete
and
comprehensive
wireless
tax
going
to
be
needed
that
actually
implements
that.
B
So,
if
we
we
can,
it
is
perfectly
reasonable
to
outsource
this
with
to
an
existing
supplier
like
sparkfun
or
adafruit,
but
the
branding
does
need
to
be
clear,
so
it
needs
to
be
like
embedded
rust
on
spark
fun
artemis
or
something
like
that.
So
obviously
the
artemis,
the
feather
and
the
tinses,
they
all
have
different
ideas
about
what
makes
a
good
development
board.
B
Tinsey
is
definitely
raw
processing
power,
whereas
feather
is
perhaps
a
little
bit
more
on
the
prototyping
side,
and
I
guess
the
in
any
sort
of
hardware
will
need
a
strong,
strong
backing
to
deal
with
that.
B
So
the
big
elephant
in
the
room
of
course,
is
avr
support,
so
arduino
started
out
with
avr,
but
they
are
transitioning
to
r.
The
last
avr
was
board.
That
they've
made
is
about
2013,
which
is
actually
seven
years
ago.
A
lot
of
the
cheap
clones
use
avr.
So
going
back
to
the
board
price
of
25
us
dollars,
an
avr
clone
can
be
had
for
less
than
two.
So
that's
a
very
big
price
difference
to
be
made
up.
B
So
avr
now
has
tier
three
rust
support,
so
that
may
that
may
be
enough
having
our
own
board
for
embedded
rust
would
mitigate
that
issue.
A
fair,
fair
amount.
It's
like
we
can
say
this
is
the
best
board
to
use.
You
can
use
an
avr
board,
but
it's
not
going
to
be
as
good.
I
guess
my
main
takeaway
is
that
we
need
to
manage
expectations
in
this
respect.
B
We
can't
if,
if
we're
not
going
to
boost
up
avr
to
tier
2,
then
we
need
to
say
yeah
you
can
use
it.
You
can
try
it,
but
it's
definitely
not
guaranteed
to
work
so
everything
together.
A
lot
of
these
things
will
actually
probably
happen
independently
of
any
push
from
the
embedded
side
of
rust.
So
the
id
and
tooling
stuff
is
a
lot
of
that
will
probably
happen.
Naturally,
without
too
much
effort.
B
The
guides
and
tutorials
might
require
a
bit
of
encouragement,
get
people
out
there
writing
guides,
making
their
own
courses
using
proof,
rules
and
writing
up
their
own
blog.
The
marketing
and
branding
can
sort
of
start
out
simple
and
ramp
up
sort
of
once
once
that
path
is
decided
upon.
B
So
the
raspberry
pi
foundation
exists
to
promote
the
usage
of
computing
around
the
world
and
and
training
up
people
in
that
and
raspberry
pi
inc
basically
develops
and
sells
raspberry
pi
boards
to
both
enable
and
fund
the
foundation's
goals.
B
B
But
even
then
it's
still
hard
arduino
is
spending
a
lot
of
resources
at
becoming
more
professional
they're
building
a
new
idea.
They
have
new
professional
boards,
they're
developing
their
own
iot
systems,
so
bringing
rust
up
to
that
level
is
is
hard
and
particularly
when
you
have
a
brand
name,
such
as
strong
as
arduino,
perhaps
something
more
like
the
embed
level,
where
we're
just
organizing
everything
making
everything
making
a
one-stop
shop
saying
you
want
to
learn,
embedded
rust,
here's
where
you
go
these
these
are
the
boards
you
want.
B
So
there's
you
don't
we
don't
need
a
board
made
to
fulfill
that
level
as
we
can
just
use
the
existing
boards
or
further
develop
the
existing
boards,
as
required
so
which
path
to
take.
I
can't
can't
answer
that
question.
It's
like
everything
in
rust,
it's
going
to
be
decided
upon
by
the
community.
B
B
So
I'm
starting
my
own
company
lost
consulting
that's
working
on
embedded
iot
solutions,
so
I
do
have
will
have
a
little
bit
of
capacity
to
help
assist
any
any
development
required,
and
you
can
contact
me
either
on
twitter
or
on
website,
and
I'm
going
to
be
in
the
chat
for
a
couple
more
hours
today
and
early
tomorrow.
A
Yeah
thanks
for
this
talk,
I
can
report
from
the
chat
that
there's
no
questions
only
already
engaged
conversation,
so
I
can
highly
recommend
you
to
hop
over
there.
I've
been
running
conference
for
quite
quite
long,
and
this
has
been
the
first
time
someone
applied
for
the
conference
brand
on
stream.
This
was
quite
happy
yeah.
Thank
you
for
your
talk.
I
think
it
was
laid
out
a
good
vision
and
it's
always
pleasing
to
see
people
talk
about,
especially
about
foundations
in
such
a
good
manner,
with
a
lot
of
insight.
Thank
you.
Thank
you.