Persistent, dynamic, scalable information display

Open, connected, scalable information display

Similar projects worth following
Open? Connected? Why, online stranger -- how about I hand you a marker and let you write on on my wall? That's right, forget writing on my facebook wall -- when this project is complete you can write on my REAL wall at home.

But there are a bunch of other interesting uses too. Let me start from the beginning.

I wanted to display information on my wall. Large-format. But all existing solutions (screens, projectors) were too expensive. So I came up with essentially an automated erasable display by hacking together a vinyl cutter (holding a dry-erase marker), some rolling pins, scraps of wood, and contact paper, with scripted automation via an inkscape extension. This is a small prototype but is very scalable and my goal is to make a larger (around 6ft x 6ft) display.

Write me a message -- anything -- on a webform and I will write that message on my wall at home. That's one of my short-term goals.


Let me describe the project starting with some background. Two thoughts brought me to this project.

The first was that I wanted to display persistent but dynamic, large-format information on my wall. 

  • "Persistent" meaning it was always there (so for example if it were an LCD screen it would have to be always on with no screensaver). This way I'd see it every time I walked past. It could be extremely motivational for someone quantitatively-inclined like me to see 2D timeseries plots of quantities like: bank account balance, weight, progress towards some goal, etc. These plots would be updated daily - a new timeseries point would be added. Yes there are smartphone apps that plot this, but I have to expend some thought and energy to pull out my phone and navigate to the app to see the plot. If it were on my bedroom wall I'd see it whenever I woke up and there'd be no escaping!
  •  "Dynamic" meaning, computer-controlled and able to be updated at any time. Though, for my use-cases, it did not need to update quickly -- a refresh rate of seconds or several minutes was fine.
  • "Large-format" and scalable. Consider my 27" LCD monitor at home. If I were to want to buy a screen with, say, 10x its area, it would be out of my price range (85 inches diagonal!) and probably more than 10x the price. For large enough LCD/LED screens, price seems to be a super-linear function of area - because they get harder and harder to make. I wanted to find a way to display information that was a deep-SUB-linear function of area. In other words, if I increased the area by 10x then the price would increase by <<10x. Sure, the solution I'll present is nowhere near LCD display quality, but its cost certainly scales better with area, which is the point. (Yes I could use a projector and have essentially whatever size I wanted but this was still not as low-cost or low-power as the solution I'll present, it required the projector to be mounted away from the wall -- increasing the effective form factor, and I wouldn't want to leave a projector on 24-7).

I had the second thought when I saw a beautiful restaurant menu sign. This was done by hand on a chalkboard and must have taken a long time. The drawn-by-hand touch was nice and is rather fashionable for certain restaurants/cafes these days. I wondered if a robot could do a comparable a job if it were given some drawings and some algorithms for slightly randomizing the lines and text to make it look as organic as the hand-drawn one.

Certainly a simple 1D plotter with a 1D scrolling erasable board would solve both problems above?

I had an un-used cutter/plotter (Silhouette Portrait) at home so bolted it to a homemade frame, replaced the cutting tool with a whiteboard marker, ran a flexible dry-erase board through the plotter (over rolling pins on either end, and over some whiteboard markers to erase text/images when they scrolled away), and the hardware was done. Unfortunately this plotter uses rather obscure and not-well-documented plot commands, but I found an inkscape extension that talked to it and gave me basic scripted control of the cutter. 

Now I had a scrolling dry-erase board that I could write anything on via the command line (and erase it as it scrolled away to the back side). Certainly the same thing could be done with chalk and blackboard, or other erasable media.

It's ALIVE! Teehee heedledum. What can I use this for?

  • 2D plots of some quantity over time. 
    • For example, it could get my weight from bluetooth-enabled scales and plot a new point each day. Or get my bank account balance from some online source and plot it, a new point each day.
  • Certain signage...
    • ...needs to be large-format and reconfigurable but does not need to update quickly. For example, menus in a restaurant which may change only daily as specials change; a list of sessions in a conference center; directions or maps...
Read more »

  • 1 × Silhouette Portrait Hobby/Craft cutter
  • 1 × Rolling pins
  • 1 × Scraps of wood for the frame
  • 1 × Contact paper for the erasable display
  • 1 × Whiteboard markers and erasers to write and erase

