{"id":32,"date":"2021-02-22T20:24:02","date_gmt":"2021-02-23T04:24:02","guid":{"rendered":"http:\/\/varmintworks.com\/varmint-blog\/?p=32"},"modified":"2021-03-23T18:00:39","modified_gmt":"2021-03-24T01:00:39","slug":"raspberry-pi-zero-w-time-lapse-deck-view-camera","status":"publish","type":"post","link":"https:\/\/varmintworks.com\/varmint-blog\/2021\/02\/22\/raspberry-pi-zero-w-time-lapse-deck-view-camera\/","title":{"rendered":"Raspberry Pi Zero W Time-Lapse Deck View Camera"},"content":{"rendered":"\n<p>Controlling a Point &amp; Shoot Camera with a Raspberry Pi Zero W<\/p>\n\n\n\n<p>I really want to shoot some great time-lapse video here on the island. We have beautiful clouds, sunsets, oceans waves&#8230; all kinds of things that a time-lapse might be fun to view. I have also collected a handful of point and shoot digital cameras over the years. I tested everything in my arsenal.<\/p>\n\n\n\n<p><a href=\"https:\/\/varmintworks.com\/varmint-blog\/wp-admin\/edit.php?post_type=post\"><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Cameras<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Image<\/td><td>Description<\/td><\/tr><tr><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/aUDrV6oZI6iztvjulsWuCNotO9unMpMMluQbNvWduuj2HtFcrrSLuVtMbkhHEbE3xnTVo0hD7Cj6t6CGpWNDIN1lLeY5wHXe_0AiU-Z8nCGMqeECYt5CK7f2ozqO9QbSUYFTylXA\" width=\"166\" height=\"111\"><\/td><td><a href=\"https:\/\/www.usa.canon.com\/internet\/portal\/us\/home\/products\/details\/cameras\/eos-dslr-and-mirrorless-cameras\/dslr\/eos-80d\">Canon EOS 80D<\/a><br>Pixels (effective) 24.2 megapixelsPixels (total) 25.8 megapixelsMaximum resolution 6000 \u00d7 4000 pixels (3.7 \u03bcm pixel size)Sensor Size 22.3 \u00d7 14.9 mm (APS-C format)<\/td><\/tr><tr><td><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/RQcqMlpEtbXkkrg1qH3wLhTiiWmtDvKH_-i7H0fG5-EhaxNHivBK46YE0IldexTkiIBvOdOQIcdHB2zkCBt87BfUyI1wdn5LT0r9eYDsUhacHLLAcDhuvFzB_u0eWpY-nZ9tSDW5\" width=\"149\" height=\"149.4697812153275\"><\/td><td><a href=\"https:\/\/shop.panasonic.com\/support-only\/DMC-FH27.html?dwvar_DMC-FH27_color=Red&amp;Quantity=1\">Panasonic Lumix DMC-FH27<\/a><br>Pixels (effective) 16.1 MegapixelsPixels (total) 16.6 Total MegapixelsSensor Size 1\/2.33-inch<\/td><\/tr><tr><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/t1cBxkuC1J-dWza6IfsjJkc2w2IlILzPc-sBaL66HIB7OFkskLhgWV8I-P_FY30rewvmAef0LW2haK1IEOSey0fsKQTez0BP2q9BEuxQZPUquAHLxUJ5eYeRhFR3gCAHnBozhWhP\" width=\"134\" height=\"93\"><\/td><td><a href=\"https:\/\/shop.usa.canon.com\/shop\/en\/catalog\/powershot-elph-330-hs-black\">Canon PowerShot ELPH 330 HS<\/a><br>Pixels (effective) 12.1 MegapixelsPixels (total) 12.8. Megapixels<br><\/td><\/tr><tr><td><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/hgdCtbFKTIq2b37ZrY1myEdslfl5YQO7z8KWJGOnIvDfW9SKhGq_yyFOB1pct9dgmSuBm8C4pAxRSmTG-lKagixcY742o81Yqn9Ehd4MnE1L493vJIzgn-zsIJ6SoVZs5lbE4sOe\" width=\"149\" height=\"102\"><\/td><td><a href=\"https:\/\/shop.panasonic.com\/cameras-and-camcorders\/cameras\/lumix-point-and-shoot-cameras\/DMC-ZS50S.html\">Panasonic Lumix DMC-ZS50<\/a><br><\/td><\/tr><tr><td><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"120\" height=\"84\" class=\"wp-image-202\" style=\"width: 120px;\" src=\"https:\/\/i0.wp.com\/varmintworks.com\/varmint-blog\/wp-content\/uploads\/2021\/02\/618ZoJaGCxL._AC_SL1500_-e1616546746877.jpg?resize=120%2C84&#038;ssl=1\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/varmintworks.com\/varmint-blog\/wp-content\/uploads\/2021\/02\/618ZoJaGCxL._AC_SL1500_-e1616546746877.jpg?w=815&amp;ssl=1 815w, https:\/\/i0.wp.com\/varmintworks.com\/varmint-blog\/wp-content\/uploads\/2021\/02\/618ZoJaGCxL._AC_SL1500_-e1616546746877.jpg?resize=300%2C210&amp;ssl=1 300w, https:\/\/i0.wp.com\/varmintworks.com\/varmint-blog\/wp-content\/uploads\/2021\/02\/618ZoJaGCxL._AC_SL1500_-e1616546746877.jpg?resize=768%2C538&amp;ssl=1 768w\" sizes=\"auto, (max-width: 120px) 100vw, 120px\" \/><\/td><td>GoPro Hero 3+ Black Edition<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><a href=\"https:\/\/maskaravivek.medium.com\/how-to-control-and-capture-images-from-dslr-using-raspberry-pi-fdfa9d600ec1\">https:\/\/maskaravivek.medium.com\/how-to-control-and-capture-images-from-dslr-using-raspberry-pi-fdfa9d600ec1<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Install libgphoto2 and gphoto2<\/h1>\n\n\n\n<p>libghoto2 library lets you interface with 100s of supported DSLR cameras and ghoto2 is a command-line utility for using libghoto2. Here are the steps for installing both these libraries.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites<\/h3>\n\n\n\n<p>Install the following dependencies:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt-get install git make autoconf libltdl-dev libusb-dev libexif-dev libpopt-dev libxml2-dev libjpeg-dev libgd-dev gettext autopoint<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Install libghoto2<\/h3>\n\n\n\n<p>Download the latest code for libgphoto2 from:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone<a href=\"https:\/\/github.com\/gphoto\/libgphoto2.git\"> https:\/\/github.com\/gphoto\/libgphoto2.git<\/a><\/pre>\n\n\n\n<p>Execute the following commands to install libgphoto2<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~\/libgphoto2\nautoreconf --install --symlink\n.\/configure\nmake\nsudo make install\ncd ~\n<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Install ghoto2<\/h3>\n\n\n\n<p>Download code for gphoto2<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git clone<a href=\"https:\/\/github.com\/gphoto\/gphoto2.git\"> https:\/\/github.com\/gphoto\/gphoto2.git<\/a><\/pre>\n\n\n\n<p>Build and installgphoto2<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~\/gphoto2<br>autoreconf --install --symlink<br>.\/configure<br>make<br>sudo make install<br>cd ~<\/pre>\n\n\n\n<p>Update Configs<\/p>\n\n\n\n<p>Add the following line in \/etc\/ld.so.conf.d\/libc.conf<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/local\/lib<\/pre>\n\n\n\n<p>Refresh cache before proceeding further.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo ldconfig<\/pre>\n\n\n\n<p>Generate udev rules for the camera<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/local\/lib\/libgphoto2\/print-camera-list udev-rules version 201 group plugdev mode 0660 | sudo tee \/etc\/udev\/rules.d\/90-libgphoto2.rules<\/pre>\n\n\n\n<p>Generate the hardware database file for udev<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/usr\/local\/lib\/libgphoto2\/print-camera-list hwdb | sudo tee \/etc\/udev\/hwdb.d\/20-gphoto.hwdb<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Using ghoto2<\/h3>\n\n\n\n<p>Now that we have both the libraries installed, now we can use ghoto2 for interfacing with the camera. Make sure that the camera is connected to the Raspberry Pi.Execute the following command to see if ghoto2 can detect the camera.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">gphoto2 --auto-detect<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Canon EOS 80D<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/azGPzPtbZjNMTIvS1mzikv3rhxS0sIpXkH45LY0YjNnfH8lizV7RNEQrrgGh55QtNjzj7wu5EzctyxPv2TaQQH97U2VFn3lk-mhS2H7WlooROpcfLG5yiqEUvB-FdVIlWsOacwm5\" alt=\"\"\/><\/figure>\n\n\n\n<p>So, <strong>yes<\/strong>. This camera would work. It&#8217;s also my very best camera. I have no intention of putting this on the deck outside for extended periods of time!<\/p>\n\n\n\n<p>pi@rpzw-deckcam:~ $ gphoto2 &#8211;list-config<\/p>\n\n\n\n<p>\/main\/actions\/syncdatetimeutc<\/p>\n\n\n\n<p>\/main\/actions\/syncdatetime<\/p>\n\n\n\n<p>\/main\/actions\/uilock<\/p>\n\n\n\n<p>\/main\/actions\/popupflash<\/p>\n\n\n\n<p>\/main\/actions\/autofocusdrive<\/p>\n\n\n\n<p>\/main\/actions\/manualfocusdrive<\/p>\n\n\n\n<p>\/main\/actions\/cancelautofocus<\/p>\n\n\n\n<p>\/main\/actions\/eoszoom<\/p>\n\n\n\n<p>\/main\/actions\/eoszoomposition<\/p>\n\n\n\n<p>\/main\/actions\/viewfinder<\/p>\n\n\n\n<p>\/main\/actions\/eosremoterelease<\/p>\n\n\n\n<p>\/main\/actions\/eosmoviemode<\/p>\n\n\n\n<p>\/main\/actions\/opcode<\/p>\n\n\n\n<p>\/main\/settings\/datetimeutc<\/p>\n\n\n\n<p>\/main\/settings\/datetime<\/p>\n\n\n\n<p>\/main\/settings\/output<\/p>\n\n\n\n<p>\/main\/settings\/movierecordtarget<\/p>\n\n\n\n<p>\/main\/settings\/evfmode<\/p>\n\n\n\n<p>\/main\/settings\/ownername<\/p>\n\n\n\n<p>\/main\/settings\/artist<\/p>\n\n\n\n<p>\/main\/settings\/copyright<\/p>\n\n\n\n<p>\/main\/settings\/customfuncex<\/p>\n\n\n\n<p>\/main\/settings\/focusarea<\/p>\n\n\n\n<p>\/main\/settings\/strobofiring<\/p>\n\n\n\n<p>\/main\/settings\/flashcharged<\/p>\n\n\n\n<p>\/main\/settings\/oneshotrawon<\/p>\n\n\n\n<p>\/main\/settings\/autopoweroff<\/p>\n\n\n\n<p>\/main\/settings\/depthoffield<\/p>\n\n\n\n<p>\/main\/settings\/capturetarget<\/p>\n\n\n\n<p>\/main\/settings\/capture<\/p>\n\n\n\n<p>\/main\/settings\/remotemode<\/p>\n\n\n\n<p>\/main\/settings\/eventmode<\/p>\n\n\n\n<p>\/main\/status\/serialnumber<\/p>\n\n\n\n<p>\/main\/status\/manufacturer<\/p>\n\n\n\n<p>\/main\/status\/cameramodel<\/p>\n\n\n\n<p>\/main\/status\/deviceversion<\/p>\n\n\n\n<p>\/main\/status\/vendorextension<\/p>\n\n\n\n<p>\/main\/status\/model<\/p>\n\n\n\n<p>\/main\/status\/Battery Level<\/p>\n\n\n\n<p>\/main\/status\/batterylevel<\/p>\n\n\n\n<p>\/main\/status\/lensname<\/p>\n\n\n\n<p>\/main\/status\/eosserialnumber<\/p>\n\n\n\n<p>\/main\/status\/availableshots<\/p>\n\n\n\n<p>\/main\/status\/eosmovieswitch<\/p>\n\n\n\n<p>\/main\/imgsettings\/imageformat<\/p>\n\n\n\n<p>\/main\/imgsettings\/imageformatsd<\/p>\n\n\n\n<p>\/main\/imgsettings\/imageformatcf<\/p>\n\n\n\n<p>\/main\/imgsettings\/iso<\/p>\n\n\n\n<p>\/main\/imgsettings\/whitebalance<\/p>\n\n\n\n<p>\/main\/imgsettings\/colortemperature<\/p>\n\n\n\n<p>\/main\/imgsettings\/whitebalancexa<\/p>\n\n\n\n<p>\/main\/imgsettings\/whitebalancexb<\/p>\n\n\n\n<p>\/main\/imgsettings\/colorspace<\/p>\n\n\n\n<p>\/main\/capturesettings\/zoomspeed<\/p>\n\n\n\n<p>\/main\/capturesettings\/exposurecompensation<\/p>\n\n\n\n<p>\/main\/capturesettings\/focusmode<\/p>\n\n\n\n<p>\/main\/capturesettings\/continuousaf<\/p>\n\n\n\n<p>\/main\/capturesettings\/aspectratio<\/p>\n\n\n\n<p>\/main\/capturesettings\/storageid<\/p>\n\n\n\n<p>\/main\/capturesettings\/highisonr<\/p>\n\n\n\n<p>\/main\/capturesettings\/autoexposuremode<\/p>\n\n\n\n<p>\/main\/capturesettings\/autoexposuremodedial<\/p>\n\n\n\n<p>\/main\/capturesettings\/drivemode<\/p>\n\n\n\n<p>\/main\/capturesettings\/picturestyle<\/p>\n\n\n\n<p>\/main\/capturesettings\/aperture<\/p>\n\n\n\n<p>\/main\/capturesettings\/shutterspeed<\/p>\n\n\n\n<p>\/main\/capturesettings\/meteringmode<\/p>\n\n\n\n<p>\/main\/capturesettings\/liveviewsize<\/p>\n\n\n\n<p>\/main\/capturesettings\/bracketmode<\/p>\n\n\n\n<p>\/main\/capturesettings\/aeb<\/p>\n\n\n\n<p>\/main\/capturesettings\/alomode<\/p>\n\n\n\n<p>\/main\/other\/d402<\/p>\n\n\n\n<p>\/main\/other\/d407<\/p>\n\n\n\n<p>\/main\/other\/d406<\/p>\n\n\n\n<p>\/main\/other\/d303<\/p>\n\n\n\n<p>\/main\/other\/5001<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Panasonic Lumix DMC-ZS50<\/h2>\n\n\n\n<p>PC Mode<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/ItbRE_JxK-RIvSS3CXHphCRampPavfJ0u0icvvzj5upISUs_CfYiH4HCGKhcQqUxw27CfXzPYz37V5OwYci8QiYu7Crgsd74dTNFrJBvfqvyEM7y4_309p85vIVlX5sT5yFr9Msa\" alt=\"\"\/><\/figure>\n\n\n\n<p>PTP Mode<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/jF_N1rAhTlshq-MxyF-vZrroLVsz5liHNND-E12IFdzYDoGbuATy_KHcBtDVVJfYovsRWw5NlF35PzUFUhVbBURBgFi4Nxt5wxVYrKK9E42lx-k4NT2lnVrKi6B31xtnipSJvTGr\" alt=\"\"\/><\/figure>\n\n\n\n<p>So, No. This camera does not support my minimum needs (Nothing listed under capture choices)<\/p>\n\n\n\n<p>\/main\/actions\/opcode<\/p>\n\n\n\n<p>\/main\/status\/serialnumber<\/p>\n\n\n\n<p>\/main\/status\/manufacturer<\/p>\n\n\n\n<p>\/main\/status\/cameramodel<\/p>\n\n\n\n<p>\/main\/status\/deviceversion<\/p>\n\n\n\n<p>\/main\/status\/vendorextension<\/p>\n\n\n\n<p>\/main\/status\/batterylevel<\/p>\n\n\n\n<p>\/main\/other\/d406<\/p>\n\n\n\n<p>\/main\/other\/d407<\/p>\n\n\n\n<p>\/main\/other\/5001<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Panasonic Lumix DMC-FH27<\/h2>\n\n\n\n<p>PTP Mode<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/j7Kn0sEAabk04A-2duU2yejtfTk2eO8TONFmwiDLPrC281u27WCMGuNPVr3i894klonOVgtm1C9mDr-0lLy1CO1Hj-PsvGKjqn11MMTxGbItZ2wrcbC9cuDOuV4_7Os2U-1uhGrn\" alt=\"\"\/><\/figure>\n\n\n\n<p>So, No. This camera does not support my minimum needs (Nothing listed under capture choices)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Canon PowerShot ELPH 330 HS<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/tI0wYIC-sI6bxjZ_W8aESpfRZ6_mpnlMAwf9qn1yqRzoqQH0rv-xAaRdY8rYI3iql1EGbTix78XpZcceiSaza2mlmyV3JUjEmP4Qm23bO1LejkN95iiDfQ-jJgATj6N2ZgQ7-v9X\" alt=\"\"\/><\/figure>\n\n\n\n<p>So, No. This camera does not support my minimum needs (Nothing listed under capture choices)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conclusion<\/h3>\n\n\n\n<p>In the end, I didn&#8217;t even need the Raspberry Pi Zero W here. The Hero 3+ has a wonderful interval timer. It&#8217;s also designed for rougher use and weather\/water safe.<\/p>\n\n\n\n<p>It&#8217;s turns out that the Hero like uses HTTP of all things as it&#8217;s remote protocol. And there the is a python library. <\/p>\n\n\n\n<p><a href=\"https:\/\/pypi.org\/project\/goprohero\/\">https:\/\/pypi.org\/project\/goprohero\/<\/a><\/p>\n\n\n\n<p>Sweet! It&#8217;s WiFi enabled too. This is my deck cam! GoPro Hero3+ Black edition for the win!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Controlling a Point &amp; Shoot Camera with a Raspberry Pi Zero W I really want to shoot some great time-lapse video here on the island. We have beautiful clouds, sunsets, oceans waves&#8230; all kinds of things that a time-lapse might be fun to view. I have also collected a handful [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":34,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[12,7,5],"class_list":["post-32","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi","tag-photography","tag-raspberry-pi","tag-time-lapse"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/varmintworks.com\/varmint-blog\/wp-content\/uploads\/2021\/02\/20210220_231956-01-scaled.jpeg?fit=1457%2C2560&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":6,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/posts\/32\/revisions\/207"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/media\/34"}],"wp:attachment":[{"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/varmintworks.com\/varmint-blog\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}