Longer write-up on my site, since I'm too lazy to go and re-write a whole bunch of stuff here.
Website is down due to insufficient film sales to maintain hosting fees. Contents of the article are now posted at the bottom of this page.
Built around a 35mm splicer and an old 3d printer. Perforates 100 feet of film in about 3 hours. Requires the following hardware:
1/4-20 heat set inserts and screws
m5 screws and an m5 tap
2 nema 17 stepper motors, one with a 27:1 gearbox
about 75mm of 4-start T8 leadscrew with the proper nut
a shaft coupler to join the leadscrew to the gearbox
a 3d printer control board and power supply. I used an old melzi board but something newer that can run marlin or klipper is probably a better option
a few 8mmx3mm round neodymium magnets
some 8mm steel rod
some rubber bands
platinum cure silicone
assorted set screws
1-2kg of filament. mostly PLA but some TPE for the drive belt
Something for the base. I used a 12x24 sheet of ¾ inch HDPE, which is nowhere near stiff enough and had to screw a couple 2x4s to the bottom.
some 608 bearings and a 6003 bearing
probably some other parts that I'm forgetting. You're a smart fella, I have faith that you'll figure out what you need
All parts should be printed fairly dense, I used 4-5 perimeters on all parts, 10-15% infill.
This is a work in progress, test with scrap film first. Modifications and improvements welcome and encouraged.
Orange parts aren't printed, Blue parts are TPU, black parts are static and red parts move (all should be printed strong), Green part should have multiples made.
Options to collect the punch outs in a drawer or remove with a vacuum (You're on your own to set that up how you want. Use the opening at the back of the riser along with the vacuum drawer insert.)
I'm happy to answer any questions.
Content from original article:
Version 4 is a clean sheet design, ditching the roller concept in favor of a commercially available film splicing unit which has a punch and die for 6 pairs of perforations. This is the design I ended up running with.
The riser and drawer in V4’s design exist mainly just to keep the drops, which are indistinguishable from glitter in terms of mess making coefficient, from going all over my desk. It’s good enough to test by hand using the splicers’ built in handle and alignment pins, but man is it ever slow. Punching enough film for a single roll takes about an hour and having to manually advance the film will inevitably lead to fingerprints finding themselves everywhere on the film.
Phase II: Automation
I clearly need to find a way to automate the feeding and punching process. After thinking about it for a while and trying a few different ideas in CAD, I decided that using 2040 aluminum t-slot extrusion would be a good solution, allowing me to quickly build up the framework needed without spending weeks printing parts that probably wouldn’t be as strong anyway.
Everything besides the extrusions, baseboard, screws, motors, and splicer are 3d printed. This took probably 3 weeks, since almost everything needed at least one revision, and sometimes 3 or 4. It uses a nema 17 stepper motor driving a platinum silicone coated roller through a 5:1 gear reduction to advance the film and apply torque to the take up spool through a toothed belt with a smooth pulley that acts like a clutch to keep tension fairly constant. A second nema 17 with a 27:1 planetary gearbox drives the punch down with a 4-start T8 leadscrew. This should be able to apply up to 700lbs of force against the film before stalling the motor. It’s enough force to significantly bend the 3/4 inch HDPE baseboard which violently springs back to shape when the punch makes its way through the film. Future iterations will use something stiffer than HDPE.
00:00
00:08
% buffered00:00
Phase III: Acquire Hardware
The heart of this project is a Neutaper 35mm splicer which I assume was used by movie theaters to splice prints of movies for projection. In addition I ended up using the following:
1/4-20 heat set inserts and screws
m5 screws and an m5 tap
2 nema 17 stepper motors, one with a 27:1 gearbox
about 75mm of 4-start T8 leadscrew with the propper nut
2 m8-m6 shaft couplers and a length of 1/4 inch stainless rod to join them because the data sheet for the gearbox said it had a 6mm output shaft not 8mm
the control board and power supply from an old 3d printer off facebook
a few 8mmx3mm round neodymium magnets
some 8mm steel rod
some rubber bands
platinum cure silicone
assorted set screws
about 4-5 kg filament including prototypes. mostly PLA but some TPE for the drive belt
a sacrificial roll of diazo microfilm for testing
a pair of google eyes
.75x24x12 inch HDPE board. HDPE isn’t rigid enough and required a couple pieces of 2x4 to stiffen it. ABS might be better but I’m not sure
some 608 bearings and a 6003 bearing
Phase IV: programming
The control board I used came with Repetier 0.91 installed. The firmware version isn’t super critical, but what is critical is the software endstops. As stock, the firmware refused to execute moves beyond what it recognizes as 200mm in X and Y. X (the motor on the punch) only travels back and forth a few mm so it isn’t an issue, but Y (the advance mechanism) is a different story. It needs to function as essentially an infinite length. In order to fix this I first installed a bootloader on the control board using an Arduino uno installed a custom Marlin configuration. Something that should only take a few minutes ended up taking me a week (I hate programming.) The LCD screen output is a bit garbled but its good enough to more or less navigate around the menu so its fine I guess.
The steps per mm on the X axis I calculated to be 10,800 after gearing, microstepping, and the leadscrew. However, the motor threw a hissy fit even at low speeds so I cut the steps in half to 5400 and just program twice the feed distance needed. Y steps are roughly 610 per “mm.” I use quotes there because I’m not feeding the film in millimeters, but in number of perforations; 5 to be specific. This results in the 6th tooth on the die dropping into the last perforation. Ideally this would align perfectly and just not cut but the positioning isn’t 100% accurate resulting in slight enlargement of every 6th perforation on occasion. I figure that it is better to maintain spacing between the perforations for the cameras sprocket to engage with rather than keeping every perforation the same size and potentially misaligning with the sprocket teeth. Testing will confirm this.
The Gcode itself is pretty simple, just G91 to set incremental feed mode, followed by:
;
G1 Y6 F100
G1 X10
G1 X-10
;
This block is copy-pasted for the required number of perforations for a given length of film (~1000 cycles per 100 feet.)
In future iterations I plan to swap out the control board for a RAMPS 1.4, which can support newer versions of marlin that enable the use of M808, which is the looping command and would eliminate the need to copy-paste thousands of lines of Gcode
Phase IV: Testing and Small Scale Production
Troubleshooting took longer than expected, which is absolutely to be expected in any project. Engineers refer to this as ‘integration hell’. The period in which we power things on and find out what breaks first, fix it, turn it on again and break the next thing until eventually things stop breaking so much. Spacex does this with multi-million dollar rockets, I do it with 50 cent 3d printed crap and probably get just as irritated when things go south.
Failed, broken, and redesigned parts. There’s 5 kilos of filament and 3 weeks print time in this box.
At first I fed the film 5 perforations at a time, with the 6th tooth on the punch going into the perforation created by the first tooth on the previous stroke. My reasoning was that if there was any small misalignment, it would result in a slightly enlarged perforation rather than an inconsistent spacing between holes which I reckoned would be a larger issue for feeding reliability in camera. Turns out this was stupid, since if the film wasn’t advanced far enough then it would cause both an enlarged hole and inconsistent spacing. Additionally, the punch appears to pull the film back slightly before the teeth start to bite. When I sharpened the teeth I created a slight rake, where the 6th tooth contacts the film very slightly sooner than the rest. Advancing all 6 teeth seems to cause tooth 6 to pin the film in place reducing the pullback and resulting in much more consistent film. There is still an occasional very slight hiccup, though this doesn’t seem to cause any issues in film advancing in camera (you can kinda feel it when rewinding the film if you pay close attention, only seems to be a factor in one direction when the film is pulling the camera’s advance gear)
5-perf advance on left vs. 6-perf advance on right. Note the enlarged hole on the 5-perf roll. This hasn’t appeared to cause any issues in my testing but it’s still less than ideal.
Working with film obviously has to happen in the dark to end up with a usable product at the end. To that end, I made a mini ‘darkroom’ cabinet in my closet out of 4 Ikea Lack tables stacked 2 wide and 2 high with a leather ‘skirt’ draped around the sides of the top tables and hanging a few inches past the tops of the bottom tables. The leather was stapled to the top and legs of the top tables and the bottom hanging freely, and the edges were taped. It it technically possible for light to leak up from the bottom but i keep the lights in the closet off and the door shut while the machine is running so in practice there haven’t been any leaks that I have noticed. At some point I will build a u-shaped channel to wrap around the bottom of the leather creating a light trap but for now things seem to be running smoothly.
The perforator in its current enclosure. The silver tins contain film in various stages of processing.
At this time there seems to be little else to do besides making a production run of film. I already had a couple hundred feet of various 35mm microfilm stocks but decided to go a little further off the beaten path and bought a 610 foot roll of 6 inch Fuji Crystal Archive glossy color photo paper off ebay for 40 bucks. Needing a way to cut the paper down to 35mm wide strips, I modeled up a block with a series of utility knife blades and a spool with multiple cores to take up the nearly 1/8 mile long strips of “film.”
6 inch to 35mm slitter block and take up spool.
After slitting the paper to the appropriate width, one of the side plates is removed from the take up tool and the 4 rolls can be separated to be placed in storage cans temporarily. The first gets mounted to the perforator and the leader strung through the mechanisms. Hit “print” and after a few hours (assuming no jams) the film/paper/whatever is ready to be loaded into 135 cassettes. Since the paper base is much thicker than any film, only 24 exposures can be loaded into a cassette, while some microfilms can fit nearly 80 exposures.
Test roll of crystal archive to find ISO. The exposures are bracketed from 3 to 12, and I estimate ISO 8-10 to be the sweet spot outdoors and more like 1.5-2 indoors. The heavy cyan cast is due to the fact that crystal archive paper is designed to correct the orange mask found in C-41 film. I also developed in rodinal and very expired C-41 developer instead of a more appropriate BW paper first developer (like dektol) and proper RA4 developer. Thinking about it now, outdoor shots probably need some kind of UV filtration which may also correct some of the extreme cyan color cast.
That’s about as far as I’ve gotten to this point. I am continuing to work on the machine and related accoutrements as well as spooling up way more film than I can realistically shoot myself. I’d like to take this opportunity to
shillshamelessly plug my Etsy store where I will make the film that I produce available, profits from which I will use to continue R&D on small scale film production and other related endeavors (maybe even an all-new film emulsion made from scratch?) If anyone does decide to pick up some rolls, any and all feedback would be greatly appreciated.I am also planning to release the design files for this project once I get them cleaned up a bit, currently they’re organized into a big folder full of a bunch of models titled “body1", “body2”, “body3” etc…
Edit: Keep the change ya filthy animal.
test shot with some Kodak Recordak Imagecapture AHU microfilm that expired in 1988
I usually like to shout out whatever music I’ve been enjoying lately. Recently I have been listening to “Ram Ranch” on repeat. Not really, but good on you if you know what I’m talking about. If you want some actually good music, check out Hinayana’s 2018 album “Order Divine.”
Written without proofreading,
Jackson Bohm
The author marked this model as their own original creation.