$30 off During Our Annual Pro Sale. View Details »

IoT Printer

lazyatom
April 19, 2012

IoT Printer

A presentation at IOT London, about http://exciting.io/printer, the IoT printer platform I built a few years ago

lazyatom

April 19, 2012
Tweet

More Decks by lazyatom

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. Project Codename:
    Timmy Printface
    gofreerange.com/timmy

    View Slide

  4. Timmy - April 2011

    View Slide

  5. View Slide

  6. View Slide

  7. Tom Taylor’s Microprinter, 2009
    (photo by Tom Armitage)

    View Slide

  8. Timmy at Interesting ’11
    (Photo by Roo Reynolds)

    View Slide

  9. View Slide

  10. The problem with
    hacks is that they are
    hacky.

    View Slide

  11. View Slide

  12. View Slide

  13. Timmy at Interesting ’11
    (Photo by Roo Reynolds)

    View Slide

  14. View Slide

  15. gofreerange.com/hello-printer

    View Slide

  16. The Goal:
    Make it less of a
    giant ugly hack.

    View Slide

  17. Printer.
    gofreerange.com/printer

    View Slide

  18. Cheap printer
    Ethernet shield
    Arduino
    Some LEDs, etc

    View Slide

  19. View Slide

  20. Poll a special URL
    Emit data via serial
    Manage some LEDs
    and maybe a
    button?

    View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. Content Services
    produce HTML
    pages, and post
    URLs for those
    pages to Backend
    Servers.

    View Slide

  25. Backend
    Servers
    expect
    URLs to
    HTML
    pages...
    ... and
    converts
    them into
    1-bit
    images,
    then serial
    commands

    View Slide

  26. Printers download
    serial commands
    and send them
    directly to printer
    peripherals.

    View Slide

  27. Content generation is easy in HTML

    View Slide

  28. Content can come from many places

    View Slide

  29. http://backend1/print/abc123

    View Slide

  30. bit.ly/printermail

    View Slide

  31. bit.ly/printerpaint

    View Slide

  32. View Slide

  33. View Slide

  34. No central server either

    View Slide

  35. Two Backend
    Servers using
    the same
    Content Service

    View Slide

  36. •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:

    View Slide

  37. View Slide

  38. View Slide

  39. •HTTP Header parsing
    •Running out of space on Arduino
    •Reliable networking is hard
    •Programming in C is a pain in the
    fucking ass.
    TODO

    View Slide

  40. More information
    gofreerange.com/printer
    gofreerange.com/hello-printer
    github.com/freerange/printer
    .../wiki
    .../issues

    View Slide

  41. View Slide

  42. View Slide