Adventures in Digitising Vintage Cameras

Take an unloved old camera and give a new lease of life

Similar projects worth following
Vintage film cameras look cool but finding film and taking actual photos with them can be quite a challenge. This project documents the cameras I have retrofitted with digital innards

Every couple of years my local rugby club goes on tour. A few years ago the trip was to Enschede in the Netherlands where the impossible project is based. This inspired me to buy a vintage polaroid land camera on eBay along with a couple of packs of film to take along and get some physical photos of our travels.

This worked a treat and I got some great photos, however I wanted to do something more adventurous and 'hacked' for the next instalment.

Enter the 'Box Brownie' - Camera 2.0 (stock photo)

Stock photo of Kodak SIX-20 'Brownie' C

This was to be the first camera fitted with digital insides. Described in the project log.

  • Connectivity!

    fred01/20/2017 at 21:06 0 comments

    So far I have described how the camera can be used standalone, using the shutter release button to take a photo. A feature of the previous model was serving a web page to allow pictures to be taken and stored photos to be reviewed. I have done something similar here. In the last log entry I mentioned the combined Wifi/Bluetooth USB adapter. This particular model is able to act as a client and station (AP) at the same time. In the video below, I start by pinging an IP on my home WLAN (192,168.1.3). As the Pi boots, it first gets the camera running (indicated by the green light), then connects to the WiFi. This can be seen when the camera starts returning a ping.

    After this I scan for available wireless networks, one called 'Camera' is found. At this point I could connect directly to this network and access the web interface at as if I was out and about and using the camera away from home WiFi. For demonstration purposes, I'm going to continue and access the interface at

    The interface is very simple and consists of four buttons along the top:

    • Download - view full size version of the picture. Only thumbnails are shown in the gallery for speed
    • Take Photo - self explanatory
    • Delete - delete the photo currently shown
    • Print - I'll get to this in a minute

    The interface is using the lightweight library from with a few jquery bits for the buttons. I'll hopefully get around to making the source available when I get on to the software write up later on.

    Selfie Button

    One feature I wanted was to be able to take a group selfie with remote shutter release. I had lots of ideas around this, a few of which are shown below

    • Amazon Dash Button - It works. It's quite straight forward to detect when this connects to the camera's wifi but a bit slow and takes a while to reset and be ready to trigger the next photo.
    • 433MHz Keyfob and receiver - again, it works but range not great and requires an extra piece of hardware squeezing in to the camera.
    • Cheap Selfie Shutter - This works over Bluetooth and presents itself as a HID Keyboard. It works fine when right next to the camera but when it is on the edge of it's range (which is only about 2 metres in this setup), it starts to act erratically taking multiple seconds to send the command, repeating commands. Good when it works but not reliable.
    • Another cheap Bluetooth button - Not sure what this is or how it works as I've only just acquired it. Only cost 99p so not expecting much, but we'll see.

    I also considered an Infrared receiver but I would have to find somewhere for it and I'd already completed the wiring to the camera module and indicator/flash panel which would seem the obvious place for it.

    So, I went the DIY route!

    The Dash button was the most reliable and had the best range but was unsuitable because of the lag and the delay on repeated button presses. I'd used ESP8266 WiFi modules before so had a few lying around and thought they might be suitable. All that is required is to connect to an AP and call the URL when a button is pressed - easy!

    I was going to use the ESP01 module due to it's cheapness and smallness. I wired it up as below, loaded the code on to it using the Arduino IDE and it worked like a charm!

    #include <ESP8266WiFi.h>
    #include <ESP8266HTTPClient.h>
    HTTPClient http;
    void send_event(const char *event);
    // Wifi setup
    const char *ssid     = "YOUR_SSID";
    const char *password = "YOUR_PASSWORD";
    // Hardware setup
    const int buttonPin = 0;     // the number of the pushbutton pin
    const int ledPin = 2;        // the number of the LED pin
    // Variables will change:
    int buttonState;             // the current reading from the input pin
    int lastButtonState = LOW;   // the previous reading from the input pin
    // the following variables are long's because the time, measured in miliseconds,
    // will quickly become a bigger number than can be stored in an int.
    long lastDebounceTime = 0;  // the last time the output pin was toggled
    long debounceDelay = 50;    // the debounce...
    Read more »

  • Folding Camera - Coronet Rapide

    fred01/20/2017 at 16:14 0 comments

    For the next instalment, I wanted a more interesting original camera/enclosure. Thanks to good old eBay I found a folding camera called the Coronet Rapide from the late 40s/early 50s that looked cool and was in my price range - It cost me the princely sum of £9.99 (plus postage).

    I wasn't sure of the dimensions of the camera but I was hoping that I could fit cylindrical power cells of some type into the two sides where the film used to fit and have room for a Pi Zero to lie flat between the collapsed bellows and the rear case. I also hoped that the lens/shutter assembly would have enough room to house the camera module. Some of these things happened others didn't quite work out that way, read on for more info on that.


    Luckily, as I'd hoped, the recesses that were originally designed to hold the 120 film were a perfect fit for a 26650 Lithium Ion cell. The ones I used have an integrated protection circuit to protect them from short circuit, overcharge and over discharge. I fashioned some contacts out of some of the springy metal found in a used film pack from the Polaroid camera and fixed them in position with a little hot glue (LOTS more of that coming up). I also used a piece of ribbon cable to make a battery release tab which I attached to a conveniently located hinge that used to support the film spool. As there is no integrated charging functionality and I wanted to make the batteries replaceable, this makes it really easy to swap them out.

    The battery is wired via a mechanical switch to a 5v boost module, this one to be exact. I chose it mainly because of its high power output (it was going to be supplying a Pi, WiFi + Bluetooth Dongles plus a Flash of some sort so 3A should cover it).

    This switch was 'borrowed' from a magnetic LED work light. I used other microswitch types but they weren't sturdy enough. This one will stand up to a good amount of use. It is mounted (via hot glue!) in such a position that it doesn't get in the way of any of the mechanics of the bellows system and nestles in a void when the camera is closed. Due to some design changes during the project,, the switch cuts the ground line rather than the conventional live but electrically it makes no difference.

    The Camera Module

    My luck was in again as the camera module was an almost perfect fit for the lens assembly and I could leave most of the original shutter mechanics in tact. I had to file down the corners of the module's PCB slightly to improve how it sat and I used a disc of black card to tidy up the front and hide the board from view. More hot glue to secure it in place and I was done.

    You might be wondering what the orange wires soldered to the camera module are for? Well, my original plan was to use the normal ribbon cable that is required to connect a camera to the Pi Zero but this was not long enough. I then tried the 30cm version of the ribbon cable and while this was long enough, it was not flexible enough to handle all the twists, turns and movement that would be required so I was forced to solder all 15 pins myself. This was simple enough at this end as the camera module has convenient solder pads for each of the pins (visible in the image below), but soldering the other end was a different story (more on that later)

    The other part you may be wondering about is the black bean shaped thing with the 3 LEDS on it. This is my solution to the flash and status indicator problem. It is made up of two SMD LEDS, one green one blue, taken from an RGB LED strip I had an off-cut of and a flash LED in the middle. The flash LED was taken from an old iPhone 5c that had a failed mainboard so was otherwise useless.

    The cutting/shaping of the black plastic isn't as neat as I'd like, but it does the job. The blue LED is lit when the Pi has power (it runs of the constant 3.3v from the GPIO connector) and the green LED lights when the camera is ready (it is connected to a GPIO pin that is controlled in the python...

    Read more »

  • Box Brownie - Pi A+

    fred01/20/2017 at 15:03 0 comments

    The finished camera looks like this

    As you can see it looks pretty much unchanged aside from the manual shutter release has been replaced by a green ed momentary switch. The closest part I can find now is This has 4 connections

    • LED -ve and +ve
    • Switch -ve and +ve

    The original lens was removed from the front plate and the Pi camera module mounted using black Sugru

    The camera ribbon cable and the 4 button connections are then fed through the aperture and connected to the A+

    You can also just see the USB Wifi adapter in the port of the Pi. not pictured is a Real Time Clock module as this has been reused. This was needed as without net access to set the time via NTP, the timestamp on the photos would be wrong. This connected via I2C and didn't take up much room.

    The Pi was powered by a USB power bank that sat in the space on the right. As the case was not big enough to allow a microUSB cable to be plugged in to the Pi, I cut up an old USB cable and soldered on to the PP1 (+5v) and PP3 (GND) test pads on the underside of the board

    **I last looked at the code for this a couple of years ago and the below is written from memory, so may contain slight inaccuracies**

    For the software side of things, I built a custom linux image based off buildroot and motioneye which booted up and ran a python script to give the camera the following features:

    • Flash the shutter button until the camera is ready to take a photo (using RPi.GPIO python module)
    • Take a photo with press of the shutter button (PiCamera python library).
    • Use the Wifi adapter to host an access point. When clients (smartphone) connects, dnsmasq assigns an IP via DHCP and responds to all DNS requests with the IP of the camera. This is similar to a captive Wifi network at an Airport/Coffee Shop etc. that requires sign in.
    • Serve a web interface with a live view of the camera via mjpeg along with a shutter button and a link to a gallery of photos stored on the camera (bits of code borrowed from This was optimised for smartphone access.
    • Put the camera to sleep with a long press and release of the shutter button. This would turn off the Wifi and camera and wait for another long press of the button to power back up.

    This worked well but had a few drawbacks:

    • No flash.
    • No physical photo.
    • 'Sleep' mode was actually quite power hungry
    • The live preview was kind of useful for framing the shot but distracting when using it to take group selfies - most of the shots would have me looking at my phone to press the shutter button rather than at the camera.

    These features will be addressed in the next version of the camera.


    • More interesting camera body (just a box is a bit boring)
    • Auto flash
    • Physical photo option
    • Remote trigger (selfie button - RF, Bluetooth, Wifi, IR etc.)
    • More elegant power on/off. Battery life was OK, but could be better. Full power off is made difficult as halt/poweroff/shutdown commands do not fully power down the Pi, it needs to be physically disconnected.

View all 3 project logs

Enjoy this project?



FORART fe wrote 02/13/2023 at 07:02 point

Hi there, your hacks are cool !

Seems somewhat similar to Passamonti Francesco's one:

It would be great to establish some collaboration to let both evolve.

Hope that inspires !

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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