<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>systems and interventions in art and technology</description><title>THE MAGICAL WORLD OF DATA</title><generator>Tumblr (3.0; @magicalworldofdata)</generator><link>http://magicalworldofdata.tumblr.com/</link><item><title>Project Launch!</title><description>&lt;p&gt;This week, &lt;a href="http://northern.lights.mn/" title="Northern Lights" target="_blank"&gt;Northern Lights&lt;/a&gt; announced the launch of my latest project, &lt;em&gt;&lt;a href="http://1000fireflies.net" title="1000 Fireflies" target="_blank"&gt;The Kuramoto Model (1000 Fireflies)&lt;/a&gt;&lt;/em&gt;. There&amp;#8217;s also a kickstarter page where you can buy one of my LED creations. Here&amp;#8217;s the blurb for the project:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span&gt;During Northern Spark, a dusk-to-dawn outdoor urban arts festival in Minneapolis, up to 1.000 bicyclists will use customized, interactive blinking LED devices outfitted with microcontrollers and radio units that allow them to mutually and observably synchronize with others, as do certain species of firefly&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hope to see you in Minneapolis! And check out the &lt;a href="http://1000fireflies.net" target="_blank"&gt;1000fireflies&lt;/a&gt; blog for updates.&lt;/p&gt;</description><link>http://magicalworldofdata.tumblr.com/post/19769828918</link><guid>http://magicalworldofdata.tumblr.com/post/19769828918</guid><pubDate>Thu, 22 Mar 2012 23:01:12 -0500</pubDate></item><item><title>ATtiny85 - programming using an Arduino</title><description>&lt;p&gt;Proud owner of three new ATtiny85 chips, I set out to program them using my Arduino. I didn&amp;#8217;t have a dedicated programming device, so I chose to follow the promising tutorial for &lt;a href="http://hlt.media.mit.edu/?p=1695" title="Programming an ATtiny w/ Arduino" target="_blank"&gt;Arduino-based ATtiny programming&lt;/a&gt; published by MIT&amp;#8217;s &lt;a href="http://hlt.media.mit.edu/" target="_blank"&gt;High-Low Tech&lt;/a&gt; group.&lt;/p&gt;
&lt;p&gt;The tutorial is very helpful, but along the way I encountered three problems not mentioned there, and I thought I&amp;#8217;d share them here for anyone having trouble.&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;1. Bootloader burn error - Attempting to burn a bootloader to the ATtiny, I got the following error from avrdude (for those unfamiliar, this is the software embedded within the Arduino IDE that does the actual device programming):&lt;/p&gt;
&lt;pre class="code"&gt;avr_read(): error reading address 0x0000
    read operation not supported for memory "lock"
avrdude: failed to read all of lock memory, rc=-2 &lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Apparently, there&amp;#8217;s an incompatibility (&lt;a href="http://code.google.com/p/arduino/issues/detail?id=808" target="_blank"&gt;follow the bug here&lt;/a&gt;) between the current Arduino IDE and avrdude that causes this issue. Following a &lt;a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1274820597/90" target="_blank"&gt;suggestion&lt;/a&gt; found on the Arduino message boards, I changed the avrdude.conf file (located within the Arduino package) by adding the below text that&amp;#8217;s in bold:&lt;/p&gt;
&lt;pre class="code"&gt;#------------------------------------------------------------
# ATtiny85
#------------------------------------------------------------

part
     id		= "t85";
     desc	    = "ATtiny85";

[lots of stuff here not included in this post]

     memory "lock"
	   size		= 1;
	   write	     = "1 0 1 0  1 1 0 0  1 1 1 x  x x x x",
				   "x x x x  x x x x  1 1 i i  i i i i";
&lt;strong&gt;&lt;span class="highlight"&gt;	   read		= "0 1 0 1  1 0 0 0  0 0 0 0  0 0 0 0",
				   "0 0 0 0  0 0 0 0  o o o o  o o o o";&lt;/span&gt;&lt;/strong&gt;
	  min_write_delay = 9000;
	  max_write_delay = 9000;
	 ; 
&lt;/pre&gt;
&lt;p&gt;2. Missing reset pull-up - The tutorial was written for the Arduino Uno, while I had a Duemilanove. The instructions specify that on the Uno, a capacitor is needed between the reset and ground pins, apparently to &lt;a href="http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection" target="_blank"&gt;keep the Arduino from resetting itself during programming&lt;/a&gt;. For me, the resetting resulted in this error:&lt;/p&gt;
&lt;pre class="code"&gt;avrdude: stk500_getsync(): not in sync: resp=0x15&lt;/pre&gt;
&lt;p&gt;Following the above advice, I added a 110 ohm resistor (well, I actually used three 330 ohm resistors in parallel since I didn&amp;#8217;t have a 110) between +5v and RESET, which solved this issue. The doc states that the resistance must be between 110 and 124 ohms.&lt;/p&gt;
&lt;p&gt;3. Crash during programming due to serial buffer overflow. After solving the reset issue, the Arduino would hang during programming. The &amp;#8220;heartbeat&amp;#8221; LED would freeze, so I knew that the ArduinoISP program on the device was crashing. Enabling verbose output in the Arduino preferences helped me see that the program data was being sent to the ATtiny but that it was halting halfway through, then timing out after the halt with the same sync error:&lt;/p&gt;
&lt;pre class="code"&gt;avrdude: stk500_getsync(): not in sync: resp=0x15&lt;/pre&gt;
&lt;p&gt;Apparently, this is a &lt;a href="http://code.google.com/p/arduino/issues/detail?id=661" target="_blank"&gt;bug that&amp;#8217;s been fixed for Arduino v 1.0.1&lt;/a&gt; - I followed the instructions in the report and increased the serial buffer size in HardwareSerial.cpp from 64 to 128.&lt;/p&gt;
&lt;p&gt;After this change, it finally worked, and my ATtiny85 was happily blinking an LED.&lt;/p&gt;</description><link>http://magicalworldofdata.tumblr.com/post/17912779757</link><guid>http://magicalworldofdata.tumblr.com/post/17912779757</guid><pubDate>Sun, 19 Feb 2012 17:57:00 -0600</pubDate></item></channel></rss>