View all 6 components

  • System design document

    davidnhutch08/20/2014 at 18:18 0 comments

    Persistent, dynamic information display

    System design document

    The project consists of two phases.


    • HARDWARE: Make a small prototype using an existing commercially-available plotter.
    • oThis is working, however I will have to try other dry-erase boards to find one that erases better.
    • SOFTWARE: Get scripted control of the plotter.
    • oThis is working, however I will need to add additional functionality such as the ability to queue the commands sent to the plotter.


    • HARDWARE: Make a larger (few ft x few ft) prototype, this time building the 2-axis plotter from scratch, Arduino-controlled.
    • SOFTWARE: Build a modular system that can accept any text or images as input, decides how to arrange the text or image on the screen, queues it until the plotter is ready, and plots it. This should accept any text or images from asynchronous sources such as text from webforms, html5 canvas drawings, harvested web data (such as twitter feeds via the twitter API), etc.

    Preliminary components list:

    Phase One is essentially complete, so I will list components for Phase Two.

    • PLOTTER COMPONENTS: I have built a Reprap before, so will use some similar hardware since I’m familiar with it: For the scroller axis, NEMA 17 motors and a 608 bearing/shaft system. For the vertical (pen) axis, there are many varieties of homebrew plotters out there; here is one. I plan the vertical (pen) axis to be similar to one of those axes – belt-controlled, again with inexpensive 608 bearings and NEMA 17 motors. As a stretch goal I’d like a retractable dry-erase pen that doesn’t dry out, so may incorporate a retractable dry-erase marker with a linear actuator. Lastly, I have a good ol’ Arduino Megas lying around which can accept commands from the computer via USB, and I have a motor shield which can control the NEMA motors.
    • SCROLL: As described in the Project page, for Phase Two I’ll have transparent plastic scroll, running on top of a plain-colored board. I’ve had more luck with really good dry-erase flexible materials among the transparent plastics rather than the white or other color dry-erase boards. Plus I can find it cheaper – flexible dry-erase board that is sold as such is expensive, while sheets of transparent plastic are cheap and many varieties exist.
    • FRAME COMPONENTS: I plan a painted wooden frame made at Techshop where I have a membership. In particular, this time the frame will hide the mechanism so that from the front it just looks like a flat sheet. (Writer and eraser are not visible.)
    • COMPUTER to issue commands. Right now I’m using my desktop but have a disused Chromebox that I can dedicate to this purpose. 

  • Video uploaded!

    davidnhutch08/20/2014 at 17:53 0 comments

    I've made a quick video showing the prototype in action and uploaded it. Take a look and tell me what you think!

  • Software issues to solve

    davidnhutch08/20/2014 at 02:34 0 comments

    I am filming the video, and wanted to make a list of the software issues to solve. For now I've had to do some workaround kluges to just show the idea in the video, but here is the to-do list to get around those:

    • Right now I can write a command-line command to send an .svg to the printer at any time. Problems are:
      • Every time I issue the command, a new instance of the Inkscape GUI starts. Reading the forums, in my case I can't avoid starting the GUI but perhaps I can instantly kill it when it has done its job, which is marginally better than having many Inkscape instances accumulating.
      • Also I need to look at each of the several use-cases and figure out a way to generate .svg files. So, I'd take whatever data input I want (e.g. text from a webform, a drawing from an html5 canvas, weight readings from bluetooth bathroom scales, etc) and automatically generate an .svg, then call the draw command and delete the .svg. Or just skip the svg entirely.. but I'm just trying to solve one thing at a time here..
      • We will eventually need a queue where draw requests sit until the plotter is free to draw the next item.
    • Because I'm building the mechanics of the next prototype from scratch, I won't be locked into Silhouette's (actually Graphtec's) firmware, which is a huge pain right now. So maybe I shouldn't spend too long wrestling with and unraveling the choices of some unknown firmware designers. I guess it depends how long we have until this thing is shipped to SPAAACE.. Jk ;)

  • Mechanical issues to solve next time

    davidnhutch08/20/2014 at 02:23 0 comments

    As I play with my prototype, I'm making a note of mechanical issues I will need to fix next time.

    • The scrolling board tends to "ride up" or "ride down" over time. I need a way to gently guide it to stay straight and centered.
    • This version 0.1 prototype is rather large in thickness (dimension perpendicular to the wall); also I would like the plotter on the "hidden" side in the next prototype. So that if you put a frame around it, it just looks like a thick picture frame and not like a scroll. 
    • This particular contact paper doesn't erase well. I have found some other stuff that will erase better. In addition it's kind of curling at the edges so next time I will need something thicker. But now I realize that perhaps the scroll can be transparent, running over a colored board underneath it. The text will be written on the dry-erase transparent scroll and the background will be visible through it. I think it will be easy to find inexpensive transparent flexible scroll material but will need to look for something specific.

  • Beginnings...

    davidnhutch08/14/2014 at 02:41 0 comments

    Had an un-used vinyl cutter/plotter (Silhouette Portrait) lying around. It's small but is sufficient to make a small proof-of-concept prototype.


    Prototype to-do list:

    • Right now I can send an existing SVG file to the cutter. I need to be able to automatically generate the SVG file from a variety of sources (internet forms, data-streams, ...).
    • Get better scroll material. This particular contact paper doesn't erase too well.
    • For the next prototype I will build the plotter from scratch, so it can be arbitrarily large and lower-profile (hidden behind the back of the screen rather than in front.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates