A Protective case for my 8×20 camera

My Korona 8×20 camera is heavy but it is still possible to hand carry it by the leather handle for short walking distance. Carrying it bare will expose it to scratches and knocks as it is easy to bump this big camera into walls and such.

So I went to buy a $5 foam camping mat, some Velcro straps with tape and went off to work on a DIY protective case. As seen in the video, I have the map trimmed to the required size including the corners  and then add in the Velcro straps at the places where the different ends meet.  The Velcro straps came with tape where I  simply taped it to the foam. It may not last so I have sew a few of them in place instead. The foam is not to the best material to sew but I will monitor and see how well they stand up to the frequent opening and closing.

While this is for a ULF camera, it can be easily modified for a smaller camera.

 

 

Arduino Code for the Rotary Film Processor

In my previous post about the DIY Rotary Film Processor that I use to process my 8×20 film for my 8×20 camera, I did not go into details about the Arduino code that controls the rotation and timings. This post will explain more about the Arduino portion.

Hardware

I use 3 pieces of boards for the project :

    1. Arduino UNO
      Arduino UNO board

      Arduino UNO board

       

       

    2. An motor shield
Motor Shield

Motor Shield

    1. An LCD shield
LCD Shield

LCD Shield

 

I am not a programmer so what I did was to piece the different sample codes for the different shields in order to achieve what I need.

This is a Rotary Film Processing controller . It simply rotates a motor for 4.5 seconds in one direction before rotating back in the reverse direction for another 4.5 seconds and stop for a sec. This is considered as one cycle. Therefore 6 cycles of it will constitute 1 min.

When it is powers on, you will need to press a button (connect to the RIGHT button of the LCD shield) to start the development process. When the first step (ed Prewash for 3 mins) is completed , the buzzer will sound off and you will need to press the same button to continue to the next cycle (of course after pouring out the first and in the next chemical)

Currently, it is coded for my FOMA 200 developing needs. You will probably need to modify the code to your needs.

