“An open-source
distributed platform
for IoT printers”
James Adam - @lazyatom - @freerange
If you’re bored:
bit.ly/printermail :: bit.ly/printerpaint
Text
Tom Taylor’s Microprinter, 2009
(photo by Tom Armitage)
Slide 8
Slide 8 text
Timmy at Interesting ’11
(Photo by Roo Reynolds)
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
The problem with
hacks is that they are
hacky.
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
Timmy at Interesting ’11
(Photo by Roo Reynolds)
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
gofreerange.com/hello-printer
Slide 16
Slide 16 text
The Goal:
Make it less of a
giant ugly hack.
Slide 17
Slide 17 text
Printer.
gofreerange.com/printer
Slide 18
Slide 18 text
Cheap printer
Ethernet shield
Arduino
Some LEDs, etc
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
Poll a special URL
Emit data via serial
Manage some LEDs
and maybe a
button?
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
Content Services
produce HTML
pages, and post
URLs for those
pages to Backend
Servers.
Slide 25
Slide 25 text
Backend
Servers
expect
URLs to
HTML
pages...
... and
converts
them into
1-bit
images,
then serial
commands
Slide 26
Slide 26 text
Printers download
serial commands
and send them
directly to printer
peripherals.
Slide 27
Slide 27 text
Content generation is easy in HTML
Slide 28
Slide 28 text
Content can come from many places
Slide 29
Slide 29 text
http://backend1/print/abc123
Slide 30
Slide 30 text
bit.ly/printermail
Slide 31
Slide 31 text
bit.ly/printerpaint
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
No central server either
Slide 35
Slide 35 text
Two Backend
Servers using
the same
Content Service
Slide 36
Slide 36 text
•Other people are better at design
than I am;
•Other people have better ideas for
content that I have;
•So: make it easy for them to produce
and print content, from which
everyone benefits.
The Plan:
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
No content
Slide 39
Slide 39 text
•HTTP Header parsing
•Running out of space on Arduino
•Reliable networking is hard
•Programming in C is a pain in the
fucking ass.
TODO
Slide 40
Slide 40 text
More information
gofreerange.com/printer
gofreerange.com/hello-printer
github.com/freerange/printer
.../wiki
.../issues