<?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>Syn Fin dot Net</title>
	<atom:link href="http://synfin.net/sock_stream/feed" rel="self" type="application/rss+xml" />
	<link>http://synfin.net/sock_stream</link>
	<description>Streaming Thoughts from Syn to Fin</description>
	<lastBuildDate>Sun, 19 May 2013 01:45:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>New SV650 ECU Decoder Firmware</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/new-sv650-ecu-decoder-firmware</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/new-sv650-ecu-decoder-firmware#comments</comments>
		<pubDate>Sun, 12 May 2013 01:29:29 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[ecu]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[sv650]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=2037</guid>
		<description><![CDATA[So I&#8217;ve been spending my time working on the firmware running on the Teensy board which does all the ECU decoding. I&#8217;ve added support for displaying water temp and ECU error codes on the four digit LED display as you can see here: As you can see from the video, I&#8217;m decoding the temp in [...]]]></description>
				<content:encoded><![CDATA[<p>So I&#8217;ve been spending my time working on the firmware running on the Teensy board which does all the ECU decoding.  I&#8217;ve added support for displaying water temp and ECU error codes on the four digit LED display as you can see here:</p>
<p><object width="640" height="360"><param name="movie" value="http://www.youtube.com/v/Gr4h8IoSlCg?hl=en_US&amp;version=3"/><param name="allowFullScreen" value="true"/><param name="allowscriptaccess" value="always"/><embed src="http://www.youtube.com/v/Gr4h8IoSlCg?hl=en_US&amp;version=3" type="application/x-shockwave-flash" width="640" height="360" allowscriptaccess="always" allowfullscreen="true"/></object></p>
<p>As you can see from the video, I&#8217;m decoding the temp in Fahrenheit, but adding Celsius support would be really easy.  All of the SV650 error codes; including the TPS adjustment indicator is supported.  Right now the only real difference between my decoder and the stock dash is that you don&#8217;t need to short the two wires to read the error codes when there is an error- I automatically switch to displaying the codes when there is an error condition.  It would be easy to support the default behavior of just turning on the EFI warning light and only showing the codes when in &#8220;dealer mode&#8221;.</p>
<p>All buttoned up in it&#8217;s enclosure:</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/05/IMG_0763.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/05/IMG_0763-300x225.jpg" alt="Front" width="300" height="225" class="aligncenter size-medium wp-image-2065" /></a></p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/05/IMG_0765.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/05/IMG_0765-300x225.jpg" alt="Rear" width="300" height="225" class="aligncenter size-medium wp-image-2066" /></a></p>
<p>I hope to be able to take video of the box on my race bike next week!</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/new-sv650-ecu-decoder-firmware/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SV650 ECU Decoder Part 5: They&#8217;re here!</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-5-theyre-here</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-5-theyre-here#comments</comments>
		<pubDate>Tue, 09 Apr 2013 05:15:04 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[ecu]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[sv650]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1957</guid>
		<description><![CDATA[Part 1 is here. Part 2 is here. Part 3 is here. Part 4 is here. So I got the new boards back from OSH Park: The boards look really good. I&#8217;m waiting on some parts to show up from Mouser, but was able to mostly populate the board with all the parts. The nylon [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement">Part 1 is here.</a><br />
<a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-2">Part 2 is here.</a><br />
<a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-3">Part 3 is here.</a><br />
<a href=" http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-deco…e-is-the-charm">Part 4 is here.</a></p>
<p>So I got the new boards back from <a href="http://oshpark.com/">OSH Park</a>:<br />
<a href="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0663.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0663-300x225.jpg" alt="Front of Board" width="300" height="225" class="aligncenter size-medium wp-image-1962" /></a></p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0664.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0664-300x225.jpg" alt="Back of Board" width="300" height="225" class="aligncenter size-medium wp-image-1963" /></a></p>
<p>The boards look really good.  I&#8217;m waiting on some parts to show up from Mouser, but was able to mostly populate the board with all the parts.  The nylon standoff under the LED display really provides a lot of strength and stability, only issue being that it&#8217;s just a millimeter or so too long, but nothing that my grinder can&#8217;t easily fix.</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0665.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0665-300x225.jpg" alt="Front of Populated Board" width="300" height="225" class="aligncenter size-medium wp-image-1960" /></a></p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0666.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/04/IMG_0666-300x225.jpg" alt="Back of Populated Board" width="300" height="225" class="aligncenter size-medium wp-image-1961" /></a></p>
<p>Really looking forward to testing on Saturday in the shop and then hopefully on Monday for my first track day of the season at Thunderhill!</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-5-theyre-here/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SV650 ECU Decoder Part 4: Third time is the charm?</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-4-third-time-is-the-charm</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-4-third-time-is-the-charm#comments</comments>
		<pubDate>Tue, 26 Mar 2013 04:53:58 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[ecu]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[sv650]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1907</guid>
		<description><![CDATA[Part 1 is here. Part 2 is here. Part 3 is here. So my v2.0 boards were a complete dud.  Turns out some how I messed up the design and ended up wiring up the connector to the wiring harness backwards so nothing works.  Wasn&#8217;t a complete disaster- I was going to have to do [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement">Part 1 is here.</a><br />
<a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-2">Part 2 is here.</a><br />
<a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-3">Part 3 is here.</a></p>
<p>So my v2.0 boards were a complete dud.  Turns out some how I messed up the design and ended up wiring up the connector to the wiring harness backwards so nothing works.  Wasn&#8217;t a complete disaster- I was going to have to do another revision of the board either way, but it does slow things down.<span id="more-1907"></span></p>
<p>Anyways, I just finished the v3.0 board design which:</p>
<ul>
<li>Fixes the pin out on the wiring harness connector</li>
<li>Adds a 5mm LED for low fuel light warning</li>
<li>Adds some holes in the PCB for adding standoffs to support the LED display</li>
<li>Removes the terminal block option</li>
</ul>
<p>Most everything should be pretty self explanatory, but I wanted to take a minute to explain the last item.  The first version of the board didn&#8217;t have the OEM connector for plugging directly into the stock wiring harness, instead I had a terminal block to connect the wires.  I ended up removing the terminal block from this version because:</p>
<ol>
<li>I figured the majority of people would use the OEM connector</li>
<li>I was a bit worried about the reliability of using a terminal block- especially in racing</li>
<li>Adding the fuel light meant less available PCB space and needing to add a 6th connector</li>
<li>People can order the board without the OEM connector and solder directly</li>
</ol>
<div id="attachment_1909" class="wp-caption aligncenter" style="width: 310px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/v3.0-top.png"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/v3.0-top-300x194.png" alt="Top side of the v3.0 board" width="300" height="194" class="size-medium wp-image-1909" /></a><p class="wp-caption-text">Top side of the v3.0 board</p></div>
<div id="attachment_1908" class="wp-caption aligncenter" style="width: 310px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/v3.0-back.png"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/v3.0-back-300x194.png" alt="Back side of the v3.0 board. " width="300" height="194" class="size-medium wp-image-1908" /></a><p class="wp-caption-text">Back side of the v3.0 board.</p></div>
<p>Anyways, I just submitted the order to OSH Park today- should be a part of March 27th&#8217;s panel, and so I should have the boards back by mid-April.</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-4-third-time-is-the-charm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SV650 ECU Decoder Part 3: New boards just arrived!</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-3</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-3#comments</comments>
		<pubDate>Fri, 22 Mar 2013 04:59:38 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[ecu]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[sv650]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1860</guid>
		<description><![CDATA[Part 1 is here. Part 2 is here. So I got the v2.0 boards back today from OSH Park and they looked really good: The back side of the PCB has solder holes for both the stock dash connector as well as a 5 screw terminal block in case you&#8217;ve already modified your wiring harness. [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement">Part 1 is here.</a><br />
<a href="http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-2">Part 2 is here.</a></p>
<p>So I got the v2.0 boards back today from OSH Park and they looked really good:</p>
<div id="attachment_1867" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0626.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0626-225x300.jpg" alt="Front side of the v2.0 PCB" width="225" height="300" class="size-medium wp-image-1867" /></a><p class="wp-caption-text">Front side of the v2.0 PCB</p></div>
<div id="attachment_1861" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0627.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0627-225x300.jpg" alt="Back side of the v2.0 PCB " width="225" height="300" class="size-medium wp-image-1861" /></a><p class="wp-caption-text">Back side of the v2.0 PCB</p></div>
<p>The back side of the PCB has solder holes for both the stock dash connector as well as a 5 screw terminal block in case you&#8217;ve already modified your wiring harness.  As you can see, no problems mounting the connector for the wiring harness or LED display:</p>
<div id="attachment_1864" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0631.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0631-225x300.jpg" alt="Front of PCB with all components mounted.  " width="225" height="300" class="size-medium wp-image-1864" /></a><p class="wp-caption-text">Front of PCB with all components mounted.</p></div>
<div id="attachment_1863" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0630.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0630-225x300.jpg" alt="Back of v2.0 PCB board showing all components mounted" width="225" height="300" class="size-medium wp-image-1863" /></a><p class="wp-caption-text">Back of v2.0 PCB board showing all components mounted</p></div>
<div id="attachment_1868" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0638.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0638-225x300.jpg" alt="Side view of the PCB with all components mounted. " width="225" height="300" class="size-medium wp-image-1868" /></a><p class="wp-caption-text">Side view of the PCB with all components mounted.</p></div>
<p>As you can see from the side view, I&#8217;ve &#8220;floated&#8221; the LED display off of the PCB.  This was to make the LED closer to flush with the case once mounted and thus easier to read.  The down side is that now the display is only supported by the 5 wires which isn&#8217;t very strong.  So I&#8217;m probably going to have to add some holes to the PCB for some standoffs to support the LED display.</p>
<div id="attachment_1865" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0632.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0632-225x300.jpg" alt="Front of case showing 3 warning lights and 4 digit display for error codes &amp; water temp" width="225" height="300" class="size-medium wp-image-1865" /></a><p class="wp-caption-text">Front of case showing 3 warning lights and 4 digit display for error codes &#038; water temp</p></div>
<p>As you can see, I&#8217;ve gotten pretty good with drilling the holes out for the indicator lights, but cutting that hole for the LED display was really painful.  I used a sharp utility knife to cut the hole rather then a dremel to be more precise, but I just ended up getting a blister from working so hard. :(</p>
<div id="attachment_1866" class="wp-caption aligncenter" style="width: 235px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0633.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/IMG_0633-225x300.jpg" alt="Back of case showing connector for SV650 dash wiring harness" width="225" height="300" class="size-medium wp-image-1866" /></a><p class="wp-caption-text">Back of case showing connector for SV650 dash wiring harness</p></div>
<p>Here you can see the hole I cut with a dremel for the wiring harness connector.  It&#8217;s serviceable but not that professional looking IMHO.  One thing I haven&#8217;t done is cut a hole in the side of the case for the USB connector.  Since I&#8217;ll be able to view the ECU error codes on the display, there&#8217;s no longer a need to plug in a computer to read the codes, so no hole.  If I have to reprogram the Teensy board for any reason, it&#8217;s just two screws to remove the board from the case.</p>
<p>So I plan on testing the board on Saturday. Feel pretty confident that it should work.  I do plan on doing another revision of the board to include:</p>
<p>1. Standoffs to support the LED display<br />
2. A 5mm LED for low fuel light</p>
<p>The good news is that I&#8217;ve aslo mapped the ECU values to temperature so the 4 digit LED display can now have a secondary purpose: showing the water temperature when there isn&#8217;t an EFI error code.  So basically, this little board will have everything you&#8217;ll need to remove the 2nd gen SV dash and run a GPX Pro, Starlane, AIM or other aftermarket dash unit.</p>
<p>But assuming the board works on Saturday, there&#8217;s no reason I can&#8217;t sell one of the other v2 prototype boards (will have everything except the low fuel light).  The one thing I haven&#8217;t figured out is how I can accurately and easily cut the holes for the LED display and wiring harness connector.  If I can&#8217;t come up with a better solution, I&#8217;ll probably end up including the case, but it&#8217;s up to the end user to cut the holes.  I&#8217;m not really happy with that idea, but I can&#8217;t spend an hour on each unit trying to cut square holes with an exacto knife in ABS plastic.</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-3/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SV650 ECU Decoder part 2</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-2</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-2#comments</comments>
		<pubDate>Sat, 09 Mar 2013 04:17:38 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[ecu]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[sv650]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1743</guid>
		<description><![CDATA[Part 1 is here. So I got the first boards back from OSH Park: And with the all the components populated: And finally in the small ABS plastic enclosure: At this point I decided to do a little more with my decoder and add: 1. LED display for decoding FI codes without a computer 2. [...]]]></description>
				<content:encoded><![CDATA[<p><a href=" http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement">Part 1 is here</a>.</p>
<p>So I got the first boards back from OSH Park:</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/BDwGd-ICUAAX8vD.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/BDwGd-ICUAAX8vD.jpg" alt="SV650 Ecu Decoder v1 Board Front" width="600" height="800" class="aligncenter size-full wp-image-1767" /></a></p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0610.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0610.jpg" alt="SV650 Ecu Decoder v1 Board Rear" width="2448" height="3264" class="aligncenter size-full wp-image-1779" /></a><br />
<span id="more-1743"></span><br />
And with the all the components populated:</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0605.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0605.jpg" alt="SV650 Ecu Decoder v1 Front Populated" width="2448" height="3264" class="aligncenter size-full wp-image-1774" /></a></p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0606.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0606.jpg" alt="SV650 Ecu Decoder v1 Rear Populated" width="2448" height="3264" class="aligncenter size-full wp-image-1775" /></a></p>
<p>And finally in the small ABS plastic enclosure:</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0607.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0607.jpg" alt="SV650 Ecu Decoder v1 Front Enclosure" width="2448" height="3264" class="aligncenter size-full wp-image-1776" /></a></p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0608.jpg"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/IMG_0608.jpg" alt="SV650 Ecu Decoder v1 Side Enclosure" width="2448" height="3264" class="aligncenter size-full wp-image-1777" /></a></p>
<p>At this point I decided to do a little more with my decoder and add:</p>
<p>1. LED display for decoding FI codes without a computer<br />
2. Water temp decoding on LED display<br />
3. Plug-n-play.  No more cutting &#038; soldering your wiring harness in order to connect.</p>
<p>All this while keeping the same form factor of a small 2.4&#8243; X 2.27&#8243; X 1.0&#8243; box:</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/top-sv650.png"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/top-sv650.png" alt="top-sv650" width="808" height="525" class="aligncenter size-full wp-image-1802" /></a></p>
<p>and back:</p>
<p><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/03/bottom-sv650.png"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/03/bottom-sv650.png" alt="bottom-sv650" width="808" height="525" class="aligncenter size-full wp-image-1801" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-decoder-part-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SV650 ECU EFI warning decoder/dash replacement</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement#comments</comments>
		<pubDate>Mon, 11 Feb 2013 22:54:27 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[ecu]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[sv650]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1728</guid>
		<description><![CDATA[So I finally finished the design of my very first PCB and placed an order with OSH Park to get some samples. The basic premise is I needed a way to decode the data stream from my 2nd gen SV650 ECU to know when there is a problem with the fuel injection system with the [...]]]></description>
				<content:encoded><![CDATA[<p>So I finally finished the design of my very first PCB and placed an order with <a href="http://oshpark.com/">OSH Park</a> to get some samples.  The basic premise is I needed a way to decode the data stream from my 2nd gen SV650 ECU to know when there is a problem with the fuel injection system with the race bike.  Also, ideally, I needed a way to know what the specific error codes are.</p>
<p>Normally you do this with the stock dash, but I wanted to use my GPX Pro dash and didn&#8217;t want two dashes on my race bike.  Unfortunately, the PCB on the dash is just one large unit (including the tachometer) and so there wasn&#8217;t an easy way to just use the parts I needed (a red idiot light and the LCD which displays the error code).<br />
<span id="more-1728"></span><br />
I did some research and found out that the ECU to dash communication is a simple 7800 baud serial data stream comprised of 8 byte messages sent every 10 seconds.  I ended up doing a quick prototype with an <a href="http://www.arduino.cc/">Arduino</a> Uno board I had laying around:</p>
<p><iframe src="http://player.vimeo.com/video/64266450" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/64266450">Suzuki SV650 ECU/FI Warning Decoding via Arduino</a> from <a href="http://vimeo.com/user10893228">synfinatic</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Once I got it working I quickly realized two things:</p>
<p>1. The Arduino board is too large and unwieldy to use on the motorcycle.<br />
2. The Arduino uses it&#8217;s serial line for the USB which meant I had to do 7800 baud completely in software which used up a lot of CPU time.</p>
<p>I finally ended up picking the <a href="http://www.pjrc.com/store/teensy.html">Teensy 2.0</a> board by PJRC.  It&#8217;s about half the cost of an Arduino, a quarter of the size and has hardware serial support for both USB (good for logging) and on pins (good for listening to the ECU).</p>
<p>In the past I had played around with Eagle, but I always found it confusing and hard to use.  This time I decided to try out DipTrace.  Overall, I found DipTrace much easier to use, but it uses Wine under Linux/OSX and so it can be a bit buggy which really removed the polish from what overall seems to be a great app.</p>
<p>In the end I ended up with this board which is just a little bigger then 2&#215;2&#8243;:</p>
<div id="attachment_1729" class="wp-caption aligncenter" style="width: 1612px"><a href="http://synfin.net/sock_stream/wp-content/uploads/2013/02/ecu-indicator.png"><img src="http://synfin.net/sock_stream/wp-content/uploads/2013/02/ecu-indicator.png" alt="PCB board" width="1602" height="1376" class="size-full wp-image-1729" /></a><p class="wp-caption-text">PCB board</p></div>
<p>The biggest surprise and hardest part of the whole project wasn&#8217;t writing the code for the Teensy or designing the circuit, but rather trying to find a nice enclosure for the board and then designing the board to fit it properly.  Realizing you have to think in 3D space (I had to lay down the LM7805 power regulator so the cover would fit!) and figuring out where the mounting holes should go (the spec sheet for the enclosure was painfully obtuse about this).</p>
<p>Things I&#8217;d like to do in the next version:<br />
1. LED display for printing EFI error codes so you don&#8217;t have to plug in your computer<br />
2. Add support for displaying water temp (I&#8217;m using my GPX Pro for this, but it&#8217;s included in the data stream)<br />
3. Find a source for the dash wiring harness connector so you don&#8217;t have to splice your wiring harness<br />
4. Read tach signal (again I&#8217;m using GPX Pro so this is pretty redundant for my needs)</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/sv650-ecu-efi-warning-decoderdash-replacement/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XT Racing GPX Pro Review</title>
		<link>http://synfin.net/sock_stream/cool/xt-racing-gpx-pro-review</link>
		<comments>http://synfin.net/sock_stream/cool/xt-racing-gpx-pro-review#comments</comments>
		<pubDate>Tue, 18 Dec 2012 06:00:17 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Cool]]></category>
		<category><![CDATA[Crackdays & Racing]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1054</guid>
		<description><![CDATA[Note, this is a review of the first generation GPX Pro, not the current GPX Pro4/8 units- however, much of this review should apply to both units. Overall, I&#8217;m in love with the GPX Pro- it&#8217;s a great cost effective solution for capturing and analyzing data while you are driving or riding (all my tests [...]]]></description>
				<content:encoded><![CDATA[<p>Note, this is a review of the first generation GPX Pro, not the current GPX Pro4/8 units- however, much of this review should apply to both units.</p>
<p>Overall, I&#8217;m in love with the GPX Pro- it&#8217;s a great cost effective solution for capturing and analyzing data while you are driving or riding (all my tests were done on my SV650 race bike).  The unit is easy to install, use and surprisingly easy to read, even in strong sunlight- probably due to it&#8217;s use of a grey-scale LCD display rather then a color display that is used on laptops and iPads.  The software &#8220;GPX Studio&#8221;, is also easy to use and has tons of great information, but unfortunately Windows only (no plans on a OSX or Linux port, but it works great under VMWare/Parallels).   I really learn a lot by looking at my brake markers and corner speed.<br />
<span id="more-1054"></span><br />
XT Racing has the best customer service I&#8217;ve experienced- quickly responding to bug reports and feature requests.  They have even helped me debug problems <strong>over a weekend</strong> so that I would have a properly working unit in time for my races!  </p>
<p>There are a few problems that I have had with the GPX Pro:</p>
<p>They seem to have been fighting a reliability issue with their LCD display.  I went through 3 units in one year (they&#8217;ve paid shipping both ways every time and even sent one 3-day so I&#8217;d have it in time for a race weekend).  Apparently I&#8217;m not the only one having issues.  They believe they&#8217;ve figured out the cause of the problem and my current unit has the &#8220;fix&#8221; and so far so good- it appears their solution has worked.  Either way, I&#8217;m 100% confident that XT Racing will stand behind their product and resolve the issue.</p>
<p>The second issue is that the unit has to be reformatted/reset to factory defaults about once a year due to performance issues that crop up.  After a while, the unit becomes so slow, that it just locks up and crashes.  XT Racing claims it&#8217;s due to a file system issue that the flash memory is using (this problem I was told has been resolved in the newer GPX Pro 4/8 units).  So far, the problem has always been fixed by reformatting the device, but doing so means you lose all your settings.  The good news is that it takes a while for this problem to crop up, so I think I&#8217;ll only have to reformat my unit once a year.</p>
<p>XT Racing is a small company.  That&#8217;s good because is means you don&#8217;t talk to some technical support guy, but rather to one of the engineers who designed the product if you have a problem.  If you find a bug in the firmware/software they&#8217;re really good about fixing it right away (I know a guy who sent in a bug report on Friday afternoon and got the fix on Saturday in time for his races).  XT Racing is also very willing to work with people- even making me a custom NPT threaded temperature sensor for my SV650.  </p>
<p>The pros are:<br />
- Very inexpensive for the features compared to the competition<br />
- Easy to install &#038; good documentation<br />
- Software is easy to use (works fine under VMware/etc too if you run OSX/Linux)<br />
- Great technical support.  Their engineer has responded to my emails over the weekend and they&#8217;re very good about integrating feedback into their product.<br />
- Amazing customer support.<br />
- Their analysis software (GPX Studio) is a free download on their website and they&#8217;re happy to send you some sample data so you can play with it if you&#8217;d like to see what it can do.</p>
<p>Cons:<br />
- Reliability could be improved</p>
<p>Basically XT Racing is a small company who seems very customer focused and has bent over backwards to make me a happy customer.  I&#8217;m sure Starlane, AiM, MoTeC are great too, but IMHO the price/feature sweet spot is clearly with the GPX Pro.  </p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/cool/xt-racing-gpx-pro-review/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2012 Season in Review</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/2012-season-in-review</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/2012-season-in-review#comments</comments>
		<pubDate>Wed, 24 Oct 2012 05:41:37 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[AFM]]></category>
		<category><![CDATA[racing]]></category>
		<category><![CDATA[sv650]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1353</guid>
		<description><![CDATA[It&#8217;s been a few weeks now so I&#8217;ve had time to digest the 2012 AFM season. Things definitely started on the wrong foot with the first race of the season being cancelled due to weather conditions. That left six races for the season- four at Thunderhill and two at Sonoma Raceway (aka Infineon, aka Sears [...]]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s been a few weeks now so I&#8217;ve had time to digest the 2012 AFM season.</p>
<p>Things definitely started on the wrong foot with the first race of the season being cancelled due to weather conditions.  That left six races for the season- four at Thunderhill and two at Sonoma Raceway (aka Infineon, aka Sears Point).  I had worked a fair bit on my fitness and mental preparation in the offseason and it definitely showed in my riding- I was much more consistent and my practice times were finally only a second or two off of my race times which really helped me with bike setup and consistency and confidence in my races.<br />
<span id="more-1353"></span><br />
That said, not everything went as planned.  Halfway through the season at a trackday at Thunderhill, I started having problems with the transmission in my bike- specifically, the bike would jump down a gear under high load.  Thanks to KC at <a href="http://www.brgracing.com">BRG Racing</a> I was able to get a &#8220;new&#8221; (meaning well used) motor in my bike just in time to make the next round.  After talking with KC during the race weekend I realized that all this time I had been &#8220;doing it wrong&#8221; on downshifts and not blipping the throttle.  Well at least we now knew what caused the transmission to start having problems after a year and a half.  The problem was that I had tried to learn to blip the throttle a long time ago and just couldn&#8217;t seem to make it work at all.  I talked to KC about it and the mechanics of body position, braking hard and blipping all at once and we quickly realized that I needed to change a few things and so I spent the rest of Saturday practice that weekend re-learning how to downshift.</p>
<p>Turned out I learned how to properly blip the throttle much quicker then I had hoped for and ended up having a good race weekend even though the high humidity was causing a lot of problems with the jetting and we were way way down on power. The next round was at Sonoma Raceway which started off badly when my front Woodcraft tire warmer stopped working due to a sliced wire (my fault) and I ended up sliding on my back at the top of Turn 3a on my out-lap on the last session of the day on Friday.  We ended up getting the bike put back together late Saturday morning and ended up finishing the weekend in high spirits even though I had a hard set of races due to arm pump.  I really want to thank Paolo at <a href="www.forthetrack.com">For The Track</a> for lending me a front tire warmer for the races so that I didn&#8217;t have to go out on cold tires and Jose for giving me a replacement rear master so I could pass tech.  </p>
<p>Thanks to <a href="http://www.woodcraft-cfm.com">Woodcraft&#8217;s</a> great customer service, I got my tire warmer fixed in time for the final race of the year at Thunderhill. Unfortunately, I knew this spare motor I was running was way down on power and Thill being a horsepower track that left me at a much bigger disadvantage then at Sears.</p>
<p>Things didn&#8217;t really start out that well in my first race because the bike jumped out of gear twice during the race.  Honestly, at this point I was ready to give up because I didn&#8217;t trust my equipment, but everyone on the team rallyed around me and helped motivate me to go out again.  During the warmup lap I pushed the transmission hard to see if it would happen again and it seemed OK, so I decided to go for it.</p>
<p>My last race of the season was Formula IV which is dominated by guys on SV650 &#8220;superbikes&#8221; with GSXR front ends and even a guy racing a de-stroked Ducati 749 which people estimate makes almost 100HP.  My poor bike with it&#8217;s hand-me-down old motor was dyno&#8217;d at 56HP after tuning and seemed to have a inconsistent gearbox problem.  To say I&#8217;m not competitive is an understatement.  But the transmission held up perfectly and I was able to find something extra in that race and have a good battle with Jason Vestri (#770) for almost the entire race.  Looking back, I know I would of beat him to the line on the last lap had my rear tire not gone off (I had decided to go with a warm well used tire rather then a newer cold tire for the race), but woulda, coulda, shoulda- we&#8217;ll never know.</p>
<p>This was another hard year, between a rain out, getting taken out at one of the fastest corners and mechanical issues but I left with a real sense of accomplishment in that I know I really improved as a racer and even with all the ups and downs really enjoyed the year.  But I also have come to the conclusion that it no longer makes sense to race without really competitive machinery (my &#8217;99 SV650 will never be truly competitive with the EFI second gen SV&#8217;s which dominate the 650 Production class) and so I&#8217;ve decided to come back next year with a much better bike which should be able to compete up front of 650Twins and Formula IV.  No more excuses, now it&#8217;ll all be on me!</p>
<p>Finally, I&#8217;d like to thank:</p>
<ul>
<li>KC and everyone at <a href="http://www.brgracing.com">BRG Racing</a> for building my motor, general mechanical support and all the mentorship throughout the year.  KC&#8217;s love for the sport is infectious and he&#8217;s taught me a lot. You guys rock!</li>
<li>Chris and the gang at <a href="http://www.ctracetires.com">CT Racing/Pirelli</a> for hooking me up with those great Pirelli tires and the awesome service!</li>
<li>Jim and Nickie at <a href="http://www.crstuning.com/">Catalyst Reaction</a> and Dave at <a href="http://feelthetrack.com/">Feel The Track</a> for handling all my suspension needs this year.  You guys have always been there for me and made me feel like your most important customer time and time again!</li>
<li>Helmut and Linda at <a href="http://www.helimot.com">Helimot</a> for making the best fitting and safest leathers and gloves.  I&#8217;ve been taken out, knocked off, run off and just plain rode over my head and each time your stuff has kept me safe!</li>
<li>Jeff and Lance at <a href="http://viets-performance.com/">Viets Performance</a> for always hooking me up with parts at great prices so quickly.  Knowing I can always count on you guys to get me the parts I need when I need them makes things a lot less stressful!</li>
<li>Gerry at <a href="http://www.gpframeandwheel.com/">GP Frame &amp; Wheel</a> for keeping my bike straight when bad things happen</li>
<li>All the <a href="http://www.afmracing.org">AFM staff</a> and turn workers who make each race weekend possible.  Without your efforts there would not be an AFM!
</li>
<li>And last but not least my wife Wendy, who supports me every day and my crazy hobby of being a club motorcycle racer.  I love you!
</li>
</ul>
<p>Looking forward to next year!</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/2012-season-in-review/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Time Series Metric Data with Cassandra</title>
		<link>http://synfin.net/sock_stream/technology/advanced-time-series-metric-data-with-cassandra</link>
		<comments>http://synfin.net/sock_stream/technology/advanced-time-series-metric-data-with-cassandra#comments</comments>
		<pubDate>Tue, 02 Oct 2012 03:35:13 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[cassandra]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[metric]]></category>
		<category><![CDATA[time series]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1184</guid>
		<description><![CDATA[There are already a few good resources for doing time series data with Cassandra. This post tries to build upon those posts, so feel free to go read them now&#8230; I&#8217;ll wait. :) Overview So basic summary of the above is, create a CF where each row corresponds to a date range of data for [...]]]></description>
				<content:encoded><![CDATA[<p>There are already a <a href="http://rubyscale.com/blog/2011/03/06/basic-time-series-with-cassandra/">few</a> <a href="http://www.datastax.com/dev/blog/advanced-time-series-with-cassandra">good</a> <a href="http://engineering.rockmelt.com/post/17229017779/modeling-time-series-data-on-top-of-cassandra">resources</a> for doing time series data with Cassandra. This post tries to build upon those posts, so feel free to go read them now&#8230; I&#8217;ll wait. :)<span id="more-1184"></span></p>
<h4>Overview</h4>
<p>So basic summary of the above is, create a CF where each row corresponds to a date range of data for a single metric. Often times, you&#8217;ll see people suggesting making each bucket being a days worth of data. If you&#8217;re storing 5 minute averages, then that&#8217;s 288 columns/row.</p>
<p>Here&#8217;s an example CF for storing network interface counter statistics:</p>
<p><pre><code>create column family InterfaceStatDaily
&nbsp;&nbsp;&nbsp;&nbsp;with column_type = Standard
&nbsp;&nbsp;&nbsp;&nbsp;and key_validation_class = AsciiType
&nbsp;&nbsp;&nbsp;&nbsp;and comparator = LongType
&nbsp;&nbsp;&nbsp;&nbsp;and default_validation_class = LongType
&nbsp;&nbsp;&nbsp;&nbsp;and comment = &#039;Storage for 5min interface stats&#039;;</code></pre></p>
<p>So I create rows like:</p>
<p><pre><code>InterfaceStatDaily[&#039;myhost|eth0|ifInOctets|20121001&#039;] = [
&nbsp;&nbsp;&nbsp;&nbsp;[ 1349049600, 19245 ],
&nbsp;&nbsp;&nbsp;&nbsp;[ 1349049900, 23475 ],
&nbsp;&nbsp;&nbsp;&nbsp;[ 1349051200, 173445 ],
&nbsp;&nbsp;&nbsp;&nbsp;...
]</code></pre></p>
<p>Would create a row for the <em>ifInOctets</em> counter on the network interface <em>eth0</em> for <em>myhost</em> for <em>Oct 01, 2012</em>. The first value (at 00:00:00) is 19245 and the second value at 00:05:00 is 23475, etc. Notice I&#8217;m storing column names as LongTypes using Epoch time&#8230; this is much more disk space efficient then Time-UUID&#8217;s.</p>
<p>In my case, <a href="http://btoddb-cass-storage.blogspot.com/">according to this calculator</a> a column with a LongType name &amp; value would be 31 bytes. However, we&#8217;re really only storing 12 bytes of data (4 bytes epoch + 8 byte value) so the vast majority of our disk space is overhead. In my case, a years worth of data for would be ~1.173TB/year (12 * 31 * 60 * 24 / 5 * 365 * 30000) just for the 5min values assuming 30K ports * 12 stats/port and doesn&#8217;t include replication (at RF=3 you&#8217;re talking nearly 3.6TB/year!), row/sstable overhead for indexes or bloom filters or creating aggregates. Even for a database like Cassandra which scales really well, this is stupid- especially if you&#8217;re trying to keep your nodes down to the 300-400GB recommended limit.</p>
<h4>Using Vector Compression</h4>
<p>The solution is to add a second Column Family:</p>
<p><pre><code>create column family InterfaceStatCompressed
&nbsp;&nbsp;&nbsp;&nbsp;with column_type = Standard
&nbsp;&nbsp;&nbsp;&nbsp;and key_validation_class = AsciiType
&nbsp;&nbsp;&nbsp;&nbsp;and comparator = LongType
&nbsp;&nbsp;&nbsp;&nbsp;and default_validation_class = BytesType
&nbsp;&nbsp;&nbsp;&nbsp;and comment = &#039;Vector compressed storage for 5min interface stats&#039;;</code></pre></p>
<p>And then write your rows like this:</p>
<p><pre><code>
InterfaceStatCompressed[&#039;myhost|eth0|ifInOctets|2012&#039;] = [
&nbsp;&nbsp;&nbsp;&nbsp;[ 1349049600, Vector[19245, 23475, 173445, ... ],
&nbsp;&nbsp;&nbsp;&nbsp;[ 1349136000, Vector[823445, 1366, 2343461, ... ],
&nbsp;&nbsp;&nbsp;&nbsp;...
]</code></pre></p>
<p>First you&#8217;ll notice the row key is slightly different, instead of a day, the last part of the row key is the year.  The column name is the start of each day in Epoch time.  The next thing, is for a given column, rather then storing a single value, we store a vector of a days worth of data as a byte stream of 2,304 bytes (8 bytes/value * 288 values = 2,304).  </p>
<p>Note, I wrote the above as <em>Vector[xxx,xxx,xxx,...]</em>, but really what that means is converting all your values to 64bit integers, concatenating them together and writing them as a single value like:</p>
<p><em>0x0000000000004b2d0000000000005bb3000000000002a585</em> </p>
<p>Which is the actual bytes for the first 3 values for the Vector[19245, 23475, 173445, ...].  </p>
<p><strong>Note:</strong> Our first idea was to write the data as an AsciiType of comma separated array of values.  But it turns out this is less efficient then the above solution unless your data is very sparse or is storing small values as a comma separated array of 32bit hexadecimal values takes up to 2,591 bytes.</p>
<p>The advantage here is that the amount of overhead you&#8217;re dealing with is greatly reduced because now there are only 365 columns/year instead of 105,120. Compacting a day&#8217;s worth of 5min values in a single column as a byte vector and storing a years worth of data this way would result in only ~305GB/year (before replication, etc). This would require 2,327bytes/col (15 + 8 + 2,304), but that would store a day&#8217;s worth of 5min values (288) a savings of 74%. (~850,000Bytes stat/interface/year or ~10MB interface/year). Even better news: column families like this are <strong>highly compressible</strong> so you&#8217;ll get even better results if you enable compression!</p>
<p>If you have sparse data, for missing individual values I just used a &#8216;magic&#8217; value of 2**64-2 as a placeholder. If for some reason, the entire days worth of data is zero (a common occurrence for me), I store the single value 2**64-1 rather then a vector of 288 copies of 2**64-2.</p>
<h4>Bringing It All Together</h4>
<p>The downside is of the InterfaceStatCompressed Column Family is that you have to do a read/write of a full day&#8217;s worth of data. That is usually great for reads since most applications like graphing require reading multiple datapoints anyways, but for writing the current values as you poll them, having to constantly read the current days worth of data, add the new datapoint and write the new column would kill our write performance.</p>
<p>The solution and best balance then is to write the current values to InterfaceStatDaily as they come in, and then once a day read the previous day&#8217;s complete row and write it to InterfaceStatCompressed and then delete the original row. That gives you the best of both worlds: high read and write throughput and reasonable disk space usage.</p>
<p>Of course, the down side of this is now you have your data in two different CF&#8217;s with different layouts. Hence you&#8217;ll need to wrap whatever API access layer you&#8217;re already using (Hector, Pycassa, etc) to intelligently query the two CF&#8217;s based on whatever date range you&#8217;re querying and return the values in a single format. However, considering the significant disk space savings, I found this to be well worth doing!</p>
<h4>Work arounds for Time-UUID</h4>
<p><strong>Note:</strong> Often you&#8217;ll see recommendations to use Time-UUD&#8217;s because if there is a chance of two values getting the same timestamp as one write will overwrite the other.  This can happen for a click stream (two users clicking on the same link at the same time), but won&#8217;t happen for things like interface stats.  If your timestamps can&#8217;t be written at some kind of consistent interval (like 5 minutes in this example) then the solution above probably won&#8217;t work for you.</p>
<p>Ok, so what if you need to write your data at Time-UUID or your timestamps aren&#8217;t written at a specific interval?  Well you can still use this solution, but with a few changes:</p>
<ol>
<li>Specify InterfaceStatDaily to use TimeUUID as your column comparator</li>
<li>When writing InterfaceStatCompressed sum() all the values for each 5 minute interval and write that at set intervals.
</li>
</ol>
<p>Obviously doing this you will loose sub-5minute resolution (or whatever time interval you choose) in the compressed data, but you won&#8217;t be storing all those extra timestamps.  If your needs require high precision timestamps for recent data and less precision for historical data then this may be a great work around.</p>
<p>If you don&#8217;t need high precision for current data, then one way to limit the differences in your CF&#8217;s and the wrapping API&#8217;s is to use Epoch column names with <a href="http://www.datastax.com/dev/blog/whats-new-in-cassandra-0-8-part-2-counters">Counters</a> for InterfaceStatDaily.  That way every time someone clicks on a URL (or whatever you&#8217;re counting) in a 5 minute time period, you just increment the appropriate counter.  Note that counters may not work well for every use case, so be sure to research their limitations before using them.</p>
<p>The key thing is when you run your daily vector compression job, you want to balance your time interval resolution to how often you actually are getting data.  Ie: if you&#8217;re getting writes approximately every 60 seconds, don&#8217;t use 5 second resolution or the vast majority of your storage space will be the 2**64-2 place holders indicating no data!</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/technology/advanced-time-series-metric-data-with-cassandra/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why do you race?</title>
		<link>http://synfin.net/sock_stream/crackdays-racing/why-do-you-race</link>
		<comments>http://synfin.net/sock_stream/crackdays-racing/why-do-you-race#comments</comments>
		<pubDate>Fri, 06 Jul 2012 06:07:25 +0000</pubDate>
		<dc:creator>Synfinatic</dc:creator>
				<category><![CDATA[Crackdays & Racing]]></category>
		<category><![CDATA[AFM]]></category>
		<category><![CDATA[racing]]></category>
		<category><![CDATA[sv650]]></category>

		<guid isPermaLink="false">http://synfin.net/sock_stream/?p=1153</guid>
		<description><![CDATA[After a weekend of racing I was emailing back and forth my mentor K.C. and during the exchange he asked me: &#8220;Why do you race?&#8221; Surprisingly, I couldn&#8217;t just spit out the answer- it took some time to internalize the question and get to the core nugget of truth: &#8220;Honestly that&#8217;s a hard question for [...]]]></description>
				<content:encoded><![CDATA[<p>After a weekend of racing I was emailing back and forth my mentor K.C. and during the exchange he asked me: &#8220;Why do you race?&#8221;   Surprisingly, I couldn&#8217;t just spit out the answer- it took some time to internalize the question and get to the core nugget of truth:<span id="more-1153"></span></p>
<p>&#8220;Honestly that&#8217;s a hard question for me to answer in words.  Usually I&#8217;m pretty analytical about things and can logically explain things. Motorcycles and racing in particular isn&#8217;t at all like that for me.</p>
<p>At first I started racing because I wanted to be faster.   No visions of glory, winning championships or grand goals really- they all seemed impossible at the time when I was struggling to do a 2:20 on my 748 at Thill.  Hell, for a long time my only goal was &#8220;don&#8217;t finish last&#8221;.  I&#8217;m not racing for bragging rights or trophies to collect dust in a cabinet although those things are fun and I enjoy them as much as anyone else I suppose.</p>
<p>The closest I can come up with why do I race now is, because that&#8217;s who I am.  If I didn&#8217;t race a part of me would die along with it.  I have plenty of hobbies- guns, photography, etc, but I don&#8217;t identify myself as a hunter, photographer, etc.  I&#8217;m a motorcycle racer.  Now I&#8217;d just like to be a better one.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://synfin.net/sock_stream/crackdays-racing/why-do-you-race/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
