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.
Why?
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 at outdoor events, and so forth. Certainly today this is mostly accomplished by printing a poster displaying the information, but this can be expensive if a new poster is printed for each event on each day.
- A shared whiteboard at home or work
- My wife keeps to-do lists, calendar events, shopping lists, etc on a whiteboard at home. When I'm at the supermarket I often forget what I was supposed to buy. Certainly there are apps to collaboratively keep track of to-do lists and so forth, but the whiteboard in the home has distinct purpose and perceived benefits over an app -- if it didn't, my wife wouldn't use it. Anyway, let's say I forgot what to buy -- well, the plotter remembers what it wrote so I could use an app on my smartphone to connect to it and get the currently-showing information.
- Let's say I'm at the store and I think of something I want to add to it. I could add text or drawings via my smartphone and this would get plotted on the whiteboard at home.
- What about information flow in the other direction? If I manually write on it with a whiteboard marker by hand, a pressure sensor could detect that something was written, and the drums could roll around while a 1D scanner (hacked out of a flatbed scanner of course! :-) captured the information and returned the scroll to its original position. So now I can add information either remotely (via smartphone app) or locally (via my hand and a whiteboard marker), and both sets of information get co-stored.
- In that sense this is a nice bridge between the old-school tactile real-world home whiteboard, and the new-school app approach.
- I can write on my friends' facebook walls. How cool would it be to write on their REAL walls at home, remotely?
- You could tweet something and it would show. Certainly I can see whatever you've tweeted in any of a myriad of apps, but there is something ... well, inescapable ... about having it literally on my wall where I cannot avoid seeing it.
Regarding the last bullet point -- my goal now is to get this to a point where anyone in the world can submit a short message in a webform somewhere on my homepage, and the plotter will write that. Then you can write away -- cuss, compliment, commove, whatever you like, and I'll see it.
Follow me and stay tuned!