<?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>MachineGrid &#187; Tutorials</title>
	<atom:link href="http://www.machinegrid.com/category/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.machinegrid.com</link>
	<description>robots at work</description>
	<lastBuildDate>Thu, 14 Apr 2011 15:42:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Creating an Open Source Toolchain for ARM Microcontrollers</title>
		<link>http://www.machinegrid.com/2010/07/creating-an-open-source-toolchain-for-arm-microcontrollers/</link>
		<comments>http://www.machinegrid.com/2010/07/creating-an-open-source-toolchain-for-arm-microcontrollers/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 21:17:31 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ARM-USB-OCD]]></category>
		<category><![CDATA[ARM11]]></category>
		<category><![CDATA[ARM7]]></category>
		<category><![CDATA[ARM9]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[CORTEX]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[gdb server]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[GNUARM]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[JTAG]]></category>
		<category><![CDATA[JTAGKey]]></category>
		<category><![CDATA[M3]]></category>
		<category><![CDATA[OpenOCD]]></category>
		<category><![CDATA[SAM-ICE]]></category>
		<category><![CDATA[Segger]]></category>
		<category><![CDATA[toolchain]]></category>
		<category><![CDATA[Wiggler]]></category>

		<guid isPermaLink="false">http://www.machinegrid.com/?p=1233</guid>
		<description><![CDATA[<a href="http://www.machinegrid.com/2010/07/creating-an-open-source-toolchain-for-arm-microcontrollers/"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2010/07/opnesouce_ARM_debug_Eclipse_openOCD-300x109.jpg" alt="" title="opnesouce_ARM_debug_Eclipse_openOCD" width="300" height="109" class="alignright size-medium wp-image-1239" /></a>In the process of jumping onto the ARM bandwagon, I found a neat tutorial by [J]im Lynch, who has written a highly comprehensive tutorial on how to combine various opensource tools to create an ARM toolchain. He also details what goes on behind each tool right from the hardware level to the software layer. This is a highly recommended read for those interested in using the open source tools for their project including Eclipse, OpenOCD and Yagarto tools. He also gives detailed examples with screen shots on how to setup the following JTAGs - Wiggler, ARM-USB-OCD, JTAGKey, SAM-ICE.
No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2010/07/opnesouce_ARM_debug_Eclipse_openOCD-300x109.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2010/07/opnesouce_ARM_debug_Eclipse_openOCD-300x109.jpg" alt="" title="opnesouce_ARM_debug_Eclipse_openOCD" width="300" height="109" class="alignright size-medium wp-image-1239" /></a>In the process of jumping onto the ARM bandwagon, I found a neat tutorial by [J]im Lynch, who has written a highly comprehensive tutorial on how to combine various opensource tools to create an ARM toolchain. He also details what goes on behind each tool right from the hardware level to the software layer. This is a highly recommended read for those interested in using the open source tools for their project including GNU Compiler, Eclipse, OpenOCD and Yagarto tools. He also gives detailed examples with screen shots on how to setup the following JTAGs &#8211; Wiggler, ARM-USB-OCD, JTAGKey, SAM-ICE.</p>
<p>I&#8217;ve hosted it <a target="_blank" href="http://www.machinegrid.com/machinepress/wp-content/uploads/media/code/arm_toolchain_tutorial/Using_Open_Source_Tools_for_AT91SAM7S_Cross_Development_revision_C.pdf">here </a>for mirroring purposes.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2010/07/creating-an-open-source-toolchain-for-arm-microcontrollers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Digital Picture Frame Hacking Roundup</title>
		<link>http://www.machinegrid.com/2009/03/digital-picture-frame-hacking-roundup/</link>
		<comments>http://www.machinegrid.com/2009/03/digital-picture-frame-hacking-roundup/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 07:29:57 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Hackable Toys]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[7FF1AW]]></category>
		<category><![CDATA[7FFICMI]]></category>
		<category><![CDATA[ARM920T]]></category>
		<category><![CDATA[CEIVA]]></category>
		<category><![CDATA[digital frames]]></category>
		<category><![CDATA[DIGITAL SPECTRUM]]></category>
		<category><![CDATA[dissect]]></category>
		<category><![CDATA[EP7212]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[JUICEBOX]]></category>
		<category><![CDATA[KeyChain Displays]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[MemoryFrame]]></category>
		<category><![CDATA[SPF-83v]]></category>

		<guid isPermaLink="false">http://www.machinegrid.com/?p=787</guid>
		<description><![CDATA[With all the nice hacks on digital picture frames scattered around the web, I decided to put them all in one place for reference. Due thanks to all the hackers out there who put their work out for everyone to see. It&#8217;s the joy in reverse engineering. For some of the hacks I&#8217;ve included a [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_open_photo_cube.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_open_photo_cube-150x150.jpg" alt="hack_open_photo_cube" title="hack_open_photo_cube" width="150" height="150" class="alignright size-thumbnail wp-image-653" /></a>With all the nice hacks on digital picture frames scattered around the web, I decided to put them all in one place for reference. Due thanks to all the hackers out there who put their work out for everyone to see. It&#8217;s the joy in reverse engineering. For some of the hacks I&#8217;ve included a compressed file with the code and webpage archived in case the original site goes down. If you are the author an would not like it, please let me know.<br />
<code><br /></code><strong>Please read </strong>: If you would like to be notified of new frames being hacked, leave a comment below and check the &#8220;subscribe to comments&#8221; box.<br />
<code><br /></code><br />
<strong>PHILIPS Picture Frames</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/philips_7ff1am_7fficmi_frame_hack.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/philips_7ff1am_7fficmi_frame_hack-150x150.jpg" alt="philips_7ff1am_7fficmi_frame_hack" title="philips_7ff1am_7fficmi_frame_hack" width="150" height="150" class="alignright size-thumbnail wp-image-825" /></a>[v]incent was able to display his images directly to the frame by writing a little script which prepends a binary header to the JPEG file. There is a detailed writeup on how he <a target="_blank"  href="http://vincent.stehle.free.fr/frame/reverse.html">reverse engineered</a> the picture frame format. </p>
<p>Detailed info:</p>
<ul>
<li>Models: 7FF1AW, 7FFICMI</li>
<li><a target="_blank" href="http://vincent.stehle.free.fr/frame/">Webpage</a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/media/code/philips_frame_hack/philipsframe.zip">[Archive]</a></li>
<li><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/media/code/philips_frame_hack/jpg2frame.sh">jpg2frame Script</a></li>
</ul>
<p><code><br /></code><br />
<strong>SAMSUNG SPF-83v Frames</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/samsung_spf-83v_digital_frame_hack.jpg"><img class="alignright size-thumbnail wp-image-826" title="samsung_spf-83v_digital_frame_hack" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/samsung_spf-83v_digital_frame_hack-150x150.jpg" alt="samsung_spf-83v_digital_frame_hack" width="150" height="150" /></a>The frame parses feeds and regular html pages for images and displays them. You can use the frame&#8217;s i-net-functions to serve it data.<br />
[t]obe from <a target="_blank" href="http://www.infolexikon.de/blog/samsung-spf-83v-info-system/">Infolexikon </a> uses PHP to gather data and writes it all to an image using gd. These images are then pushed to the frame at regular intervals.</p>
<p>Detailed info:</p>
<ul>
<li><a target="_blank" href="http://www.infolexikon.de/blog/samsung-spf-83v-info-system/">Webpage</a></li>
<li>Script-<a target="_blank" href="http://static.evigo.net/infolexikon/.media/files/2009/09/10/wgis.zip">[Original]</a><a target="_blank" href="http://machinegrid.com/machinepress/wp-content/uploads/media/code/Samsung_SPF_83v_frame_hack/wgis.zip">[Archive]</a> Thanks for the update [d]p</li>
<li>Buy &#8211; <a href="http://www.amazon.com/gp/product/B002B55HRS?ie=UTF8&#038;tag=machinegridco-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B002B55HRS"> Amazon &#8211; Samsung SPF-87H 8-Inch Touch of Color Digital Photo Frame</a><img src="http://www.assoc-amazon.com/e/ir?t=machinegridco-20&#038;l=as2&#038;o=1&#038;a=B002B55HRS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</ul>
<p><code><br /></code><br />
<strong>CEIVA Picture Frames</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/ceiva_picture_frame_hack.gif"><img class="alignleft size-thumbnail wp-image-821" title="ceiva_picture_frame_hack" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/ceiva_picture_frame_hack-150x150.gif" alt="ceiva_picture_frame_hack" width="150" height="150" /></a>The CEIVA runs on a Cirrus Logic Maverick(EP7212) controller. It&#8217;s based on a ARM720T core with 2Mb Flash and 4Mb DRAM.<br />
Initial hack done by [c]olin. The frame runs on Linux. Necessary patches and images are provided. [b]rad keeps a worklog <a target="_blank" href="http://www.heeltoe.com/software/ceiva/index.html">here</a><br />
New code can be loaded via a serial port on the PCB through a simple level converter.<br />
<code><br /></code><br />
<code><br /></code><br />
Detailed info:</p>
<ul>
<li>Models : Not Specified</li>
<li><a target="_blank" href="http://www.heeltoe.com/software/ceiva/Ceiva-mini-HOWTO.html">Webpage</a></li>
<li><a href="http://machinegrid.com/machinepress/wp-content/uploads/media/code/ceiva_frame_hack/Ceiva.zip">Webpage and Code [Archive]</a></li>
</ul>
<p><code><br /></code><br />
<strong>KeyChain Displays</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/tom_tec_digital_photo_fram_hack2.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/tom_tec_digital_photo_fram_hack2-150x150.jpg" alt="tom_tec_digital_photo_fram_hack2" title="tom_tec_digital_photo_fram_hack2" width="150" height="150" class="alignright size-thumbnail wp-image-936" /></a>[j]eroen from <a href="http://spritesmods.com/?art=about">Spritesmods</a> maintains a <a href="http://picframe.spritesserver.nl/wiki/index.php/Devices">wiki</a> of compatible keychain displays with his firmware hack. He and a couple of guys regularly update it with new displays. Most of the displays use the SITRONIX ST2205U controller in them. I tried my hand in doing the same with the <a target="_blank" href="http://www.machinegrid.com/2009/02/hacking-the-hannah-montana-photocube/">Hannah Montana Vu-Me</a> photo frame. I got close, but bricked it in the end.<br />
Their code is maintained at <a target="_blank" href="http://code.google.com/p/photokeychain/">Google code</a></p>
<p>Detailed info:</p>
<ul>
<li>Models:</li>
<ul>
<li>TomTec</li>
<li>Coby DP-151SX/DPKEY</li>
<li>HK unbranded</li>
<li>Keypix</li>
<li>Dealxtreme SKU5218</li>
<li>Innovage</li>
<li>Dig-291</li>
<li>Innovalley</li>
</ul>
<li><a target="_blank" href="http://spritesmods.com/?art=picframe">Webpage</a></li>
<li><a target="_blank" href="http://picframe.spritesserver.nl/wiki/index.php/Main_Page">Wiki</a></li>
<li><a target="_blank" href="http://code.google.com/p/photokeychain/">Google code</a></li>
</ul>
<p><code><br /></code><br />
<strong>DIGITAL SPECTRUM MemoryFrame</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/digital_spectrum_memoryframe_hack_arm920.jpg"><img class="alignleft size-thumbnail wp-image-823" title="digital_spectrum_memoryframe_hack_arm920" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/digital_spectrum_memoryframe_hack_arm920-150x150.jpg" alt="digital_spectrum_memoryframe_hack_arm920" width="150" height="150" /></a>The MemoryFrames  run on WindowsCE5. [r]etoor from <a target="_blank" href="http://mozy.org/">mozy.org </a>managed to crash the frame using a keyboard, mouse and following a sequence. The frame runs on an ARM920T &#8211; a 32bit Arm9 processor. The following is an excerpt from his &#8220;YouTube&#8217;s more info&#8230;&#8221; link:<br />
&#8230;&#8221;Basically you need both the mouse and keyboard plugged in, scroll down past the &#8220;Settings&#8221; option, scroll back up, and click the word &#8220;Settings&#8221; with your mouse. There is no enter key on the keyboard so you have to click the mouse&#8230;.&#8221;<br />
<code><br /></code><br />
Detailed info:</p>
<ul>
<li><a target="_blank" href="http://www.youtube.com/watch?v=5watadHqGAk">YouTube</a></li>
<li>Buy &#8211; <a href="http://www.amazon.com/gp/product/B000H743WC?ie=UTF8&#038;tag=machinegridco-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B000H743WC">Amazon</a><img src="http://www.assoc-amazon.com/e/ir?t=machinegridco-20&#038;l=as2&#038;o=1&#038;a=B000H743WC" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</ul>
<p><code><br /></code><br />
<strong>JUICEBOX Digital Frames</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/juicebox_digital_frame_hack.jpg"><img class="alignleft size-thumbnail wp-image-824" title="juicebox_digital_frame_hack" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/03/juicebox_digital_frame_hack-150x150.jpg" alt="juicebox_digital_frame_hack" width="150" height="150" /></a>[j]oevennix managed to rip out the LCD from a Juicebox and enclose it in his own custom frame. He didn&#8217;t have the mp3 kit at that time( although you can get it online), so he soldered a SD card slot into the cartridge connector. His webpage is down. The following is an archive of his work.</p>
<p>Detailed info:</p>
<ul>
<li><a href="http://machinegrid.com/machinepress/wp-content/uploads/media/code/juicebox_frame_hack/juicebox.zip">Archive</a></li>
<li><atarget="_blank" href="http://machinegrid.com/machinepress/wp-content/uploads/media/code/juicebox_frame_hack/juicebox-digital-picture-frame-how-to.pdf"">Pdf</a></li>
</ul>
<p><code><br /></code><br />
If you find this interesting or have some new ideas or links on frames, please post in the comments. Don&#8217;t forget to <a href="http://feeds2.feedburner.com/machinegrid">Subscribe </a>[<a href="http://feedburner.google.com/fb/a/mailverify?uri=machinegrid&#038;loc=en_US">email</a>]for more followups and hacks. To get updates on this page, subscribe to the comments below.</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-1367209070807564";
/* 468x60, created 2/14/09 */
google_ad_slot = "2082117848";
google_ad_width = 468;
google_ad_height = 60;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2009/03/digital-picture-frame-hacking-roundup/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Taking Apart the ATV-360 EyePiece [Head Mounted Display]</title>
		<link>http://www.machinegrid.com/2009/02/taking-apart-the-atv-360-eyepiece-head-mounted-display/</link>
		<comments>http://www.machinegrid.com/2009/02/taking-apart-the-atv-360-eyepiece-head-mounted-display/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 20:10:59 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Hackable Toys]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ATV-360]]></category>
		<category><![CDATA[CyberDisplay]]></category>
		<category><![CDATA[HUD]]></category>
		<category><![CDATA[KCD-A300-QB]]></category>
		<category><![CDATA[Kopin]]></category>
		<category><![CDATA[Kopin 300MLV]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[spy gear]]></category>
		<category><![CDATA[taking apart]]></category>
		<category><![CDATA[Wearables]]></category>
		<category><![CDATA[wildPlanet]]></category>

		<guid isPermaLink="false">http://www.machinegrid.com/?p=676</guid>
		<description><![CDATA[As promised, after taking apart the ATV-360 Spy Video here, this is a follow-up on taking apart the Head Mounted Display[HUD]. The HUD has some very interesting DIY parts and ideas which you can try out. Maybe a cool wearable. The details on all the parts used are at the end of the post and [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_removed.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_removed-150x150.jpg" alt="atv_360_wild_planet_hud_pcb_removed" title="atv_360_wild_planet_hud_pcb_removed" width="150" height="150" class="alignright size-thumbnail wp-image-701" /></a>As promised, after taking apart the ATV-360 Spy Video <a href="http://www.machinegrid.com/2009/02/taking-apart-the-spy-video-atv-360/">here</a>, this is a follow-up on taking apart the Head Mounted Display[HUD]. The HUD has some very interesting DIY parts and ideas which you can try out. Maybe a cool wearable. The details on all the parts used are at the end of the post and comments are open for discussion.</p>
<p>The HUD consists of a frame which sits in the same way as you would wear a pair of spectacles. On the right side, a case is attached which holds all the necessary electronics and optics. The HUD receives video signals from the remote which houses the camera receiver. If you are interested, you can buy the full vehicle kit at <a target="_blank" href="http://www.amazon.com/gp/product/B0016A7PGU?ie=UTF8&#038;tag=machinegridco-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B0016A7PGU">Amazon</a>.</p>
<p>1. First for a few views. Click on the views for a larger image.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/09/atv_360_wild_planet_hud_full.jpg"><img class="alignnone size-thumbnail wp-image-680" title="atv_360_wild_planet_hud_full_view" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/09/atv_360_wild_planet_hud_full-150x150.jpg" alt="atv_360_wild_planet_hud_full_view" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/09/atv_360_wild_planet_hud_eye_piece.jpg"><img class="alignnone size-thumbnail wp-image-678" title="atv_360_wild_planet_hud_eye_piece" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_eye_piece-150x150.jpg" alt="atv_360_wild_planet_hud_eye_piece" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_eye_piece_2.jpg"><img class="alignnone size-thumbnail wp-image-679" title="atv_360_wild_planet_hud_eye_piece_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_eye_piece_2-150x150.jpg" alt="atv_360_wild_planet_hud_eye_piece_2" width="150" height="150" /></a></p>
<p>2. So that you know how it looks, I setup two scenes. One with a PostIt note saying &#8220;HI&#8221; and the other a Rubik&#8217;s cube. The LCD is monocohrome however, so the image you will see is not color.</p>
<ul>
<li>The one with the PostIt note<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_hi_post_it_setup.jpg"><img class="alignnone size-thumbnail wp-image-681" title="atv_360_wild_planet_hud_hi_post_it_setup" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_hi_post_it_setup-150x150.jpg" alt="atv_360_wild_planet_hud_hi_post_it_setup" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_post_it_hi.jpg"><img class="alignnone size-thumbnail wp-image-703" title="atv_360_wild_planet_hud_post_it_hi" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_post_it_hi-150x150.jpg" alt="atv_360_wild_planet_hud_post_it_hi" width="150" height="150" /></a></li>
<li>The one with the Rubiks cube<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_rubiks_cube.jpg"><img class="alignnone size-thumbnail wp-image-709" title="atv_360_wild_planet_hud_rubiks_cube" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_rubiks_cube-150x150.jpg" alt="atv_360_wild_planet_hud_rubiks_cube" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_rubiks_cube_lens_view.jpg"><img class="alignnone size-thumbnail wp-image-710" title="atv_360_wild_planet_hud_rubiks_cube_lens_view" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_rubiks_cube_lens_view-150x150.jpg" alt="atv_360_wild_planet_hud_rubiks_cube_lens_view" width="150" height="150" /></a></li>
</ul>
<p>3. Opening is not that easy as there are no screws to take apart the top cover which says &#8220;Spy Gear&#8221;. The cover is glued to the case using glue. Taking a clue from <a rel="external" href="http://jakeofalltrades.wordpress.com/2007/09/30/25-head-mounted-display/">Jake</a> to avoid inserting the screwdriver on the side the &#8220;cable does not come out&#8221;, I managed to take it apart. Pry the side where the black cable comes out. The other side has the LCD connector, you might damage it if ou pry that side. It&#8217;s tough at first, but once you get one side, it gets easier.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pry_open.jpg"><img class="alignnone size-thumbnail wp-image-704" title="atv_360_wild_planet_hud_pry_open" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pry_open-150x150.jpg" alt="atv_360_wild_planet_hud_pry_open" width="150" height="150" /></a></p>
<p>4. Once the cover is removed, the PCB becomes visible. The main controller chip is a Kopin <a rel="external" href="http://www.kopin.com/data/File/A300Spec.pdf">KCD-A300-QB</a>. All the other parts are support components for the chip. There is a small potentiometer in one corner which allows you to change camera gain. You can see the display change in brightness when you change it. Try adjusting it, there is no harm in doing so as it can easily be bough back to it&#8217;s previous value by looking at the screen.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_1.jpg"><img class="alignnone size-thumbnail wp-image-698" title="atv_360_wild_planet_hud_pcb_1" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_1-150x150.jpg" alt="atv_360_wild_planet_hud_pcb_1" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_2.jpg"><img class="alignnone size-thumbnail wp-image-699" title="atv_360_wild_planet_hud_pcb_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_2-150x150.jpg" alt="atv_360_wild_planet_hud_pcb_2" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_3.jpg"><img class="alignnone size-thumbnail wp-image-700" title="atv_360_wild_planet_hud_pcb_3" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_3-150x150.jpg" alt="atv_360_wild_planet_hud_pcb_3" width="150" height="150" /></a></p>
<p>5. Remove the two screws keeping the PCB in place. Also it&#8217;s time to remove the LCD connector. To remove it, pull the black tab out a bit as in the pic.<br />
 The connector will slip out easily with a slight tug. The connector is pretty rugged. I have already plugged it in/out a few times.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_connector.jpg"><img class="alignnone size-thumbnail wp-image-682" title="atv_360_wild_planet_hud_lcd_connector" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_connector-150x150.jpg" alt="atv_360_wild_planet_hud_lcd_connector" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_removed.jpg"><img class="alignnone size-thumbnail wp-image-701" title="atv_360_wild_planet_hud_pcb_removed" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pcb_removed-150x150.jpg" alt="atv_360_wild_planet_hud_pcb_removed" width="150" height="150" /></a></p>
<p>6.The LCD connector is glued on to the casing. Remember to break it free before going ahead.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_remove_lcd_glue.jpg"><img class="alignnone size-thumbnail wp-image-706" title="atv_360_wild_planet_hud_remove_lcd_glue" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_remove_lcd_glue-150x150.jpg" alt="atv_360_wild_planet_hud_remove_lcd_glue" width="150" height="150" /></a></p>
<p>6: Four more screws need to be taken out to remove the eyepiece. Use a pair of pliers to do this.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pliers_remove_case.jpg"><img class="alignnone size-thumbnail wp-image-702" title="atv_360_wild_planet_hud_pliers_remove_case" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_pliers_remove_case-150x150.jpg" alt="atv_360_wild_planet_hud_pliers_remove_case" width="150" height="150" /></a></p>
<p>7.Before I forget, the PCB has a high output smd LED behind it as below:<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_led_2.jpg"><img class="alignnone size-thumbnail wp-image-687" title="atv_360_wild_planet_hud_led_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_led_2-150x150.jpg" alt="atv_360_wild_planet_hud_led_2" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_led.jpg"><img class="alignnone size-thumbnail wp-image-686" title="atv_360_wild_planet_hud_led" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_led-150x150.jpg" alt="atv_360_wild_planet_hud_led" width="150" height="150" /></a></p>
<p>8. Prying out gives you the lens casing. It&#8217;s pretty well made, with the LCD nicely sitting in it&#8217;s place. It was designed so that the lens was at a fixed distance from the LCD.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_1.jpg"><img class="alignnone size-thumbnail wp-image-689" title="atv_360_wild_planet_hud_lens_case_1" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_1-150x150.jpg" alt="atv_360_wild_planet_hud_lens_case_1" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_2.jpg"><img class="alignnone size-thumbnail wp-image-690" title="atv_360_wild_planet_hud_lens_case_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_2-150x150.jpg" alt="atv_360_wild_planet_hud_lens_case_2" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_3.jpg"><img class="alignnone size-thumbnail wp-image-691" title="atv_360_wild_planet_hud_lens_case_3" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_3-150x150.jpg" alt="atv_360_wild_planet_hud_lens_case_3" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_4.jpg"><img class="alignnone size-thumbnail wp-image-692" title="atv_360_wild_planet_hud_lens_case_4" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_case_4-150x150.jpg" alt="atv_360_wild_planet_hud_lens_case_4" width="150" height="150" /></a></p>
<p>9.Going further, pry the top half with a flat head screwdriver. There are four tiny rods which keep it inline. This part should come out easily.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_remove_lens_cover_1.jpg"><img class="alignnone size-thumbnail wp-image-708" title="atv_360_wild_planet_hud_remove_lens_cover_1" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_remove_lens_cover_1-150x150.jpg" alt="atv_360_wild_planet_hud_remove_lens_cover_1" width="150" height="150" /></a></p>
<p>9.Now for the LCD. The LCD is in a tiny casing which sits in a grooved box. There is a slight amount of glue on one end as in the image. With a flat head screwdriver, as shown, just give a tiny nudge and it should come free.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens.jpg"><img class="alignnone size-thumbnail wp-image-688" title="atv_360_wild_planet_hud_lens" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens-150x150.jpg" alt="atv_360_wild_planet_hud_lens" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_remove_lens_cover.jpg"><img class="alignnone size-thumbnail wp-image-707" title="atv_360_wild_planet_hud_remove_lens_cover" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_remove_lens_cover-150x150.jpg" alt="atv_360_wild_planet_hud_remove_lens_cover" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_screen_cover.jpg"><img class="alignnone size-thumbnail wp-image-685" title="atv_360_wild_planet_hud_lcd_screen_cover" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_screen_cover-150x150.jpg" alt="atv_360_wild_planet_hud_lcd_screen_cover" width="150" height="150" /></a></p>
<p>10. The LCD in all it&#8217;s glory!<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_screen.jpg"><img class="alignnone size-thumbnail wp-image-683" title="atv_360_wild_planet_hud_lcd_screen" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_screen-150x150.jpg" alt="atv_360_wild_planet_hud_lcd_screen" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_screen_2.jpg"><img class="alignnone size-thumbnail wp-image-684" title="atv_360_wild_planet_hud_lcd_screen_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lcd_screen_2-150x150.jpg" alt="atv_360_wild_planet_hud_lcd_screen_2" width="150" height="150" /></a><br />
 <script type="text/javascript"><!--
google_ad_client = "pub-1367209070807564";
/* 336x280, created 2/14/09 */
google_ad_slot = "6299204715";
google_ad_width = 336;
google_ad_height = 280;
// --></script><br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
<p>11. The following views show the three pieces of the lens casing. Note that the part at the extreme right of each image has a diffused screen to spread light from the SMD LED.<br />
 <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_parts.jpg"><img class="alignnone size-thumbnail wp-image-695" title="atv_360_wild_planet_hud_lens_parts" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_parts-150x150.jpg" alt="atv_360_wild_planet_hud_lens_parts" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_parts_2.jpg"><img class="alignnone size-thumbnail wp-image-696" title="atv_360_wild_planet_hud_lens_parts_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_parts_2-150x150.jpg" alt="atv_360_wild_planet_hud_lens_parts_2" width="150" height="150" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_parts_3.jpg"><img class="alignnone size-thumbnail wp-image-697" title="atv_360_wild_planet_hud_lens_parts_3" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/atv_360_wild_planet_hud_lens_parts_3-150x150.jpg" alt="atv_360_wild_planet_hud_lens_parts_3" width="150" height="150" /></a></p>
<p>12. This was as far as I could go. The eyepiece is glued together. Trying to take it apart would mean risk in breaking the lens.</p>
<p><strong>Parts and Notes:</strong><br />
 Main controller chip :: Kopin KCD-A300-QB<br />
 Documents  ::  <a rel="external" href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/kopin_kcd-a300-qb_dsiplay_driver.pdf">kopin_kcd-a300-qb_dsiplay_driver</a><br />
 Notes :: This is the driver chip for the 300M LV monochrome display. It is designed to accept a standard monochrome video signal (525 or 625 lines), and convert it for the display.  Unfortunately its a monochrome driver and not a color one.</p>
<p>LCD Display :: Kopin 300MLV CyberDisplay<br />
 Documents   :: <a rel="external" href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/kopin_cyberdisplay_300m_lv_feature_sheet.pdf">kopin_cyberdisplay_300m_lv_feature_sheet</a><br />
 Notes :: This is the LCD Display with the connector. The feature sheet shows a frameless one, but I&#8217;m unable to find the document with the framed one.</p>
<p>If you find this interesting or have some new ideas or links, please post it in the comments. Thanks for reading and don&#8217;t forget to <a href="http://feeds2.feedburner.com/machinegrid">Subscribe </a>[<a href="http://feedburner.google.com/fb/a/mailverify?uri=machinegrid&#038;loc=en_US">email</a>] for more followups and hacks.</p>
<p>if you are interested in purchasing one, Amazon sells a full vehicle kit:</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2009/02/taking-apart-the-atv-360-eyepiece-head-mounted-display/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Hacking the Hannah Montana Photocube &#8211; Almost!</title>
		<link>http://www.machinegrid.com/2009/02/hacking-the-hannah-montana-photocube/</link>
		<comments>http://www.machinegrid.com/2009/02/hacking-the-hannah-montana-photocube/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 14:11:52 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Hackable Toys]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[A29L800]]></category>
		<category><![CDATA[digital frames]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[KeyChain Displays]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[ST2205U]]></category>

		<guid isPermaLink="false">http://www.machinegrid.com/?p=628</guid>
		<description><![CDATA[Things with LCDs are very interesting. I found a Hannah Montana Digital Photocube on sale and decided to look what&#8217;s inside it. Good for a day of hacking :) First a description: Storage capacity: 8 M bit (Up to 70 photos) Resolution: 128&#215;128 dpi Display: 1.5-inch color LCD Supported File Format: JPG (JPEG),BMP, GIF, PNG, [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hannah_montana_photocube.jpg"><img class="size-medium wp-image-629 alignright" title="hannah_montana_photocube" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hannah_montana_photocube-300x225.jpg" alt="hannah_montana_photocube" width="150" height="112" /></a>Things with LCDs are very interesting. I found a Hannah Montana Digital Photocube on sale and decided to look what&#8217;s inside it. Good for a day of hacking :)</p>
<p>First a description:</p>
<ul>
<li>Storage capacity: 8 M bit (Up to 70 photos) Resolution: 128&#215;128 dpi</li>
<li>Display: 1.5-inch color LCD</li>
<li>Supported File Format: JPG (JPEG),BMP, GIF, PNG, &amp; TIF</li>
<li>Power: 2 xAAA batteries (not included)</li>
<li>USB Ports: Mini-USB 1.1 interface</li>
</ul>
<p>Searching around the net produced a lot of work done by <a rel="external" href="http://spritesmods.com/?art=picframe">Sprite</a>. He and a couple of guys maintain a <a rel="external" href="http://picframe.spritesserver.nl/wiki/index.php/Main_Page">wiki</a> containg information about hacked lcd keychains. Most of the keychains that have been hacked contain a ST2205U Microcontroller. With this information I proceeded ripping apart my photocube. This was what was inside:</p>
<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_a29l800_flash_chip.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_a29l800_flash_chip-150x150.jpg" alt="hack_photo_cube_a29l800_flash_chip" title="hack_photo_cube_a29l800_flash_chip" width="150" height="150" class="alignnone size-thumbnail wp-image-661" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_pcb_2.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_pcb_2-150x150.jpg" alt="hack_photo_cube_pcb_2" title="hack_photo_cube_pcb_2" width="150" height="150" class="alignnone size-thumbnail wp-image-662" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_pcb.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_pcb-150x150.jpg" alt="hack_photo_cube_pcb" title="hack_photo_cube_pcb" width="150" height="150" class="alignnone size-thumbnail wp-image-660" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_frame_lcd.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_frame_lcd-150x150.jpg" alt="hack_photo_frame_lcd" title="hack_photo_frame_lcd" width="150" height="150" class="alignnone size-thumbnail wp-image-663" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_open_photo_cube.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_open_photo_cube-150x150.jpg" alt="hack_open_photo_cube" title="hack_open_photo_cube" width="150" height="150" class="alignnone size-thumbnail wp-image-653" /></a></p>
<p>A 1Mb A29L800( <a rel="external" href="http://www.amictechnology.com/pdf/A29L800.pdf">datasheet</a> ) flash chip and a micrcontroller hidden behind a big black blob along with the LCD, buttons, USB port and an on-off switch. With some reading on Sprite&#8217;s blog and modifyng his script a little, I was able to verify that the microcontroller was indeed a ST2205U. If you browse through main.c, a function is_photoframe checks if the controller is a ST2205U. So I inserted a   printf(&#8220;Response : %s\n&#8221;,buff) to verify if the chip gave back the correct string, which it did.</p>
<p><code>/*<br />
Checks if the device is a photo frame by reading the first 512 bytes and<br />
comparing against the known string that's there<br />
*/<br />
int is_photoframe(int f) {<br />
    int y,res;<br />
    char id[]="SITRONIX CORP.";<br />
    char *buff;<br />
    buff=malloc_aligned(0x200);<br />
    lseek(f,0x0,SEEK_SET);<br />
    y=read(f,buff,0x200);<br />
    buff[15]=0;<br />
    printf("Response : %s\n",buff);<br />
//    fprintf(stderr,"ID=%s\n",buff);<br />
    res=strcmp(buff,id)==0?1:0;<br />
    free_aligned(buff,0x200);<br />
    return res;<br />
}</code></p>
<p>I&#8217;ll try documenting my steps going further. It&#8217;s in Linux( RedHat ) since I work on it, and you could do the same using a linux live cd.</p>
<p>1. Unpack Sprite&#8217;s hack from <a rel="external" href="http://spritesmods.com/?art=picframe&amp;page=3">here</a>. You will need to install libgd if you don&#8217;t have it. As root install gd-devel. Please read the README file in the unpacked directory. It&#8217;s written for a reason.</p>
<p>   <code>yum install gd-devel </code></p>
<p>2. Then as a user type &#8220;make&#8221; in the unpacked directory. This will compile the hack to give you the &#8220;phack&#8221; binary.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/make_hackfw.png"><img class="alignnone size-medium wp-image-631" title="make_hackfw" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/make_hackfw-300x86.png" alt="make_hackfw" width="300" height="86" /></a></p>
<p>3. Now connect the photocube and turn it on. You will see &#8220;USB Connect&#8221; displayed on the screen. Open a terminal on your linux machine and type</p>
<p>   <code>dmesg | tail</code></p>
<p>This will give you any hardware information that occurred last. You will see the following:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/dmesg_hannah_montana_photocube.png"><img class="alignnone size-medium wp-image-632" title="dmesg_hannah_montana_photocube" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/dmesg_hannah_montana_photocube-300x150.png" alt="dmesg_hannah_montana_photocube" width="300" height="150" /></a></p>
<p>If you see something like:</p>
<p>  <code>4096 512-byte hdwr sectors (2 MB)</code></p>
<p>then your close. Also note where your cube is mounted so you can access it. If you look at the pic above it says &#8220;Attached scsi removable disk sdg&#8221;, which means that the cube is mounted at /dev/sdg</p>
<p>4. Now to hack the firmware.<br />
<strong>WARNING : Anything you do after this is at your own risk.</strong></p>
<p>Type the following as root in your terminal, using the mount point which you got from step 3.</p>
<p>   <code>./hackfw.sh /dev/sdg</code></p>
<p>You will see the following as checks are made and eventually an error:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_st2205tool_error.png"><img class="alignnone size-medium wp-image-633" title="hack_st2205tool_error" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_st2205tool_error-300x150.png" alt="hack_st2205tool_error" width="300" height="150" /></a></p>
<p>Sprite&#8217;s script makes a backup of the firmware and an image of the memory. It however says that &#8220;The hack won&#8217;t work for my Firmware.&#8221; When I looked into the script, it looks if my cube&#8217;s firmware is same as Sprite&#8217;s when he hacked his keychain, which is an entirely different product.</p>
<p>   <code>dd if=fwimage.bin bs=256 skip=58 count=2 of=fwbit 2&gt;/dev/null<br />
   #check for all FFs Md5sum may not be _the_ tool for that, but it works OK.<br />
   if ! md5sum fwbit | grep -q de03fe65a6765caa8c91343acc62cffc; then<br />
   echo "No room at the location we want to place the hack!"<br />
   echo "This specific hack won't work for this particular firmware, I'm sorry."<br />
   exit 1;<br />
   fi</code></p>
<p>I did not have anything to loose, so I commented it out to bypass the check. Just put a &#8220;#&#8221; to comment out code.</p>
<p>5. I ran the script again (run as root), this time it went through the whole flashing process, till I rebooted</p>
<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_st2205tool_success.png"><img class="alignnone size-medium wp-image-634" title="hack_st2205tool_success" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_st2205tool_success-300x237.png" alt="hack_st2205tool_success" width="300" height="237" /></a></p>
<p>6. The script ends with &#8220;No Photoframe found here&#8221;. Turn off, Disconnect, Turn On and the Connect  the photoframe. Get the mount point as in step 3. Type the following as root.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_st2205tool_hi_lcd.png"><img class="alignnone size-medium wp-image-635" title="hack_st2205tool_hi_lcd" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_st2205tool_hi_lcd-300x72.png" alt="hack_st2205tool_hi_lcd" width="300" height="72" /></a></p>
<p>You should see the following on the LCD<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_lcd_debug.jpg"><img class="alignnone size-medium wp-image-640" title="hack_photo_cube_lcd_debug" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_lcd_debug-296x300.jpg" alt="hack_photo_cube_lcd_debug" width="296" height="300" /></a></p>
<p>The script allows a maximum of 10 characters. Another example<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_lcd_debug_2.jpg"><img class="alignnone size-medium wp-image-641" title="hack_photo_cube_lcd_debug_2" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/hack_photo_cube_lcd_debug_2-300x256.jpg" alt="hack_photo_cube_lcd_debug_2" width="300" height="256" /></a></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-1367209070807564";
/* 336x280, created 2/14/09 */
google_ad_slot = "6299204715";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>
I was however unsuccessful in getting PNGs or JPEGs uploaded to the device. That&#8217;s when I bricked my cube trying different memory addresses. It doesn&#8217;t even turn on now. I&#8217;ll update when I get my hands on another one. If you have any questions or comments, you could  enter them below. Thanks for reading and don&#8217;t forget to <a href="http://feeds2.feedburner.com/machinegrid">Subscribe </a>for more followups and hacks.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2009/02/hacking-the-hannah-montana-photocube/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Taking Apart the Spy Video ATV-360</title>
		<link>http://www.machinegrid.com/2009/02/taking-apart-the-spy-video-atv-360/</link>
		<comments>http://www.machinegrid.com/2009/02/taking-apart-the-spy-video-atv-360/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 04:45:17 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Hackable Toys]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[Robots]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[ATV-360]]></category>
		<category><![CDATA[dissect]]></category>
		<category><![CDATA[gears]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hubs]]></category>
		<category><![CDATA[robot platform]]></category>
		<category><![CDATA[spy gear]]></category>
		<category><![CDATA[spy video]]></category>
		<category><![CDATA[wildPlanet]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://www.machinegrid.com/?p=477</guid>
		<description><![CDATA[I finally took apart the Spy Video which I got for a very good deal. I wanted to see if it would serve as a good platform for a robot and if the drive system could be upgraded. The most difficult part was taking apart the wheel hubs. The interesting part in the hubs design [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_top_rear_drive.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_top_rear_drive-150x150.jpg" alt="spy_video_top_rear_drive" title="spy_video_top_rear_drive" width="150" height="150" class="alignright size-thumbnail wp-image-500" /></a>I finally took apart the <a target="_blank" href="http://www.spygear.net/spy-gear/spy-toys/spy_video_atv_360">Spy Video</a> which I got for a very <a href="http://www.machinegrid.com/2009/02/just-got-my-spy-gear-spy-video-atv-360/">good deal</a>. I wanted to see if it would serve as a good platform for a robot and if the drive system could be upgraded. The most difficult part was taking apart the wheel hubs. The interesting part in the hubs design is that a better motor can be attached to it. The following sequence shows me taking the vehicle apart. Might come in handy for hardware hackers out there.</p>
<p>1. Various views of the vehicle.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_front_view.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_front_view-150x150.jpg" alt="spy_video_front_view" title="spy_video_front_view" width="150" height="150" class="alignnone size-thumbnail wp-image-484" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_top_view.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_top_view-150x150.jpg" alt="spy_video_top_view" title="spy_video_top_view" width="150" height="150" class="alignnone size-thumbnail wp-image-502" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_bottom_view.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_bottom_view-150x150.jpg" alt="spy_video_bottom_view" title="spy_video_bottom_view" width="150" height="150" class="alignnone size-thumbnail wp-image-482" /></a><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_tracks"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_tracks-150x150.jpg" alt="spy_video_tracks" title="spy_video_tracks" width="150" height="150" class="alignnone size-thumbnail wp-image-505" /></a></p>
<p>2. Remove all the screws from the bottom of the vehicle, including the tracks.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_removing_tracks.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_removing_tracks-150x150.jpg" alt="spy_video_removing_tracks" title="spy_video_removing_tracks" width="150" height="150" class="alignnone size-thumbnail wp-image-497" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_tracks-removed.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_tracks-removed-150x150.jpg" alt="spy_video_tracks-removed" title="spy_video_tracks-removed" width="150" height="150" class="alignnone size-thumbnail wp-image-504" /></a></p>
<p>3.Remove the top shell slowly. Don&#8217;t pull on it. You will need to disconnect the camera, antenna and mic headers to get it free.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_top_body.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_top_body-150x150.jpg" alt="spy_video_remove_top_body" title="spy_video_remove_top_body" width="150" height="150" class="alignnone size-thumbnail wp-image-496" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_header.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_header-150x150.jpg" alt="spy_video_remove_header" title="spy_video_remove_header" width="150" height="150" class="alignnone size-thumbnail wp-image-493" /></a></p>
<p>4. Once the top shell is free, the circuit board and the drive system is visible. There is a bank of FETs for the motors. The board is very well labeled.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_bottom_shell.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_bottom_shell-150x150.jpg" alt="spy_video_bottom_shell" title="spy_video_bottom_shell" width="150" height="150" class="alignnone size-thumbnail wp-image-481" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_circuit_board.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_circuit_board-150x150.jpg" alt="spy_video_circuit_board" title="spy_video_circuit_board" width="150" height="150" class="alignnone size-thumbnail wp-image-483" /></a></p>
<p>5. To take apart the drive system, loosen the screws around the orange box. Then unscrew the black tab keeping the wires from the orange box secure.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_rear_drive.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_rear_drive-150x150.jpg" alt="spy_video_rear_drive" title="spy_video_rear_drive" width="150" height="150" class="alignnone size-thumbnail wp-image-511" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_top_rear_drive.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_top_rear_drive-150x150.jpg" alt="spy_video_top_rear_drive" title="spy_video_top_rear_drive" width="150" height="150" class="alignnone size-thumbnail wp-image-500" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_wire_holder.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_wire_holder-150x150.jpg" alt="spy_video_wire_holder" title="spy_video_wire_holder" width="150" height="150" class="alignnone size-thumbnail wp-image-510" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_motor_drives_far_view.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_motor_drives_far_view-150x150.jpg" alt="spy_video_motor_drives_far_view" title="spy_video_motor_drives_far_view" width="150" height="150" class="alignnone size-thumbnail wp-image-489" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_motor_drives_2.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_motor_drives_2-150x150.jpg" alt="spy_video_motor_drives_2" title="spy_video_motor_drives_2" width="150" height="150" class="alignnone size-thumbnail wp-image-488" /></a></p>
<p>6.Taking apart the wheel hub is a chore, but possible with pliers,  a small glass jar, some flame and some strength.First, remove the stopper from the shaft. Use pliers and strength:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_stopper.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_stopper-150x150.jpg" alt="spy_video_remove_stopper" title="spy_video_remove_stopper" width="150" height="150" class="alignnone size-thumbnail wp-image-495" /></a></p>
<p>Remove the large gear and everything between the gear and the stopper. Now again using pliers, remove the torque check gear:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_torque_check_gear.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_torque_check_gear-150x150.jpg" alt="spy_video_torque_check_gear" title="spy_video_torque_check_gear" width="150" height="150" class="alignnone size-thumbnail wp-image-503" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_stopper2.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_remove_stopper2-150x150.jpg" alt="spy_video_remove_stopper2" title="spy_video_remove_stopper2" width="150" height="150" class="alignnone size-thumbnail wp-image-494" /></a></p>
<p>Remove all the stuff after that including the orange cap with the three screws. Once the orange cap is removed, the black cover on the other end of the wheel can be removed:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_wheel_hub.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_wheel_hub-150x150.jpg" alt="spy_video_wheel_hub" title="spy_video_wheel_hub" width="150" height="150" class="alignnone size-thumbnail wp-image-508" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_all_removed.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_all_removed-150x150.jpg" alt="spy_video_all_removed" title="spy_video_all_removed" width="150" height="150" class="alignnone size-thumbnail wp-image-479" /></a></p>
<p>Now for the interesting part. The wheel hub is dead set into the shaft and we need to remove it. Make sure you have a small jar, like below, ready. Choose one such that it&#8217;s mouth is small enough only for the shaft to go in. Ignore the gears on the shaft in the picture. You should be having just a blank shaft with the black hub and orange cap on.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_pepper_jar.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_pepper_jar-150x150.jpg" alt="spy_video_pepper_jar" title="spy_video_pepper_jar" width="150" height="150" class="alignnone size-thumbnail wp-image-490" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_placing_wheel_hub.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_placing_wheel_hub-150x150.jpg" alt="spy_video_placing_wheel_hub" title="spy_video_placing_wheel_hub" width="150" height="150" class="alignnone size-thumbnail wp-image-491" /></a></p>
<p>Make sure you have the orange cap on. Now heat the shaft with a flame for around 30 seconds. This is just to soften the hub&#8217;s hold on the shaft. Holding it over the flame too long is going to melt the plastic.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_heating_shaft.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_heating_shaft-150x150.jpg" alt="spy_video_heating_shaft" title="spy_video_heating_shaft" width="150" height="150" class="alignnone size-thumbnail wp-image-486" /></a></p>
<p>Now while the shaft is still hot, place the shaft as shown below and hammer the other end down.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_hammer.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_hammer-150x150.jpg" alt="spy_video_hammer" title="spy_video_hammer" width="150" height="150" class="alignnone size-thumbnail wp-image-485" /></a></p>
<p>The shaft should come out after a few bangs. The wheel is now disassembled:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_shaft_removed.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_shaft_removed-150x150.jpg" alt="spy_video_shaft_removed" title="spy_video_shaft_removed" width="150" height="150" class="alignnone size-thumbnail wp-image-498" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_wheel_hub_parts.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_wheel_hub_parts-150x150.jpg" alt="spy_video_wheel_hub_parts" title="spy_video_wheel_hub_parts" width="150" height="150" class="alignnone size-thumbnail wp-image-509" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_all_wheel_parts.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_all_wheel_parts-150x150.jpg" alt="spy_video_all_wheel_parts" title="spy_video_all_wheel_parts" width="150" height="150" class="alignnone size-thumbnail wp-image-480" /></a></p>
<p>7. Why all this? I can now use a hub adapter and attach the ATV&#8217;s stock hub to a better motor.<br />
The following hub adapter is from <a rel="external" href="http://www.lynxmotion.com/Product.aspx?productID=242&#038;CategoryID=42">Lynxmotion</a>. I will need to drill new holes to match the adapter.<br />
<a href="http://www.lynxmotion.com/Product.aspx?productID=242&#038;CategoryID=42"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/lynxmotion_hub-150x150.jpg" alt="lynxmotion_hub" title="lynxmotion_hub" width="150" height="150" class="alignnone size-thumbnail wp-image-525" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_two_hubs.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/spy_video_two_hubs-150x150.jpg" alt="spy_video_two_hubs" title="spy_video_two_hubs" width="150" height="150" class="alignnone size-thumbnail wp-image-506" /></a></p>
<p>If you are interested, check out your local Target store or you could try Amazon:<!-- Amazon_ATV-360 --><br />
<iframe src="http://rcm.amazon.com/e/cm?t=machinegridco-20&#038;o=1&#038;p=8&#038;l=as1&#038;asins=B0016A7PGU&#038;fc1=707061&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=918A78&#038;bc1=FFFFFF&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>Thanks for looking. Any questions, ask in the comments.</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2009/02/taking-apart-the-spy-video-atv-360/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Simple Serial Parser Using A State Machine</title>
		<link>http://www.machinegrid.com/2009/01/a-simple-serial-parser-using-a-state-machine/</link>
		<comments>http://www.machinegrid.com/2009/01/a-simple-serial-parser-using-a-state-machine/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 20:07:52 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[serial parser]]></category>
		<category><![CDATA[state machine]]></category>

		<guid isPermaLink="false">http://www.blog.machinegrid.com/?p=294</guid>
		<description><![CDATA[This note illustrates how to decode or parse incoming serial data with an example. Transmitting one byte serially to a microcontroller is simple.The easiest way to do this is to interrupt the controller when a byte arrives on the receive pin. There is no need to parse or separate data as whatever comes in, is [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script>This note illustrates how to decode or parse incoming serial data with an example. Transmitting one byte serially to a microcontroller is simple.The easiest way to do this is to interrupt the controller when a byte arrives on the receive pin. There is no need to parse or separate data as whatever comes in, is assigned to a variable. But what if there is more than one byte that needs to be received.How would you go about separating all the bytes and put them into their respective variables?</p>
<p>The example illustrated here is to parse direction,steering angle and speed sent from a PC to a microcontroller, in this case a Microchip PIC16F876A. Parsing in this example is based on the idea of a state machine. If you need to know more about state machines, the following link may be helpful:<br />
Microchip forums : <a rel="external" href="http://forum.microchip.com/tm.aspx?m=163425">Most efficient way to &#8220;decode&#8221; serial data?</a><br />
Most of the code used here is based on feature article by Glen Worstell on a &#8220;Ham Radio Repeater Locator&#8221; using a Garmin GPSMAP 295.<br />
Links : <a rel="external" href="http://www.circuitcellar.com/library/print/0804/Worstell_169/Worstell-169.pdf">Here</a><br />
code : <a href="ftp://ftp.circuitcellar.com/pub/Circuit_Cellar/2004/169">Here</a> (ftp).</p>
<p>In this example, my PC transmits a serial string &#8220;$122133200&#8243; where :<br />
$ : Start of String(SOS)<br />
122: Direction(Note 1)<br />
133: Steering Angle<br />
200: Speed</p>
<p>In my microcontroller the incoming string is compared byte by byte with a parser string &#8220;$dddtttsss&#8221; using a state machine where :<br />
$ : Start of String(SOS)<br />
ddd: Direction<br />
ttt: Steering Angle<br />
sss: Speed<br />
The State Machine:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/serial_parser/state_machine.jpg" alt="" width="414" height="327" /></p>
<p>State 0: The state machine does nothing until a &#8220;$&#8221; or Start of String(SOS) is received.<br />
State 1: &#8220;$&#8221; received.If not goto State 0.<br />
State 2: The parser knows that the next(second) byte coming in has to be a Direction parameter, because of the &#8220;d&#8221; in the parser string If a number comes in, it is stored. If anyhing anything other than a number is received, it is discarded and the machine returns to State 0. This continues for 2 more bytes.<br />
State 3: The fifth byte is the steering angle, represented by a &#8220;t&#8221; in the parser string.Ths same for the sixth and seventh bytes. State 4: The eighth byte is the Speed, known by the &#8220;s&#8221; in the parser.</p>
<p>The state machine is reset or restarted after the tenth byte.<br />
If you declare the direction,steering angle and Speed as an int8 or a char, the final value for each parameter would be :<br />
for direction:<br />
direction = direction * 10 + received byte.</p>
<p>Direction = 0*10 + 1 = 1<br />
Direction = 1*10 + 2 = 12<br />
Direction = 12*10 + 2= 122<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/serial_parser/parse.jpg" alt="" width="666" height="572" /><br />
The following source code is for the Micrchip PIC16F876A, written in CCS.<br />
Code : <a href="http://www.machinegrid.com/machinepress/wp-content/uploads/media/code/serial_parser/pic_parser.c">Here</a></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2009/01/a-simple-serial-parser-using-a-state-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Soldering Your Accelerometer &#8211; The ADXL202E</title>
		<link>http://www.machinegrid.com/2008/12/soldering-your-accelerometer-the-adxl202e/</link>
		<comments>http://www.machinegrid.com/2008/12/soldering-your-accelerometer-the-adxl202e/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 20:15:44 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[accelerometer]]></category>
		<category><![CDATA[adxl202e]]></category>
		<category><![CDATA[sensors]]></category>

		<guid isPermaLink="false">http://www.blog.machinegrid.com/?p=305</guid>
		<description><![CDATA[I finally get my hands on Analog Devices’ accelerometer- the ADXL202E. It’s small,very small. See what I mean! However there’s this problem, I usually work on PDIP packages and SMDs do give me a scare,not because I’ve never soldered them,but because I do not have the necessary equipment for it. So I decide to do [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script>I finally get my hands on Analog Devices’ accelerometer- the ADXL202E. It’s small,very small.<br />
See what I mean!<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_adxl202_finger.jpg" alt="" width="300" height="236" /></p>
<p>However there’s this problem, I usually work on PDIP packages and SMDs do give me a scare,not because I’ve never  soldered them,but because I do not have the necessary equipment for it. So I decide to do my thing , and also take a little inspiration from <a rel="external" href="http://www.sparkfun.com/commerce/product_info.php?products_id=400">Sparkfun&#8217;s Breakout</a> board.</p>
<p>My first step was to find a thinner tip for the soldering iron. It presently has a standard tip,too big to solder the accelerometer. I decide to go shopping for a thinner one and get the finest one available at my local shop.<br />
This is what the tip looks like[It's standard, I need a thinner one]<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_tip_before.jpg" alt="" width="352" height="288" /></p>
<p>This is the new tip.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_tip_after2.jpg" alt="" width="352" height="288" /><br />
Since I needed to get wires out from the ADXL202 , I used very thin ones.You can easy get these by removing the insulation off normal wires you use in breadboarding. Now comes the difficult part &#8211; soldering.</p>
<p>First you need to hold your chip in place.With a little tape,firmly place the accelerometer on the table your working on.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_tape_roll.jpg" alt="" width="352" height="288" /></p>
<p><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_tap_pers.jpg" alt="" width="352" height="288" /></p>
<p>This will prevent the chip from moving around ,when you solder the wires</p>
<p>First, put a little solder on one of the accelerometer’s solder points.Then taking a wire ,heat the wire, add some solder and touch it to the sensor’s pads. Do the same for the other seven “pins” of the sensor This is how it looked when done.[I know it's gory and ugly,but it's the best I could do]<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder__adxl202_bottom.jpg" alt="" width="352" height="288" /></p>
<p>Here’s the top view.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_adxl202e_top.jpg" alt="" width="352" height="288" /></p>
<p>Now to mount the sensor onto a PCB. I chose a simple general purpose PCB[ dot matrix], as it’s easy available.That’s a One  Ruppee coin,Indian currency ,the board is next to.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_adxl_pcb.jpg" alt="" width="352" height="288" /></p>
<p>I cut the PCB to half to get a smaller footprint,that will house the ADXL202 and the supporting components. This is the finished version of the board:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_adxl2022_coin.jpg" alt="" width="352" height="288" /></p>
<p><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_adxl202_board_bottom.jpg" alt="" width="352" height="288" /></p>
<p>If you notice,there are pins at the bottom of the board.These are for the signal and supply lines.I put them ,so that the board can piggy back on a bigger PCB housing the microcontroller…I also put a berg connector on the top,so that I could debug the signals. Following scope traces show the PWM changing as the accelerometer is tilted.</p>
<p>Tilted to one side:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_adxl202e_signal_tilt1.jpg" alt="" width="352" height="288" /></p>
<p>Sensor on level surface:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_adxl2_tilt_center.jpg" alt="" width="352" height="288" /></p>
<p>Tilted to the other side:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/accelerometer_soldering/accelerometer_solder_adxl202e_signal_tilt2.jpg" alt="" width="352" height="288" /><br />
<!--Google Adsense Code --><br />
<script type="text/javascript"><!--
google_ad_client = "pub-1367209070807564";
/* 468x60, created 2/6/09 */
google_ad_slot = "1535583406";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2008/12/soldering-your-accelerometer-the-adxl202e/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Programming the SRV-1 Robot Wirelessly</title>
		<link>http://www.machinegrid.com/2008/12/programming-the-srv-1-robot-wirelessly/</link>
		<comments>http://www.machinegrid.com/2008/12/programming-the-srv-1-robot-wirelessly/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 20:14:53 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Robots]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[lpc2378]]></category>
		<category><![CDATA[srv-1]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[zigbee]]></category>

		<guid isPermaLink="false">http://www.blog.machinegrid.com/?p=303</guid>
		<description><![CDATA[The Surveyor SRV-1 robots( the Philips LPC2378 version) have the ability to be programmed remotely via Maxstream Zigbee radios. The usual way to program the Surveyor SRV-1 is via the lpc21isp utility by issuing the command: lpc21isp.exe -hex srv1.hex com1 115200 14746 . To program the robot wirelessly, follow the steps: 1. Download the flash [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script>The Surveyor SRV-1 robots( the Philips LPC2378 version) have the ability to be programmed remotely via  Maxstream Zigbee radios.<br />
The usual way to program the Surveyor SRV-1 is via the lpc21isp utility by issuing the command:<br />
<i>lpc21isp.exe -hex srv1.hex com1 115200 14746</i><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/programming_srv-1/lpc2000_dos.jpg" width="400" height="202"  alt="" />.<br />
To program the robot wirelessly, follow the steps:<br />
1. Download the flash utility from <a href="http://www.nxp.com/files/markets/microcontrollers/philips_flash_utility.zip">here.</a><br />
2. You get the following splash screen after unzipping the files and running the exe.<br />
Keep the robot switched off.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/programming_srv-1/lpc2000_splash.jpg" width="400" height="221"  alt="" /><br />
3. Browse to the hex file to be downloaded and make the necessary &#8220;com&#8221; and &#8220;baud&#8221; changes as shown:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/programming_srv-1/lpc2000_hex.jpg" width="400" height="221"  alt="" /><br />
4. Click &#8220;Upload file&#8221;.This gives the following screen.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/programming_srv-1/lpc2000_ok.jpg" width="400" height="222" alt="" /><br />
5. Now switch on the robot.The file starts loading into flash.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/programming_srv-1/lpc2000_flashing.jpg" width="400" height="221"  alt="" /><br />
6. Done!<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/programming_srv-1/lpc2000_done.jpg" width="400" height="221"  alt="" /></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2008/12/programming-the-srv-1-robot-wirelessly/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accelerometers for your Robot[The ADXL202 and the MEMSIC 2125]</title>
		<link>http://www.machinegrid.com/2008/12/accelerometers-for-your-robot-adxl202-and-memsic-2125/</link>
		<comments>http://www.machinegrid.com/2008/12/accelerometers-for-your-robot-adxl202-and-memsic-2125/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 20:14:15 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[accelerometer]]></category>
		<category><![CDATA[adxl202]]></category>
		<category><![CDATA[memsic]]></category>
		<category><![CDATA[memsic-2125]]></category>
		<category><![CDATA[sensors]]></category>

		<guid isPermaLink="false">http://www.machinegrid.com/?p=598</guid>
		<description><![CDATA[You&#8217;ve seen robots run on two wheels ,walk on two legs and balance just like us humans.I bet you&#8217;ve wondered whats in them that makes them &#8220;not tip over. The device that enables this is a tiny teeny IMEM [aMicro Electro-Mechanical System] which can measure anything between ±1g to ±20g [some of the high g [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script><script type="text/javascript"><!--
google_ad_client = "pub-1367209070807564";
/* 468x60, created 2/6/09 */
google_ad_slot = "1535583406";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>You&#8217;ve seen robots run on two wheels ,walk on two legs and balance just like us humans.I bet you&#8217;ve wondered whats in them that makes them &#8220;not tip over.</p>
<p>The device that enables this is a tiny teeny IMEM [aMicro Electro-Mechanical System] which can measure anything between ±1g to ±20g [some of the high g accelerometers measure ±20g to ±250g ]</p>
<p>The sensors:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_adxl202e_coin.jpg"><img class="alignnone size-full wp-image-597" title="accelerometer_adxl202e_coin" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_adxl202e_coin.jpg" alt="accelerometer_adxl202e_coin" width="166" height="167" /></a></p>
<p><strong>What&#8217;s a &#8220;g&#8221;?</strong><br />
A &#8220;g&#8221; is a unit of acceleration having a value of 9.8<br />
if you say 1g of acceleration .Its equivalent to:<br />
1g = 1*9.8 = 9.8 m/s2<br />
2g = 2*9.8 = 19.6m/s2</p>
<p><strong>&#8220;g&#8221; in reality : </strong></p>
<table border="1">
<tbody>
<tr>
<td>1g</td>
<td>The acceleration exerted by the Earth’s gravity on an object or person (for example, a cell<br />
phone on a desk experiences 1 g of acceleration).</td>
</tr>
<tr>
<td>0-2g</td>
<td>The acceleration range experienced by a person when walking.</td>
</tr>
<tr>
<td>10-50g</td>
<td>The acceleration experienced by an automobile in a typical crash.</td>
</tr>
<tr>
<td>100-2,000g</td>
<td>The acceleration experienced by a laptop if it is dropped from a height of three feet onto a<br />
concrete floor.</td>
</tr>
<tr>
<td>50,000g</td>
<td>The acceleration experienced by a munition when shot from a cannon.</td>
</tr>
</tbody>
</table>
<p>&#8230;&#8230;.<em>Memsic.com</em></p>
<p><strong>Where are Accelerometers used:</strong></p>
<ul>
<li>Robotics<br />
&#8212;To measure Tilt and Acceleration</li>
<li>Vibration monitoring<br />
&#8212;Vibration monitoring of heavy machinery</li>
<li>Alarms and Motion Detectors</li>
<li>Cellphones<br />
&#8212;To invert the Phone screen so that the screen is always vertical</li>
<li>Model Airplanes<br />
&#8212;Detecting pitch and yaw</li>
<li>Vehicle headlight aligning</li>
<li>Disk Drives</li>
<li>Vehicle Security</li>
</ul>
<p>The following describes the two most popularly used accelerometers.<br />
Both these accelerometers work on the same principle ,but on different technologies.</p>
<p><strong>The Analog Devices ADXL202</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_adxl202e.gif"><img class="alignleft size-full wp-image-599" title="accelerometer_adxl202e" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_adxl202e.gif" alt="accelerometer_adxl202e" width="75" height="64" /></a><br />
Manufacturer :: Analog Devices<br />
Datasheet    :: <a rel="external" href="http://www.analog.com/UploadedFiles/Data_Sheets/53728567227477ADXL202E_a.pdf">pdf</a></p>
<p><em><strong>Principle</strong></em><br />
The ADXL202 has a movable mass inside it which responds to vibrations,tilt or jerks.<br />
The sensor element is a differential capacitor whose output is proportional to acceleration. The beam is made up of many interdigitated fingers.<br />
Each set of fingers can be visualized as shown below:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_green202.gif"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_green202.gif" alt="accelerometer_green202" title="accelerometer_green202" width="610" height="273" class="alignnone size-full wp-image-600" /></a><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_adxlblock.jpg"><img src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_adxlblock.jpg" alt="accelerometer_adxlblock" title="accelerometer_adxlblock" width="516" height="241" class="alignnone size-full wp-image-601" /></a><br />
<em>Images Courtesy : Microchip.com</em></p>
<p>The movement of the beam is controlled by the polysilicon springs holding the beam.<br />
These springs and the beam’s mass obey the laws of physics .<br />
The force (F) on a mass (m) subject to acceleration (a), according to Newton’s Second Law, is<br />
<strong>F = m a</strong><br />
The deflection (x) of a restraining spring according to Hooke’s Law is proportional to the applied force:<br />
<strong>F = k x</strong><br />
From the above two equations&#8230;<br />
<strong>a(acceleration) is proportional to x(displacement)</strong></p>
<p>This enables us to compute the acceleration.<br />
Once acceleration is obtained. Tilt can be obtained by monitoring each of the axes</p>
<p><strong>The MEMSIC 2125</strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_memsic.jpg"><img class="alignnone size-thumbnail wp-image-602" title="accelerometer_memsic" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_memsic-150x150.jpg" alt="accelerometer_memsic" width="150" height="150" /></a><br />
Manufacturer :: Memsic<br />
Datasheet    :: <a rel="external" href="http://www.memsic.com/memsic/data/products/MXD2125ML/mxd2125gl_hl_nl_ml.pdf">pdf</a></p>
<p><strong><em>Principle</em></strong><br />
Unlike the Analog Devices ADXL which uses a movable beam, the Memsic accelerometers measure acceleration by monitoring a hot gas inside a chamber. The chamber is lined by a numerous temperature sensors which monitor the movement of the gas.<br />
The picture below illustrates this:<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_memsic1.jpg"><img class="alignnone size-medium wp-image-603" title="accelerometer_memsic1" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_memsic1-300x136.jpg" alt="accelerometer_memsic1" width="300" height="136" /></a><br />
<em>Images courtesy of Parallax Inc. (www.parallax.com), from the Stamps in<br />
Class Forum article&#8221;<br />
<a rel="external" href="http://forums.parallax.com/forums/default.aspx?f=6&amp;m=55816">How to &#8211; Accelerometer (1) Fundamentals and Tilt</a>&#8220;</em></p>
<p>The first figure illustrates the accelerometer when it is held level.Note the position of the hot gas. The adjacent figure shows the accelerometer when tilted.The gas now shifts,changing the values of the sensors appropriately.</p>
<p><strong>Output of an Accelerometer</strong><br />
Accelerometers like the ADXL and Memsic output their measurements in terms of PWM [Pulse Width Modulation].<br />
For example take the ADXL202jqc which measures -2g to 2g. According to the ADXL datasheet 0g would translate to a 50% duty cycle.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer__1g.jpg"><img class="alignnone size-full wp-image-605" title="accelerometer__1g" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer__1g.jpg" alt="accelerometer__1g" width="207" height="158" /></a><br />
A &lt; than 0g readout with a lower than 50% duty cycle</p>
<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_0g.jpg"><img class="alignnone size-full wp-image-606" title="accelerometer_0g" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_0g.jpg" alt="accelerometer_0g" width="207" height="158" /></a><br />
A  0g readout with 50% duty cycle</p>
<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_1g.jpg"><img class="alignnone size-full wp-image-607" title="accelerometer_1g" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_1g.jpg" alt="accelerometer_1g" width="207" height="158" /></a><br />
A &gt; than 0g readout with a greater than 50% duty cycle</p>
<p><strong>Accelerometer AXIS</strong><br />
Both the above sensors measure 2 axis i.e the x and the y</p>
<p><a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_xy.jpg"><img class="alignnone size-full wp-image-608" title="accelerometer_xy" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_xy.jpg" alt="accelerometer_xy" width="138" height="108" /></a></p>
<p>Selection of an axis depends on your project requirements. You can even use the sensors to measure a full 360 degree of tilt. by using two accelerometers oriented perpendicular to one another.When one sensor is reading a maximum change in output per degree, the other is at its minimum.<br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_360d.jpg"><img class="alignnone size-medium wp-image-609" title="accelerometer_360d" src="http://www.machinegrid.com/machinepress/wp-content/uploads/2009/02/accelerometer_360d-300x156.jpg" alt="accelerometer_360d" width="300" height="156" /></a></p>
<p>Well thats it..these sensors do not need a lot of interfacing components. The ADXL202 just need 2 resistors and capacitors to set certain parameters while the Memsic needs even fewer components.<br />
<script type="text/javascript"><!--
google_ad_client = "pub-1367209070807564";
/* 468x60, created 2/6/09 */
google_ad_slot = "1535583406";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2008/12/accelerometers-for-your-robot-adxl202-and-memsic-2125/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PIC16484A Temperature Controller</title>
		<link>http://www.machinegrid.com/2008/12/pic16484a-temperature-controller/</link>
		<comments>http://www.machinegrid.com/2008/12/pic16484a-temperature-controller/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 20:13:55 +0000</pubDate>
		<dc:creator>bluehash</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[micrcontroller]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[PIC16F84A]]></category>

		<guid isPermaLink="false">http://www.blog.machinegrid.com/?p=300</guid>
		<description><![CDATA[Ever needed to measure temperature and display it? This project details measuring temperature using a temperature sensor ,an ADC and a Microcontroller PIC16f84a with schematics,codes and illustrations. You can also get the following kit, although not based on the pic, which would make your life easier for your future projects. This project was done fairly [...]
No related posts.]]></description>
			<content:encoded><![CDATA[<p><!-- New window script from http://blog.ginchen.de/en/2008/12/20/links-xhtml-konform-in-neuem-fenster-oeffnen/ --><script src="http://www.machinegrid.com/machinepress/jscripts/externalLinks.js" type="text/javascript"></script>Ever needed to measure temperature and display it? This project details measuring temperature using a temperature sensor ,an ADC and a Microcontroller PIC16f84a with schematics,codes and illustrations. You can also get the following kit, although not based on the pic, which would make your life easier for your future projects.<br />
<iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=machinegridco-20&#038;o=1&#038;p=8&#038;l=as1&#038;m=amazon&#038;f=ifr&#038;md=10FE9736YVPPT7A0FBG2&#038;asins=B001VK18HC" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></p>
<p>This project was done fairly long ago, so please excuse the quality of the pictures.<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_initial.jpg" alt="" width="252" height="188" /></p>
<p><span style="text-decoration: underline;"><em>Overview</em></span><br />
The Temperature control module was a part of my Final year undergraduate project,which consisted of transmitting data wirelessly.<br />
The module uses an inexpensive 8 bit Temperature Sensor the TMP37 from Analog Devices.<br />
Since the data was analog and the PIC16f84 does not have an analog input,an external ADC had to be used.<br />
Texas Instruments&#8217; TLC549 was chosen for this.The advantage of this ADC was that it could communicate with the microcontroller serially.You may also use similar ADCs from  Maxim-IC.<br />
The LCD is a normal 16&#215;2 display which uses the Hitachi Controller HD44780.<br />
The module is breadboarded and not done on a PCB.Schematics are included in appropriate places below.</p>
<p>This site was a great help in building the project.<br />
<a rel="external" href="http://www.technology.niagarac.on.ca/people/mcsele/TemperatureAlarm.htm">Mark S. Csele&#8217;s PIC Temperature Controller Page</a></p>
<p>Capabilities of the system:<br />
-Show Current Temperature,Set temperature and Alarm Display.<br />
-Go into Set Mode.<br />
-Increment/Decrement Set Point.<br />
-Enter Set point.</p>
<p><span style="text-decoration: underline;"><em>Here&#8217;s a snap of the module : </em></span><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/top.jpg" alt="" width="352" height="288" /></p>
<p>The project is divided into the following subparts:<br />
-The Analog to Digital converter TLC 549 [8 bit]<br />
-The Temperature Sensor TMP37<br />
-The PIC16F84 / PIC16F84a Microcontroller<br />
-Input Buttons<br />
-The Liquid Crystal Display [LCD]<br />
-Temperature Control<br />
-Codes<br />
<em><span style="text-decoration: underline;">Note:</span></em><em>To follow this project you may need to know to program a PIC,there are some helpful links at the bottom of the page if you are not familiar with it.</em></p>
<p><strong>The Analog to Digital converter TLC 549 [8 bit]</strong><br />
<em>Description</em> : The  TLC549 is an analog-to-digital converter (ADC) integrated circuit built around an 8-bit switched-capacitor successive-approximation ADC. This  device is  designed for serial interface with a microprocessor or peripheral.</p>
<p><span style="text-decoration: underline;"><em>Pinouts:</em></span><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/tlc549pinout.jpg" alt="" width="623" height="173" /><br />
<span style="text-decoration: underline;"><em>Signals:</em></span><br />
The TLC549 has two control lines and one data output line.<br />
They are as follows:<br />
-<em>CS[bar]</em> :: Input signal.The Chip Select signal.When low it selects/activates the chip.When high it disables the chip<br />
-<em>I/O clock</em> :: Input signal.The input/output clock line is used to clock the ADC.<br />
-<em>Data Out</em> :: Output signal.The data out signal clocks out bits into the PIC microcontroller.</p>
<p><em>ADC TLC549 on the circuit : </em><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/adc549.jpg" alt="" width="352" height="288" /><br />
<span style="text-decoration: underline;"><em>Working:</em></span><br />
Sequence of events:<em>See also datasheet page 8/10</em></p>
<ul>
<li>-CS is brought low The most significant bit (MSB) of the previous conversion result initially appears on DATA OUT when CS goes low.</li>
<li>-The falling edges of the first four I/O CLOCK cycles shift out the second, third, fourth, and fifth most significant bits of the previous conversion result.</li>
<li>-Three more I/O CLOCK cycles are then applied to the I/O CLOCK terminal and the sixth, seventh, and eighth conversion bits are shifted out.</li>
<li>-The final (the eighth) clock cycle is applied to I/O CLOCK. After the eighth I/O CLOCK cycle, CS must go high or the I/O clock must remain low.</li>
</ul>
<p><span style="text-decoration: underline;"><em>Resources:</em></span><br />
Device Manufacturer :: <a rel="external" href="http://www.ti.com">Texas instruments</a><br />
TLC549 Datasheet :: <a rel="external" href="http://www-s.ti.com/sc/ds/tlc549.pdf">pdf</a></p>
<p><strong>The Temperature Sensor TMP37</strong><br />
<em>Description:</em><br />
The  TMP37 is a  low voltage, precision centigrade temperature sensor. It  provides a voltage output<br />
that is linearly proportional to the Celsius (Centigrade) temperature. The TMP37 <em>does not require any external calibration</em> to provide typical accuracies of ±1°C at +25°C and ±2°C over the –40°C to +125°C temperature range. It is intended for applications over the range 5°C to 100°C and provides an output scale factor of 20 mV/°C.<br />
<em>Calculation</em>:<br />
If the Temperature is around 28 Degree Celsius. The TMP37 would be giving out a voltage of around 560mV<br />
[.02*28=0.56V ie 560mV]<br />
<em><span style="text-decoration: underline;">Pinouts</span></em>:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/tmp37pinout.jpg" alt="" width="328" height="172" /><br />
<em>Signals/Pins</em><br />
-The Middle Pin [pin2]ie the Vout is directly connected to pin no 2 of the ADC TLC549.<br />
-The rest of the 2 pins are the supply voltage of 5.0V and GND</p>
<p><em>TMP37 on the circuit : </em><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/tsensor.jpg" alt="" width="352" height="288" /></p>
<p><span style="text-decoration: underline;"><em>Resources:</em></span><br />
Device Manufacturer :: <a rel="external" href="http://www.analog.com">Analog devices</a><br />
TMP37 Datasheet :: <a rel="external" href="http://www.analog.com/UploadedFiles/Data_Sheets/32847740TMP35_6_7_c.pdf">pdf</a></p>
<p><span style="text-decoration: underline;"><strong>The PIC16F84 / PIC16F84a Microcontroller</strong></span><br />
There are two PIC16f84 microcontrollers handling the ADC/Temperature sensor/LCD and the input buttons.<br />
The reason is that there weren&#8217;t enough pins on one PIC to control all the peripherals.So i had to use 2 of them and distribute the peripherals among them and also since I had a bunch of the same model.The two controllers communicate with each other serially.<br />
<em><span style="text-decoration: underline;">Note</span></em> : <em>You may even use the PIC16f877 /A or the PIC17F874 /A microcontrollers from Microchip.They have alot more pinouts and the whole module can be controlled by a single controller.</em><br />
The peripherals are distributed among the two microcontrollers in the following way:</p>
<p>-PIC-1 Handles the ADC TLC549 and Temperature Sensor TMP35<br />
-PIC-2 Handles the LCD and the four Input Switches/Buttons to control the menu on the LCD</p>
<p><em>PIC-1 </em><br />
The first PIC16F84a ie PIC-1 collects data from the ADC and transmits them serially to the second PIC16F84a ie PIC-2.<br />
<em><span style="text-decoration: underline;">The connection between the PIC-1,ADC and Temperature Sensor TMP37 is shown below</span>:</em><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/pic1thumb.jpg" alt="" width="339" height="177" /><br />
<span style="text-decoration: underline;"><em>PIC-1 with ADC and TLC549 on the circuit : </em></span><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/pic1.jpg" alt="" width="352" height="221" /></p>
<p><em><span style="text-decoration: underline;">PIC-2</span></em><br />
The PIC-2 handles all the <em>LCD control signals ,the Temperature control and the Input buttons</em><br />
Using the Input Buttons ,you can :<br />
-Go into the Set Temperature Menu<br />
-Increment the Set Point<br />
-Decrement the Set Point<br />
-Enter the Set point</p>
<p><span style="text-decoration: underline;"><em>The connections between the PIC-2 ,the LCD and Input buttons is shown below</em></span>:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/pic2thumb.jpg" alt="" width="327" height="188" /></p>
<p><span style="text-decoration: underline;">PIC-2 with the LCD and Input buttons : </span><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/pic2.jpg" alt="" width="351" height="257" /></p>
<p><span style="text-decoration: underline;"><em>Resources:</em></span></p>
<p>Device Manufacturer     :  <a rel="external" href="http://www.microchip.com">Microchip</a><br />
PIC16F84a Datasheet   :  <a rel="external" href="http://ww1.microchip.com/downloads/en/DeviceDoc/35007b.pdf">pdf</a></p>
<p><strong><span style="text-decoration: underline;">Codes: </span></strong><br />
The code for both the PICs are given at the end of the page.</p>
<p>I&#8217;ve also used subroutines from other programs on the net and the author names are also mentioned in the included codes. Please give them credit and leave the names intact if you are planning to use the codes.</p>
<p><span style="text-decoration: underline;"><strong>The Input Buttons</strong></span><br />
There are four input buttons for controlling the menu on the LCD.<br />
-Button1 : Enter Set Mode<br />
-Button2 : Decrement till released<br />
-Button3 : Increment till released<br />
-Button4 : Enter the desired set point</p>
<p>If the button is not pressed ,the PIC always gets a high.<br />
If the button is pressed, the respective PIC pin goes low.<br />
All the four buttons are connected to PortA of PIC-2</p>
<p><span style="text-decoration: underline;"><em>The input buttons on the circuit:</em></span><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/inputb.jpg" alt="" width="352" height="288" /></p>
<p><strong><span style="text-decoration: underline;">The Liquid Crystal Display [LCD]:</span></strong><br />
The LCD is a normal 16&#215;2 Line display using the Hitachi controller HD44780. The LCD works in a 4 bit nibble mode,which means that the PIC first sends the lower bits of a byte and then the upper bits.<br />
The connections to the 16&#215;2 LCD are shown above under PIC-2 connections.</p>
<p><span style="text-decoration: underline;"><em>The LCD on the circuit:</em></span><br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_initial.jpg" alt="" width="352" height="288" /><br />
<span style="text-decoration: underline;"><em>References:</em></span><br />
You may learn more about interfacing the LCD using the following links</p>
<p><a rel="external" href="http://roboticsindia.com/modules.php?name=News&amp;file=article&amp;sid=75&amp;mode=&amp;order=0&amp;thold=0">Beginners Guide To LCD Interfacing</a> :: RoboticsIndia.com</p>
<p><a rel="external" href="http://www.winpicprog.co.uk/pic_tutorial_lcd_board.htm">PIC Tutorial &#8211; LCD Board</a> :: Nigel Goodwin</p>
<p><a rel="external" href="http://www.myke.com/lcd.htm">LCD Interfacing Reference Page</a> :: Myke Predko</p>
<p><a rel="external" href="http://www.overclockers.com.au/techstuff/a_diy_lcd/">Build your own printer cable LCD Display</a> :: Overclockers Australia</p>
<p><span style="text-decoration: underline;"><em>Resources:</em></span><br />
Device Manufacturer : <a rel="external" href="http://www.hitachi.com/product/business/semicon/index.html">Hitachi Semiconductor</a><br />
HD44780 Datasheet  : <a rel="external" href="http://www.datasheetarchive.com/download.php?pi=400274">pdf</a></p>
<p><em><span style="text-decoration: underline;">Temperature Control</span></em><br />
Temperature control is achieved using a simple on/off algorithm<br />
Example :<br />
If the desired Set Point is 29 Degree C.<br />
The Alarm will activate if the tremperaturre &gt;= 29 Degree C.</p>
<p><span style="text-decoration: underline;"><em>Sequence of events:</em></span><br />
Initial display:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_initial.jpg" alt="" width="352" height="288" /></p>
<p>Display after initialisation:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_first.jpg" alt="" width="352" height="288" /></p>
<p>Display on pressing the SET Button:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_set.jpg" alt="" width="352" height="288" /></p>
<p>Deciding the Set point using the Increment /Decrement buttons:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_decide.jpg" alt="" width="352" height="288" /></p>
<p>Entering the Set Point at 29 Deg C [Enter button]:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_enter.jpg" alt="" width="352" height="288" /></p>
<p>Main Display after inserting the setpoint:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_alarmoff.jpg" alt="" width="352" height="288" /></p>
<p>SET point exceeded..Alarm ON:<br />
<img src="http://www.machinegrid.com/machinepress/wp-content/uploads/media/images/temperature_controller/disp_alarm_on.jpg" alt="" width="352" height="288" /><br />
<strong><span style="text-decoration: underline;">Codes:</span></strong><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/media/code/temperature_controller/pic1.zip">ASM Code for PIC-1</a><br />
<a href="http://www.machinegrid.com/machinepress/wp-content/uploads/media/code/temperature_controller/pic2.zip">ASM Code for PIC-2</a></p>
<p><span style="text-decoration: underline;"><strong>Links for constructing your own PIC programmer</strong></span><br />
<a rel="external" href="http://www.myke.com/elcheapo.htm">El Cheapo PICmicro Programmer</a> :: Myke Predko<br />
<a rel="external" href="http://www.lancos.com/prog.html">Pony Prog  serial device programmer</a> :: Claudio Lanconelli<br />
<a rel="external" href="http://www.bobblick.com/techref/projects/picprog/picprog.html">Classic PIC Programmer</a> :: bobblick.com<br />
<a rel="external" href="http://www.qsl.net/dl4yhf/winpicpr.html"> WinPic &#8211; A PIC Programmer for Windows </a></p>
<p><a rel="external" href="http://www.piclist.com">PICLIST.com</a> :: A Heavy PIC resource</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://www.machinegrid.com/2008/12/pic16484a-temperature-controller/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
	</channel>
</rss>