/* Rotary  Film Processing  
 * ------------------ 
 * This is a Rotary Film Processing controller . It simply rotates a motor for 4.5 seconds in one direction before rotating back in the reverse direction for another 4.5 seconds and stop for a sec
 * . This is considered as one cycle. Therefore 6 cycles of it will constitute 1 min.
 
 // include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

int buttonPin=2;
int buttonState=0;
int buttonCount=0;
int EN1 = 6;  
int EN2 = 5;  //Roboduino Motor shield uses Pin 9
int IN1 = 7;
int IN2 = 4; //Latest version use pin 4 instead of pin 8
int BUZZ=3;

void Motor2(int pwm, boolean reverse)
        {
          analogWrite(EN1,pwm); //set pwm control, 0 for stop, and 255 for maximum speed
         if(reverse)
         { 
          digitalWrite(IN1,HIGH);    
         }
        else
        {
          digitalWrite(IN1,LOW);    
         }
        } 

void Motorprocess(int stepno, int noMins)
{
   int counter;
   int noRepeats;
   noRepeats=noMins * 6;  //6 cycles is one minute, so to repeat for the required no of minutes

     for(counter=0;counter<noRepeats;counter++)
                      { Motor2(255,true);
                       delay(4500); //turn for 4.5secs
                       
                        Motor2(255,false);
                        delay(4500); //reverse and turn for another 4.5 secs
                        Motor2(0,false); //stop for 1 secs
                        delay(1000);
                      }
lcd.setCursor(0,1);
lcd.print("Step ");  //write to LCD that the step is completed
lcd.print(stepno);
         lcd.print(" Done");
          Motor2(0,false);
      digitalWrite(BUZZ, HIGH); //sound the buzzer for a second
       delay(1000);
       digitalWrite(BUZZ, LOW);

  
 }  

// read the buttons
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor 
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 // For V1.1 us this threshold
 if (adc_key_in < 50)   return btnRIGHT;  
 if (adc_key_in < 250)  return btnUP; 
 if (adc_key_in < 450)  return btnDOWN; 
 if (adc_key_in < 650)  return btnLEFT; 
 if (adc_key_in < 850)  return btnSELECT;  


 return btnNONE;  // when all others fail, return this...
}

int val = 0;     // variable for reading the pin status

void setup() {
  
  pinMode(BUZZ,OUTPUT);
  
  int i;
   for(i=4;i<=7;i++)  //For Arduino Motor Shield
    pinMode(i, OUTPUT);  //set pin 4,5,6,7 to output mode
    
    analogWrite (10, 10);
     lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("FOMA 200 Process ");
  lcd.setCursor(0, 1);
  lcd.print("Press R to start");
}

void loop(){
  Motor2(0,false);
  int counter;
// buttonState= digitalRead(buttonPin);
buttonState = read_LCD_buttons();  // read the buttons
  if (buttonState==btnRIGHT)//change here
{buttonCount = buttonCount+1;



//if (newState==0 && buttoncount>0)
  switch(buttonCount)
  {

  case  1 : //prewash 3 mins
  lcd.clear();
   lcd.print("1. Prewash ");
      Motorprocess(1, 3);
           
      break;
  case 2 : //develop 7mins
  lcd.clear();
   lcd.print("2. Develop ");
      Motorprocess(2, 7);
     
  break;
  
   case 3 : //Stop Bath 1 Min
     lcd.clear();
   lcd.print("3. Stop Bath ");
     Motorprocess(3, 1);
   
  break;
  
   case 4 : // fixer 4 min 
        lcd.clear();
   lcd.print("4. Fixer ");
     Motorprocess(4, 4);

  break;
  
    case 5 : //Wash 1 min
            lcd.clear();
   lcd.print("5. Wash ");
     Motorprocess(5, 2);

  break;
  
   
  default :
  buttonCount=0;
  }//end for switch
}
}


DIY Rotary Film Processor

This Rotary Film Processor project has been on the back on my mind for ages but it became a priority after I got a 8×20 camera.  I managed to get a paper drum that can take up to 16×20. Usually I process one sheet (which for now is actually 2 pieces of 8×10 joined at the shorter side) at a time. Handrolling the tank for 15 mins for every single 8×20 shot is no joke.

Rotary Film Processor

Rotary Film Processor (less the connection to the Arduino box)

In terms of design, I have been looking at the various DIY designs that are found online. Of all, this youtube video looks the most interesting. However I decided to modify the design not to use a water tank for a few reasons.

  1. I do not need a water bath to regulate the temperature. I am quite happy with developing at room temperature. Even when I develop at 20C, I am fine that the chemicals go up by a degree or two.
  2. Saving of water since I do not need a  water tank.
  3. The buoyancy of the water aids the rotation of the tank but I can replace it with a roller base.
  4. A more compact design and easier to store away.

I have been doing DIY projects for a while so I have collected quite a number of parts so I am able to start the project using mostly of what I already have. Therefore pardon me for the non standardization of lengths and measurements.

Roller base

Rigid Wheels

Rigid Wheels

This is similar to the Jobo roller base.  To make this, mount 4 pcs of 1″ Rigid wheels  on 2 pieces of plywood.  The length of the plywood will depend on the length of your drum. Using my wood scraps, I have a 24″ and a 17″ pieces. Space out the wheels so that the drum will be well supported. Of course you may add more wheels if you intend to process drums of different sizes.

Roller Base

Roller Base

I connected the 2 pieces of plywood using 2 brass rails (they were from a forsaken camera project). They are locked down using 1/4″ bolts and nuts.   This will allow me to adjust the distance between the 2 rolls of wheels for catering to drums of different diameters. At this point the drum should rotate smoothly and evenly by hand.

Roller Base Rails

Roller Base Rails

Motor Arm

Motor and Shaft Coupler

Motor and Shaft Coupler (Motor cables are no connected)

For now I am using a 12V 30 rpm motor.  To mount the 3/8″ threaded rod (again another piece I have sitting around) , I use a flexible shaft coupler which has a one 6mm hole what will fit the motor shaft while the other end is a 10mm hole that fit the 3/8″ rod.

The 3″ wheels were purchased new as the old inline skate wheels I salvaged from my old skates have a bearing hole of 7mm. The hole diameter need to be 10mm for the 3/8″ rod to go through. They were then tighten with nuts on both sides. I placed a drop of Locktite so that the nuts won’t get loose from the turning . However as we do not want the wheels to be free spinning as the rod rotates,  I have to jam the ball bearings. In this way, the wheel will turn with the rod and then in turn causes the drum to rotate.

Wheels

Wheels with 2 nuts locking it down on both sides.

Automation

I have an Arduino Uno that was for my Kallitype printing which I modified it for this rotary film processor project. Basically with a motor shield and LCD shield, the sketch will go through the following cycles where the timings are customised for FOMA PAN 200 film using HC110 Dilution D.

  1. Prewash 3 mins
  2. Developing 7mins
  3. StopBath 1min
  4. Fixer 4 mins
Arduino Interface

Arduino Interface

At the end of each cycle the alarm will sound off signalling the need for me to change the chemical and go to the next cycle by pressing the Red push button. Check out this post for the sketch (code)

 

Conclusion

I hope this article give a good picture on how to construct a rotary film processing on your own. There are still quite a few improvements to be made  for mine. You will need to customize it to your own needs and also the ability to source your parts at your side.