<?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>STEIM R&#38;D</title>
	<atom:link href="http://www.steim.org/research/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.steim.org/research</link>
	<description>STEIM research and development</description>
	<lastBuildDate>Tue, 16 Apr 2013 09:51:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Lasercutter &#8211; make solder stencil</title>
		<link>http://www.steim.org/research/?p=119</link>
		<comments>http://www.steim.org/research/?p=119#comments</comments>
		<pubDate>Tue, 16 Apr 2013 09:51:13 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Lasercutter]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=119</guid>
		<description><![CDATA[Making a solder stencil from Kicad with the laser cutter: Reference: http://www.meatandnetworking.com/tutorials/creating-svg-files-worth-of-creating-solder-stencils-from-kicad/ * Export solder paste layer from KiCad as SVG file * Ensure that all pads are grouped individually per square (and not single lines) * Rescale them to 90 % * Set the line thickness to 0.025 * Then copy and move a <a href='http://www.steim.org/research/?p=119'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Making a solder stencil from Kicad with the laser cutter:</p>
<p>Reference: <a href="http://www.meatandnetworking.com/tutorials/creating-svg-files-worth-of-creating-solder-stencils-from-kicad/">http://www.meatandnetworking.com/tutorials/creating-svg-files-worth-of-creating-solder-stencils-from-kicad/</a></p>
<p>* Export solder paste layer from KiCad as SVG file<br />
* Ensure that all pads are grouped individually per square (and not single lines)<br />
* Rescale them to 90 %<br />
* Set the line thickness to 0.025<br />
* Then copy and move a copy of the whole board, to correspond to the panel layout</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=119</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lasercutter &#8211; from file to cut</title>
		<link>http://www.steim.org/research/?p=111</link>
		<comments>http://www.steim.org/research/?p=111#comments</comments>
		<pubDate>Wed, 23 Jan 2013 12:04:43 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Lasercutter]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=111</guid>
		<description><![CDATA[Sorry you have no rights to view this post! Login]]></description>
			<content:encoded><![CDATA[<p>Sorry you have no rights to view this post!<br />
    <a class="uam_login_link" href="http://www.steim.org/research/wp-login.php?redirect_to=%2Fresearch%2F%3Ffeed%3Drss2">Login</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=111</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lasercutter &#8211; filter unit</title>
		<link>http://www.steim.org/research/?p=109</link>
		<comments>http://www.steim.org/research/?p=109#comments</comments>
		<pubDate>Wed, 23 Jan 2013 11:58:57 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Lasercutter]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=109</guid>
		<description><![CDATA[Sorry you have no rights to view this post! Login]]></description>
			<content:encoded><![CDATA[<p>Sorry you have no rights to view this post!<br />
    <a class="uam_login_link" href="http://www.steim.org/research/wp-login.php?redirect_to=%2Fresearch%2F%3Ffeed%3Drss2">Login</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=109</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guesstimate Velocity Better</title>
		<link>http://www.steim.org/research/?p=100</link>
		<comments>http://www.steim.org/research/?p=100#comments</comments>
		<pubDate>Mon, 05 Mar 2012 17:39:32 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Android tram speed meter]]></category>
		<category><![CDATA[Tao G. Vrhovec Sambolec]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=100</guid>
		<description><![CDATA[For the actual measurement of tram speeds we used two methods: Use the accelerometer data and integrate Use the GPS on the phone and get the speed from that measurement To get an acceptable result we needed to combine these two measurements, as sometimes the GPS is quite inaccurate, and sometimes the integration from the <a href='http://www.steim.org/research/?p=100'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>For the actual measurement of tram speeds we used two methods:</p>
<ul>
<li>Use the accelerometer data and integrate</li>
<li>Use the GPS on the phone and get the speed from that measurement</li>
</ul>
<p>To get an acceptable result we needed to combine these two measurements, as sometimes the GPS is quite inaccurate, and sometimes the integration from the accelerometer drifts off.</p>
<p>For the accelerometer we then also made a couple of assumptions (based on measurements of data on the tram and testing the App in progress):</p>
<ul>
<li>The tram mainly moves forward, so we only take into account one axis of acceleration for the integration. This ensures that we don&#8217;t get additional noise from three different axes, but of course limits the way in which you can mount the phone.</li>
<li>When the tram moves, the &#8220;sideways axis&#8221; and the gravity axis of acceleration shakes quite a bit, when the tram is standing still, this vibration is not present. We can use this to detect whether or not the tram is moving or not. When the tram is not moving, we can make sure that the calculated speed goes to zero, and thus reset the integration constant</li>
<li>When the tram is standing still, we also reset the offset of acceleration, to account for any kind of drift of the sensor itself over time.</li>
<li>When the tram is on an incline or decline (a hill, a bridge, or going down into a tunnel), we get a bit of an offset so we need to compensate for this.</li>
</ul>
<p>This added to a couple of other things like calculating means and standard deviations over a certain time window, taking a moving average, resulted in the final App, which can be downloaded from github:</p>
<p><a href="https://github.com/sensestage/Guesstimate-Velocity-Better">https://github.com/sensestage/Guesstimate-Velocity-Better</a></p>
<p>Settings which worked best with the Samsung Galaxy S2 phones:</p>
<p><code><br />
Sensor: accelero<br />
Forward axis: Y<br />
Sideways axis: Z<br />
Gravity axis: X<br />
Window size: 200		Delta time: 10<br />
THRESHOLDS:<br />
Gravity Tresh: 0.05		Gravity MA: 0.8<br />
Still forward: 0.06		Still side: 0.06<br />
Motion forward: 0.1		Motion side: 0.06<br />
Accel std: 0.2			Accel mean: 0.1<br />
Decel std: 0.3			Decel mean: -0.1<br />
Mean weight: 0.95		Raw weight: 0.05<br />
Offset MA: 0.999		Speed decay: 0.99<br />
Mean MA: 0.99		        Prec. MA: 0.2<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=100</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android phone sensors</title>
		<link>http://www.steim.org/research/?p=96</link>
		<comments>http://www.steim.org/research/?p=96#comments</comments>
		<pubDate>Mon, 05 Mar 2012 17:27:26 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Android tram speed meter]]></category>
		<category><![CDATA[Tao G. Vrhovec Sambolec]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=96</guid>
		<description><![CDATA[For the City Velocities &#8211; Body Speeds project, we needed to measure the speed of trams that move through the city. Because a smart phone has a couple of sensors built-in and is capable of uploading data to a remote server, we chose Android as a base platform to work with. However, we needed to <a href='http://www.steim.org/research/?p=96'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>For the <a href="http://steim.org/2012/01/city-velocities-body-speeds/">City Velocities &#8211; Body Speeds</a> project, we needed to measure the speed of trams that move through the city.</p>
<p>Because a smart phone has a couple of sensors built-in and is capable of uploading data to a remote server, we chose Android as a base platform to work with. However, we needed to find out which phone had the best sensors to do this, i.e. which phones had sensors that were most accurate.</p>
<p>By making a <a href="http://steim.org/2012/02/got-an-android-phone-help-us-do-research-for-an-upcoming-residency-project/">call for help</a> where we asked people to run a program on their phones and send us back the information on the sensors in the phone that the program reported, we got a reasonable overview of which sensors are in which phone, and their accuracy.</p>
<p>The results are listed in the two pdf&#8217;s down here:</p>
<p><a href='http://www.steim.org/research/?uamfiletype=attachment&#038;uamgetfile=http://www.steim.org/research/wp-content/uploads/2012/03/overview_android_sensors.pdf'>Overview Android Sensors</a></p>
<p><a href='http://www.steim.org/research/?uamfiletype=attachment&#038;uamgetfile=http://www.steim.org/research/wp-content/uploads/2012/03/android_acceleros.pdf'>Accelerometer characterics</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inspiration for modular systems</title>
		<link>http://www.steim.org/research/?p=88</link>
		<comments>http://www.steim.org/research/?p=88#comments</comments>
		<pubDate>Fri, 20 Jan 2012 12:01:45 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Modular Controller Kit]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=88</guid>
		<description><![CDATA[Interesting projects: Slick design for using USB, MIDI, CV devices with sensors: http://www.teenageengineering.com/products/oplab/ http://interlude.ircam.fr/wordpress/?p=229 This one uses another wireless chip: http://www.jennic.com/products/wireless_microcontrollers/jn5148 Paper on MO-objects]]></description>
			<content:encoded><![CDATA[<p>Interesting projects:</p>
<p>Slick design for using USB, MIDI, CV devices with sensors:<br />
<a href="http://www.teenageengineering.com/products/oplab/" target="_blank">http://www.teenageengineering.com/products/oplab/</a></p>
<p><a href=" http://interlude.ircam.fr/wordpress/?p=229" target="_blank"></p>
<p>http://interlude.ircam.fr/wordpress/?p=229</a></p>
<p>This one uses another wireless chip:<br />
<a href="http://www.jennic.com/products/wireless_microcontrollers/jn5148" target="_blank">http://www.jennic.com/products/wireless_microcontrollers/jn5148</a></p>
<p><a href='http://www.steim.org/research/?uamfiletype=attachment&#038;uamgetfile=http://www.steim.org/research/wp-content/uploads/2012/01/MO-objects.pdf'>Paper on MO-objects</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=88</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autochannel select with XBee</title>
		<link>http://www.steim.org/research/?p=65</link>
		<comments>http://www.steim.org/research/?p=65#comments</comments>
		<pubDate>Wed, 11 Jan 2012 13:10:39 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Wireless receiver]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[xbee]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=65</guid>
		<description><![CDATA[I looked into automatic channel selection with XBees. Going from the manual [1], I found out that these options work, mainly the settings for ATA2 and ATA1 are interesting: Configure the coordinator with: ATA2 6 // 0b110 : allow associations (bit 3), automatic channel select (bit 2), fixed pan id (bit 1) ATCE 1 // <a href='http://www.steim.org/research/?p=65'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I looked into automatic channel selection with XBees.</p>
<p>Going from the manual [1], I found out that these options work, mainly the settings for <code>ATA2</code> and <code>ATA1</code> are interesting:</p>
<p>Configure the coordinator with:</p>
<pre>
ATA2 6    // 0b110 : allow associations (bit 3), automatic channel select (bit 2), fixed pan id (bit 1)
ATCE 1    // coordinator enable
ATAP 2    // API mode 2 (with escaped characters)
ATID 7970 // pan id
ATMY 1111 // address of the coordinator
ATDL 1    // destination address low bytes
ATDH 0    // destination address high bytes
</pre>
<p>Configure the nodes with:</p>
<pre>
ATA1 6    // 0b110 : use automatic association (bit 3), automatic channel select (bit 2), fixed pan id (bit 1)
ATCE 0    // coordinator enable
ATAP 2    // API mode 2 (with escaped characters)
ATID 7970 // pan id
ATMY 1    // address of the coordinator (or ATMY 2)
ATDL 1111 // destination address low bytes (address of coordinator)
ATDH 0    // destination address high bytes
</pre>
<p>What will happen according to the manual is that the coordinator upon startup will scan the channels (different frequencies in the 2.4 GHz range) for the one that has the least energy on it. Then it will pick that one.<br />
The nodes will look for a coordinator on any channel that matches the pan ID they have, and switch to that channel.</p>
<p>As a side effect the MY address of the XBee on the nodes is reset, so this is solved by setting it in the node firmware to the desired address again.</p>
<p>[1] <a href='http://www.steim.org/research/?uamfiletype=attachment&#038;uamgetfile=http://www.steim.org/research/wp-content/uploads/2012/01/XBeeManual.pdf'>XBeeManual</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming wireless receiver</title>
		<link>http://www.steim.org/research/?p=62</link>
		<comments>http://www.steim.org/research/?p=62#comments</comments>
		<pubDate>Wed, 11 Jan 2012 09:59:00 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Wireless receiver]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=62</guid>
		<description><![CDATA[Steps in programming the wireless receiver: Connect both USB and the AVR ISP mkII programmer to the board Open the Arduino sketch in the Arduino IDE Select the &#8220;STEIM wireless receiver&#8221; from the Board menu Compile the code This makes a temp directory with the hex file in (e.g. on Linux) /tmp/buildXXXXX.tmp/wireless_receiver_1_4.cpp.hex Then use avrdude <a href='http://www.steim.org/research/?p=62'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Steps in programming the wireless receiver:</p>
<ul>
<li>Connect both USB and the AVR ISP mkII programmer to the board</li>
<li>Open the Arduino sketch in the Arduino IDE</li>
<li>Select the &#8220;STEIM wireless receiver&#8221; from the Board menu</li>
<li>Compile the code</li>
<li>This makes a temp directory with the hex file in (e.g. on Linux) <code>/tmp/buildXXXXX.tmp/wireless_receiver_1_4.cpp.hex</code></li>
<li>Then use avrdude to burn it to the flash:<br />
<code>avrdude -c avrispmkII -p m328p -P usb -U flash:w:/tmp/build4971464468714801572.tmp/wireless_receiver_1_4.cpp.hex</code>
</li>
<li>The output will be something like:
<pre>
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/tmp/build4497645872316412355.tmp/wireless_receiver_1_4.cpp.hex"
avrdude: input file /tmp/build4497645872316412355.tmp/wireless_receiver_1_4.cpp.hex auto detected as Intel Hex
avrdude: writing flash (8492 bytes):

Writing | ################################################## | 100% 2.64s

avrdude: 8492 bytes of flash written
avrdude: verifying flash memory against /tmp/build4497645872316412355.tmp/wireless_receiver_1_4.cpp.hex:
avrdude: load data flash data from input file /tmp/build4497645872316412355.tmp/wireless_receiver_1_4.cpp.hex:
avrdude: input file /tmp/build4497645872316412355.tmp/wireless_receiver_1_4.cpp.hex auto detected as Intel Hex
avrdude: input file /tmp/build4497645872316412355.tmp/wireless_receiver_1_4.cpp.hex contains 8492 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 2.43s

avrdude: verifying ...
avrdude: 8492 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.
</pre>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=62</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pete Edwards &#8211; sequencer</title>
		<link>http://www.steim.org/research/?p=51</link>
		<comments>http://www.steim.org/research/?p=51#comments</comments>
		<pubDate>Thu, 05 Jan 2012 16:11:09 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Peter Edwards]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[sequencer]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=51</guid>
		<description><![CDATA[Sorry you have no rights to view this post! Login]]></description>
			<content:encoded><![CDATA[<p>Sorry you have no rights to view this post!<br />
    <a class="uam_login_link" href="http://www.steim.org/research/wp-login.php?redirect_to=%2Fresearch%2F%3Ffeed%3Drss2">Login</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=51</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lovid &#8211; Theremin control</title>
		<link>http://www.steim.org/research/?p=49</link>
		<comments>http://www.steim.org/research/?p=49#comments</comments>
		<pubDate>Thu, 05 Jan 2012 16:03:24 +0000</pubDate>
		<dc:creator>marije</dc:creator>
				<category><![CDATA[Lovid]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[capacitive sensing]]></category>
		<category><![CDATA[theremin]]></category>

		<guid isPermaLink="false">http://www.steim.org/research/?p=49</guid>
		<description><![CDATA[Sorry you have no rights to view this post! Login]]></description>
			<content:encoded><![CDATA[<p>Sorry you have no rights to view this post!<br />
    <a class="uam_login_link" href="http://www.steim.org/research/wp-login.php?redirect_to=%2Fresearch%2F%3Ffeed%3Drss2">Login</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steim.org/research/?feed=rss2&#038;p=49</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
