<?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>[protofusion]</title> <atom:link href="http://protofusion.org/wordpress/feed/" rel="self" type="application/rss+xml" /><link>http://protofusion.org/wordpress</link> <description>Generally Interesting</description> <lastBuildDate>Sat, 19 May 2012 17:48:20 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <item><title>SlatePermutate.org Launched!</title><link>http://protofusion.org/wordpress/2012/05/slatepermutate-org-launched/</link> <comments>http://protofusion.org/wordpress/2012/05/slatepermutate-org-launched/#comments</comments> <pubDate>Sat, 19 May 2012 17:47:30 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Announcements]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1288</guid> <description><![CDATA[The new official deployment of SlatePermutate is now live on slatepermutate.org! Course data is available for the following institutions, with ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/04/slatepermutate-alpha.png" rel="lightbox[1288]"><img
class="alignnone size-full wp-image-882" title="SlatePermutate Logo" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/04/slatepermutate-alpha.png" alt="" width="499" height="54" /></a></p><p>The new official deployment of SlatePermutate is now live on <a
href="http://slatepermutate.org/" target="_blank">slatepermutate.org</a>! Course data is available for the following institutions, with more to come soon:</p><ul><li>Calvin College</li><li>Cedarville University</li><li>Community College of Baltimore County</li><li>Hope College</li><li>Michigan State University</li><li>University of Maryland</li><li>University of Michigan</li></ul><p>Want your school supported by SlatePermutate? <a
href="http://slatepermutate.org/feedback.php" target="_blank">Let us know</a>!</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2012/05/slatepermutate-org-launched/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Welcome!</title><link>http://protofusion.org/wordpress/2012/04/welcome-to-protofusion/</link> <comments>http://protofusion.org/wordpress/2012/04/welcome-to-protofusion/#comments</comments> <pubDate>Fri, 20 Apr 2012 18:27:40 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Announcements]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1274</guid> <description><![CDATA[Protofusion is a group of college students who develop open-source hardware and software. Check out updates from our various projects ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/codescreenshot.jpg" rel="lightbox[1274]"><img
class="alignnone size-large wp-image-1279" title="Luma Firmware" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/codescreenshot-500x239.jpg" alt="" width="500" height="239" /></a></p><p>Protofusion is a group of college students who develop open-source hardware and software. Check out updates from our various projects below, or check out our <a
title="Projects" href="http://protofusion.org/wordpress/projects-list/">projects page</a>.</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2012/04/welcome-to-protofusion/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Gaggia Classic Disassembly and Cleaning</title><link>http://protofusion.org/wordpress/2012/04/gaggia-classic-disassembly-and-cleaning/</link> <comments>http://protofusion.org/wordpress/2012/04/gaggia-classic-disassembly-and-cleaning/#comments</comments> <pubDate>Sun, 15 Apr 2012 01:51:18 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Espresso Mods]]></category> <category><![CDATA[Projects]]></category> <category><![CDATA[Espresso]]></category> <category><![CDATA[Espresso Machine]]></category> <category><![CDATA[Gaggia Classic]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1212</guid> <description><![CDATA[I recently purchased a used Gaggia Classic machine on Amazon. After realizing that it was not as &#8220;lightly used&#8221; as ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3360.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1214" title="Gaggia Classic Parts" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3360-500x333.jpg" alt="" width="500" height="333" /></a></p><p>I recently purchased a used Gaggia Classic machine on Amazon. After realizing that it was not as &#8220;lightly used&#8221; as the seller denoted, I took apart the entire machine to clean it up. I&#8217;ve written this guide as a teardown guide, but feel free to read it from bottom-up to get a clear understanding of how to assemble this machine. Feel free to drop a comment if you have any questions or information to add.</p><p><span
id="more-1212"></span></p><h3>Tools</h3><p>Before you start out, I would recommend purchasing a few tools (most available at your local hardware store):</p><ul><li><a
href="http://www.amazon.com/Michigan-Industrial-Tools-Brass-Brush/dp/B000NY97TS/" target="_blank">Brass brush</a></li><li><a
href="http://www.amazon.com/TEKTON-25220-Wrench-Metric-13-Piece/dp/B000NPT7F6/" target="_blank">Metric allen wrench set</a></li><li><a
href="http://www.amazon.com/Urnex-02025-Cafiza-20oz-powder/dp/B001418KNS/" target="_blank">Citric acid or espresso machine cleaner</a></li><li>Phillips screwdrivers</li><li>Pliers or a crescent wrench</li></ul><p><em>Note: You can buy citric acid at many bulk food stores for a reasonable price</em></p><h3>Remove the Boiler</h3><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/gaggia-waterspout.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1263" title="Gaggia Classic: Water Spout" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/gaggia-waterspout-500x318.jpg" alt="" width="500" height="318" /></a></p><p>Begin by removing the two attachment screws on the top of the machine by the water spout. The top plastic water spout / sheet metal assembly should pull off towards the back of the machine.</p><p><strong><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/gaggia-steamknob-removed.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1264" title="Gaggia Classic: Steam Knob Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/gaggia-steamknob-removed-500x302.jpg" alt="" width="500" height="302" /></a></strong></p><p>Next, pull the steam wand knob off (it might take a bit of effort). Note that the valve in the photo above is a bit offset, this is due to my machine being damaged. Yours should (hopefully) be centered in the hole. You&#8217;ll also want to pull the push-on connectors off of the power connector on the rear of the machine, and pull all the cables off of the front switch. I recommend numbering each of these connectors before pulling them off so you can easily reconnect them.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/gaggia-group.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1262" title="Gaggia Classic: Grouphead" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/04/gaggia-group-500x289.jpg" alt="" width="500" height="289" /></a></p><p>Flip the machine over and use allen wrenches to remove the four bolts attaching the group to the chassis.</p><p>After removing these screws, your boiler should be free. Remove the boiler from the chassis and place it in a clean work area. Note that things might get messy and/or moist very soon.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3451.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1216" title="Gaggia Classic Boiler and Electronics" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3451-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Using a standard or crescent wrench, remove the chromed steam wand from the copper steam pipe. This will allow you to set the group down on a flat surface without damaging the copper pipe.</p><p><a><img
class="alignnone size-large wp-image-1215" title="Gaggia Classic Boiler Assembly" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3449-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Next, detach the electronics and pump from the machine. You will need to detach the pump hose from the OPV and unplug all push-on connectors. If you leave your wire assembly as-is after you unplug all connectors (don&#8217;t bend or crush the wires!) you should be able to easily see where all of the wires connected to for reassembly.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3444-e1331171306583.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1217" title="Gaggia Classic Boiler - Hoses Detached" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3444-e1331171306583-500x332.jpg" alt="" width="500" height="332" /></a></p><p>To make life easier, remove all hoses from the machine. You should only need to remove the 3-way solenoid hose and the OPV hose at this point.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3443.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1218" title="Gaggia Classic - Shower Screen" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3443-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Now flip the boiler on its side. You&#8217;ll see a phillips screw head in the middle of the shower screen.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3441.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1219" title="Gaggia Classic - Group with Shower Screen Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3441-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Remove the phillips screw from the shower screen, and then pull off the shower screen itself. If it is stuck due to calcification or coagulated coffee compounds, use a small flathead screwdriver to pry it off.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3438.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1220" title="Gaggia Classic - Group Disassembly" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3438-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Now grab an allen wrench and take off the metal block that resides under the shower head. You should now be able to see the top of the group.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3437.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1221" title="Gaggia Classic - Group with Gasket Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3437-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Using a plastic spudge, flathead screwdriver, or even your fingernails, carefully pry up the rubber gasket from inside the group.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3433.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1222" title="Gaggia Classic - Stripped Boiler Assembly" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3433-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Now flip your boiler assembly back up on end.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3421.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1224" title="Gaggia Classic - Solenoid Valve Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3421-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Using a wrench, remove the steel nut from the top of the solenoid valve. The black solenoid coil should slide off freely. Next, unscrew both of the thermal switches from the top and the side of the boiler. The high temperature switch goes on top, and the low temperature (brew) thermal switch goes on the right side of the boiler.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3414.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1226" title="Gaggia Classic - Solenoid Assembly Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3414-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Now remove the solenoid valve assembly from the boiler using an allen wrench. You might want to take out the rubber o-rings for cleaning if they are badly calcified.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3409.jpg" rel="lightbox[1212]"><img
title="Gaggia Classic - OPV Fitting Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3409-500x333.jpg" alt="" width="500" height="333" /></a></p><p>At this point you can unscrew the hose fitting on the top of the OPV. This is most easily done when the assembly is still attached to the boiler.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3406.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1227" title="Gaggia Classic - Solenoid/OPV Removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3406-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Now unscrew the entire OPV assembly from the boiler. Once again, you might want to remove the rubber o-rings for cleaning if they are looking shabby.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3400.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1228" title="Gaggia Classic - Boiler and Group" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3400-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Now is the time to remove the steam valve. This step can be a bit tricky, especially if your machine is older. I recommend removing the two bolts and twisting the valve back and forth. After some twisting, use a flathead screwdriver to <em>carefully</em> pry each side of the valve until it comes free. Don&#8217;t be too aggressive, as brass is a soft metal. You&#8217;ll probably want to remove the rubber gasket as well, mine was very calcified.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3398.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1229" title="Gaggia Classic - Grouphead" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3398-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Next, remove the four bolts attaching your boiler to your group, and your machine should be fully disassembled! You&#8217;ll want to remove the rubber gasket from its slot in the group, if you have an older machine this gasket and its slot will definitely need some cleaning.</p><h3>Cleaning</h3><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3334.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1230" title="Gaggia Classic - Dirty Boiler" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3334-e1331171414901-500x347.jpg" alt="" width="500" height="347" /></a></p><p>Your boiler probably looks something like the photo above and/or it might look white with calcification. Pretty nasty. If you have a lot of white calcification, a brass brush (available at most hardware stores) will take care of it. If you have a lot of oxidation and black residue like I had, a dremel tool with a stainless steel brush attachment will get the job done.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3364.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1231" title="Gaggia Classic - Cleaned Boiler" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3364-500x333.jpg" alt="" width="500" height="333" /></a></p><p>Above is my boiler after significant dremeling and brass-brushing. It&#8217;s not great, but it&#8217;s good enough for me. Although the aluminum around the seal is very pitted, I haven&#8217;t experienced any leaks whatsoever.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3360.jpg" rel="lightbox[1212]"><img
class="alignnone size-large wp-image-1214" title="Gaggia Classic Parts" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/03/tn_IMG_3360-500x333.jpg" alt="" width="500" height="333" /></a></p><p>To clean the rest of your components, I recommend soaking them in a solution of citric acid or special-purpose espresso machine cleaning solution (available at many online retailers). This will remove significant amounts of calcification.</p><p>If your machine is as old as mine, you might need to do some more intensive cleaning. Try using a brass brush with your citric acid or espresso machine cleaner solution. Use the brush to clean off brass fittings (especially the steam valve fitting), the group, and any other metal components. This should take off any lingering calcification or other gunk.</p><p>Now that you&#8217;ve cleaned everything up, it&#8217;s time to put things back together! If you need additional help, just read this guide backwards to get a good idea of how to re-assemble machine.</p><p>Has this guide helped you out? <a
href="https://www.dwolla.com/hub/normaldotcom" target="_blank">Spare a few pennies</a> and feed a poor college student!</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2012/04/gaggia-classic-disassembly-and-cleaning/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Configuring BOPM for TorDNSEL</title><link>http://protofusion.org/wordpress/2012/02/configuring-bopm-for-tordnsel/</link> <comments>http://protofusion.org/wordpress/2012/02/configuring-bopm-for-tordnsel/#comments</comments> <pubDate>Sat, 18 Feb 2012 07:32:40 +0000</pubDate> <dc:creator>Nathan Phillip Brink</dc:creator> <category><![CDATA[Linux]]></category> <category><![CDATA[Quick Tips]]></category> <category><![CDATA[Technology]]></category> <category><![CDATA[bopm]]></category> <category><![CDATA[dnsbl]]></category> <category><![CDATA[irc]]></category> <category><![CDATA[ircd]]></category> <category><![CDATA[tor]]></category> <category><![CDATA[tordnsel]]></category> <category><![CDATA[unrealircd]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1187</guid> <description><![CDATA[Background If you have a working BOPM installation, you are trying to prevent abuses of your IRC network effected through ]]></description> <content:encoded><![CDATA[<p><a
href="http://cdn.ohnopub.net/cdn/binki/21224-processed-r1.jpg" rel="lightbox[1187]"><img
src="http://cdn.ohnopub.net/cdn/binki/21224-processed-r1-500x382.jpg" alt="" title="Hammer hits onion—Bop 'em Tor users!" class="alignnone size-large" style="width: 500px; height: 382px;" /></a></p><h3>Background</h3><p>If you have a working <a
href="http://wiki.blitzed.org/BOPM">BOPM</a> installation, you are trying to prevent abuses of your IRC network effected through anonymity services such as proxies. BOPM has built-in support for scanning for open proxies. It also has support for looking up clients in DNSBLs, which are used to publish lists of misbehaving or malign hosts. One such DNSBL, called <a
href="https://torproject.org/projects/tordnsel.html">TorDNSEL</a>, provides a way to check users connecting through the Tor anonymity service.</p><p><span
id="more-1187"></span></p><p>As discussed at <a
href="https://torproject.org/projects/tordnsel.html">TorDNSEL&#8217;s information page</a>, the purpose of this service is to provide finely-grained information about whether a client&#8217;s connection could be through a Tor exit node. Tor exit nodes can be configured with advanced <a
href="https://torproject.org/docs/faq.html#ExitPolicies">exit policies</a> which specify the sorts of direct outbound connections a Tor exit node is willing to make on behalf of its anonymous client. For example, a Tor exit node administrator could disallow his node to make connections to government sites and disable outgoing connections on common IRC ports. If a Tor exit node is run by an administrator who is interested in also connecting to an IRC network, that administrator would disallow outgoing IRC connections. Thus, any IRC connection made (on a common IRC port) through that node would be a legitimate connection made by a user on that host and <em>not</em> a connection from an anonymous client. The TorDNSEL DNSBL lets—and requires—networks which use it to take this into account.</p><h3>Prerequisites</h3><p>This short guide assumes that you have successfully configured BOPM to connect to your IRCd, parse oper notices informing it of client connections, and issue a G/Z:line or SHUN for some other event which identifies a client as using a particular anonymity service.</p><h3>Configuring BOPM</h3><p>As <a
href="https://torproject.org/projects/tordnsel.html">TorDNSEL&#8217;s information page</a> documents, performing a TorDNSEL lookup requires the IRC client&#8217;s IP <code>A.B.C.D</code>, the port of the service being accessed <code>P</code>, and the public IP of the IRCd <code>E.F.G.H</code>. With these parameters, a query would be an <em>A record</em> lookup of the domain name <code>D.C.B.A.P.H.G.F.E.ip-port.exitlist.torproject.org</code>. If the response was <code>NXDOMAIN</code>, then either there is no Tor exit node at <code>A.B.C.D</code> <em>or</em>, if that IP identifies an exit node, that node is unwilling to connect to <code>E.F.G.H</code> on port <code>P</code> because its <a
href="https://torproject.org/docs/faq.html#ExitPolicies">exit policy</a> forbids such a connection. If the response is <code>127.0.0.2</code>, then there <em>is</em> a Tor exit node at <code>A.B.C.D</code> which would willying connect to <code>E.F.G.H</code> on port <code>P</code>. From this information, we can produce a BOPM blacklist block:</p><pre><code>OPM { <em title="Other blacklist blocks might be found here.">…</em> blacklist { name = "P.H.G.F.E.ip-port.exitlist.torproject.org"; type = "A record reply"; reply { 2 = "Tor exit server"; }; ban_unknown = yes; # GZLINE issuing a 7-day network-wide zline with <a href="http://unrealircd.org/">UnrealIRCd</a>-compatible syntax kline = "GZLINE *@%i 7d :You are connecting from a Tor exit node willing to connect to E.F.G.H:P"; }; <em title="Other blacklist blocks would be found here.">…</em> }; </code></pre><p>The above <code>blacklist</code> should be copy-pastable into your <code>bopm.conf</code>&#8216;s <code>OPM</code> section. But, remember to replace <code>E</code>, <code>F</code>, <code>G</code>, and <code>H</code> with the respective components of your IRCd&#8217;s IP address. In the <code>name</code> line, it is intended that the components of the IP are in reverse order. This is because the right end of a domain is more general and the left end is more specific whereas in the first component of an IP address is most general and the rightmost component is more specific.</p><p>Also, note that you shouldn&#8217;t copy the <code><em>…</em></code> into your <code>bopm.conf</code>; each of these is just a placeholder indicating that you probably already have other <code>blacklist</code> blocks which should be preserved defined inside the <code>OPM</code> block.</p><p>One last note about this blacklist entry. If your IRC network, like many networks, allows connections to multiple ports, you must specify a <code>blacklist</code> entry for each port. For example, 6667 is the port an IRC client will try, by default, to use when connecting to an IRCd. But if a client wants to use SSL (without STARTTLS), you might have instructed your IRCd to listen for SSL connections on port 6697. A side effect of TorDNSEL&#8217;s specific entries is that a tor exit node may be instructed to deny outbound connections on port 6667 yet allow them on 6697. Since BOPM cannot (AFAIK) be configured to automatically choose a value for <code>P</code>, you must create a <code>blacklist</code> block for <em>each IRCd public IP and port combination</em>.</p><h4>Breakdown</h4><pre><code>OPM { <em title="Other blacklist blocks might be found here.">…</em> blacklist { name = "P.H.G.F.E.ip-port.exitlist.torproject.org";</code></pre><p>Here you specify your server&#8217;s public IP, <code>E.F.G.H</code>, in reverse as <code>H.G.F.E</code> as well as the port your IRCd is listening on, <code>P</code>. BOPM will prepend the IP of the IRC client which connects, <code>A.B.C.D</code>, in reverse order as <code>D.C.B.A</code> when it checks if the client is in this TorDNSEL.</p><pre><code> type = "A record reply";</code></pre><p>This specifies that BOMP should take the IP address the DNSBL returns and interpret that as a response. DNSBLs generally use IPs in the reserved localhost range, <code>127.0.0.0/8</code>, to avoid pointing to IPs owned by third parties.</p><pre><code> reply { 2 = "Tor exit server"; };</code></pre><p>This is the list of potential DNSBL responses which you anticipate from <a
href="https://torproject.org/projects/tordnsel.html">TorDNSEL</a>. If the DNSBL returns <code>NXDOMAIN</code> (which means, “I don&#8217;t know about this doain”), BOPM will ignore the answer and assume the client is not in the DNSBL. However, if the server responds with an IP such as <code>127.0.0.2</code>, BOPM will subtract <code>127.0.0.0</code> from the IP and then look for the result <code>2</code> in this reply list. If it finds an entry, it performs the action in <code>kline</code> discussed below.</p><p><a
href="https://torproject.org/projects/tordnsel.html">TorDNSEL</a> currently only defines two possible responses. <code>NXDOMAIN</code> indicates that the node would not connect to <code>E.F.G.H:P</code> on behalf of a Tor client. <code>127.0.0.2</code> or, as BOPM interprets it, <code>2</code> indicates that there is a Tor exit node at <code>A.B.C.D</code> which is willing to connect to your IRCd.</p><pre><code> ban_unknown = yes;</code></pre><p>This line states that, if the DNSBL responds with an IP other than those handled in the <code>reply</code> block, it should assume that the client still should be banned. The <a
href="https://torproject.org/projects/tordnsel.html">TorDNSEL guide</a> states <q
cite="https://torproject.org/projects/tordnsel.html">Other A records inside net 127/8, except 127.0.0.1, are reserved for future use and should be interpreted by clients as indicating an exit node.</q> This means that the TorDNSEL project reserves the right to add a new response, such as <code>127.0.0.3</code>, which would indicate a subtly different sort of tor exit node. Until this new response is defined, all we know is that the IRC client probably should be banned by BOPM.</p><pre><code> # GZLINE issuing a 7-day network-wide zline with <a href="http://unrealircd.org/">UnrealIRCd</a>-compatible syntax kline = "GZLINE *@%i 7d :You are connecting from a Tor exit node willing to connect to E.F.G.H:P";</code></pre><p>This is the IRC command which BOPM will issue when a client is listed in TorDNSEL. The above command will set a network-wide ban on the user&#8217;s IP which will last for 7 days using <a
href="http://unrealircd.org/">UnrealIRCd</a>&#8216;s syntax. A Global Z:Line is an efficient ban as the client&#8217;s connection can be closed by the IRCd before the IRCd looks up the client&#8217;s hostname. The reason listed with the GZ:Line is formulated so that the IRC user will understand exactly why he was banned.</p><pre><code> }; <em title="Other blacklist blocks would be found here.">…</em> }; </code></pre><p>Be careful when editing your bopm.conf. Don&#8217;t forget any semicolons; even the ones after closing curly braces (<code>}</code>) are ncessary. If you&#8217;re reading this guide, you hopefully don&#8217;t need this advice <img
src='http://pf-wordpress.s3.amazonaws.com/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p><h3>Testing</h3><p>Once you have added the necessary configuration directives to your <code>bopm.conf</code>, you should test and check that BOPM catches the Tor exit nodes which are willing to connect to your IRCd. If BOPM was already running, do not forget to rehash it (BOPM&#8217;s readme suggests that <code>/KILL BOPM (rehashing)</code> is a convenient way to force BOPM to reread its configuration and reconnect). The following uses BOPM&#8217;s in-channel command interface to ask BOPM to scan an IP and check if it would be banned if a client connected from that IP. This requires that you have properly configured BOPM to join a channel with an <code>IRC::channel</code> block. An alternative test would be to just connect to your network through Tor, but that is probably more involved.</p><p>To check if your BOPM would detect a Tor IP, first <a
href="http://proxy.org/tor.shtml">find a Tor exit node</a> (if using list list, ensure to choose an IP for which the “Exit Node?” column has “YES”). Then join the channel where BOPM is and issue the command <code>BOPM check IP</code>, where you replace <code>BOPM</code> with the nickname your BOPM bot is using and replace <code>IP</code> with the Tor exit node IP you looked up. A successful detection will look something like the following:</p><pre>-!- BOPM2 [~bopm@Clk-NNNNNNNN] has joined #opers
&lt;&amp;binki&gt; BOPM2 check A.B.C.D
&lt; BOPM2&gt; CHECK -&gt; Checking 'A.B.C.D' for open proxies on all scanners
&lt; BOPM2&gt; CHECK -&gt; DNSBL -&gt; A.B.C.D appears in BL zone 6667.H.G.F.E.ip-port.exitlist.torproject.org (Tor exit server)
&lt; BOPM2&gt; CHECK -&gt; DNSBL -&gt; A.B.C.D appears in BL zone 6697.H.G.F.E.ip-port.exitlist.torproject.org (Tor exit server)
&lt; BOPM2&gt; CHECK -&gt; DNSBL -&gt; A.B.C.D does not appear in BL zone 6900.H.G.F.E.ip-port.exitlist.torproject.org
&lt; BOPM2&gt; CHECK -&gt; DNSBL -&gt; A.B.C.D appears in BL zone 7000.H.G.F.E.ip-port.exitlist.torproject.org (Tor exit server)
&lt; BOPM2&gt; CHECK -&gt; All tests on A.B.C.D completed.</pre><p>In this scenario, the port 6900 was inside of a reject range policy on the Tor exit node I selected. For some odd reason, it seems that this port is part of a range which is commonly disabled in Tor exit nodes. Yet, the Tor exit node I chose admits that it is willing to connect to my IRCd still and will be banned because of one of the other <code>OPM::blacklist</code> blocks I have defined, such as the one for port 6667.</p><p>In your own tests, you might encounter Tor exit nodes which BOPM does not flag as needing to be banned. There are multiple reasons for this. First of all, you may have selected a Tor exit node with policies which disallow Tor clients to access IRC through it. Thus, you must try with multiple <em>exit</em> nodes randomly selected from some listing of Tor exit nodes before despairing. If you have checked multiple hosts and your BOPM refuses to recognize them, you may have misconfigured your BOPM&#8217;s <code>blacklist</code> entry. Double-check that you have put your correct server&#8217;s public IP in reverse order properly along with the correct port in the <code>blacklist::name</code> entry. Test that BOPM&#8217;s DNS is working by looking up <code>D.C.B.A.P.H.G.F.E.ip-port.exitlist.torproject.org</code>, perhaps using the <code><a
href="http://ohnopub.net/~ohnobinki/man/?p=getent&amp;s=1">getent</a> hosts</code> or <code><a
href="http://ohnopub.net/~ohnobinki/man/?p=dig&amp;s=1">dig</a></code> tools. Remember to rehash BOPM (by <code>/kill</code>ing it with your <code>/oper</code> powers perhaps) after editing <code>bopm.conf</code>.</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2012/02/configuring-bopm-for-tordnsel/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Arduino Leonardo &#8211; Interrupts</title><link>http://protofusion.org/wordpress/2012/01/arduino-leonardo-interrupts/</link> <comments>http://protofusion.org/wordpress/2012/01/arduino-leonardo-interrupts/#comments</comments> <pubDate>Mon, 30 Jan 2012 04:15:40 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Arduino]]></category> <category><![CDATA[Projects]]></category> <category><![CDATA[ATMega32u4]]></category> <category><![CDATA[Leonardo]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1154</guid> <description><![CDATA[As of Arduino 1.0, interrupts are not supported on the Arduino Leonardo. I&#8217;m working on a project using the atmega32u4 ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/01/m32u4.jpg" rel="lightbox[1154]"><img
class="alignnone size-large wp-image-1158" title="ATMega32u4" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2012/01/m32u4-500x346.jpg" alt="" width="500" height="346" /></a></p><p>As of Arduino 1.0, interrupts are not supported on the Arduino Leonardo. I&#8217;m working on a project using the atmega32u4 with the Arduino IDE which needs interrupt support for both software serial and frequency counting, so I investigated ways to add interrupt support for this device. I began by checking out the Leonardo pins definition file to see what was missing for interrupt support. Long story short, I ended up copying the macros for interrupt bitmasks/registers from the Teensyduino project, which has a mega32u4 target board. In addition to modifying the pin definition header file, I also needed to modify WInterrupts.c&#8212;swapping out the default AttachInterrupt() and DetachInterrupt() funcitons with those from the Teensyduino project.</p><p><span
id="more-1154"></span></p><p>I have included links below to the pin definition header file and interrupt functions in my project repository. Place these files in the hardware/arduino/core and hardware/arduino/variants/leonardo folders. Note that my current revision of these files <strong>only</strong> support the m32u4, interrupt support for other devices is broken. You can throw some #ifdefs in there and include the existing code to support devices other than the m32u4, I will hopefully get around to adding this in the coming weeks.</p><p>I also want to get SoftwareSerial up and running on the m32u4; I&#8217;ll be looking into the Teensyduino variant of NewSoftSerial this week, check back for more updates in the coming days.</p><h3>Downloads</h3><ul><li><a
href="http://protofusion.org/hg/supermileage/raw-file/53311f25d424/Arduino/Mods/WInterrupts.c" target="_blank">WInterrupts.c</a></li><li><a
href="http://protofusion.org/hg/supermileage/raw-file/53311f25d424/Arduino/Mods/pins_arduino.h" target="_blank">pins_arduino.h</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2012/01/arduino-leonardo-interrupts/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>ZonCoffee v3 PCB</title><link>http://protofusion.org/wordpress/2011/11/zoncoffee-v3-pcb/</link> <comments>http://protofusion.org/wordpress/2011/11/zoncoffee-v3-pcb/#comments</comments> <pubDate>Wed, 09 Nov 2011 16:46:35 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Espresso Mods]]></category> <category><![CDATA[EC155]]></category> <category><![CDATA[Espresso]]></category> <category><![CDATA[PID]]></category> <category><![CDATA[ZonCoffee]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1118</guid> <description><![CDATA[The first prototype ZonCoffee v3 boards have arrived and are nearly up and running. I&#8217;m currently porting the code over ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-sideview.jpg" rel="lightbox[1118]"><img
class="alignnone size-large wp-image-1123" title="ZonCoffee v3" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-sideview-500x251.jpg" alt="" width="500" height="251" /></a></p><p>The first prototype ZonCoffee v3 boards have arrived and are nearly up and running. I&#8217;m currently porting the code over to Arduino 1.0, as this board uses the Arduino Leonardo bootloader. Read on past the break for more info on the new board.</p><p><span
id="more-1118"></span></p><h3>v3 Features:</h3><ul><li>6-Pin AUX port allows use of parallel LCD or custom expansion</li><li>Supports SparkFun serial LCD</li><li>USB port emulates virtual serial port for logging and loading new firmware</li><li>All ports broken out to screw terminals</li><li>Power via USB or external independent power source</li><li>MAX6675-compatible footprint (also supports Maxim-IC&#8217;s newer chips)</li><li>6-Pin ICSP header for flashing custom bootloaders</li><li>Main power and USB power LED indicators</li></ul><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-bottomview.jpg" rel="lightbox[1118]"><img
class="alignnone size-large wp-image-1135" title="ZonCoffee v3 - Bottom of PCB" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-bottomview-500x333.jpg" alt="" width="500" height="333" /></a></p><p>This PCB includes connectors for external power, a SparkFun serial LCD, a pusbutton encoder, a thermocouple probe, a solid-state relay, and an auxiliary port. The auxiliary port pins are all connected to the ADC, allowing additional analog or digital IO for expansion. Note that the logo is silkscreened backwards, which is the only (thankfully superficial!) problem I have encountered with my board so far.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-topview.jpg" rel="lightbox[1118]"><img
class="alignnone size-large wp-image-1136" title="ZonCoffee v3 - Top of PCB" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-topview-500x333.jpg" alt="" width="500" height="333" /></a></p><p>The PCB is populated with an ATMEGA32u4, an 8-bit Automotive-grade microcontroller from Atmel that features a USB interface as well as USART and SPI. This board takes advantage of USART for the SparkFun serial LCD, SPI for interfacing with the MAX6675 thermocouple interface chip, and USB for logging and updating firmware with a computer.  All parts on the PCB aside from headers are surface-mount, allowing a very compact design. For permanent installation, screw terminals can be depopulated and wires soldered directly to the board (except for the thermocouple leads, which cannot be soldered).</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-testsetup.jpg" rel="lightbox[1118]"><img
class="alignnone size-large wp-image-1137" title="ZonCoffee v3 PCB Test Setup" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-testsetup-500x343.jpg" alt="" width="500" height="343" /></a></p><p>I have fully populated and tested two of these PCBs so far, and everything is completely functional. There are still a few software quirks from porting my original code to Arduino 1.0, but the boards themselves are fully functional. After a bit of tweaking with the encoder library and creating a drop-in library for attaching a HD44780 LCD to the auxiliary port, this design should be completely usable. I have one board up and running on my espresso machine for both use and development, and I also have a board attached to my roaster (modified Poppery I) that I will be using to experiment with ramping the setpoint for temperature-controlled coffee roasting.</p><h3>Want to get one?</h3><p>I&#8217;m planning on making a small beta run of boards in the coming months. Drop me an <a
href="mailto:ethanzonca@ethanzonca.com">email</a> or a comment below if you&#8217;re interested. I haven&#8217;t priced the beta boards out yet, but they will be available at a reduced price as long as you&#8217;re willing to provide a bit of feedback on the system.</p><h3>Update (2/9/12)</h3><p>Development on ZonCoffee has been a bit slow lately, as I&#8217;ve been working on a more time-critical project. Coincidentally, the project I&#8217;ve been working on also uses the ATMega32u4 on a much larger scale, so I can backport some fixes to the Arduino Leonardo specification to this project. I should be able to resume work on this project in the next couple of weeks.</p><h3>Update (2/25/12)</h3><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-parallellcd.jpg" rel="lightbox[1118]"><img
class="alignnone size-large wp-image-1210" title="ZonCoffee v3 with parallel LCD" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/11/zc-parallellcd-500x298.jpg" alt="" width="500" height="298" /></a></p><p>I just wrapped up getting the parallel LCD code up and running, users can now switch between a parallel LCD on the auxiliary port to using a 1-wire serial LCD by changing a single define in the code. The last issue I have to deal with is my rotary encoder handling. I should be ready to do a run of the boards once I get some new encoders in to test with.</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2011/11/zoncoffee-v3-pcb/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Repairing a Sigma 24-70 EX Lens</title><link>http://protofusion.org/wordpress/2011/10/repairing-sigma-24-70-ex-lens/</link> <comments>http://protofusion.org/wordpress/2011/10/repairing-sigma-24-70-ex-lens/#comments</comments> <pubDate>Sun, 09 Oct 2011 19:48:57 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Projects]]></category> <category><![CDATA[Photography]]></category> <category><![CDATA[Repair]]></category> <category><![CDATA[Technology]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1080</guid> <description><![CDATA[I acquired a free Sigma 24-70 f/2.8 lens that had a few issues&#8211;namely, autofocus was broken and the zoom was ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/sigma24-70-f18.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1087" title="Sigma 24-70 f/1.8" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/sigma24-70-f18-500x587.jpg" alt="" width="500" height="587" /></a></p><p>I acquired a free Sigma 24-70 f/2.8 lens that had a few issues&#8211;namely, autofocus was broken and the zoom was incredibly hard to turn. After using the lens in full manual for a while, I determined that I would attempt to repair it.</p><p><span
id="more-1080"></span><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/opening-lens.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1086" title="Sigma 24-70 f/1.8 with top assembly removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/opening-lens-500x333.jpg" alt="" width="500" height="333" /></a></p><p>I first did a quick disassembly of the mount, exposing the autofocus motor and the top of the lens components. It was clear that the metal bracket on the AF/MF switch was broken, one of the metal arms that push down the gear was dangling from the bracket. I removed the bracket and mixed up some J-B weld to glue the pieces back together.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/bad-spring-placement.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1083" title="Improper spring placement" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/bad-spring-placement-500x333.jpg" alt="" width="500" height="333" /></a></p><p>After some googling, I determined that the lens must have already been disassembled for repair (made apparent by scuff marks on screws) as the spring that engages AF was on the wrong side of the gear. This resulted in the bracket pushing down on the gear rather than pulling it up against the spring&#8217;s force, causing the bracket to break.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/glued-bracket.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1085" title="Repaired AF/MF switch bracket" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/glued-bracket-500x333.jpg" alt="" width="500" height="333" /></a></p><p>After gluing up the bracket, I continued disassembly to see if I could do anything about the sticky zoom. Taking the remainder of the lens apart was tough, as Sigma lenses have soldered-on ribbon cables instead of nice detachable ribbon cables like all Canon lenses have. In addition, you must remove a single setscrew to take off the zoom ring which is hidden under the zoom ring&#8217;s rubber grip.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/zoom-ring-removed.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1089" title="Zoom ring removed" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/zoom-ring-removed-500x333.jpg" alt="" width="500" height="333" /></a></p><p>When removing the bottom of the lens, I pulled a bit too hard and ripped the aperture drive motor ribbon cable&#8211;I didn&#8217;t even notice I had broken it until I looked inside the disassembled lens body. Be incredibly careful when pulling apart separate pieces&#8211;these ribbon cables are very fragile! I left the aperture cable broken for the time being, as it will take a fairly long amount of time to solder back up. <em>Note: be very careful when removing focus/zoom rings from your lens, zoom/focus encoder brushes are also very fragile.</em></p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/10/zoomportion.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1109" title="Disassembled Lens–Zoom Portion" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/10/zoomportion-500x562.jpg" alt="" width="500" height="562" /></a></p><p>When I reached the zoom portion, I found several small plastic bushings which were apparently crushed. The previous owner of the lens must have dropped it, crushing the bushings and skewing the alignment of the zoom. Several screws for these bushings were loose, and tightening them did make the zoom a bit easier to use. However, I could not do any more to fix the stuck zoom issue.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/broken-encoder-brushes.jpg" rel="lightbox[1080]"><img
class="alignnone size-large wp-image-1084" title="Broken focus encoder brushes" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/09/broken-encoder-brushes-500x333.jpg" alt="" width="500" height="333" /></a></p><p>I also noticed that the encoder brushes for the focus assembly were bent and broken. I attempted to bend these brushes back in, but I was largely unsuccessful. I couldn&#8217;t find any replacement brushes online that matched the brushes in this lens, so I left them as-is. Interestingly enough, AF worked fine without the encoder brushes.</p><p>After waiting for the J-B weld to cure, I reassembled the lens with the spring in the right location and tested it out. AF worked properly, and the zoom was a bit easier to use. Other than the aperture being stuck at F/2.8, this was a very usable lens.</p><p>I have since repaired the broken aperture cable, and I&#8217;ll throw together a post on that procedure in the near future.</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2011/10/repairing-sigma-24-70-ex-lens/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>DIY Cheap Reservoir Irrigation</title><link>http://protofusion.org/wordpress/2011/09/diy-cheap-reservoir-irrigation/</link> <comments>http://protofusion.org/wordpress/2011/09/diy-cheap-reservoir-irrigation/#comments</comments> <pubDate>Mon, 26 Sep 2011 00:20:07 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Projects]]></category> <category><![CDATA[DIY]]></category> <category><![CDATA[Growing]]></category> <category><![CDATA[Irrigation]]></category> <category><![CDATA[Plants]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1016</guid> <description><![CDATA[When you&#8217;re trying to grow a bunch of plants in a field where a water source is lacking, things can ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Blueberry-Bush.jpg" rel="lightbox[1016]"><img
title="Blueberry bush" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Blueberry-Bush-500x375.jpg" alt="" width="500" height="375" /></a></p><p>When you&#8217;re trying to grow a bunch of plants in a field where a water source is lacking, things can be a bit tough. Hauling water on-site is a very arduous process, even with a tractor/trailer full of buckets. After hauling 5-gallon buckets to water blueberry bushes for months, we began to work on a better reservoir irrigation system that was cheap and easy to automate with expandable capacity.</p><p><span
id="more-1016"></span></p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/55-Gallon-Barrel.jpg" rel="lightbox[1016]"><img
class="alignnone size-large wp-image-1019" title="55-Gallon barrel with a hole in the top (currently closed with foam) for bilge pump" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/55-Gallon-Barrel-500x375.jpg" alt="" width="500" height="375" /></a></p><p>To store water, we decided to use a 55-gallon drum. The drum provides enough water for just over a week of watering every other day. We plan on adding another barrel with a siphon hose connecting it to the main barrel for additional capacity.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Bilge-Pump.jpg" rel="lightbox[1016]"><img
title="Bilge pump. Creates enough pressure to get the job done in most situations." src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Bilge-Pump-500x375.jpg" alt="" width="500" height="375" /></a></p><p>After deciding that a gravity-fed system would be inadequate, we purchased a very inexpensive 1250 GPH bilge pump. As cheap as it is, this pump provides enough pressure to water an entire row of blueberry bushes. If you are planning on a more extensive system, you likely need a more powerful pump (more about this later).</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Bilge-Adapter.jpg" rel="lightbox[1016]"><img
class="alignnone size-large wp-image-1020" title="Adapter from bilge pump tubing to standard garden hose. Allows use of standard hose and sprayers, if needed." src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Bilge-Adapter-500x375.jpg" alt="" width="500" height="375" /></a></p><p>We added garden-hose threaded adapters to both the hose of our bilge pump and the intake of our watering line. Having a garden hose adapter for the bilge pump line allows us to use garden hose and sprayer nozzles to water other plants, if needed. Note that an in-line anti-siphon valve is necessary to prevent water from constantly flowing out&#8211;we eventually added one after these photos were taken.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Spray-Nozzle.jpg" rel="lightbox[1016]"><img
title="Adjustable spray nozzle, works great with low-pressure lines and is fairly cheap." src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Spray-Nozzle-500x375.jpg" alt="" width="500" height="375" /></a></p><p>We used standard black irrigation tubing and spray nozzles for our watering lines. This hose is incredibly cheap and the spray nozzles are about $.50 apiece. These nozzles are adjustable, allowing them to work with the very low water pressure that the bilge pump provides. Our watering hoses are laid on the ground, however lines can be suspended over plants on stakes if necessary (this help keeps dirt and other particles out of the nozzles).</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Hose-Adapter.jpg" rel="lightbox[1016]"><img
class="alignnone size-large wp-image-1023" title="Adapter from irrigation tubing to garden hose, female." src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Hose-Adapter-500x375.jpg" alt="" width="500" height="375" /></a></p><p>We terminated the end of our watering line with a garden hose connector as well, mating nicely with the connector on the bilge pump hose.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Rows-of-Bushes.jpg" rel="lightbox[1016]"><img
class="alignnone size-large wp-image-1024" title="Row of blueberry bushes with irrigation hose and nozzles" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Rows-of-Bushes-500x375.jpg" alt="" width="500" height="375" /></a></p><p>We laid our tubing along the ground without stakes initially, however we ended up staking down the hose between every nozzle to keep it from moving around.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Rows-of-Bushes-Side.jpg" rel="lightbox[1016]"><img
class="alignnone size-large wp-image-1025" title="Rows of blueberry bushes and irrigation setup" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/06/Rows-of-Bushes-Side-500x375.jpg" alt="" width="500" height="375" /></a></p><p>The setup itself is not incredibly unsightly and does a great job of watering plants in locations that don&#8217;t have a source of water close by. If the barrel is topped up every so often, watering is quick and easy.</p><h3>Future Plans</h3><p>In the near future (likely next season), I plan on adding automation to the system with a relay, microcontroller, and RTC chip. I am developing this system while at school for my small-scale indoor automated watering solution (documentation to come soon).</p><p>In addition, we have purchased an RV pressure-regulated water pump with much greater capacity, allowing us to water more plants and some of our fruit trees next season. If you need greater capacity for your watering system, you can buy one of these pumps for about $50 on eBay. If you need greater water capacity, you can add additional 55-gallon barrels with siphon hoses between them. This is an easy way to increase capacity without making any changes to your existing system.</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2011/09/diy-cheap-reservoir-irrigation/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>MNL: Networked LED Lighting</title><link>http://protofusion.org/wordpress/2011/08/mnl-networked-led-lighting/</link> <comments>http://protofusion.org/wordpress/2011/08/mnl-networked-led-lighting/#comments</comments> <pubDate>Mon, 29 Aug 2011 00:13:52 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[AVR]]></category> <category><![CDATA[MNL]]></category> <category><![CDATA[ATTiny]]></category> <category><![CDATA[Lighting]]></category> <category><![CDATA[RGB]]></category> <category><![CDATA[RS485]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1037</guid> <description><![CDATA[MNL is a multi-node high-power RGB lighting system. It consists of a controller (PC or embedded system) and multiple light ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_17-01-56.jpg" rel="lightbox[1037]"><img
class="alignnone size-large wp-image-1060" title="MNL Node and 10W RGB LED" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_17-01-56-500x276.jpg" alt="" width="500" height="276" /></a></p><p>MNL is a multi-node high-power RGB lighting system. It consists of a controller (PC or embedded system) and multiple light nodes networked with RS485. The first prototype nodes are up and running, and we will be developing the second revision of prototypes in the coming months. Read on past the break for more information.</p><p><span
id="more-1037"></span></p><h3></h3><h2>Node Hardware</h2><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_16-33-18.jpg" rel="lightbox[1037]"><img
class="alignnone size-large wp-image-1058" title="MNL Light Controller Node" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_16-33-18-500x292.jpg" alt="" width="500" height="292" /></a></p><p>The node board is a small PCB with two RJ-45 ports and a power terminal strip, along with an ICSP header for flashing firmware. The nodes are designed for daisy-chaining both data and power.</p><p>Current features:</p><ul><li>RS485 communication</li><li>Supports LEDs of up to 1.2A per channel</li><li>Upgradeable firmware for additional features</li><li>TBD: Firmware updates over RS485</li><li>Multiple fade types, dwell modes, etc.</li><li>Hardware-agnostic network supports different types of nodes (e.g., strobe, motor driver, etc)</li></ul><h3></h3><h2>LED Circuit</h2><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_16-33-00.jpg" rel="lightbox[1037]"><img
class="alignnone size-large wp-image-1057" title="10W RGB LED" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_16-33-00-500x279.jpg" alt="" width="500" height="279" /></a></p><p>The LED used for prototyping is a 10W RGB LED from DealExtreme, which provides a generous amount of light with low cost per lumen. Although the heatsink is a bit small, forced-air cooling keeps things at a reasonable temperature.  The PCB includes a fan output which is PWMed according to the average instantaneous luminosity of the node. Forced-air cooling could be helpful for installation in compromising environments, such as can lighting fixtures.</p><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_16-34-15.jpg" rel="lightbox[1037]"><img
class="alignnone size-large wp-image-1059" title="Current-Limiting Resistors" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/2011-08-28_16-34-15-500x302.jpg" alt="" width="500" height="302" /></a></p><p>The current design incorporates 3 current-limiting resistors for each channel of the LED. Although this is less efficient than current-regulated supplies, it allows flexibility in LED choice without requiring extensive PCB modifications.</p><h3></h3><h2>Prototype Software</h2><p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/Test-Controller-App.png" rel="lightbox[1037]"><img
class="alignnone size-large wp-image-1052" title="MNL Test Application (Processing/Wiring)" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/Test-Controller-App-500x414.png" alt="" width="500" height="414" /></a></p><p>I developed a quick Processing sketch for testing purposes. It creates a FFT of the stereo mix and uses the lowest three bins to determine R/G/B brightness. If the largest of the three values is over the threshold specified by the slider, then an update command is sent to the node. The processing sketch also has an Open Sound Control (OSC) interface, allowing easy control from the TouchOSC app for iPhone or Android over WIFI as well as any software package that supports OSC.</p><p>This project is still under heavy development, and is still in the prototype phase. We are adding additional features to the software and hardware, so expect significant updates in the coming months.</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2011/08/mnl-networked-led-lighting/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>PCB Desktop Background</title><link>http://protofusion.org/wordpress/2011/08/pcb-backgrounds/</link> <comments>http://protofusion.org/wordpress/2011/08/pcb-backgrounds/#comments</comments> <pubDate>Wed, 03 Aug 2011 00:42:51 +0000</pubDate> <dc:creator>Ethan Zonca</dc:creator> <category><![CDATA[Graphics]]></category> <category><![CDATA[Arduino]]></category> <category><![CDATA[LED]]></category><guid
isPermaLink="false">http://protofusion.org/wordpress/?p=1043</guid> <description><![CDATA[Want a nice hearty printed circuit board desktop background? Well, here you go (right-click, save as). The PCB is an ]]></description> <content:encoded><![CDATA[<p><a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/IMG_3516.jpg" rel="lightbox[1043]"><img
class="size-large wp-image-1044 alignnone" title="PCB Background" src="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/IMG_3516-500x375.jpg" alt="" width="500" height="375" /></a></p><p>Want a nice hearty printed circuit board desktop background? Well, <a
href="http://pf-wordpress.s3.amazonaws.com/wordpress/wp-content/uploads/2011/08/IMG_3516.jpg" rel="lightbox[1043]">here you go</a> (right-click, save as). The PCB is an older Arduino NG board placed on top of one of our 10W MNLC lighting nodes (still under development, more information to come).</p> ]]></content:encoded> <wfw:commentRss>http://protofusion.org/wordpress/2011/08/pcb-backgrounds/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Object Caching 816/906 objects using disk: basic
Content Delivery Network via Amazon Web Services: S3: pf-wordpress.s3.amazonaws.com

Served from: protofusion.org @ 2012-05-22 08:15:34 -->
