For the last several years, we’ve tried to keep a big “snow stick” out on our deck to capture images of big snowfalls. In particular, the winter of 2009-2010 was exceptional for this, with no fewer than 3 very large storms in our area (including the crazy storm which happened at ShmooCon 2010). That storm dumped nearly 30” over two days at Dulles Airport, just a few miles away from our house.
Today, we’re getting a storm that promises to rival or exceed that storm, with the Capital Weather Gang calling for as much as 40 inches in the “best case” scenario (or worst case, depending).
So I had to update the snow stick, which previously topped out at 32” or so. It now reaches a full 50”. No way we can break that (if we do, the deck will probably collapse anyway and it won’t matter). I tweeted a picture of the snow stick yesterday, and almost immediately was challenged to post a time-lapse video. Which I thought “no way,” then “maybe,” then “Oh, wait, if I do this….” After a couple hours of playing, I had an old Canon Digital Rebel running off an external power supply, with a Raspberry Pi triggering photos every minute and downloading them to the local SD card. But it crashed after about 5 minutes. I spent some hours last night trying to figure out what was up, but couldn’t make it work — the link between the rPi the camera just stops working after a few photos, whether I use the really cool script I found or just manually capture images.
After conceding defeat on the SLR front, I thought, maybe I could find an iOS app to do this. There must be one. And, sure enough, a few minutes of searching led me to TimeLapse, by xyster.net. I grabbed an iPad 3 from my drawer of crazy old iOS devices, installed it, and figured out how to get it established in the window. At first, I planned to simply tape it to the window, but then the image was framed all wrong (it had to be located above expected snow line, if I’m to get anything). But I realized that it’d just barely fit on the frame of the lower sash, and so it was off to the scrap pile to make a little shelf.
It’s actually screwed into the sash (I’m sure we’ll never notice the holes once it’s gone), though I got a little nervous when doing so that I didn’t drive the screws all the way into the windowpane. Another small strip provides a ridge to keep the iPad from falling off. Just below, you can see the edge of a LED strip I had lying around… I cut it in half, linked the two halves together, and taped them to the window, facing outwards. When we tried this light last night, it was strong enough that the snow stick cast a shadow, so hopefully that’ll be enough to keep taking pictures overnight.
The lights and the iPad are both plugged into a power strip resting on the window sill. (I should probably tape the power strip to the wall, or get a USB extender cable, so that it won’t pull the iPad down when it inevitably gets knocked off the sill). I’ll eventually move the strip onto a UPS, which should hopefully let me keep going even during a power failure. (We’re almost certainly going to lose power at some point…I just hope it doesn’t go for too long. There’s only so far I want to take this, you know…and we have an electric snowblower, so no power means sore back.)
Not long after tweeting the picture of the whole rig, someone joked about streaming the images, which was amusing, since I was in the middle of getting live images posted to this site anyway. I have a small Linux box (running on an old 1st generation Apple TV), which I’ve used as a local “photo dump” to sync pictures off my camera. I set up a cron job to rsync the TimeLapse app’s photos off the iPad (it’s a jailbroken device) and onto the linux server, in between synchronization runs, it copies the most recent image here.
(updates every 10 minutes or so)
So far, it seems to be (mostly) working, but the app has stopped running twice already — once after only 5 minutes, and again after an hour or so. I don’t know if the device is getting an alert and popping out of the app, or if it’s because it’s jailbroken, or if it’s something else altogether. If I can figure out how to send a text message from my linux box, I can always have it alert me if the most recent sync doesn’t seem to have grabbed any new images. If I get that working, I’ll be sure to update here.
Hopefully I can work out these kinks and get a nice video…if it runs every 2 minutes, then that’s about 1 second per hour at 30 fps, so this’ll be a nice minute or two video once it’s all done.
Update Okay, I still don’t know why the app is crashing. It actually died while Andrea was looking right at it — took a picture, went black, returned to the iPad springboard. Dunno. I wrote a simple python script that looks for the oldest picture that’s been synced from the iPad, and if it’s more than 11 minutes old, it calls another script (oysttyer - a command-line perl Twitter app), which sends me a DM on Twitter. Now I just have to make my phone make a really loud noise for DMs from that account so it’ll wake me up overnight, if the app needs restarting.
Update Update Looks like there’s some kind of memory problem that’s causing the app to reliably crash after an hour of use. However, since I’m able to detect the crash (well, the lack of updates) pretty easily, I’ve now added a remote restart. So whenever it crashes, the pictures get old, my script notices nothing new’s coming through, and it re-opens the app. Yay.
I’ve also stitched together the first 8 hours of video and put it up on YouTube. It gets a little dark towards the end — the LEDs help, but it’s still pretty dim out there, even with all the skyglow reflected in the snow. When it’s all done I’ll see what I can do to make the light levels more consistent across the whole video. Oh, and my brother created a Twitter account which simply scrapes the current image from the blog and tweets it.