Slide 1

Slide 1 text

“An open-source distributed platform for IoT printers” James Adam - @lazyatom - @freerange If you’re bored: bit.ly/printermail :: bit.ly/printerpaint Text

Slide 2

Slide 2 text

Disclaimer: I don’t know what I am doing.

Slide 3

Slide 3 text

Project Codename: Timmy Printface gofreerange.com/timmy

Slide 4

Slide 4 text

Timmy - April 2011

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 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

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content