I am a web developer, and I've always liked the idea of creating PHYSICAL hardware things.

I have a hobby which is I take a picture of myself everyday, I've been doing it for about three years now. Recently the site I use shutdown, and I've been taking pictures on my local computer. I'm not crazy about sharing them with the world, It was just simple.

So I have an idea to help make my life easier.

My master plan would be to setup a small linux computer with a couple of peripherals and hang it on a wall, when I want to take a picture I press a button (like the staples easy button) and it snaps a shot and uploads it to the web.

  • Raspberry pi
  • Wifi Interface
  • Linux Compatible HD webcam
  • Button Interface
  • SD card storage

The system would need to be listening for the button press and run software (shell script) when its pressed. The following is a list of things the shell script would do.

  • delay the picture from being taken for ~3 seconds
  • take a picture and save it on SD card / local storage
  • run POST request to server somewhere
  • server saves picture

More elaborate and unnecessary yet cool features would be

  • sound camera click
  • flash

I guess my question to the community is, is this possible? Is raspberry pi right for this? I would like to ssh into it from my pc somehow rather then attaching a keyboard and screen. I'm looking for general feedback and comments. Point me in the right direction.

User @JYelton suggested I point out obstacles.

  • Linux Camera Driver Support
  • Getting the "Button" to connect and fire events
  • Hardware choice : Raspberry pi?
  • Something I may be overlooking?
  • 1
    \$\begingroup\$ I think it's entirely possible... but it depends on your abilities and dedication. This question is really too broad for anyone to answer in my opinion. Can you narrow it down and focus on a particular obstacle that is the most daunting? \$\endgroup\$
    – JYelton
    Dec 13, 2012 at 6:02
  • 1
    \$\begingroup\$ As an aside, many professional SLR cameras have 802.11 wireless and can simply send pictures taken to an FTP server. I did this many years ago with some Nikon D1's I believe. Nowdays, the accessory is the WT-5A. With a remote shutter release, your entire solution can pretty much be covered with a single camera. How much you spend on it, is another matter entirely. :) \$\endgroup\$
    – JYelton
    Dec 13, 2012 at 6:06
  • \$\begingroup\$ @JYelton I updated the question on the bottom with a list of things that I see as obstacles. Nice feedback regarding the SLR, its nice to know that there is something out there already, makes me think of the eye-fi cards. \$\endgroup\$ Dec 13, 2012 at 6:09
  • 1
    \$\begingroup\$ @JYelton Another alternative could be I just use my android and create an android app that does exactly what I want. \$\endgroup\$ Dec 13, 2012 at 6:13

2 Answers 2


It's entirely possible in fact I built a commercial photobooth using similar parts :) Check out gphoto for an open source remote capture solution ( that seems to be the industry term for click camera button over usb). My experience was mostly with canon cameras and they were relatively easy to use. I used a G10, and one of their rebel dslr's. Canon also has an official sdk here

With either one you should be able to take a picture with flash and auto focus. So then you just have to decide how to hook your button up. Maybe something simple like this USB connected one? Or if you're using PI you can just wire one in.

After that just some software that uploads it where you want it to go should be easy.


As you have already deduced. This isn't really a hardware project (in the sense that you don't need to build any hardware).

Off the shelf options:

  1. Smart phone (Android, iOS) -- Many existing apps do 100% of your ask. Google Plus uploads pictures by default, so any Android 4.x device with Google Plus integrated will store a copy of all photos taken on the web (defaulted to private). A list of really good camera apps for Android is here. If you google for Android photo booth app, you get literally hundreds more. iOS is similar.

  2. DSLR -- I have a Nikon D200. I used it as a security device in a custom sensor-based application. When a motion sensor was tripped, I would fire the camera and upload the resulting photo. Nikon's SDK (software development kit) has been implemented in several open-source tools like gphoto2 making it pretty easy to automate, but it's expensive.

  3. A plain 'ol laptop -- Any Macbook, most netbooks, etc... feature built in web cams. Just script it.

  4. Little Linux Machines (ex. Raspberry Pi) -- Many little linux computers exist. The Raspberry Pi has several dedicated camera modules available like this one. You could also connect any compatible webcam. I hear that the Logitech ones have good Linux support.

As to your button needs:

  1. Laptops have them built in

  2. You can get all sorts of awesome one-buttons off-the-shelf, like these.

  3. You can attach any mini or partial USB keyboard.

  4. Use a gaming macro keyboard -- These are small keypads with a few buttons like this

  5. Use a mouse -- Attach a mouse and trigger off one of its buttons. Mice are available in tiny sizes for travel if you don't want something full-size.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.