<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>camera &#8211; Matthew Petroff</title>
	<atom:link href="https://mpetroff.net/tag/camera/feed/" rel="self" type="application/rss+xml" />
	<link>https://mpetroff.net</link>
	<description>mpetroff.net</description>
	<lastBuildDate>Sat, 11 Mar 2017 23:51:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Another Method of Digitizing Large Documents</title>
		<link>https://mpetroff.net/2017/01/another-method-of-digitizing-large-documents/</link>
					<comments>https://mpetroff.net/2017/01/another-method-of-digitizing-large-documents/#comments</comments>
		
		<dc:creator><![CDATA[Matthew Petroff]]></dc:creator>
		<pubDate>Tue, 31 Jan 2017 23:25:15 +0000</pubDate>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[digitize large documents]]></category>
		<category><![CDATA[digitize maps]]></category>
		<category><![CDATA[large documents]]></category>
		<category><![CDATA[maps]]></category>
		<guid isPermaLink="false">https://mpetroff.net/?p=2411</guid>

					<description><![CDATA[A few years ago, I wrote about a method of using a modified scanner to scan large documents in segments. While this led to high quality results, it is a very slow and tedious process. More recently, I&#8217;ve had a &#8230; <a href="https://mpetroff.net/2017/01/another-method-of-digitizing-large-documents/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><span class="dropcap">A</span> few years ago, I wrote about a method of <a href="/2013/09/scanner-modifications-to-scan-large-documents/">using a modified scanner to scan large documents in segments</a>. While this led to high quality results, it is a very slow and tedious process. More recently, I&#8217;ve had a decently large number of maps and documents to digitize but didn&#8217;t care so much about the quality and had neither the time nor the patience to scan them using my previous method. Instead, I turned a small conference room into a very large makeshift camera stand. After removing a tile from the drop ceiling, a small wooden beam was placed on the ceiling grid, straddling the hole where the tile was removed. A DSLR camera was then attached to this beam, pointing straight down, with the camera tethered to a computer via USB. A table was placed under the camera. The document to be digitized was placed on the table, and a sheet of glass was placed on top of the document to keep it flat.<sup id="rf1-2411"><a href="https://mpetroff.net/2017/01/another-method-of-digitizing-large-documents/#fn1-2411" title="The documents to be digitized had been stored either rolled or folded." rel="footnote">1</a></sup> The fluorescent tubes were removed from the closest ceiling light fixtures to remove glare from the glass; the same number of bulbs were removed from each side of the camera and table to keep the lighting consistent. Once everything was set up, documents were quickly photographed, with captures triggered using the computer. Once finished, lens distortion was removed from the images, and the images were cropped and level corrected. While the results weren&#8217;t nearly as nice as the scanner-based method, they were good enough for what I needed them for, and it was much, much faster. An example result is below.</p>
<p><a href="https://cdn0.mpetroff.net/wp-content/uploads/2017/01/example-result.jpg" title="Example Result" data-sbox="2411"><img decoding="async" class="aligncenter wp-image-2416 size-large" title="Example Result" src="https://cdn0.mpetroff.net/wp-content/uploads/2017/01/example-result-640x472.jpg" alt="Example Result" width="640" height="472" srcset="https://cdn0.mpetroff.net/wp-content/uploads/2017/01/example-result-640x472.jpg 640w, https://cdn0.mpetroff.net/wp-content/uploads/2017/01/example-result-300x221.jpg 300w, https://cdn0.mpetroff.net/wp-content/uploads/2017/01/example-result-1280x944.jpg 1280w, https://cdn0.mpetroff.net/wp-content/uploads/2017/01/example-result.jpg 2000w" sizes="(max-width: 640px) 100vw, 640px" /></a></p>
<p>Unfortunately, I neglected to photograph the camera set up.</p>
<hr class="footnotes"><ol class="footnotes" style="list-style-type:decimal"><li id="fn1-2411"><p >The documents to be digitized had been stored either rolled or folded.&nbsp;<a href="https://mpetroff.net/2017/01/another-method-of-digitizing-large-documents/#rf1-2411" class="backlink" title="Return to footnote 1.">&#8617;</a></p></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://mpetroff.net/2017/01/another-method-of-digitizing-large-documents/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>MacBook Webcam Teardown</title>
		<link>https://mpetroff.net/2015/10/macbook-webcam-teardown/</link>
					<comments>https://mpetroff.net/2015/10/macbook-webcam-teardown/#comments</comments>
		
		<dc:creator><![CDATA[Matthew Petroff]]></dc:creator>
		<pubDate>Fri, 30 Oct 2015 00:02:43 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[1570]]></category>
		<category><![CDATA[BCM15700A2]]></category>
		<category><![CDATA[Broadcom]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[FaceTime HD]]></category>
		<category><![CDATA[MacBook]]></category>
		<category><![CDATA[PCIe]]></category>
		<category><![CDATA[webcam]]></category>
		<guid isPermaLink="false">http://mpetroff.net/?p=1982</guid>

					<description><![CDATA[With the release of the mid-2013 MacBook models, Apple stopped using the standard USB video device class interface for the laptops&#8217; webcams. On these laptops, the webcam connects via the PCIe bus, enumerating as a Broadcom 1570 device. Unfortunately, this &#8230; <a href="https://mpetroff.net/2015/10/macbook-webcam-teardown/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><span class="dropcap">W</span>ith the release of the mid-2013 MacBook models, Apple stopped using the standard USB video device class interface for the laptops&#8217; webcams. On these laptops, the webcam connects via the PCIe bus, enumerating as a Broadcom 1570 device. Unfortunately, this interface is completely undocumented, and there is no Linux driver, although an effort is being made to <a href="https://github.com/patjak/bcwc_pcie">reverse engineer one</a>. Since I thought understanding the device hardware might aid this driver development effort, I bought a replacement webcam to disassemble. The front of the camera, from left to right, contains a 12-pin connector; power management circuitry, consisting of some sort of crystal or resonator, a Texas Instruments <a href="https://chipworks.secure.force.com/catalog/ProductDetails?sku=TEX-TPS657091">TPS657091</a> power management IC, and assorted passives; an ambient light sensor (with decoupling capacitor); the image sensor and fixed-focus optics; and an LED. The back of the device contains identification markings, which include a DataMatrix barcode and text, both of which read <code>CC2 3222 2UYE F9T9CF</code> on my particular camera.</p>
<p><a href="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-front.jpg" title="Front of Camera" data-sbox="1982"><img loading="lazy" decoding="async" class="aligncenter wp-image-1984 size-large" title="Front of Camera" src="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-front-640x213.jpg" alt="Front of Camera" width="640" height="213" srcset="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-front-640x213.jpg 640w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-front-300x100.jpg 300w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-front-1280x427.jpg 1280w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-front.jpg 1800w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><br />
<a href="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-back.jpg" title="Back of Camera" data-sbox="1982"><img loading="lazy" decoding="async" class="aligncenter wp-image-1983 size-large" title="Back of Camera" src="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-back-640x213.jpg" alt="Back of Camera" width="640" height="213" srcset="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-back-640x213.jpg 640w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-back-300x100.jpg 300w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-back-1280x427.jpg 1280w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-back.jpg 1800w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><span id="more-1982"></span><br />
<a href="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/ambient-light-sensor.jpg" title="Ambient Light Sensor" data-sbox="1982"><img loading="lazy" decoding="async" class="aligncenter wp-image-1985 size-large" title="Ambient Light Sensor" src="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/ambient-light-sensor-640x427.jpg" alt="Ambient Light Sensor" width="640" height="427" srcset="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/ambient-light-sensor-640x427.jpg 640w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/ambient-light-sensor-300x200.jpg 300w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/ambient-light-sensor-1280x853.jpg 1280w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/ambient-light-sensor.jpg 1500w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p>Prying the plastic piece holding the optics and ambient light sensor off of the PCB below it exposes the image sensor, LED, and a few more passives. What it doesn&#8217;t reveal is the Broadcom device that is on the PCIe bus (more on that later).</p>
<p><a href="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-sensor-visible.jpg" title="Camera with Sensor Visible" data-sbox="1982"><img loading="lazy" decoding="async" class="aligncenter wp-image-1998 size-large" title="Camera with Sensor Visible" src="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-sensor-visible-640x320.jpg" alt="Camera with Sensor Visible" width="640" height="320" srcset="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-sensor-visible-640x320.jpg 640w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-sensor-visible-300x150.jpg 300w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-sensor-visible-1280x640.jpg 1280w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/webcam-sensor-visible.jpg 1800w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a><br />
<a href="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/image-sensor.jpg" title="Image Sensor" data-sbox="1982"><img loading="lazy" decoding="async" class="aligncenter wp-image-1986 size-large" title="Image Sensor" src="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/image-sensor-640x269.jpg" alt="Image Sensor" width="640" height="269" srcset="https://cdn0.mpetroff.net/wp-content/uploads/2015/10/image-sensor-640x269.jpg 640w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/image-sensor-300x126.jpg 300w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/image-sensor-1280x538.jpg 1280w, https://cdn0.mpetroff.net/wp-content/uploads/2015/10/image-sensor.jpg 1800w" sizes="auto, (max-width: 640px) 100vw, 640px" /></a></p>
<p>The OS X and Windows drivers for the camera make a reference to the <a href="http://www.ovt.com/uploads/parts/OV5650_PB_v1.1_Web.pdf">OV5650 image sensor</a>, but a quick visual comparison shows that this isn&#8217;t the sensor used. I was unfortunately unable to identify the sensor by looking at photos online and do not have access to a microscope capable of inspecting die markings. The driver also references the AD5816 focus controller, but this is unsurprisingly not present due to the fixed-focus optics.</p>
<p>Although the image sensor likely contains the readout circuitry needed to digitize the captured image, it doesn&#8217;t contain a PCIe bus interface (and Broadcom doesn&#8217;t make image sensors). Therefore, I turned to looking at MacBook teardowns to find the missing interface. The camera board connects directly to the <a href="https://www.ifixit.com/Teardown/MacBook+Air+11-Inch+Mid+2013+Teardown/15078#s49179">main logic board</a>, which just so happens to contain a Broadcom BCM15700A2 chip that no one seems to know the purpose of. As the part number contains the camera controller&#8217;s PCIe bus ID, it is very likely the chip in question, particularly since there are no other mysterious Broadcom chips on the logic board. In retrospect, it makes sense for this chip to be on the logic board and not by the camera, since PCIe signals are not normally carried over cables. A photo of the bottom of the chip on eBay shows that it is an 8 mm x 8 mm, 208-ball BGA, but I can&#8217;t find any other information about it. The chip is much too big to fit next to the camera, and its size suggests it probably doesn&#8217;t just serve as a PCIe interface and likely does some image processing as well. Although none of the information I discovered will likely be very helpful for writing a driver, locating and associating a part number with the PCIe interface chip was at least illuminating.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mpetroff.net/2015/10/macbook-webcam-teardown/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Automatic Camera Clock Synchronization under Linux</title>
		<link>https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/</link>
					<comments>https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/#comments</comments>
		
		<dc:creator><![CDATA[Matthew Petroff]]></dc:creator>
		<pubDate>Sun, 23 Aug 2015 23:35:07 +0000</pubDate>
				<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[geotagging]]></category>
		<category><![CDATA[gPhoto2]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[synchronization]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[udev]]></category>
		<guid isPermaLink="false">http://mpetroff.net/?p=1950</guid>

					<description><![CDATA[The one feature I really wish my DSLR had was geotagging. Since my camera lacks this feature, I need to record a GPS track with an external device from which positions can be extracted based on timestamps for geotagging. This &#8230; <a href="https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><span class="dropcap">T</span>he one feature I really wish my DSLR had was geotagging. Since my camera lacks this feature, I need to record a GPS track with an external device from which positions can be extracted based on timestamps <a href="https://github.com/metadirective/GPicSync">for</a> <a href="http://www.darktable.org/2012/09/geotagging-in-darktable/">geotagging</a>. This requires the camera&#8217;s clock to be set accurately, which I want anyway, but doing so manually in the camera&#8217;s menu is a bit of a pain. In the past I&#8217;ve only recorded GPS tracks for geotagging sporadically, as it required carrying around a dedicated GPS receiver. However, I finally bought a smartphone a few months ago, so I now always carry a device that&#8217;s capable of recording GPS tracks.<sup id="rf1-1950"><a href="https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/#fn1-1950" title="Transferring the recorded tracks to a computer is easier too." rel="footnote">1</a></sup> This caused me to revisit the clock synchronization problem.</p>
<p>Under Linux, <a href="http://www.gphoto.org/">gPhoto2</a> supports synchronizing the camera&#8217;s internal clock with the computer&#8217;s clock for many cameras, including mine, a Canon EOS Rebel T2i. As long as one&#8217;s computer is configured to use <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol">NTP</a>, this results in quite accurate timestamps on photos. In my case, under Linux Mint 17, running this synchronization manually involves plugging in the camera, unmounting the camera after it gets automounted so gPhoto2 can access it, and then running the appropriate gPhoto2 command to synchronize the camera&#8217;s clock. To automate this process, one just needs to add a <code>udev</code> rule to run the clock synchronization command automatically, before the camera is mounted. I wrote such a rule. Since the rule responsible for mounting the camera is in <code>40-libgphoto2-6.rules</code>, the new rule that synchronizes the camera&#8217;s clock should be saved as <code>/etc/udev/rules.d/39-sync-camera-times.rules</code> so that it runs right before the camera is automounted. The contents of this file are as follows:</p>
<div class="highlighted-source default cfg">
<pre><span></span><span class="na">ACTION!</span><span class="o">=</span><span class="s">&quot;add&quot;, GOTO=&quot;sync_camera_time_rules_end&quot;</span><span class="w"></span>
<span class="na">SUBSYSTEM!</span><span class="o">=</span><span class="s">&quot;usb&quot;, GOTO=&quot;sync_camera_time_rules_end&quot;</span><span class="w"></span>
<span class="na">ENV{ID_USB_INTERFACES}</span><span class="o">=</span><span class="s">=&quot;&quot;, IMPORT{builtin}=&quot;usb_id&quot;</span><span class="w"></span>
<span class="na">ENV{ID_USB_INTERFACES}</span><span class="o">=</span><span class="s">=&quot;*:060101:*&quot;, RUN+=&quot;/usr/bin/gphoto2 --set-config syncdatetime=1&quot;</span><span class="w"></span>

<span class="na">LABEL</span><span class="o">=</span><span class="s">&quot;sync_camera_time_rules_end&quot;</span><span class="w"></span>
</pre>
</div>
<p>Now the camera&#8217;s internal clock will be synchronized with the computer&#8217;s clock any time the camera is plugged in. Note that this sets the camera&#8217;s clock to UTC, which makes the most sense anyway as the EXIF time data doesn&#8217;t include a time zone.<sup id="rf2-1950"><a href="https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/#fn2-1950" title="In my opinion, this is a significant improvement over the automatic clock synchronization in Canon&#8217;s EOS Utility for Windows, which insists on syncing the camera&#8217;s clock to local time." rel="footnote">2</a></sup> I&#8217;ve tested the rule with a Canon EOS Rebel T2i under Linux Mint 17, but it should also work for any other camera for which gPhoto2 supports clock synchronization and under Ubuntu 14.04 and similar Linux distros. Obviously, gPhoto2 needs to be installed.</p>
<p>Edit (2017-03-11): The above no longer works on Linux Mint 18 / Ubuntu 16.04. The following contents of <code>/etc/udev/rules.d/39-sync-camera-times.rules</code> should be used instead:</p>
<div class="highlighted-source default cfg">
<pre><span></span><span class="na">ACTION!</span><span class="o">=</span><span class="s">&quot;add&quot;, GOTO=&quot;sync_camera_time_rules_end&quot;</span><span class="w"></span>
<span class="na">SUBSYSTEM!</span><span class="o">=</span><span class="s">&quot;usb&quot;, GOTO=&quot;sync_camera_time_rules_end&quot;</span><span class="w"></span>
<span class="na">ENV{ID_USB_INTERFACES}</span><span class="o">=</span><span class="s">=&quot;&quot;, IMPORT{builtin}=&quot;usb_id&quot;</span><span class="w"></span>
<span class="na">ENV{ID_USB_INTERFACES}</span><span class="o">=</span><span class="s">=&quot;*:060101:*&quot;, ENV{TZ}=&quot;Etc/UTC&quot;, RUN+=&quot;/usr/bin/gphoto2 --set-config datetime=now&quot;</span><span class="w"></span>

<span class="na">LABEL</span><span class="o">=</span><span class="s">&quot;sync_camera_time_rules_end&quot;</span><span class="w"></span>
</pre>
</div>
<p>For some reason, gPhoto now insists on doing a time zone conversion, which is why the time zone has to be explicitly set to UTC.</p>
<hr class="footnotes"><ol class="footnotes" style="list-style-type:decimal"><li id="fn1-1950"><p >Transferring the recorded tracks to a computer is easier too.&nbsp;<a href="https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/#rf1-1950" class="backlink" title="Return to footnote 1.">&#8617;</a></p></li><li id="fn2-1950"><p >In my opinion, this is a significant improvement over the automatic clock synchronization in Canon&#8217;s EOS Utility for Windows, which insists on syncing the camera&#8217;s clock to local time.&nbsp;<a href="https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/#rf2-1950" class="backlink" title="Return to footnote 2.">&#8617;</a></p></li></ol>]]></content:encoded>
					
					<wfw:commentRss>https://mpetroff.net/2015/08/automatic-camera-clock-synchronization-under-linux/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>CHDK on the Canon PowerShot ELPH 330 HS</title>
		<link>https://mpetroff.net/2014/04/chdk-on-the-canon-powershot-elph-330-hs/</link>
					<comments>https://mpetroff.net/2014/04/chdk-on-the-canon-powershot-elph-330-hs/#comments</comments>
		
		<dc:creator><![CDATA[Matthew Petroff]]></dc:creator>
		<pubDate>Mon, 28 Apr 2014 04:03:09 +0000</pubDate>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[CHDK]]></category>
		<category><![CDATA[ELPH 330 HS]]></category>
		<guid isPermaLink="false">http://www.mpetroff.net/?p=1346</guid>

					<description><![CDATA[I recently purchased a Canon PowerShot ELPH 330 HS point and shoot camera to replace my aging Canon PowerShot SD770 IS. The new camera has better sensitivity, a considerably wider field of view that will help with aerial photography, and &#8230; <a href="https://mpetroff.net/2014/04/chdk-on-the-canon-powershot-elph-330-hs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><span class="dropcap">I</span> recently purchased a <a href="http://www.usa.canon.com/cusa/consumer/products/cameras/digital_cameras/powershot_elph_330_hs">Canon PowerShot ELPH 330 HS</a> point and shoot camera to replace my aging <a href="http://www.usa.canon.com/cusa/support/consumer/digital_cameras/powershot_sd_series/powershot_sd770_is_silver">Canon PowerShot SD770 IS</a>. The new camera has better sensitivity, a considerably wider field of view that will help with <a href="/2014/02/snowy-jhu-aerial-photos/">aerial photography</a>, and more zoom. However, it did not have <a href="http://chdk.wikia.com/wiki/CHDK">CHDK</a> available for it, which I was aware of at the time of purchase. The first thing I did on receipt of the camera was begin porting CHDK to it. A few weeks later, <a href="https://github.com/mpetroff/chdk-elph330hs">the port</a> was mostly done, and it was recently <a href="http://trac.assembla.com/chdk/changeset/3425">merged into the trunk</a>.</p>
<p><a title="Canon PowerShot ELPH 330 HS with CHDK" href="https://cdn0.mpetroff.net/wp-content/uploads/2014/04/chdk-elph-330.jpg" data-sbox="1346"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1347" src="https://cdn0.mpetroff.net/wp-content/uploads/2014/04/chdk-elph-330-640x426.jpg" alt="Canon PowerShot ELPH 330 HS with CHDK" width="640" height="426" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mpetroff.net/2014/04/chdk-on-the-canon-powershot-elph-330-hs/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Content Delivery Network via Amazon Web Services: CloudFront: cdn0.mpetroff.net
Minified using Disk

Served from: mpetroff.net @ 2026-03-31 01:26:43 by W3 Total Cache
-->