RasPiCamcorder software released on Github
A few people have been asking me about the RasPiCamcorder software. My original plan was to partner with a well known supplier and offer a “build your own RasPiCamcorder” kit, along with software and instructions, as a product. The software was always going to be open sourced though.
But the market said NO! Many people have argued with the market and lost. I don’t intend to. There simply weren’t many takers for it. Cool though it is to be able to Dropbox your photos and videos, having neither sound nor screen seems to be enough to put off prospective video camera buyers. (What a fussy lot you are? ;) )
No failed experiments
But, there’s no such thing as a failed experiment. In fact this was a big success because it avoided me investing in a product that nobody wants to buy. I’d rather take a hit to the pride than a hit to the wallet any day of the week.
All it ended up costing me was time (~75 hours, maybe) but I thoroughly enjoyed it and learnt a lot through the process. So that time was by no means wasted. And I’ve got a RasPiCamcorder and YOU haven’t. Nerr nerr nee nerr nerr. But I’m not a pig (oink) so I’m Open Sourcing my software.
Actually I used the RasPiCamcorder as a second “close-up” camera in a product review that’ll be out next week.
Still gotta eat though
Still, even though I enjoyed it, I needed to focus for a while on some other things before spending further time on it. (I also took a break from blogging about the camera because I got a sense that those who couldn’t buy one were getting fed up.) People clamouring for software will be clamouring for help if there’s no documentation. Releasing something with no documentation at all is foolish. Instead of just those waiting for software hating you, everyone will hate you if there’s no docs.
On Friday, I finally got a round tuit.
I’ve documented the software, hopefully well enough to minimise the onslaught of hate-mail when people don’t understand it or can’t get it working.
I spent some time getting to know GitHub a bit. (BTW, there’s a really funny Youtube video called “Hitler Uses Git” – awfully rude, but awfully funny.) And now I have made a “GitHub repo” with the RasPiCamcorder software in. It’s called, err, RasPiCamcorder and it’s under raspitv. You can find it here…
Is it perfect?
Are there things wrong with the way I’ve coded it?
Does it work?
Yes it does what I wrote it for, which is why I don’t care if it’s not perfect.
Does it work for you?
That’s for you to sort out.
Download it and have a play.
git clone https://github.com/raspitv/RasPiCamcorder.git
There’s some shots of the hardware here…
…and a hardware shopping list is at the bottom of the ReadMe.txt file. Make sure you read it all or…
“Silence! I keel you!”
No Guarantees of any kind
I’m not offering to support this though. But that doesn’t mean I won’t ever help anyone under any circumstances.
It means no guarantees of any kind.
If you want to tell me that I could have used “finally:” instead of “except KeyboardInterrupt:” I already know. I’ve left it in a couple of the programs to wind you up. :p
Don’t ask for help if you haven’t read the ReadMe.txt file though. If you haven’t got time to read that, I haven’t got time to help you. After all, I spent time writing it in order to help you. (OOh did I just have an RTFM moment there? ;) )
If you want to collaborate and improve it, I’m up for that. It would be particularly nice if it could be made to work as one program instead of three. I had problems with MMAL errors when I tried to combine stills and video into one program. The camera stopped working and wouldn’t work again until I cleared it with a reboot. Separating the functions made this nasty beast go away.
It’s (y)ours now
It’s out there now. Open Source. Use it, fork it, slag it off, do what you like with it. It’s not just mine any more, it’s ours now. Happy Christmas :)
You ever here of something called kickstarter, indiegogo… and many more? They’re campaigns to raise money. By the sound of your introduction you might be lacking funds to start this camkit business. There’s tones of suppliers who could supply you with hardware as well. The next step is advertising, getting your idea out their, get more people to get interested. What’s driving people away from these camera is the hassle to set them up and lack of support. By releasing good software, even free, you’re opening up a door for the camkit business because you will increase came demands and interest.
Naah – it’s none of those things. I had a distributor interested in this. I dipped a toe in the water when I published the RasPiCamcorder blog and asked for expressions of interest.
I know how many of those I got (more than one, less than enough) compared with how many people viewed that page (lots). And I’ve been around internet marketing long enough (since 1999) to know when something is not “a goer.”
(Usually less than half of the expressions of interest convert into orders too).
It’s a fun project, but when you compare the costs with some of the cheap ready to go camcorders, it was never going to stack up well against those – (no screen, no sound and more expensive) UNLESS, you discount the fact that people already have the Pi and the pi camera. That and the fact that most people can do this with their smartphones anyway. It’s a niche product for tinkerholics. Loads of fun though :)
[…] raspi.tv: A few people have been asking me about the RasPiCamcorder software. My original plan was to […]
I noticed in your video when you press the blue button the program pops up and starts recording and displays what the camera see on the monitor and when you press the black button in stop filming and the camera feed goes away and displays the text on the monitor.
I was wondering if it was possible to display the camera feed, on a monitor, automatically at boot without recording for a dash cam or backup camera? Than hit a button to start/stop recording without losing the camera feed on the monitor and never seeing the text?
So you want constant preview and record on demand. At the moment, I don’t think that’s possible – at least, I don’t know how to do it. Once the V4L2 drivers come out, it might be though.
Hi Alex, you say it’s “Open Source” but I couldn’t find anywhere saying what licence you’ve released it under? If you could add that info to (at least) the ReadMe.txt that’d be great :-)
I may be sending you some github pull requests later… ;)
I haven’t actually selected one yet. I guess the CC attributive would be a good one. Will have to look into it.
Ref the pull requests – I was expecting that. ;)
Love your program! I set it up as a party photo booth with one switch to snap the photo.
One question. It mysteriously takes a picture when the lighting changes significantly, like a motion camera almost. Any ideas why?
I’ve not come across that
I remember once trying to help somebody debug a problem on the Pi forums – he had long wires between his push-button switch and the GPIO connector, and every time he turned on or off his mains house-lights, the long wires connected to his Pi would pick up the electrical interference, and the Pi would interpret it as a “button press”. Sounds like maybe you’re seeing the same thing?
I’m afraid I can’t remember exactly how he fixed it, but I think it may have involved adding extra resistors or capacitors or something?
Ah, here we go… http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=50323
Fairly certain that’s the problem. If I put a switch right on the breadboard, no problem. I’ve got resistors, but looks like I’ll make another trip to Radio Shack for a capacitor. I put a 10K resistor between the ground and the switch for 23, but it doesn’t seem to make a difference.
Do I need to remove the PUD.UP code?
This is working great! It is just taking about 10 pictures while I sit in front of it.
Yeah, I think if you’re using external pullup/pulldown resistors, it makes sense to stop using the internal pullup/pulldown resistors.
Well. I’m stuck. I tried the external resistor, the capacitor, and the funky combo circuit. Still random snap shots.
One weird thing I notice when I run it from the terminal is that it displays the warning about the two channels already being in use. I don’t have anything else running, and i make sure it gets shut down correctly so it can do the clean up.
Any ideas? One thought is to move to an infrared and just use a remote control to send a random signal.
Thanks everyone for your help. This has been a real learning experience and fun!
I’m afraid it doesn’t really add anything, but I managed to track down where else I’d seen this problem discussed – the URL looks familiar ;-)
http://answers.yahoo.com/question/index?qid=20080711010159AAlJz3Q suggests that maybe old/worn light switches produce more interference than new switches?
No other ideas from me I’m afraid – other than to point to another page on Alex’s site https://raspi.tv/2013/flirc-a-programmable-usb-media-centre-controller-receiver (you may be able to DIY a cheaper IR solution).
Thanks Andrew! I really appreciate the links. Is there any difference in tolerance to this kind of interference if I make it a pull down vs a pull up?
I’m going down two paths tonight:
Really try to knock out/deal with the interference – using twisted pair rather than the pots cable I had lying around and putting in the 10K external resistor. I’m also going to tighten up the wires in the box and reroute the power cable as far as possible away.
Overnighted some IR kit and will try that as an alternative to the switch. If it worked, it would reduce the need for any long cable.
Hope to report back some success tomorrow.
The source of the interference was the christmas tree lights in the background of the shot! The photo booth worked great and thanks for everyone’s help. I found a screensaver app for the eye-fi which polls the dropbox folder for latest pictures. Everyone at the party would take their pictures, then run into the main room to see how it turned out. Real crowd pleaser. I still want to put the IR control in place, but it was a hit as is!
Thanks again for this!
Another Newbie question. I have the program load in the background on boot. The short button isn’t killing the program (if I hold it longer than 2 seconds, it shuts the whole thing down). How else can I kill the program if I need to modify the code?
Are you able to login over SSH and do something like
sudo pkill python?
I’ll try it tonight. Thanks!
Struck out on cutting down the interference, so I’m moving to trying LIRC to trigger the GPIO. I’d appreciate any last ditch help from everyone. You’ve been so great so far!
So I’ve got LIRC configured to my remote. It is tied to pin 18, like they suggest. My question is – how do I call to wait for a button push from LIRC to snap the picture?
This seems the closest to what i need, but I can’t figure out what python code I need to embed into the stills code to make it work
I’ve never used LIRC myself (and I think Alex is a little busy with HDMIPi atm), so I guess you’ll need to ask for more help on either the Raspberry Pi or LIRC forums / mailing list.
Glad to hear your party went well. But I’m not surprised to hear that (cheap?) flashing christmas lights create lots of http://en.wikipedia.org/wiki/Electromagnetic_interference ;)
Just found this on RaspiTV site. I was looking to take an existing camcorder and write a driver for the Raspi. I don’t know how in depth this is and where to get started. The camera works on usb for downloading files and only works with their proprietary software which they have discontinued. Looking to possibly create a webcam of sorts or some sort of home security system as I have a few of these. If you could explain how you go about writing low level drivers for camera it would help. Thank you
I wouldn’t know where to begin. I think you’d be better off grabbing a Pi camera
“The camera works on usb for downloading files and only works with their proprietary software which they have discontinued.”
In that case your only hope is to try reverse-engineering the custom USB protocol the camera uses, which for all intents and purposes is impossible.
As Alex says your best bet is buying a Pi camera, or just using a “normal” USB webcam https://www.raspberrypi.org/documentation/usage/webcams/