<?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>Meat and Networking &#187; project</title>
	<atom:link href="http://www.meatandnetworking.com/tag/project/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.meatandnetworking.com</link>
	<description>Occasional Innovation</description>
	<lastBuildDate>Sun, 31 Mar 2013 20:56:52 +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>Prusa</title>
		<link>http://www.meatandnetworking.com/projects/prusa/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=prusa</link>
		<comments>http://www.meatandnetworking.com/projects/prusa/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 01:14:06 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[3d printers]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=404</guid>
		<description><![CDATA[This past weekend, we had a 3D printing workshop at LVL1.  I built a Mendel Prusa i2, along with 9 other folks in the LVL1 community. Sonny Mounicou came up from Memphis, TN, while Jon Oly of SeeMeCNC came down from Goshen, IN to help us build 3D printers.  One guy had his printer up and running [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.meatandnetworking.com/wp-content/uploads/8543425196_b36888c2bc_b.jpg"><img class="aligncenter size-medium wp-image-405" alt="3D Printing Workshop" src="http://www.meatandnetworking.com/wp-content/uploads/8543425196_b36888c2bc_b-300x200.jpg" width="300" height="200" /></a>This past weekend, we had a 3D printing workshop at <a href="http://www.lvl1.org">LVL1</a>.  I built a Mendel Prusa i2, along with 9 other folks in the LVL1 community. <a href="http://os1r1s.com/">Sonny Mounicou</a> came up from Memphis, TN, while Jon Oly of <a href="http://shop.seemecnc.com/">SeeMeCNC</a> came down from Goshen, IN to help us build 3D printers.  One guy had his printer up and running in a mere 14 hours!  I had to get some sleep, so I was a little bit behind that.</p>
<p>Needless to say, everyone had a great time, and walked out with some working 3D printers.  I&#8217;ve since gotten my Prusa home and had some time to play with it.</p>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/u96Ff9q.jpg"><img class="aligncenter size-medium wp-image-406" alt="Prusa at Home" src="http://www.meatandnetworking.com/wp-content/uploads/u96Ff9q-300x225.jpg" width="300" height="225" /></a>I&#8217;ve already got plans to make it better.  Tonight, I&#8217;m going to redo all the wiring to make it nicer, more reliable, and better looking.  Next, I intend to scrounge a server power supply out of the basement of LVL1.  Currently, it&#8217;s attached to a 200W Dell Power supply, which can only push out 200W.  This is fine for most things, but it just can&#8217;t put our the juice needed for heating the build platform to ABS temperatures.  I was able to get some calibration cubes of ABS to stick to the build platform, but nothing bigger. After that, sky&#8217;s the limit.  I&#8217;m also going to use this printer to print parts for another 3D printer, a <a href="http://reprap.org/wiki/Rostock">Rostock</a>.</p>
<p>Unfortunately, I&#8217;ll be missing the <a href="http://midwestreprapfest.org/">Midwest RepRap Fest</a> this weekend, but I&#8217;ll be there in spirit!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/prusa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nanino Upgrade</title>
		<link>http://www.meatandnetworking.com/projects/nanino-upgrade/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nanino-upgrade</link>
		<comments>http://www.meatandnetworking.com/projects/nanino-upgrade/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 03:29:00 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[diptrace]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[nanino]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[pcbs]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=378</guid>
		<description><![CDATA[4 months ago, I read about Johan&#8217;s Nanino on Hack-A-Day, and thought it would be a great way to teach some folks how to etch their own circuit boards.  Although I&#8217;m increasingly shipping PCBs off to China, being able to etch your own boards is a valuable skill to have.  I&#8217;ve taught workshops on it in [...]]]></description>
				<content:encoded><![CDATA[<p>4 months ago, I read about Johan&#8217;s <a href="http://vonkonow.com/wordpress/2012/10/nanino-the-diy-friendly-arduino/">Nanino</a> on <a href="http://hackaday.com/2012/10/09/single-sided-arduino-is-a-great-introduction-to-pcb-etching/">Hack-A-Day</a>, and thought it would be a great way to teach some folks how to etch their own circuit boards.  Although I&#8217;m increasingly shipping PCBs off to China, being able to etch your own boards is a valuable skill to have.  I&#8217;ve taught workshops on it in the past, and I&#8217;ve <a href="http://www.meatandnetworking.com/projects/toner-transfer-and-muriatic-acid-etchant-making-pcbs-at-lvl1/">described the process on this blog</a>.  Today, I set out to make a copy of Johan&#8217;s Nanino, but was almost immediately frustrated by the inability to manipulate and print the board file in a way that worked well for my process.  In the end, I redrew the thing using <a href="http://diptrace.com/">DipTrace</a>.</p>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/naninolvl1.png"><img class="aligncenter size-medium wp-image-386" alt="Nanino Improved" src="http://www.meatandnetworking.com/wp-content/uploads/naninolvl1-300x296.png" width="300" height="296" /></a>The only change made to the original is the addition of a .1 uF capacitor on the DTR line of the FTDI header.  Some of the traces are a little closer together, but they&#8217;re still spaced out enough that etching this board is a cinch.</p>
<p>Here are the files:</p>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/NaninoLVL1.dch">Diptrace Schematic for Nanino</a></p>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/NaninoLVL1.dip">Diptrace PCB for Nanino</a></p>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/NaninoLVL1.pdf">PDF of Nanino from the Back</a></p>
<p>You can use this PDF to etch directly.  No mirroring is needed.</p>
<div id="attachment_381" class="wp-caption alignnone" style="width: 160px"><a href="http://www.meatandnetworking.com/wp-content/uploads/NaninoTop.png"><img class="size-thumbnail wp-image-381" alt="Can be printed.  1200 DPI." src="http://www.meatandnetworking.com/wp-content/uploads/NaninoTop-150x150.png" width="150" height="150" /></a><p class="wp-caption-text">Can be printed. 1200 DPI.</p></div>
<div id="attachment_380" class="wp-caption alignnone" style="width: 160px"><a href="http://www.meatandnetworking.com/wp-content/uploads/NaninoBottom.png"><img class="size-thumbnail wp-image-380" alt="Can be printed. 1200 DPI.  No mirror needed for etching." src="http://www.meatandnetworking.com/wp-content/uploads/NaninoBottom-150x150.png" width="150" height="150" /></a><p class="wp-caption-text">Can be printed. 1200 DPI. No mirror needed for etching.</p></div>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/NaninoLVL1.dxf">DXF of Nanino</a></p>
<p>And, because the original Nanino is licensed CC-BY-NC-SA, this one is also:<br />
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license"><img style="border-width: 0;" alt="Creative Commons License" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br />
This work is licensed under a <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/" rel="license">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.</p>
<p>&nbsp;</p>
<div id="attachment_387" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_20130203_205836-1.jpg"><img class="size-medium wp-image-387" alt="It works!" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_20130203_205836-1-300x225.jpg" width="300" height="225" /></a><p class="wp-caption-text">It works!</p></div>
<div id="attachment_389" class="wp-caption aligncenter" style="width: 235px"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_20130203_183809.jpg"><img class="size-medium wp-image-389" alt="Good toner transfer" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_20130203_183809-225x300.jpg" width="225" height="300" /></a><p class="wp-caption-text">Good toner transfer</p></div>
<div id="attachment_388" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_20130203_185429.jpg"><img class="size-medium wp-image-388" alt="The etch was drama-free" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_20130203_185429-300x225.jpg" width="300" height="225" /></a><p class="wp-caption-text">The etch was drama-free</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/nanino-upgrade/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>3D Printing</title>
		<link>http://www.meatandnetworking.com/projects/3d-printing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=3d-printing</link>
		<comments>http://www.meatandnetworking.com/projects/3d-printing/#comments</comments>
		<pubDate>Tue, 15 Jan 2013 02:31:22 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[3d printers]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=346</guid>
		<description><![CDATA[I&#8217;m not dead.  I switched jobs back in September, and it&#8217;s seemed like an impossible task to catch up to everything until now.  But I&#8217;m working on some cool stuff! For example, I&#8217;m building a 3D printer: This is the start to my Rostock 3D printer.  I started printing the parts for this way back [...]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m not dead.  I switched jobs back in September, and it&#8217;s seemed like an impossible task to catch up to everything until now.  But I&#8217;m working on some cool stuff!</p>
<p>For example, I&#8217;m building a 3D printer:</p>
<p><a href="http://www.meatandnetworking.com/wp-content/uploads/2013-01-05-16.37.39.jpg"><img class="alignleft size-medium wp-image-349" title="Rostock Full" src="http://www.meatandnetworking.com/wp-content/uploads/2013-01-05-16.37.39-e1358216402474-225x300.jpg" alt="" width="225" height="300" /></a></p>
<p>This is the start to my <a href="http://www.thingiverse.com/thing:17175">Rostock</a> 3D printer.  I started printing the parts for this way back in October, and I&#8217;ve just now gotten to the point where it&#8217;s starting to come together. Unfortunately, a <a href="http://reprap.org/wiki/Kossel">much better version</a> has come out in the mean time.  A couple of people have already come through LVL1 building the improved, extruded aluminum delta bot.  It was almost enough to make me start over and try again, but not this time!  I&#8217;ve tried to build three other printers in the past, but they never got further than printing some plastic parts.  This time, I&#8217;ve spent <a href="https://docs.google.com/spreadsheet/ccc?key=0AoV_icNlfqiAdE1zYmNHU1JEYnZHUi04ZS10Mjh3bmc">real money</a> on the project, so I&#8217;m going to forge ahead!</p>
<p>So far, I&#8217;ve run into two major setbacks.  The first: the printed arms an u-joints are really, really terrible. Threading an M3 bolt into the U-joint as instructed is painfully difficult, and the result isn&#8217;t particularly smooth motion.  I&#8217;m going to have to buy a set of <a href="http://www.tridprinting.com/Mechanical-Parts/#3D-Printer-Rod-Kit">real rods</a> before I can continue.  Second, the specced GT2 belting and pulleys were completely unavailable in the lengths I needed, so I had to switch to HTD 3M belting and pulleys.  It was expensive!  The company I bought the stuff through charged me $15 for shipping, on top of $35 for the belt.  Then I cut the belting wrong, so I have to buy even more!</p>
<p>I&#8217;ll be using a Printrboard Rev. D to drive the whole thing, unless it blows up in my face.  Then I&#8217;ll probably just buy a nice reliable RAMPs setup, or a fully assembled printrboard.  And then, I&#8217;ll be off to the races!</p>
<div id="attachment_350" class="wp-caption alignright" style="width: 310px"><a href="http://www.meatandnetworking.com/wp-content/uploads/2013-01-05-16.19.09.jpg"><img class="size-medium wp-image-350 " title="Wrong Belting" src="http://www.meatandnetworking.com/wp-content/uploads/2013-01-05-16.19.09-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">This is the wrong way to cut the belting. Instead, leave a long tail, loop it back on itself, and zip tie it together.</p></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/3d-printing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacking at the Light Strike Laser Tag Game</title>
		<link>http://www.meatandnetworking.com/projects/hacking-at-the-light-strike-laser-tag-game/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hacking-at-the-light-strike-laser-tag-game</link>
		<comments>http://www.meatandnetworking.com/projects/hacking-at-the-light-strike-laser-tag-game/#comments</comments>
		<pubDate>Mon, 06 Aug 2012 03:06:30 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[ir]]></category>
		<category><![CDATA[laser tag]]></category>
		<category><![CDATA[light strike]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[teensy]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=296</guid>
		<description><![CDATA[My friend Jon has been working on Laser Taser tag, modifying perfectly ordinary toy laser guns to provide an electric shock when you get hit.  As he was working on this game for Makerfaire Detroit 2012, I noticed that these guns are really freaking cool.  10 years ago, I paid good teenage summer job money to [...]]]></description>
				<content:encoded><![CDATA[<p>My friend Jon has been working on <a href="http://www.youtube.com/watch?v=iLlFQipAxqU">Laser Taser tag</a>, modifying perfectly ordinary toy laser guns to provide an electric shock when you get hit.  As he was working on this game for Makerfaire Detroit 2012, I noticed that these guns are <em><strong>really freaking cool</strong></em><strong></strong>.  10 years ago, I paid good teenage summer job money to play laser tag, and it wasn&#8217;t as good as this.  You can now buy a $30 toy that rivals the fanciest laser tag equipment of the previous decade.</p>
<p style="text-align: center;"><a href="http://www.meatandnetworking.com/projects/hacking-at-the-light-strike-laser-tag-game/attachment/img_0107/" rel="attachment wp-att-301"><img class="aligncenter  wp-image-301" title="Light Strike Rifle" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_0107-1024x663.jpg" alt="" width="524" height="339" /></a></p>
<p style="text-align: left;">This is one of the rifles you can buy for the Wowwee <a href="http://www.lightstrike.com/">Light Strike</a> game.  They&#8217;ve got a bunch of capacitive touch button on the side to change gun settings, LED lights to indicate health, team, and who you got hit by, a reload button, an IR receiver and transmitter, and a couple of ports for add-on accessories.  Jon did a lot of the ground work for what I&#8217;m summarizing in this post.  The guns (and accessories) send out 38 kHz IR.  The guns use a custom packet format, and each message is 32 bits.</p>
<p style="text-align: left;">After taking a look inside these guns, I realized that they have a lot of potential.  They&#8217;re a really great sensor platform for a laser tag game, with a great form factor, but the electronics inside don&#8217;t offer a lot of flexibility in game mode, and players have to use the honor system to keep score.  My end goal is to provide drop in replacement electronics, which allow for more teams, additional game modes, zigbee scorekeeping, custom guns, custom sounds, and provide a standard data output, so people (like Jon) can build accessories a little easier.</p>
<div id="attachment_302" class="wp-caption alignright" style="width: 310px"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_0107_circle.jpg"><img class="size-medium wp-image-302" title="Light Strike Rifle with Screws Shown" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_0107_circle-300x194.jpg" alt="" width="300" height="194" /></a><p class="wp-caption-text">Light Strike rifle with all screws highlighted</p></div>
<div>
<p style="text-align: left;">These guns are really easy to get into.  Just regular phillips head screws, nothing special.  A bunch of them are hidden under the sticker on the side opposite the buttons.  These can be hard to find, so to the left is a picture with all the screws circled (click to embiggen).  Once you get inside, the main feature is a really well-labeled PCB that connects all the different sensors and outputs.  Of  course, the microcontroller is covered in a big blob of epoxy, but I&#8217;m going to replace the entire board, so it isn&#8217;t going to be a problem in the long run.</p>
<p style="text-align: left;"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_0105.jpg"><img class="alignleft size-medium wp-image-299" title="Rifle PCB" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_0105-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p> Ultimately, I want the new electronics to be backwards compatible with the old electronics, so I need to decode all the messages that are sent out by the stock rifle.  Fortunately, the rifle comes with a little target practice toy.  Taking it apart reveals an IR decoder, RGB LED, and a speaker. I added a <a href="http://www.pjrc.com/teensy/">Teensy</a>, wired the IR decoder in, and added an IR LED to output my own codes.  The IR decoder is connected to pin D7 on the Teensy (arbitrary choice), while the IR output is connected to pin C7 (this is the PWM output from the high-speed timer/counter on the Atmega32U4).  I started out using the Arduino <a href="http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html">IR Remote library</a> from Ken Shirrif, just outputting raw timing values from the IR input.  This ended up being frustrating, and I used a logic analyzer to confirm.  Getting a graphical view of the IR output helped a lot.</p>
<p><img class="alignright size-medium wp-image-303" title="Logic Analzer Ouput" src="http://www.meatandnetworking.com/wp-content/uploads/logic-300x173.png" alt="" width="300" height="173" />As you can see from the logical analyzer output, there are a few different marks and spaces (marks are where the LED is active).  There&#8217;s a long header mark at the start of the message, followed by equal-length inter-bit marks, with either a short space (for 0) or a long space (for 1).  Timings are as follows:</p>
<ul>
<li>Header Mark: 6750 us</li>
<li>Inter-bit Mark: 900 us</li>
<li>Zero Space: 900 us</li>
<li>One Space: 3700 us</li>
</ul>
<p>At this point, I modified the IRRemote library to decode the incoming messages.  I had to add the mark and space timings above, and write functions for decoding and encoding data.  I also had to modify some #defines for the Teensy to tweak the outgoing IR into a 50% duty cycle, and adjust the timings: The guns send out ~37.8 kHz IR, but the default settings sent out ~38.2 kHz IR.  This shouldn&#8217;t matter, but a simple tweak made everything work as it should.  The most difficult part was getting the IR send function working.  Here&#8217;s my new IR Send:</p><pre class="crayon-plain-tag">void IRsend::sendLS(unsigned long data, int nbits)
{
  enableIROut(38);
  mark(LS_HDR_MARK);
  space(0);
  for (int i = 0; i &lt; nbits; i++) {
    if (data &amp; TOPBIT) {
      mark(LS_BIT_MARK);
      space(LS_ONE_SPACE);
    } 
    else {
      mark(LS_BIT_MARK);
      space(LS_ZERO_SPACE);
    }
    data &lt;&lt;= 1;
  }
  mark(LS_BIT_MARK);
  space(0);
}</pre><p>In order to get the gun to accept the header, I had to send out a 0 length space after the header pulse, then begin sending data.  This took a while to nail down. I&#8217;ve put the code on GitHub here: <a href="https://github.com/LightStrikePlusPlus/LightStrikeDecode">https://github.com/LightStrikePlusPlus/LightStrikeDecode</a></p>
<p>Amazingly, after decoding some data packets, it appeared that everything was just a 32 bit output packet, and some obvious patterns emerged once I fired a few shots with different weapons and different teams.  Of the 4 bytes in the message, Byte 3 indicates the team (0&#215;07 for Blue (default), 0&#215;04 for Red, 0&#215;05 for Yellow and 0&#215;06 for Green), Byte 2 indicates a count of some sort (only used for the turret bomb mode.  It increases by one every time the bomb goes off, but any number of &#8220;count&#8221; will trip the gun, except 0.), and Bytes 0 and 1 indicate the weapon.  Below are the weapons:</p>
<ul>
<li>Laser Strike: 0&#215;0502
<ul>
<li>12 hits to kill from full health
<p><div id="attachment_297" class="wp-caption alignright" style="width: 235px"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_0102.jpg"><img class="size-medium wp-image-297" title="Target Inside 1" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_0102-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Inside of the target, with the stock electronics, modified with wires for power and sensor input to the teensy.</p></div></li>
</ul>
</li>
<li>Stealth Strike: 0&#215;0602
<ul>
<li>12 hits to kill from full health</li>
</ul>
</li>
<li>Pulse Strike: 0&#215;0703
<ul>
<li>8 hits to kill from full health</li>
</ul>
</li>
<li>Rail Strike: 0&#215;0806
<ul>
<li>4 hits to kill from full health</li>
</ul>
</li>
<li>Sonic Strike: 0&#215;908
<ul>
<li>3 hits to kill from full health</li>
</ul>
</li>
<li>Bomb: 0x0E18
<ul>
<li>MUST include a non-zero &#8220;count&#8221; field</li>
<li>1 hit to kill</li>
</ul>
</li>
<li>Sentry: 0x0F08
<ul>
<li>3 hits to kill from full health</li>
</ul>
</li>
<li>Health: 0&#215;08&#8211;
<ul>
<li>MUST be used with team 0&#215;08</li>
<li>Final byte is team byte for healing pulse (0&#215;07 for blue, etc)</li>
<li>3 hits to full health</li>
</ul>
</li>
</ul>
<div>
<div id="attachment_298" class="wp-caption alignleft" style="width: 235px"><a href="http://www.meatandnetworking.com/wp-content/uploads/IMG_0104.jpg"><img class="size-medium wp-image-298" title="Target Inside 2" src="http://www.meatandnetworking.com/wp-content/uploads/IMG_0104-225x300.jpg" alt="" width="225" height="300" /></a><p class="wp-caption-text">Target with Teensy installed</p></div>
</div>
<div></div>
<p>Interestingly enough, the guns appear to be more particular about the codes they receive than the sentry or the target module.  Both of these devices will activate on codes that don&#8217;t activate the gun.  The target, in particular, treats team codes 0x0D, 0x0A, 0x0B and 0x0C as Blue, Red, Yellow, and Green, respectively.</p>
<p>Now I think I&#8217;ve got enough data to build a protocol for the new electronics that will be backwards compatible, but add a whole lot of functionality. If you&#8217;d like to mess around with this on your own, check out the Arduino code I&#8217;ve uploaded here: <a href="https://github.com/LightStrikePlusPlus/LightStrikeDecode">https://github.com/LightStrikePlusPlus/LightStrikeDecode</a>.</p>
<div></div>
<div></div>
<p>&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;<br />&nbsp;
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/hacking-at-the-light-strike-laser-tag-game/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>ARM Cortex-Mx Quickstart</title>
		<link>http://www.meatandnetworking.com/tutorials/arm-cortex-mx-quickstart/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arm-cortex-mx-quickstart</link>
		<comments>http://www.meatandnetworking.com/tutorials/arm-cortex-mx-quickstart/#comments</comments>
		<pubDate>Sat, 04 Aug 2012 14:55:05 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[cortex]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=291</guid>
		<description><![CDATA[By now, almost everyone&#8217;s managed to acquire a bajillion cheap ARM dev boards, and there are always more coming.  As these chips get cheaper, and available in more hacker-friendly packages, they&#8217;re going to overtake chips and boards like the AVR and the Arduino, it&#8217;s just a matter of time.  Unfortunately, the ARM ecosystem isn&#8217;t as [...]]]></description>
				<content:encoded><![CDATA[<p>By now, almost everyone&#8217;s managed to acquire a <a href="http://www.st.com/internet/evalboard/product/252419.jsp">bajillion</a> <a href="http://www.st.com/internet/evalboard/product/250863.jsp">cheap</a> <a href="http://www.st.com/internet/evalboard/product/253215.jsp">ARM</a> <a href="http://www.st.com/internet/evalboard/product/250990.jsp">dev</a> boards, and there are always more coming.  As these chips get cheaper, and available in more <a href="http://www.nxp.com/products/microcontrollers/cortex_m0/lpc1100_x_l/LPC1114FN28.html">hacker-friendly packages</a>, they&#8217;re going to overtake chips and boards like the AVR and the Arduino, it&#8217;s just a matter of time.  Unfortunately, the ARM ecosystem isn&#8217;t as simple to work with as the AVR or PIC ecosystem.  With both of these 8-bitters, you&#8217;re working in the manufacturer&#8217;s walled garden.  ARM manufacturers, on the other hand, are free to glue whatever crazy stuff they want onto the ARM core.  As a result, peripheral sets and their use vary widely, even within the same manufacturer.  Efforts like the <a href="http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php">CMSIS</a> ameliorate this effect to some degree, but this isn&#8217;t a cake-walk.  Add on to that the difficulties in simply getting a toolchain up and running, and anyone with mere Arduino experience is lost (even more experienced 8-bit devs are going to have some tough going).</p>
<p>So, here&#8217;s a short guide to getting a toolchain for the STM32 series up and running quickly.  These instructions will be specific to Linux, but should translate to OSX or Windows fairly easily.</p>
<p>First, I downloaded the Linaro Bare-Metal ARM toolchain (<a href="http://www.linaro.org/downloads/">http://www.linaro.org/downloads/</a>).  It&#8217;s important to get the Bare-Metal toolchain.  Other toolchains generate binaries that aren&#8217;t capable of running sans operating system. The bare-metal toolchain is at the bottom of the page.  This package contains the compiler, linker, debugger, and other tools used to turn source code into machine code.  I used the precompiled package from Linaro because it&#8217;s a simple off-the-shelf method to get up and running quickly.  Unlike Codesourcery/Sourcery Tools, the Linaro toolchain supports the Cortex M4 with FPU right out of the box.</p>
<p>In the past, I have attempted to compile their own toolchain (<a href="https://github.com/esden/summon-arm-toolchain/">https://github.com/esden/summon-arm-toolchain/</a>), but this is not a simple process.</p>
<p>In Linux, I just extracted the tar.gz file to the folder I wanted it to live, and added that folder to my PATH.</p>
<p>Next comes OpenOCD.  OpenOCD is an open source debugger/flash utility for lots and lots of different chips.  I had to get the latest dev version from the git repo, (<a href="http://openocd.sourceforge.net/repos/">http://openocd.sourceforge.net/repos/</a>), as the latest stable release does not include STLink code.  If a version beyond 0.5.0 is released by the time you&#8217;re reading this, download that instead.</p>
<p>Installation was pretty easy.  I installed the dependencies using &#8220;sudo apt-get build-dep openocd&#8221;, then ran &#8220;./bootstrap&#8221;, followed by &#8220;./configure &#8211;enable-maintainer-mode &#8211;enable-stlink&#8221;, followed by &#8220;make&#8221; and &#8220;make install&#8221;.</p>
<p>Once I had the toolchain and debugger up and running, I downloaded some software to compile.  This github repository (<a href="https://github.com/nabilt/STM32F4-Discovery-Firmware">https://github.com/nabilt/STM32F4-Discovery-Firmware</a>) includes the test firmware provided by ST, with a Makefile capable of building it using GCC. Chibios (<a href="http://chibios.org/dokuwiki/doku.php">http://chibios.org/dokuwiki/doku.php</a>) also includes demo files for all the discovery boards.</p>
<p>The first time I attempted to build the STM32F4 firmware, it didn&#8217;t quite work out.  Due to the varied nature of the ecosystem, a separate linker script is needed for each chip.  Furthermore, different compilers need different sections to their linker scripts, so it might not be possible to simply yank one from somewhere else.  The linker script tells the linker where different memory sections map into real, physical memory on the chip.</p>
<p>Here&#8217;s the linker script I eventually got working for my STM32F4-Discovery:</p><pre class="crayon-plain-tag">/* Entry Point */
ENTRY(Reset_Handler)

/* Highest address of the user mode stack */
_estack = 0x20020000;    /* end of 128K RAM on AHB bus*/

/* Generate a link error if heap and stack don't fit into RAM */
_Min_Heap_Size = 0;      /* required amount of heap  */
_Min_Stack_Size = 0x400; /* required amount of stack */

/* Specify the memory areas */
MEMORY
{
  FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 1024K
  RAM (xrw)       : ORIGIN = 0x20000000, LENGTH = 192K
  MEMORY_B1 (rx)  : ORIGIN = 0x60000000, LENGTH = 0K
}

/* Define output sections */
SECTIONS
{
  /* The startup code goes first into FLASH */
  .isr_vector :
  {
    . = ALIGN(4);
    KEEP(*(.isr_vector)) /* Startup code */
    . = ALIGN(4);
  } &gt;FLASH

  /* The program code and other data goes into FLASH */
  .text :
  {
    . = ALIGN(4);
    *(.text)           /* .text sections (code) */
    *(.text*)          /* .text* sections (code) */
    *(.rodata)         /* .rodata sections (constants, strings, etc.) */
    *(.rodata*)        /* .rodata* sections (constants, strings, etc.) */
    *(.glue_7)         /* glue arm to thumb code */
    *(.glue_7t)        /* glue thumb to arm code */
  *(.eh_frame)

    KEEP (*(.init))
    KEEP (*(.fini))

    . = ALIGN(4);
    _etext = .;        /* define a global symbols at end of code */
    _exit = .;
  } &gt;FLASH

   .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) } &gt;FLASH
    .ARM : {
    __exidx_start = .;
      *(.ARM.exidx*)
      __exidx_end = .;
    } &gt;FLASH

  .preinit_array     :
  {
    PROVIDE_HIDDEN (__preinit_array_start = .);
    KEEP (*(.preinit_array*))
    PROVIDE_HIDDEN (__preinit_array_end = .);
  } &gt;FLASH
  .init_array :
  {
    PROVIDE_HIDDEN (__init_array_start = .);
    KEEP (*(SORT(.init_array.*)))
    KEEP (*(.init_array*))
    PROVIDE_HIDDEN (__init_array_end = .);
  } &gt;FLASH
  .fini_array :
  {
    PROVIDE_HIDDEN (__fini_array_start = .);
    KEEP (*(.fini_array*))
    KEEP (*(SORT(.fini_array.*)))
    PROVIDE_HIDDEN (__fini_array_end = .);
  } &gt;FLASH

  /* used by the startup to initialize data */
  _sidata = .;

  /* Initialized data sections goes into RAM, load LMA copy after code */
  .data : AT ( _sidata )
  {
    . = ALIGN(4);
    _sdata = .;        /* create a global symbol at data start */
    *(.data)           /* .data sections */
    *(.data*)          /* .data* sections */

    . = ALIGN(4);
    _edata = .;        /* define a global symbol at data end */
  } &gt;RAM

  /* Uninitialized data section */
  . = ALIGN(4);
  .bss :
  {
    /* This is used by the startup in order to initialize the .bss secion */
    _sbss = .;         /* define a global symbol at bss start */
    __bss_start__ = _sbss;
    *(.bss)
    *(.bss*)
    *(COMMON)

    . = ALIGN(4);
    _ebss = .;         /* define a global symbol at bss end */
    __bss_end__ = _ebss;
  } &gt;RAM

  /* User_heap_stack section, used to check that there is enough RAM left */
  ._user_heap_stack :
  {
    . = ALIGN(4);
    PROVIDE ( end = . );
    PROVIDE ( _end = . );
    . = . + _Min_Heap_Size;
    . = . + _Min_Stack_Size;
    . = ALIGN(4);
  } &gt;RAM

  /* MEMORY_bank1 section, code must be located here explicitly            */
  /* Example: extern int foo(void) __attribute__ ((section (".mb1text"))); */
  .memory_b1_text :
  {
    *(.mb1text)        /* .mb1text sections (code) */
    *(.mb1text*)       /* .mb1text* sections (code)  */
    *(.mb1rodata)      /* read-only data (constants) */
    *(.mb1rodata*)
  } &gt;MEMORY_B1

  /* Remove information from the standard libraries */
  /DISCARD/ :
  {
    libc.a ( * )
    libm.a ( * )
    libgcc.a ( * )
  }

  .ARM.attributes 0 : { *(.ARM.attributes) }
}</pre><p>Makefiles themselves are beyond the scope of this post (and beyond the scope of my brain, in a lot of ways), but taking a peek at the Makefile used in the STM32F4 Demonstration firmware from above, there are  a boatload of dependencies from outside the project.  These are all CMSIS drivers, or required startup code.  This is a big part of why ARM chips are more difficult to use than ARM or PIC chips.  Fortunately, most manufacturers release some boilerplate startup code for their chips.  As long as it&#8217;s included in the makefile, everything will work as it should.</p>
<p>And those are the basics of going from nothing, to compiling demonstration code.  Right now, I&#8217;m looking heavily at the ChibiOS platform to develop some projects.  This abstracts a lot of the hardware stuff, although it isn&#8217;t nearly as simple as Arduino for getting up and running.  Hopefully with the upcoming release of the Arduino Due, there will be some development in making a really easy-to-use ARM platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/tutorials/arm-cortex-mx-quickstart/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>How to fly across an ocean</title>
		<link>http://www.meatandnetworking.com/projects/how-to-fly-across-an-ocean/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-fly-across-an-ocean</link>
		<comments>http://www.meatandnetworking.com/projects/how-to-fly-across-an-ocean/#comments</comments>
		<pubDate>Sun, 06 May 2012 20:39:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Balloons]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[white star]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=274</guid>
		<description><![CDATA[This post is cross-posted from the White Star Balloon Blog Flying across the ocean is no small feat.  It takes the concerted efforts of dozens of people, working hard at lots of difficult problems, from modeling balloon volume and flight dynamics, to planning interactions with air traffic control.  The diagram above gives a little bit [...]]]></description>
				<content:encoded><![CDATA[<p>This post is cross-posted from the <a href="http://whitestarballoon.com/?p=820">White Star Balloon Blog</a></p>
<p style="text-align: center;"><a href="http://www.meatandnetworking.com/projects/how-to-fly-across-an-ocean/attachment/whitestarsystemoverview/" rel="attachment wp-att-275"><img class="aligncenter  wp-image-275" title="WhiteStarSystemOverview" src="http://www.meatandnetworking.com/wp-content/uploads/WhiteStarSystemOverview-1024x454.png" alt="" width="614" height="272" /></a></p>
<p>Flying across the ocean is no small feat.  It takes the concerted efforts of dozens of people, working hard at lots of difficult problems, from modeling balloon volume and flight dynamics, to planning interactions with air traffic control.  The diagram above gives a little bit of an idea of the effort involved in getting across the ocean.  Any single block represents tens to many hundreds of man-hours worth of effort.</p>
<p>Components in Purple represent things which will actually be flying across the ocean.  This hardware and software must perform flawlessly at all times.</p>
<p>Components with a red heptagon represent significant software efforts.</p>
<p>The red square shows the components which lie on amazon EC2, spread across three instances, with a total cost of $100 a month (during flight season) to maintain.</p>
<p>Pink commands are sent using <a href="http://www.pubnub.com/">PubNub</a>, a service without whose generosity our public page would not be possible.</p>
<p>All of these systems are in the critical path, and a failure of any single flight system will compromise science data.  Fortunately, we always have positive control of our craft, thanks to a dead-man cutdown, which operates entirely autonomously, and a 9602 modem which will respond with rough location coordinates even if all other flight systems have failed.  Our ground systems all have hot-backups, and can all be operated from anywhere on the Internet, so these systems are as redundant as they can be.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/how-to-fly-across-an-ocean/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>White Star Balloon Tracking Page</title>
		<link>http://www.meatandnetworking.com/projects/white-star-balloon-tracking-page/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=white-star-balloon-tracking-page</link>
		<comments>http://www.meatandnetworking.com/projects/white-star-balloon-tracking-page/#comments</comments>
		<pubDate>Thu, 03 May 2012 21:00:20 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Balloons]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[white star]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=259</guid>
		<description><![CDATA[Lately, most of my free time has been devoted to the White Star Balloon project.  One of the parts of the project I have become involved with is the tracking page.  This was a major portion of the project a year ago, when we still had lots of buzz and momentum going.  Unfortunately, it was [...]]]></description>
				<content:encoded><![CDATA[<p>Lately, most of my free time has been devoted to the <a href="http://www.whitestarballoon.com">White Star Balloon</a> project.  One of the parts of the project I have become involved with is the <a href="http://track.whitestarballoon.com">tracking page</a>.  This was a major portion of the project a year ago, when we still had lots of buzz and momentum going.  Unfortunately, it was a huge disaster, and we had to cobble something terrible together at the very last moment. Since then, a lot has changed. We&#8217;ve become more skilled, new technologies have matured, and new hosting solutions have become cheaper.</p>
<p>White Star&#8217;s tracking needs are somewhat unique among the amateur balloon community. Most balloons end up using sites like <a href="http://www.aprs.fi">aprs.fi</a> and <a href="http://www.spacenear.us">spacenear.us</a>.  These sites are great, and the guys working on them are better web programmers than I&#8217;ll ever be.  Unfortunately, they don&#8217;t meet our needs.  aprs.fi is designed to used with devices carrying APRS transmitters (which we cannot use over the ocean), and spacenear.us is designed to be used with a distributed network of receivers, which doesn&#8217;t fit our model very well.  We also wanted to plan for a contingency of getting a large number of visitors very suddenly, in case we hit CNN or Reddit.</p>
<p>This year&#8217;s tracking page is run entirely on the client side.  All telemetry processing is done by the client, and displayed on maps, gauges and graphs. This allows us to use static hosting for everything. I used the following resources to make this happen:</p>
<p><a href="http://www.meatandnetworking.com/projects/white-star-balloon-tracking-page/attachment/wsbpub1/" rel="attachment wp-att-261"><img class="alignright size-medium wp-image-261" title="wsbpub1" src="http://www.meatandnetworking.com/wp-content/uploads/wsbpub1-300x168.png" alt="" width="300" height="168" /></a></p>
<ul>
<li><a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a> - A super quick and easy CSS framework.  Looks good out of box, if a little cookie-cutter.  Don&#8217;t have the time or the design skill to go further, though.</li>
<li><a href="http://openlayers.org/">OpenLayers</a> - More fully-featured than anything from Google. Switched to this when we thought Google was going to price us out of GMaps. One downside: It&#8217;s huge!</li>
<li><a href="http://www.highcharts.com/">HighCharts</a> - Very pretty, easy to use charts.</li>
<li><a href="http://code.google.com/p/jsgauge/">jsgauge</a> &#8211; The best JavaScript gauge I could find.  There aren&#8217;t a lot out there, and most suck pretty hard.  This one isn&#8217;t great, but it gets the job done.</li>
<li><a href="http://jquery.com/">JQuery</a></li>
<li><a href="http://aws.amazon.com/s3/">Amazon S3</a> - Used to store all static files.</li>
<li><a href="http://www.pubnub.com/">PubNub</a> - Push data provider with javascript client.  Super easy to use, super nice company that really helped us out.</li>
<li><a href="http://shop.oreilly.com/product/9780596517748.do">Crockford&#8217;s &#8220;JavaScript: The Good Parts&#8221;</a> - An alarmingly thin, amazingly effective JavaScript book.</li>
</ul>
<p>Everything is up on <a href="https://github.com/whitestarballoon/Static-Public">GitHub</a>, and ready for inspection and shed painting. More about the specifics below.</p>
<p><span id="more-259"></span></p>
<p>Up the the tracking page, the telemetry system works something like this:  The balloon sends us an email, we decode the email and put the data in a private back-end SQL database.  Once this happens, a parsing program triggers, which converts the SQL data into a <a href="http://en.wikipedia.org/wiki/GPS_eXchange_Format">GPX</a> formatted track. This track has our sensor data added.  The data is uploaded to Amazon S3, and a PubNub message is sent out, informing the clients that new data is available.</p>
<p>At this point, the client downloads the new data, parses it, and displays it on the map, graphs and gauges.  Other commands include an &#8220;update predicted path&#8221; command.  This downloads a new path prediction, and displays it on the map.  The data held on Amazon S3 is not retained, since it&#8217;s just a duplicate of the stuff that&#8217;s already in our database. A file named &#8220;init.gpx&#8221; is also updated.  When clients load the initial page, they download this larger init file, and receive incremental updates thereto.</p>
<p>There are just a few major components to the client-side system.</p>
<ul>
<li><strong>index.html </strong>- Just a shell for gauges, and a few links.</li>
<li><strong>wsbdata.js</strong> - Contains initialization code and command processing.</li>
<li><strong>wsbparse.js</strong> - Parses data for graphs and gauges.</li>
<li><strong>wsbsensors.js</strong> - Turns sensor specifiers into rendered graphs and gauges.</li>
<li><strong>wsbmaps.js</strong> - Parses data destined for the maps, initializes map layers, and handles point-click callbacks.</li>
<li><strong>settings.json</strong> - Contains defaults for graphs and map settings.</li>
<li><strong>sensors.json</strong> - Maps XML tags to graph divs, adds human-readable metadata</li>
</ul>
<p>As an embedded guy, this was a really interesting learning experience.  White Star is an incredibly complex system, and I&#8217;ve had the good fortune to be involved at all levels.  There&#8217;s nothing like a big project to help you understand the &#8220;full stack.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/white-star-balloon-tracking-page/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Tiny Balloon Computer</title>
		<link>http://www.meatandnetworking.com/projects/a-tiny-balloon-computer/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-tiny-balloon-computer</link>
		<comments>http://www.meatandnetworking.com/projects/a-tiny-balloon-computer/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 22:03:33 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Balloons]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[white star]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=177</guid>
		<description><![CDATA[Another PCB design gets shipped off to China for manufacture! This is a tiny balloon computer.  Without battery or GPS, it weighs less than 40 grams.  It can transmit RTTY or CW at 25 mW on the ham 2M and 70cm bands, and will last up to 16 hours on a single AA. This board [...]]]></description>
				<content:encoded><![CDATA[<p>Another PCB design gets shipped off to China for manufacture!</p>
<p><a href="http://www.meatandnetworking.com/projects/a-tiny-balloon-computer/attachment/tbc/" rel="attachment wp-att-178"><img class="alignleft size-medium wp-image-178" title="Tiny Balloon PCB" src="http://www.meatandnetworking.com/wp-content/uploads/tbc-300x152.png" alt="" width="300" height="152" /></a>This is a tiny balloon computer.  Without battery or GPS, it weighs less than 40 grams.  It can transmit RTTY or CW at 25 mW on the ham 2M and 70cm bands, and will last up to 16 hours on a single AA.</p>
<p>This board will be Arduino compatible, and the primary goal will be to support <a href="http://whitestarballoon.com">White Star</a>&#8216;s superpressure balloon experiments.  A superpressure balloon maintains some pressurization above ambient in order to maintain altitude.  In order to figure out how to design the balloon envelopes, and to verify our math, we need to know what&#8217;s going on inside the balloon.  It&#8217;s difficult to pierce the balloon without generating leaks. The ideal solution is to place a second balloon computer inside.  Both will transmit pressure to the ground, and we&#8217;ll be able to compare pressure inside the balloon to ambient pressure for model verification.  The pressure sensor can sense a change as small as 4&#215;10-4 PSI, so this should work.</p>
<p>This is my first attempt at real RF design.  Fortunately, operating within the ham radio bands means I don&#8217;t have to worry too much about spurious transmissions or leaky harmonics.</p>
<p><span id="more-177"></span></p>
<p>The output filter is the most poorly designed section.  It&#8217;s surrounded by vias, made up of the linear arrangement of inductors and capacitors.  I wouldn&#8217;t be surprised if I ended up with RF coupling across the inductors, bypassing the filter entirely.  This design is *probably* good enough for 434MHz operation, but not 800MHz.</p>
<p>More information, and design files can be found here: <a href="projects.meatandnetworking.com/trac/meatandnetworking_tinyballoon">http://projects.meatandnetworking.com/trac/meatandnetworking_tinyballoon</a></p>
<p>&nbsp;</p>
<p>I expect this board to go through a redesign.  Schematic capture and PCB layout were done using KiCad, with which I have very little experience.  KiCad requires a different workflow from Eagle.  I&#8217;ll post a KiCad tutorial here later.</p>
<p>I ended up with a double-Pi filter on the output stage, and all the inductors are place linearly.  The RF might simply couple with the inductors, and bypass the filter entirely.  If that happens, I&#8217;m not too concerned.  Without any fancy RF analysis equipment, it&#8217;s a shot in the dark anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/a-tiny-balloon-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Makerbot Sumbot</title>
		<link>http://www.meatandnetworking.com/projects/makerbot-sumbot/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=makerbot-sumbot</link>
		<comments>http://www.meatandnetworking.com/projects/makerbot-sumbot/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 18:51:04 +0000</pubDate>
		<dc:creator>Brad</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[lvl1]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[sumobot]]></category>

		<guid isPermaLink="false">http://www.meatandnetworking.com/?p=82</guid>
		<description><![CDATA[<a href="http://www.lvl1.org">LVL1</a> has a small rivalry with a few of the regional hackerspaces.  Back in October 2010, when we were but a fledgling space, we hosted a Sumo Bot tournament.  <a href="http://www.hive13.org/">Hive13</a> and <a href="http://www.bloominglabs.org/index.php/Main_Page">Bloominglabs</a> came by, and we kicked their butts.  Hive13 held the rematch a few months ago, and I started work on my SumoBot.  Unfortunately, I didn't finish in time, but the effort itself is worthwhile, and my bot will live to see the next match.]]></description>
				<content:encoded><![CDATA[<p><img class="size-medium wp-image-90 alignright" style="border-style: initial; border-color: initial;" title="Sumo Bot with Circuit Boards" src="http://www.meatandnetworking.com/wp-content/uploads/2011-03-14-23.58.35-300x225.jpg" alt="" width="300" height="225" /></p>
<p><a href="http://www.lvl1.org">LVL1</a> has a small rivalry with a few of the regional hackerspaces.  Back in October 2010, when we were but a fledgling space, we hosted a Sumo Bot tournament.  <a href="http://www.hive13.org/">Hive13</a> and <a href="http://www.bloominglabs.org/index.php/Main_Page">Bloominglabs</a> came by, and we kicked their butts.  Hive13 held the rematch a few months ago, and I started work on my SumoBot.  Unfortunately, I didn&#8217;t finish in time, but the effort itself is worthwhile, and my bot will live to see the next match.</p>
<p>Sumobots are robots which seek to push each other out of a small ring.  The ring is black, with a white boundary circle.  Two robots enter, one robot leaves. Our competitions use the Mini-Sumo class of rules, allowing for a Sumobot which can fit inside a 10cm by 10cm rectangular tube, weighing under 500 grams.  I decided to print my SumoBot on our makerbot.</p>
<p><span id="more-82"></span></p>
<p><a href="http://thingiverse.com">Thingiverse</a> is a great website for finding models of parts to print.  Unfortunately, they aren&#8217;t always well-tailored for the machine you&#8217;ve got.  In this case, LVL1&#8242;s makerbot, <a href="http://wiki.lvl1.org/Veruca_Gloop">Veruca</a>, just couldn&#8217;t handle some of the parts from this model: <a href="http://www.thingiverse.com/thing:1548">SumoBot Chassis</a>.  The motor mount and the connector printed out after about a half dozen tries each (The Makerbot is not a fool-proof technology), but the scoop failed over and over again.</p>
<p>In the end, I just designed my own in Google Sketchup, and exported it to an STL file.  This one only took two attempts to print, although the leading edge is weaker than the design from Thingiverse.</p>
<p>I had some motors from <a href="www.solarbotics.com/">Solarbotics</a>, but I got the rest of my parts from <a href="http://www.pololu.com/">Pololu</a>.  The Baby Orangutan controller was a great choice, with a build in 2A H-Bridge, and AtMega328 microprocessor.  I also got their cheapest sonar distance sensor, and some line sensors.</p>
<p>The board was developed in house, and includes headers for motors, sensors, and a servo.  The plan is that the sonar will sit on top of a servo, and scan back and forth for enemies.  This will allow for fast response to laterally moving targets.</p>
<p>Unfortnately, I never got beyond assembling the PCB.  But some day, she will taste blood.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meatandnetworking.com/projects/makerbot-sumbot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
