Greetings! I am not new to the forum, I have been following with interest for some time, but until recently have not attempted anything myself, and so have not posted anything yet. I first became aware of the Kinograph project early last year as I was looking for a way to convert some films I have and some films I have yet to shoot to digital video. I also quickly found jas8mm’s rpiTelecine project which seemed like a good place for me to start due to the detail of the plans and instructions he provided on GitHub. GitHub - Alexamder/rpitelecine: Raspberry Pi based 8mm telecine
After the last few weeks of sourcing parts, assembling and working out some physical design aspects this is what I have come up with:
This is still rough as I am still working out some kinks. I followed jas8mm’s plans nearly to the letter with a couple of exceptions: I went with the Raspberry Pi Model 3 B and the v2 Camera module.I also did not want to expend a good deal of money on makerbeam so I designed a laser cut enclosure which I was able to make out of cheap 1/4 inch plywood and cut at my local Makerspace (which for me is Makerspace Dallas) I will most likely replace this with acrylic or some other material once I have the design finalized. The film rollers, gate and film tables were all printed with my 3d printer out of ABS plastic and I fumed the rollers with acetone to smooth them out.
I am 98% there, but on final assembly I have run into a problem. I was able to test the electronics and make sure everything works but was not able to test his perforation detection until I had everything assembled. The way this works you should be able to run his setup script and click within the perforation to detect it.
The setup script is:
It calls on this script to identify the perforation:
When I run this, I get an error - “ValueError: zero-size array to reduce operation maximum which has no identity”
I should say that I am not a programmer and so my experience thus far with Python has really been limited to this project, so I thought I would start here and see if anyone can point me in the right direction. I am not sure what became of jas8mm but his github was moved to a different user name (Alexamder) and his videos on youtube have been taken down, so I am sure how to get in touch with him directly or I would ask.
More info, here is the exact error with the traceback:
/usr/lib/python2.7/dist-packages/picamera/encoders.py:544: PiCameraResolutionRounded: frame size rounded up from 3280x2464 to 3296x2464
width, height, fwidth, fheight)))
Traceback (most recent call last):
File “tc-setupjob.py”, line 253, in mouse_handler
File “/home/pi/rpiTelecine/rpiTelecine/perforation.py”, line 230, in findFirstFromCoords
threshVal = int(vROI.max()*self.thresholdVal)
File “/usr/lib/python2.7/dist-packages/numpy/core/_methods.py”, line 17, in _amax
ValueError: zero-size array to reduction operation maximum which has no identity
@kowboi69 have you contacted the original creator of the python code you’re using? I could go through the code but without having run the software myself it would be hard to guess where the problem is.
Have you done posted an Issue on a github repository before? I suggest starting there. But let us know if that doesn’t work and maybe we can put our heads together.
Thank you for your response! No, I have not been able to find him, he seems to have dropped off the internet, I think the current github may be a clone from another user, and github gives you no good way to contact anyone. The good news is that I am now past this error, and frame detection is working. Turns out I had the film transport running backwards, the perfs were upside down, and hence on the wrong side of the detection area, also there is a threshold setting for perf detection that once I lowered, I was able to pick up perforations, so, progress! But now my issue is that he had some code written for transport calibration that I cannot seem to get to work. It seems to only want to calibrate in reverse and not forwards, so that is the current issue I am fighting with.
I must have done something with the code while I was messing with it, I deleted all the scripts, recloned the git repository, (changed the detection threshold so it would work when I run the setup script) and now the film transport is running in the correct direction during calibration… it seems to want to advance through the whole film without finishing the calibration though.
Thinking about this further, the way the output looks it looks like it’s still having perf detection issues when running the transport calibration routine… Since the perf detection is based on brightness, I wonder if my white film gate, which was meant to be temporary anyway, is causing the problems. Printing a black one out of black ABS now, I will replace it and see if that helps… stay tuned.
The white film gate definitely was definitely causing issues with perf detection during the transport calibration, though the initial perf detection was working it was not picking up during the calibtation routine, so it was advancing all the way through the film before the calibration job finished, Finally running a capture job now and will report back with results!
I’m ready to begin this project and have pretty much everything sourced for the build, except for the LEDs and heat sinks - unless I missed it, I wasn’t able to determine what jas8mm used from his schematics.
Could you provide any information on part numbers, etc. for these components?
I found jas8mm’s project on github first and had started gathering parts/suppliers, but nothing purchased quite yet. Since kowboy69 said he had built the jas8mm version, I was curious as to the LEDs he used.
Both projects look pretty slick. My parents are elderly, so I’m anxious to get rolling so I can share our family memories with them.
DBB, I sent you some info you requested and will be happy yo help if you have more questions, I’d like to pick my project back up again and improve it, but for the benefit of the others I ended up going with these:
I used white on both sides, I have not tried the turquoise yet that jas8mm recommended for one side but do wonder if it might help with his sprocket recognition.
Matt, I will find the files for the arms I used and upload them, there is always room for improvement but they work well enough.
Thanks a ton for the replies, kowboi69! The forum has been down, so have not been able to reply until now.
I have the stepper and pinch roller files from github, but the ones I was was referring to were jas8mm’s set of idler rollers in his photos, up near the film spools. He didn’t seem to include those in his github collection. I’m not sure they’re even needed. The film path from your build looks just fine, with no unnecessary sharp bends to the film.
Saw some info on turquoise LEDs from a supplier website, and they basically reiterated what jas8mm had said about filling in the reds and oranges that are missing from the neutral white LEDs (and royal blue, according to the supplier.
As far as the lens, I’m going to keep looking. The price is right on the 7mm you suggested, but I’m going to have to learn how to use FreeCAD to mod the camera mount as you suggested, before sending off my files to get printed. Looks like the square aperture of the mount is 8mm, so I’m assuming you had to do quite a bit of rework to get your lens to fit. I have a v2 Raspberry Pi camera here, so I was planning on using that with all this.
If anyone is building or wants to build this film scanner, I have a few extra PCB’s available. The PCB has an interface to the Raspberry Pi, two stepper controllers, two server controllers, two LED drivers, camera control and switches for enabling the light/motors. It can be used for any project where you need to interface to the mentioned hardware. I’m currently building a film scanner and have a few extra PCB’s that I’m willing to make available for $6 each. It was cheaper for me to have more than one produced. This is the PCB only but I’ll also include a list of materials/sources that I’m using to populate it. Please send a PM if interested.